diff --git a/bower.json b/bower.json index 4d8ba921..deef1d16 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.5.19", + "version": "2.6.0", "ignore": [ ".bowercc", ".gitignore", diff --git a/dist/amd/System.Linq/Linq.js b/dist/amd/System.Linq/Linq.js index cd14f71d..3e22b497 100644 --- a/dist/amd/System.Linq/Linq.js +++ b/dist/amd/System.Linq/Linq.js @@ -1,8 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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/Utility","../System/Disposable/DisposableBase","../System/Exception","../System/Disposable/ObjectDisposedException","../System/Collections/Sorting/KeySortedContext"],function(t,e,n,r,o,u,i,a,f,c,s,l,p,d,y,v,h,w){"use strict";function m(t,e){void 0===e&&(e=null);var n=new w["default"](e,t.keySelector,t.order,t.comparer);return t.parent?m(t.parent,n):n}function g(t,e){if(void 0===e&&(e="Enumerable"),t)throw new h["default"](e)}var E=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"]),N=new E;Object.freeze(N);var x=function(t){function e(){t.call(this,"Unsupported enumerable.")}return __extends(e,t),e}(v["default"]),I=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e}return __extends(e,t),e.fromArray=function(t){return new D(t)},e.from=function(t){if(i["default"].isObject(t)){if(i["default"].isInstanceOf(t,e))return t;if(Array.isArray(t))return new D(t);if(u.isEnumerable(t))return new e(function(){return t.getEnumerator()});if(i["default"].isArrayLike(t))return new D(t)}throw new x},e.toArray=function(t){if(i["default"].isObject(t)){if(Array.isArray(t))return t.slice();if(i["default"].isArrayLike(t)&&(t=new D(t)),i["default"].isInstanceOf(t,e))return t.toArray();if(u.isEnumerable(t)){var n=[];return u.forEach(t.getEnumerator(),function(t,e){n[e]=t}),n}}throw new x},e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.choice=function(t){return new e(function(){return new s["default"](null,function(e){return e.yieldReturn(t[a["default"].random(t.length)])})})},e.cycle=function(t){return new e(function(){var e=0;return new s["default"](function(){e=0},function(n){return e>=t.length&&(e=0),n.yieldReturn(t[e++])})})},e.empty=function(){return new e(function(){return new s["default"](null,N.False)})},e.repeat=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e=n,r=0;return new s["default"](function(){r=0},function(n){return r++=n)return e.empty();if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e,o=n,u=0;return new s["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i})}:function(){var e;return new s["default"](function(){e=t},function(t){var n=e;return e+=r,t.yieldReturn(n)})})},e.rangeDown=function(t,n,r){return void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.range(t,1/0,n)},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.rangeDown(t,1/0,n)},e.rangeTo=function(t,n,r){if(void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),!isFinite(t))throw new Error("Must have a valid 'start' value.");if(isNaN(n))throw new Error("Must have a valid 'to' value.");if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return r=Math.abs(r),isFinite(n)?new e(function(){var e;return n>t?new s["default"](function(){e=t},function(t){var o=n>=e&&t.yieldReturn(e);return o&&(e+=r),o}):new s["default"](function(){e=t},function(t){var o=e>=n&&t.yieldReturn(e);return o&&(e-=r),o})}):e.range(t,1/0,n>t?+r:-r)},e.matches=function(t,n,r){void 0===r&&(r="");var o=typeof t;if(o!=i["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+o+"'.");return i["default"].isInstanceOf(n,RegExp)&&(r+=n.ignoreCase?"i":"",r+=n.multiline?"m":"",n=n.source),-1===r.indexOf("g")&&(r+="g"),new e(function(){var e;return new s["default"](function(){e=new RegExp(n,r)},function(n){var r=e.exec(t);return null!==r?n.yieldReturn(r):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e=n,r=0;return new s["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))})}:function(){var e=0;return new s["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))})})},e.unfold=function(t,n,r){return void 0===r&&(r=!1),new e(function(){var e,o,u=0;return new s["default"](function(){u=0,e=t,o=!r},function(t){var r=u++;return o?o=!1:e=n(e,r),t.yieldReturn(e)})})},e.defer=function(t){return new e(function(){var e;return new s["default"](function(){e=t().getEnumerator()},function(t){return e.moveNext()&&t.yieldReturn(e.current)},function(){d.dispose(e)})})},e.forEach=function(t,e){t&&d.using(u.from(t),function(t){u.forEach(t,e)})},e.map=function(t,e){return t&&d.using(u.from(t),function(t){var n=[];return u.forEach(t,function(t,r){n[r]=e(t)}),n})},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(N.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(N.Lesser)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=0;d.using(e.getEnumerator(),function(r){for(;e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){var e=[];return t?this.where(t).toArray():(this.forEach(function(t,n){e[n]=t}),e)},e.prototype.asEnumerable=function(){var t=this;return new e(function(){return t.getEnumerator()})},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=N.Identity),void 0===n&&(n=N.Identity);var r=new l["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);void 0!==i?i.push(u):r.addByKeyValue(o,[u])}),new _(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r){n[t(r)]=e(r)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=N.Identity);var r=new l["default"](n);return this.forEach(function(n){return r.addByKeyValue(t(n),e(n))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=N.Identity),this.select(e).toArray().join(t)},e.prototype.doAction=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var u=t(e.current,o++);if(u===!1||0===u)return n.yieldBreak();if(2!==u)return n.yieldReturn(e.current)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.force=function(t){void 0===t&&(t=0),this.throwIfDisposed(),this.doAction(function(e){return t})},e.prototype.skip=function(t){var n=this;if(n.throwIfDisposed(),!t||isNaN(t)||0>t)return n;if(!isFinite(t))return e.empty();a["default"].assert(t,"count");var r=t;return this.doAction(function(t,e){return r>e?2:1})},e.prototype.skipWhile=function(t){this.throwIfDisposed();var e=!0;return this.doAction(function(n,r){return e&&(e=t(n,r)),e?2:1})},e.prototype.take=function(t){if(!t||isNaN(t)||0>t)return e.empty();var n=this;if(n.throwIfDisposed(),!isFinite(t))return n;a["default"].assert(t,"count");var r=t;return n.doAction(function(t,e){return r>e})},e.prototype.takeWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?1:0})},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!e)return this.doAction(function(e,n){return t(e,n)?0:1});var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!t||isNaN(t)||0>=t)return n;if(!isFinite(t))return e.empty();a["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new s["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.takeFromLast=function(t){if(!t||isNaN(t)||0>=t)return e.empty();var n=this;return isFinite(t)?(a["default"].assert(t,"count"),n.reverse().take(t)):n.reverse()},e.prototype.traverseBreadthFirst=function(t,n){var r=this;return new e(function(){var o,u,i,a=0;return new s["default"](function(){a=0,u=[],i=0,o=r.getEnumerator()},function(r){for(;;){if(o.moveNext())return u[i++]=o.current,r.yieldReturn(n(o.current,a));if(!i)return r.yieldBreak();var f=e.fromArray(u).selectMany(t);if(!f.any())return r.yieldBreak();a++,u=[],i=0,o.dispose(),o=f.getEnumerator()}},function(){d.dispose(o),u.length=0})})},e.prototype.traverseDepthFirst=function(t,n){var r=this;return new e(function(){var e,o,u=[];return new s["default"](function(){e=r.getEnumerator(),o=0},function(r){for(;;){if(e.moveNext()){var i=n(e.current,o);return u[o++]=e,e=t(e.current).getEnumerator(),r.yieldReturn(i)}if(0==o)return!1;e.dispose(),e=u[--o],u.length=o}},function(){try{d.dispose(e)}finally{d.disposeThese(u)}})})},e.prototype.flatten=function(){var t=this;return new e(function(){var n,r=null;return new s["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(null!=r){if(r.moveNext())return t.yieldReturn(r.current);r=null}if(n.moveNext()){var o=n.current;if(Array.isArray(o)){r.dispose(),r=e.fromArray(o).selectMany(N.Identity).flatten().getEnumerator();continue}return t.yieldReturn(n.current)}return!1}},function(){d.dispose(n,r)})})},e.prototype.pairwise=function(t){var n=this;return new e(function(){var e;return new s["default"](function(){e=n.getEnumerator(),e.moveNext()},function(n){var r=e.current;return e.moveNext()&&n.yieldReturn(t(r,e.current))},function(){d.dispose(e)})})},e.prototype.scan=function(t,n){var r=void 0!==n,o=this;return new e(function(){var e,u,i;return new s["default"](function(){e=o.getEnumerator(),i=!0},function(o){return i?(i=!1,r?o.yieldReturn(u=n):e.moveNext()&&o.yieldReturn(u=e.current)):e.moveNext()?o.yieldReturn(u=t(u,e.current)):!1},function(){d.dispose(e)})})},e.prototype.select=function(t){var n=this,r=!n.throwIfDisposed();return t.length<2?new A(n,null,t):new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){return g(r),e.moveNext()?n.yieldReturn(t(e.current,o++)):!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.selectMany=function(t,n){var r=this;return n||(n=function(t,e){return e}),new e(function(){var e,o,i=0;return new s["default"](function(){e=r.getEnumerator(),o=void 0,i=0},function(r){if(void 0===o&&!e.moveNext())return!1;do{if(!o){var a=t(e.current,i++);if(!a)continue;o=u.from(a)}if(o.moveNext())return r.yieldReturn(n(e.current,o.current));o.dispose(),o=null}while(e.moveNext());return!1},function(){d.dispose(e,o),e=null,o=null})})},e.prototype.choose=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var u=t(e.current,o++);if(null!==u&&void 0!==u)return n.yieldReturn(u)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.where=function(t){var n=this,r=!n.throwIfDisposed();return t.length<2?new b(n,t):new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();)if(t(e.current,o++))return n.yieldReturn(e.current);return!1},function(){d.dispose(e)})},function(){r=!0})},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 i["default"].isInstanceOf(e,t)})}return this.where(function(t){return typeof t===e})},e.prototype.except=function(t,n){var r=this,o=!r.throwIfDisposed();return new e(function(){var u,i;return new s["default"](function(){g(o),u=r.getEnumerator(),i=new l["default"](n),t&&e.forEach(t,function(t){return i.addByKeyValue(t,!0)})},function(t){for(g(o);u.moveNext();){var e=u.current;if(!i.containsKey(e))return i.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){d.dispose(u),i.clear()})},function(){o=!0})},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o,u=!0;return new s["default"](function(){g(r),e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var i=t(e.current);if(u)u=!1;else if(o===i)continue;return o=i,n.yieldReturn(e.current)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,r=0;return new s["default"](function(){g(n),e=t.toArray(),r=e.length},function(t){return r>0&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,r,o;return new s["default"](function(){g(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=a["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=this;e.throwIfDisposed();var n=0;return t?e.forEach(function(e,r){t(e,r)&&++n}):e.forEach(function(){++n}),n},e.prototype.all=function(t){var e=!0;return this.forEach(function(n){return t(n)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(t){var e=!1;return t?this.forEach(function(n){return e=t(n),!e}):this.forEach(function(){return e=!0,!1}),e},e.prototype.some=function(t){return this.any(t)},e.prototype.isEmpty=function(){return!this.any()},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 e?this.forEach(function(o,u){return n.areEqual(e(o),e(t),!0)?(r=u,!1):void 0}):this.forEach(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 e?this.forEach(function(o,u){n.areEqual(e(o),e(t),!0)&&(r=u)}):this.forEach(function(e,o){n.areEqual(e,t,!0)&&(r=o)}),r},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o;return new s["default"](function(){o=!0,g(r),e=n.getEnumerator()},function(n){return g(r),e.moveNext()?(o=!1,n.yieldReturn(e.current)):o?(o=!1,n.yieldReturn(t)):!1},function(){d.dispose(e)})})},e.prototype.zip=function(t,n){var r=this;return new e(function(){var e,o,i=0;return new s["default"](function(){i=0,e=r.getEnumerator(),o=u.from(t)},function(t){return e.moveNext()&&o.moveNext()&&t.yieldReturn(n(e.current,o.current,i++))},function(){d.dispose(e,o)})})},e.prototype.zipMultiple=function(t,n){var r=this;return t.length?new e(function(){var e,o,i,a=0;return new s["default"](function(){e=new p["default"](t),a=0,o=r.getEnumerator(),i=null},function(t){if(o.moveNext())for(;;){for(;!i;){if(!e.count)return t.yieldBreak();var r=e.dequeue();r&&(i=u.from(r))}if(i.moveNext())return t.yieldReturn(n(o.current,i.current,a++));i.dispose(),i=null}return t.yieldBreak()},function(){d.dispose(o,e)})}):e.empty()},e.prototype.join=function(t,n,r,o,u){void 0===u&&(u=N.Identity);var i=this;return new e(function(){var a,f,c=null,l=0;return new s["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,N.Identity,u)},function(t){for(;;){if(null!=c){var e=c[l++];if(void 0!==e)return t.yieldReturn(o(a.current,e));e=null,l=0}if(!a.moveNext())return t.yieldBreak();var r=n(a.current);c=f.get(r)}},function(){d.dispose(a)})})},e.prototype.groupJoin=function(t,n,r,o,u){void 0===u&&(u=N.Identity);var i=this;return new e(function(){var a,f=null;return new s["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,N.Identity,u)},function(t){return a.moveNext()&&t.yieldReturn(o(a.current,f.get(n(a.current))))},function(){d.dispose(a)})})},e.prototype.concatWith=function(t){var n=this;return new e(function(){var e,r;return new s["default"](function(){e=n.getEnumerator()},function(n){if(null!=e){if(e.moveNext())return n.yieldReturn(e.current);r=u.from(t),e.dispose(),e=null}return r.moveNext()?n.yieldReturn(r.current):!1},function(){d.dispose(e,r)})})},e.prototype.merge=function(t){var n=this;return t.length?1==t.length?n.concatWith(t[0]):new e(function(){var e,r;return new s["default"](function(){e=n.getEnumerator(),r=new p["default"](t)},function(t){for(;;){for(;!e&&r.count;)e=u.from(r.dequeue());if(e&&e.moveNext())return t.yieldReturn(e.current);{if(!e)return t.yieldBreak();e.dispose(),e=null}}},function(){d.dispose(e,r)})}):n},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var r=t,o=this;return o.throwIfDisposed(),new e(function(){var t,e,i=0,a=!1;return new s["default"](function(){i=0,t=o.getEnumerator(),e=u.from(n),a=!1},function(n){return i==r&&(a=!0,e.moveNext())?n.yieldReturn(e.current):t.moveNext()?(i++,n.yieldReturn(t.current)):!a&&e.moveNext()&&n.yieldReturn(e.current)},function(){d.dispose(t,e)})})},e.prototype.alternateMultiple=function(t){var n=this;return new e(function(){var r,o,u,i;return new s["default"](function(){i=new c["default"](e.toArray(t)),u=n.getEnumerator();var a=u.moveNext();o=a?1:0,a&&(r=u.current)},function(t){switch(o){case 0:return t.yieldBreak();case 2:if(i.moveNext())return t.yieldReturn(i.current);i.reset(),o=1}var e=r,n=u.moveNext();return o=n?2:0,n&&(r=u.current),t.yieldReturn(e)},function(){d.dispose(u,i)})})},e.prototype.alternateSingle=function(t){return this.alternateMultiple(e.make(t))},e.prototype.alternate=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");a["default"].assert(t,"size");var n,r=this;return new e(function(){var e;return new s["default"](function(){e=r.getEnumerator()},function(r){var u=o.initialize(t);for(n=0;t>n&&e.moveNext;)u[n++]=e.current;return u.length=n,n&&r.yieldReturn(u)},function(){d.dispose(e)})})},e.prototype.aggregate=function(t,e){return this.scan(t,e).lastOrDefault()},e.prototype.average=function(t){void 0===t&&(t=i["default"].numberOrNaN);var e=0,n=0,r=0;return this.forEach(function(o){var u=t(o);return isNaN(u)?(e=NaN,!1):(isFinite(u)?e+=u:n+=u>0?1:-1,void++r)}),n?n*(1/0):isNaN(e)||!r?NaN:e/r},e.prototype.max=function(){return this.aggregate(N.Greater)},e.prototype.min=function(){return this.aggregate(N.Lesser)},e.prototype.maxBy=function(t){return void 0===t&&(t=N.Identity),this.aggregate(function(e,n){return t(e)>t(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=N.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){n=!0;var o=t(r);return isNaN(o)?(e=NaN,!1):0==o?(e=0,!1):void(e*=o)}),n&&isNaN(e)?NaN:e},e.prototype.elementAt=function(t){if(isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var e=t,n=this;n.throwIfDisposed();var r=void 0,o=!1;if(n.forEach(function(t,n){return n==e?(r=t,o=!0,!1):void 0}),!o)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return r},e.prototype.elementAtOrDefault=function(t,e){if(void 0===e&&(e=null),isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var n=t,r=this;r.throwIfDisposed();var o=void 0,u=!1;return r.forEach(function(t,e){return e==n?(o=t,u=!0,!1):void 0}),u?o:e},e.prototype.first=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){return e=t,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return e},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){return n=t,r=!0,!1}),r?n:t},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.single=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){if(n)throw new Error("single:sequence contains more than one element.");n=!0,e=t}),!n)throw new Error("single:No element satisfies the condition.");return e},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){if(r)throw new Error("single:sequence contains more than one element.");r=!0,n=t}),r?n:t},e.prototype.share=function(){var t=this;t.throwIfDisposed();var n;return new e(function(){return new s["default"](function(){n||(n=t.getEnumerator())},function(t){return n.moveNext()&&t.yieldReturn(n.current)})},function(){d.dispose(n)})},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new s["default"](function(){g(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){g(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.prototype.catchError=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e;return new s["default"](function(){try{g(r),e=n.getEnumerator()}catch(t){}},function(n){try{if(g(r),e.moveNext())return n.yieldReturn(e.current)}catch(o){t(o)}return!1},function(){d.dispose(e)})})},e.prototype.finallyAction=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e;return new s["default"](function(){g(r),e=n.getEnumerator()},function(t){return g(r),e.moveNext()?t.yieldReturn(e.current):!1},function(){try{d.dispose(e)}finally{t()}})})},e}(y["default"]);e.Enumerable=I;var D=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new c["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.source;if(!t)return[];if(Array.isArray(t))return t.slice();for(var e=t.length,n=o.initialize(e),r=0;e>r;++r)n[r]=t[r];return n},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=e._source;if(n)for(var r=0;r=0?r[e]:t.prototype.elementAt.call(this,e)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed();var r=n._source;return t=0?r[t]:e},e.prototype.first=function(){var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t.prototype.first.call(this)},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t},e.prototype.last=function(){var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t.prototype.last.call(this)},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t},e.prototype.skip=function(t){var e=this;return!t||0>t?e.asEnumerable():new I(function(){return new c["default"](function(){return e._source},t)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this,n=e._source?e._source.length:0;return e.take(n-t)},e.prototype.takeFromLast=function(t){if(!t||0>t)return I.empty();var e=this,n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new I(function(){return new c["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return new e(this._source)},e.prototype.sequenceEqual=function(o,u){return void 0===u&&(u=n.areEqual),Array.isArray(o)?r.areEqual(this.source,o,!0,u):i["default"].isInstanceOf(o,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=N.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(I),R=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}(D),_=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 s["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new R(n.key,n.value))},function(){d.dispose(t)})},t}(),b=function(t){function e(e,n){t.call(this,null),this.prevSource=e,this.prevPredicate=n}return __extends(e,t),e.prototype.where=function(n){if(n.length>1)return t.prototype.where.call(this,n);var r=this.prevPredicate,o=function(t){return r(t)&&n(t)};return new e(this.prevSource,o)},e.prototype.select=function(e){return e.length>1?t.prototype.select.call(this,e):new A(this.prevSource,this.prevPredicate,e)},e.prototype.getEnumerator=function(){var t,e=this.prevPredicate,n=this.prevSource;return new s["default"](function(){t=n.getEnumerator()},function(n){for(;t.moveNext();)if(e(t.current))return n.yieldReturn(t.current);return!1},function(){d.dispose(t)})},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this.prevPredicate=null,this.prevSource=null},e}(I),A=function(t){function e(e,n,r){t.call(this,null),this.prevSource=e,this.prevPredicate=n,this.prevSelector=r}return __extends(e,t),e.prototype.where=function(e){return e.length>1?t.prototype.where.call(this,e):new b(this,e)},e.prototype.select=function(n){if(n.length>1)return t.prototype.select.call(this,n);var r=this,o=r.prevSelector,u=function(t){return n(o(t))};return new e(r.prevSource,r.prevPredicate,u)},e.prototype.getEnumerator=function(){var t,e=this,n=e.prevPredicate,r=e.prevSource,o=e.prevSelector;return new s["default"](function(){t=r.getEnumerator()},function(e){for(;t.moveNext();){var r=t.current;if(null==n||n(r))return e.yieldReturn(o(r))}return!1},function(){d.dispose(t)})},e.prototype._onDispose=function(){var e=this;t.prototype._onDispose.call(this),e.prevPredicate=null,e.prevSource=null,e.prevSelector=null},e}(I),k=function(t){function e(e,r,o,u,i){void 0===i&&(i=n.compare),t.call(this,null),this.source=e,this.keySelector=r,this.order=o,this.parent=u,this.comparer=i}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 s["default"](function(){r=0,t=I.toArray(n.source),e=m(n).generateSortedIndexes(t)},function(n){return re?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(f["default"]),x=new N;Object.freeze(x);var D=function(t){function e(){t.call(this,"Unsupported enumerable.")}return __extends(e,t),e}(h["default"]),I=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e}return __extends(e,t),e.fromArray=function(t){return new R(t)},e.from=function(t){if(i["default"].isObject(t)){if(t instanceof e)return t;if(Array.isArray(t))return new R(t);if(u.isEnumerable(t))return new e(function(){return t.getEnumerator()});if(i["default"].isArrayLike(t))return new R(t)}throw new D},e.toArray=function(t){if(i["default"].isObject(t)){if(Array.isArray(t))return t.slice();if(i["default"].isArrayLike(t)&&(t=new R(t)),t instanceof e)return t.toArray();if(u.isEnumerable(t)){var n=[];return u.forEach(t.getEnumerator(),function(t,e){n[e]=t}),n}}throw new D},e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.choice=function(t){return new e(function(){return new s["default"](null,function(e){return e.yieldReturn(t[a["default"].random(t.length)])})})},e.cycle=function(t){return new e(function(){var e=0;return new s["default"](function(){e=0},function(n){return e>=t.length&&(e=0),n.yieldReturn(t[e++])})})},e.empty=function(){return new e(function(){return new s["default"](null,x.False)})},e.repeat=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e=n,r=0;return new s["default"](function(){r=0},function(n){return r++=n)return e.empty();if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e,o=n,u=0;return new s["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i})}:function(){var e;return new s["default"](function(){e=t},function(t){var n=e;return e+=r,t.yieldReturn(n)})})},e.rangeDown=function(t,n,r){return void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.range(t,1/0,n)},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.rangeDown(t,1/0,n)},e.rangeTo=function(t,n,r){if(void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),!isFinite(t))throw new Error("Must have a valid 'start' value.");if(isNaN(n))throw new Error("Must have a valid 'to' value.");if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return r=Math.abs(r),isFinite(n)?new e(function(){var e;return n>t?new s["default"](function(){e=t},function(t){var o=n>=e&&t.yieldReturn(e);return o&&(e+=r),o}):new s["default"](function(){e=t},function(t){var o=e>=n&&t.yieldReturn(e);return o&&(e-=r),o})}):e.range(t,1/0,n>t?+r:-r)},e.matches=function(t,n,r){void 0===r&&(r="");var o=typeof t;if(o!=i["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+o+"'.");return n instanceof RegExp&&(r+=n.ignoreCase?"i":"",r+=n.multiline?"m":"",n=n.source),-1===r.indexOf("g")&&(r+="g"),new e(function(){var e;return new s["default"](function(){e=new RegExp(n,r)},function(n){var r=e.exec(t);return null!==r?n.yieldReturn(r):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&a["default"].assert(n,"count")?function(){var e=n,r=0;return new s["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))})}:function(){var e=0;return new s["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))})})},e.unfold=function(t,n,r){return void 0===r&&(r=!1),new e(function(){var e,o,u=0;return new s["default"](function(){u=0,e=t,o=!r},function(t){var r=u++;return o?o=!1:e=n(e,r),t.yieldReturn(e)})})},e.defer=function(t){return new e(function(){var e;return new s["default"](function(){e=t().getEnumerator()},function(t){return e.moveNext()&&t.yieldReturn(e.current)},function(){d.dispose(e)})})},e.forEach=function(t,e){t&&d.using(u.from(t),function(t){u.forEach(t,e)})},e.map=function(t,e){return t&&d.using(u.from(t),function(t){var n=[];return u.forEach(t,function(t,r){n[r]=e(t)}),n})},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(x.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(x.Lesser)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=0;d.using(e.getEnumerator(),function(r){for(;e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){var e=[];return t?this.where(t).toArray():(this.forEach(function(t,n){e[n]=t}),e)},e.prototype.asEnumerable=function(){var t=this;return new e(function(){return t.getEnumerator()})},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=x.Identity),void 0===n&&(n=x.Identity);var r=new l["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);i!==E?i.push(u):r.addByKeyValue(o,[u])}),new b(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r){n[t(r)]=e(r)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=x.Identity);var r=new l["default"](n);return this.forEach(function(n){return r.addByKeyValue(t(n),e(n))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=x.Identity),this.select(e).toArray().join(t)},e.prototype.doAction=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var u=t(e.current,o++);if(u===!1||0===u)return n.yieldBreak();if(2!==u)return n.yieldReturn(e.current)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.force=function(t){void 0===t&&(t=0),this.throwIfDisposed(),this.doAction(function(e){return t})},e.prototype.skip=function(t){var n=this;if(n.throwIfDisposed(),!t||isNaN(t)||0>t)return n;if(!isFinite(t))return e.empty();a["default"].assert(t,"count");var r=t;return this.doAction(function(t,e){return r>e?2:1})},e.prototype.skipWhile=function(t){this.throwIfDisposed();var e=!0;return this.doAction(function(n,r){return e&&(e=t(n,r)),e?2:1})},e.prototype.take=function(t){if(!t||isNaN(t)||0>t)return e.empty();var n=this;if(n.throwIfDisposed(),!isFinite(t))return n;a["default"].assert(t,"count");var r=t;return n.doAction(function(t,e){return r>e})},e.prototype.takeWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?1:0})},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!e)return this.doAction(function(e,n){return t(e,n)?0:1});var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!t||isNaN(t)||0>=t)return n;if(!isFinite(t))return e.empty();a["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new s["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.takeFromLast=function(t){if(!t||isNaN(t)||0>=t)return e.empty();var n=this;return isFinite(t)?(a["default"].assert(t,"count"),n.reverse().take(t)):n.reverse()},e.prototype.traverseBreadthFirst=function(t,n){var r=this;return new e(function(){var o,u,i,a=0;return new s["default"](function(){a=0,u=[],i=0,o=r.getEnumerator()},function(r){for(;;){if(o.moveNext())return u[i++]=o.current,r.yieldReturn(n(o.current,a));if(!i)return r.yieldBreak();var f=e.fromArray(u).selectMany(t);if(!f.any())return r.yieldBreak();a++,u=[],i=0,o.dispose(),o=f.getEnumerator()}},function(){d.dispose(o),u.length=0})})},e.prototype.traverseDepthFirst=function(t,n){var r=this;return new e(function(){var e,o,u=[];return new s["default"](function(){e=r.getEnumerator(),o=0},function(r){for(;;){if(e.moveNext()){var i=n(e.current,o);return u[o++]=e,e=t(e.current).getEnumerator(),r.yieldReturn(i)}if(0==o)return!1;e.dispose(),e=u[--o],u.length=o}},function(){try{d.dispose(e)}finally{d.disposeThese(u)}})})},e.prototype.flatten=function(){var t=this;return new e(function(){var n,r=null;return new s["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(null!=r){if(r.moveNext())return t.yieldReturn(r.current);r=null}if(n.moveNext()){var o=n.current;if(Array.isArray(o)){r.dispose(),r=e.fromArray(o).selectMany(x.Identity).flatten().getEnumerator();continue}return t.yieldReturn(n.current)}return!1}},function(){d.dispose(n,r)})})},e.prototype.pairwise=function(t){var n=this;return new e(function(){var e;return new s["default"](function(){e=n.getEnumerator(),e.moveNext()},function(n){var r=e.current;return e.moveNext()&&n.yieldReturn(t(r,e.current))},function(){d.dispose(e)})})},e.prototype.scan=function(t,n){var r=n!==E,o=this;return new e(function(){var e,u,i;return new s["default"](function(){e=o.getEnumerator(),i=!0},function(o){return i?(i=!1,r?o.yieldReturn(u=n):e.moveNext()&&o.yieldReturn(u=e.current)):e.moveNext()?o.yieldReturn(u=t(u,e.current)):!1},function(){d.dispose(e)})})},e.prototype.select=function(t){var n=this,r=!n.throwIfDisposed();return t.length<2?new k(n,null,t):new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){return g(r),e.moveNext()?n.yieldReturn(t(e.current,o++)):!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.selectMany=function(t,n){var r=this;return n||(n=function(t,e){return e}),new e(function(){var e,o,i=0;return new s["default"](function(){e=r.getEnumerator(),o=void 0,i=0},function(r){if(o===E&&!e.moveNext())return!1;do{if(!o){var a=t(e.current,i++);if(!a)continue;o=u.from(a)}if(o.moveNext())return r.yieldReturn(n(e.current,o.current));o.dispose(),o=null}while(e.moveNext());return!1},function(){d.dispose(e,o),e=null,o=null})})},e.prototype.choose=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var u=t(e.current,o++);if(null!==u&&u!==E)return n.yieldReturn(u)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.where=function(t){var n=this,r=!n.throwIfDisposed();return t.length<2?new A(n,t):new e(function(){var e,o=0;return new s["default"](function(){g(r),o=0,e=n.getEnumerator()},function(n){for(g(r);e.moveNext();)if(t(e.current,o++))return n.yieldReturn(e.current);return!1},function(){d.dispose(e)})},function(){r=!0})},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.where(function(t){return typeof t===e})},e.prototype.except=function(t,n){var r=this,o=!r.throwIfDisposed();return new e(function(){var u,i;return new s["default"](function(){g(o),u=r.getEnumerator(),i=new l["default"](n),t&&e.forEach(t,function(t){return i.addByKeyValue(t,!0)})},function(t){for(g(o);u.moveNext();){var e=u.current;if(!i.containsKey(e))return i.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){d.dispose(u),i.clear()})},function(){o=!0})},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o,u=!0;return new s["default"](function(){g(r),e=n.getEnumerator()},function(n){for(g(r);e.moveNext();){var i=t(e.current);if(u)u=!1;else if(o===i)continue;return o=i,n.yieldReturn(e.current)}return!1},function(){d.dispose(e)})},function(){r=!0})},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,r=0;return new s["default"](function(){g(n),e=t.toArray(),r=e.length},function(t){return r>0&&t.yieldReturn(e[--r])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,r,o;return new s["default"](function(){g(n),e=t.toArray(),r=o=e.length},function(t){if(!o)return t.yieldBreak();var n=a["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=this;e.throwIfDisposed();var n=0;return t?e.forEach(function(e,r){t(e,r)&&++n}):e.forEach(function(){++n}),n},e.prototype.all=function(t){var e=!0;return this.forEach(function(n){return t(n)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(t){var e=!1;return t?this.forEach(function(n){return e=t(n),!e}):this.forEach(function(){return e=!0,!1}),e},e.prototype.some=function(t){return this.any(t)},e.prototype.isEmpty=function(){return!this.any()},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 e?this.forEach(function(o,u){return n.areEqual(e(o),e(t),!0)?(r=u,!1):void 0}):this.forEach(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 e?this.forEach(function(o,u){n.areEqual(e(o),e(t),!0)&&(r=u)}):this.forEach(function(e,o){n.areEqual(e,t,!0)&&(r=o)}),r},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var n=this,r=!n.throwIfDisposed();return new e(function(){var e,o;return new s["default"](function(){o=!0,g(r),e=n.getEnumerator()},function(n){return g(r),e.moveNext()?(o=!1,n.yieldReturn(e.current)):o?(o=!1,n.yieldReturn(t)):!1},function(){d.dispose(e)})})},e.prototype.zip=function(t,n){var r=this;return new e(function(){var e,o,i=0;return new s["default"](function(){i=0,e=r.getEnumerator(),o=u.from(t)},function(t){return e.moveNext()&&o.moveNext()&&t.yieldReturn(n(e.current,o.current,i++))},function(){d.dispose(e,o)})})},e.prototype.zipMultiple=function(t,n){var r=this;return t.length?new e(function(){var e,o,i,a=0;return new s["default"](function(){e=new p["default"](t),a=0,o=r.getEnumerator(),i=null},function(t){if(o.moveNext())for(;;){for(;!i;){if(!e.count)return t.yieldBreak();var r=e.dequeue();r&&(i=u.from(r))}if(i.moveNext())return t.yieldReturn(n(o.current,i.current,a++));i.dispose(),i=null}return t.yieldBreak()},function(){d.dispose(o,e)})}):e.empty()},e.prototype.join=function(t,n,r,o,u){void 0===u&&(u=x.Identity);var i=this;return new e(function(){var a,f,c=null,l=0;return new s["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,x.Identity,u)},function(t){for(;;){if(null!=c){var e=c[l++];if(e!==E)return t.yieldReturn(o(a.current,e));e=null,l=0}if(!a.moveNext())return t.yieldBreak();var r=n(a.current);c=f.get(r)}},function(){d.dispose(a)})})},e.prototype.groupJoin=function(t,n,r,o,u){void 0===u&&(u=x.Identity);var i=this;return new e(function(){var a,f=null;return new s["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,x.Identity,u)},function(t){return a.moveNext()&&t.yieldReturn(o(a.current,f.get(n(a.current))))},function(){d.dispose(a)})})},e.prototype.concatWith=function(t){var n=this;return new e(function(){var e,r;return new s["default"](function(){e=n.getEnumerator()},function(n){if(null!=e){if(e.moveNext())return n.yieldReturn(e.current);r=u.from(t),e.dispose(),e=null}return r.moveNext()?n.yieldReturn(r.current):!1},function(){d.dispose(e,r)})})},e.prototype.merge=function(t){var n=this;return t.length?1==t.length?n.concatWith(t[0]):new e(function(){var e,r;return new s["default"](function(){e=n.getEnumerator(),r=new p["default"](t)},function(t){for(;;){for(;!e&&r.count;)e=u.from(r.dequeue());if(e&&e.moveNext())return t.yieldReturn(e.current);{if(!e)return t.yieldBreak();e.dispose(),e=null}}},function(){d.dispose(e,r)})}):n},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var r=t,o=this;return o.throwIfDisposed(),new e(function(){var t,e,i=0,a=!1;return new s["default"](function(){i=0,t=o.getEnumerator(),e=u.from(n),a=!1},function(n){return i==r&&(a=!0,e.moveNext())?n.yieldReturn(e.current):t.moveNext()?(i++,n.yieldReturn(t.current)):!a&&e.moveNext()&&n.yieldReturn(e.current)},function(){d.dispose(t,e)})})},e.prototype.alternateMultiple=function(t){var n=this;return new e(function(){var r,o,u,i;return new s["default"](function(){i=new c["default"](e.toArray(t)),u=n.getEnumerator();var a=u.moveNext();o=a?1:0,a&&(r=u.current)},function(t){switch(o){case 0:return t.yieldBreak();case 2:if(i.moveNext())return t.yieldReturn(i.current);i.reset(),o=1}var e=r,n=u.moveNext();return o=n?2:0,n&&(r=u.current),t.yieldReturn(e)},function(){d.dispose(u,i)})})},e.prototype.alternateSingle=function(t){return this.alternateMultiple(e.make(t))},e.prototype.alternate=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");a["default"].assert(t,"size");var n,r=this;return new e(function(){var e;return new s["default"](function(){e=r.getEnumerator()},function(r){var u=o.initialize(t);for(n=0;t>n&&e.moveNext;)u[n++]=e.current;return u.length=n,n&&r.yieldReturn(u)},function(){d.dispose(e)})})},e.prototype.aggregate=function(t,e){return this.scan(t,e).lastOrDefault()},e.prototype.average=function(t){void 0===t&&(t=i["default"].numberOrNaN);var e=0,n=0,r=0;return this.forEach(function(o){var u=t(o);return isNaN(u)?(e=NaN,!1):(isFinite(u)?e+=u:n+=u>0?1:-1,void++r)}),n?n*(1/0):isNaN(e)||!r?NaN:e/r},e.prototype.max=function(){return this.aggregate(x.Greater)},e.prototype.min=function(){return this.aggregate(x.Lesser)},e.prototype.maxBy=function(t){return void 0===t&&(t=x.Identity),this.aggregate(function(e,n){return t(e)>t(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=x.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){n=!0;var o=t(r);return isNaN(o)?(e=NaN,!1):0==o?(e=0,!1):void(e*=o)}),n&&isNaN(e)?NaN:e},e.prototype.elementAt=function(t){if(isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var e=t,n=this;n.throwIfDisposed();var r=void 0,o=!1;if(n.forEach(function(t,n){return n==e?(r=t,o=!0,!1):void 0}),!o)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return r},e.prototype.elementAtOrDefault=function(t,e){if(void 0===e&&(e=null),isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");a["default"].assert(t,"index");var n=t,r=this;r.throwIfDisposed();var o=void 0,u=!1;return r.forEach(function(t,e){return e==n?(o=t,u=!0,!1):void 0}),u?o:e},e.prototype.first=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){return e=t,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return e},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){return n=t,r=!0,!1}),r?n:t},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.single=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){if(n)throw new Error("single:sequence contains more than one element.");n=!0,e=t}),!n)throw new Error("single:No element satisfies the condition.");return e},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){if(r)throw new Error("single:sequence contains more than one element.");r=!0,n=t}),r?n:t},e.prototype.share=function(){var t=this;t.throwIfDisposed();var n;return new e(function(){return new s["default"](function(){n||(n=t.getEnumerator())},function(t){return n.moveNext()&&t.yieldReturn(n.current)})},function(){d.dispose(n)})},e.prototype.memoize=function(){var t,n,r=this,o=!r.throwIfDisposed();return new e(function(){var e=0;return new s["default"](function(){g(o),n||(n=r.getEnumerator()),t||(t=[]),e=0},function(r){g(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.prototype.catchError=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e;return new s["default"](function(){try{g(r),e=n.getEnumerator()}catch(t){}},function(n){try{if(g(r),e.moveNext())return n.yieldReturn(e.current)}catch(o){t(o)}return!1},function(){d.dispose(e)})})},e.prototype.finallyAction=function(t){var n=this,r=!n.throwIfDisposed();return new e(function(){var e;return new s["default"](function(){g(r),e=n.getEnumerator()},function(t){return g(r),e.moveNext()?t.yieldReturn(e.current):!1},function(){try{d.dispose(e)}finally{t()}})})},e}(y["default"]);e.Enumerable=I;var R=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new c["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.source;if(!t)return[];if(Array.isArray(t))return t.slice();for(var e=t.length,n=o.initialize(e),r=0;e>r;++r)n[r]=t[r];return n},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=e._source;if(n)for(var r=0;r=0?r[e]:t.prototype.elementAt.call(this,e)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed();var r=n._source;return t=0?r[t]:e},e.prototype.first=function(){var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t.prototype.first.call(this)},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t},e.prototype.last=function(){var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t.prototype.last.call(this)},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t},e.prototype.skip=function(t){var e=this;return!t||0>t?e.asEnumerable():new I(function(){return new c["default"](function(){return e._source},t)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this,n=e._source?e._source.length:0;return e.take(n-t)},e.prototype.takeFromLast=function(t){if(!t||0>t)return I.empty();var e=this,n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new I(function(){return new c["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return new e(this._source)},e.prototype.sequenceEqual=function(o,u){return void 0===u&&(u=n.areEqual),Array.isArray(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=x.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(I),_=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}(R),b=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 s["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new _(n.key,n.value))},function(){d.dispose(t)})},t}(),A=function(t){function e(e,n){t.call(this,null),this.prevSource=e,this.prevPredicate=n}return __extends(e,t),e.prototype.where=function(n){if(n.length>1)return t.prototype.where.call(this,n);var r=this.prevPredicate,o=function(t){return r(t)&&n(t)};return new e(this.prevSource,o)},e.prototype.select=function(e){return e.length>1?t.prototype.select.call(this,e):new k(this.prevSource,this.prevPredicate,e)},e.prototype.getEnumerator=function(){var t,e=this.prevPredicate,n=this.prevSource;return new s["default"](function(){t=n.getEnumerator()},function(n){for(;t.moveNext();)if(e(t.current))return n.yieldReturn(t.current);return!1},function(){d.dispose(t)})},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this.prevPredicate=null,this.prevSource=null},e}(I),k=function(t){function e(e,n,r){t.call(this,null),this.prevSource=e,this.prevPredicate=n,this.prevSelector=r}return __extends(e,t),e.prototype.where=function(e){return e.length>1?t.prototype.where.call(this,e):new A(this,e)},e.prototype.select=function(n){if(n.length>1)return t.prototype.select.call(this,n);var r=this,o=r.prevSelector,u=function(t){return n(o(t))};return new e(r.prevSource,r.prevPredicate,u)},e.prototype.getEnumerator=function(){var t,e=this,n=e.prevPredicate,r=e.prevSource,o=e.prevSelector;return new s["default"](function(){t=r.getEnumerator()},function(e){for(;t.moveNext();){var r=t.current;if(null==n||n(r))return e.yieldReturn(o(r))}return!1},function(){d.dispose(t)})},e.prototype._onDispose=function(){var e=this;t.prototype._onDispose.call(this),e.prevPredicate=null,e.prevSource=null,e.prevSelector=null},e}(I),S=function(t){function e(e,r,o,u,i){void 0===i&&(i=n.compare),t.call(this,null),this.source=e,this.keySelector=r,this.order=o,this.parent=u,this.comparer=i}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 s["default"](function(){r=0,t=I.toArray(n.source),e=m(n).generateSortedIndexes(t)},function(n){return r\r\n ///\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../System/Compare');\r\n var Arrays = require('../System/Collections/Array/Compare');\r\n var ArrayUtility = require('../System/Collections/Array/Utility');\r\n var Enumerator_1 = require('../System/Collections/Enumeration/Enumerator');\r\n var Types_1 = require('../System/Types');\r\n var Integer_1 = require('../System/Integer');\r\n var Functions_1 = require('../System/Functions');\r\n var ArrayEnumerator_1 = require('../System/Collections/Enumeration/ArrayEnumerator');\r\n var EnumeratorBase_1 = require('../System/Collections/Enumeration/EnumeratorBase');\r\n var Dictionary_1 = require('../System/Collections/Dictionaries/Dictionary');\r\n var Queue_1 = require('../System/Collections/Queue');\r\n var Utility_1 = require('../System/Disposable/Utility');\r\n var DisposableBase_1 = require('../System/Disposable/DisposableBase');\r\n var Exception_1 = require(\"../System/Exception\");\r\n var ObjectDisposedException_1 = require('../System/Disposable/ObjectDisposedException');\r\n var KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\r\n 'use strict';\r\n var LinqFunctions = (function (_super) {\r\n __extends(LinqFunctions, _super);\r\n function LinqFunctions() {\r\n _super.apply(this, arguments);\r\n }\r\n LinqFunctions.prototype.Greater = function (a, b) {\r\n return a > b ? a : b;\r\n };\r\n LinqFunctions.prototype.Lesser = function (a, b) {\r\n return a < b ? a : b;\r\n };\r\n return LinqFunctions;\r\n })(Functions_1.default);\r\n var Functions = new LinqFunctions();\r\n Object.freeze(Functions);\r\n var UnsupportedEnumerableException = (function (_super) {\r\n __extends(UnsupportedEnumerableException, _super);\r\n function UnsupportedEnumerableException() {\r\n _super.call(this, \"Unsupported enumerable.\");\r\n }\r\n return UnsupportedEnumerableException;\r\n })(Exception_1.default);\r\n var Enumerable = (function (_super) {\r\n __extends(Enumerable, _super);\r\n function Enumerable(_enumeratorFactory, finalizer) {\r\n _super.call(this, finalizer);\r\n this._enumeratorFactory = _enumeratorFactory;\r\n }\r\n Enumerable.fromArray = function (array) {\r\n return new ArrayEnumerable(array);\r\n };\r\n Enumerable.from = function (source) {\r\n if (Types_1.default.isObject(source)) {\r\n if (Types_1.default.isInstanceOf(source, Enumerable))\r\n return source;\r\n if (Array.isArray(source))\r\n return new ArrayEnumerable(source);\r\n if (Enumerator_1.isEnumerable(source))\r\n return new Enumerable(function () { return source.getEnumerator(); });\r\n if (Types_1.default.isArrayLike(source))\r\n return new ArrayEnumerable(source);\r\n }\r\n throw new UnsupportedEnumerableException();\r\n };\r\n Enumerable.toArray = function (source) {\r\n if (Types_1.default.isObject(source)) {\r\n if (Array.isArray(source))\r\n return source.slice();\r\n if (Types_1.default.isArrayLike(source))\r\n source = new ArrayEnumerable(source);\r\n if (Types_1.default.isInstanceOf(source, Enumerable))\r\n return source.toArray();\r\n if (Enumerator_1.isEnumerable(source)) {\r\n var result = [];\r\n Enumerator_1.forEach(source.getEnumerator(), function (e, i) {\r\n result[i] = e;\r\n });\r\n return result;\r\n }\r\n }\r\n throw new UnsupportedEnumerableException();\r\n };\r\n Enumerable.prototype.getEnumerator = function () {\r\n this.throwIfDisposed();\r\n return this._enumeratorFactory();\r\n };\r\n Enumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this._enumeratorFactory = null;\r\n };\r\n Enumerable.choice = function (values) {\r\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\r\n return yielder.yieldReturn(values[Integer_1.default.random(values.length)]);\r\n }); });\r\n };\r\n Enumerable.cycle = function (values) {\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) {\r\n if (index >= values.length)\r\n index = 0;\r\n return yielder.yieldReturn(values[index++]);\r\n });\r\n });\r\n };\r\n Enumerable.empty = function () {\r\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, Functions.False); });\r\n };\r\n Enumerable.repeat = function (element, count) {\r\n if (count === void 0) { count = Infinity; }\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); });\r\n })\r\n : new Enumerable(function () {\r\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); });\r\n });\r\n };\r\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\r\n return new Enumerable(function () {\r\n var element;\r\n return new EnumeratorBase_1.default(function () {\r\n element = initializer();\r\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\r\n finalizer(element);\r\n });\r\n });\r\n };\r\n Enumerable.make = function (element) {\r\n return Enumerable.repeat(element, 1);\r\n };\r\n Enumerable.range = function (start, count, step) {\r\n if (start === void 0) { start = 0; }\r\n if (count === void 0) { count = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n if (!isFinite(start))\r\n throw new Error(\"Must have a valid 'start' value.\");\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n if (!isFinite(step))\r\n throw new Error(\"Must have a valid 'step' value.\");\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var value;\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n value = start;\r\n }, function (yielder) {\r\n var result = index++ < c\r\n && yielder.yieldReturn(value);\r\n if (result && index < count)\r\n value += step;\r\n return result;\r\n });\r\n })\r\n : new Enumerable(function () {\r\n var value;\r\n return new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var current = value;\r\n value += step;\r\n return yielder.yieldReturn(current);\r\n });\r\n });\r\n };\r\n Enumerable.rangeDown = function (start, count, step) {\r\n if (start === void 0) { start = 0; }\r\n if (count === void 0) { count = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n step = Math.abs(step) * -1;\r\n return Enumerable.range(start, count, step);\r\n };\r\n Enumerable.toInfinity = function (start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n return Enumerable.range(start, Infinity, step);\r\n };\r\n Enumerable.toNegativeInfinity = function (start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n return Enumerable.rangeDown(start, Infinity, step);\r\n };\r\n Enumerable.rangeTo = function (start, to, step) {\r\n if (start === void 0) { start = 0; }\r\n if (to === void 0) { to = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n if (!isFinite(start))\r\n throw new Error(\"Must have a valid 'start' value.\");\r\n if (isNaN(to))\r\n throw new Error(\"Must have a valid 'to' value.\");\r\n if (!isFinite(step))\r\n throw new Error(\"Must have a valid 'step' value.\");\r\n step = Math.abs(step);\r\n if (!isFinite(to))\r\n return Enumerable.range(start, Infinity, (start < to) ? (+step) : (-step));\r\n return new Enumerable(function () {\r\n var value;\r\n return start < to\r\n ? new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var result = value <= to && yielder.yieldReturn(value);\r\n if (result)\r\n value += step;\r\n return result;\r\n })\r\n : new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var result = value >= to && yielder.yieldReturn(value);\r\n if (result)\r\n value -= step;\r\n return result;\r\n });\r\n });\r\n };\r\n Enumerable.matches = function (input, pattern, flags) {\r\n if (flags === void 0) { flags = \"\"; }\r\n var type = typeof input;\r\n if (type != Types_1.default.STRING)\r\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n if (Types_1.default.isInstanceOf(pattern, RegExp)) {\r\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n flags += (pattern.multiline) ? \"m\" : \"\";\r\n pattern = pattern.source;\r\n }\r\n if (flags.indexOf(\"g\") === -1)\r\n flags += \"g\";\r\n return new Enumerable(function () {\r\n var regex;\r\n return new EnumeratorBase_1.default(function () {\r\n regex = new RegExp(pattern, flags);\r\n }, function (yielder) {\r\n var match = regex.exec(input);\r\n return (match !== null) ? yielder.yieldReturn(match) : false;\r\n });\r\n });\r\n };\r\n Enumerable.generate = function (factory, count) {\r\n if (count === void 0) { count = Infinity; }\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) {\r\n var current = index++;\r\n return current < c && yielder.yieldReturn(factory(current));\r\n });\r\n })\r\n : new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); });\r\n });\r\n };\r\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\r\n if (skipSeed === void 0) { skipSeed = false; }\r\n return new Enumerable(function () {\r\n var index = 0;\r\n var value;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n value = seed;\r\n isFirst = !skipSeed;\r\n }, function (yielder) {\r\n var i = index++;\r\n if (isFirst)\r\n isFirst = false;\r\n else\r\n value = valueFactory(value, i);\r\n return yielder.yieldReturn(value);\r\n });\r\n });\r\n };\r\n Enumerable.defer = function (enumerableFactory) {\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = enumerableFactory().getEnumerator();\r\n }, function (yielder) { return enumerator.moveNext() && yielder.yieldReturn(enumerator.current); }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.forEach = function (enumerable, action) {\r\n if (enumerable) {\r\n Utility_1.using(Enumerator_1.from(enumerable), function (e) {\r\n Enumerator_1.forEach(e, action);\r\n });\r\n }\r\n };\r\n Enumerable.map = function (enumerable, selector) {\r\n return enumerable && Utility_1.using(Enumerator_1.from(enumerable), function (e) {\r\n var result = [];\r\n Enumerator_1.forEach(e, function (e, i) {\r\n result[i] = selector(e);\r\n });\r\n return result;\r\n });\r\n };\r\n Enumerable.max = function (values) {\r\n return values\r\n .takeUntil(function (v) { return v == +Infinity; }, true)\r\n .aggregate(Functions.Greater);\r\n };\r\n Enumerable.min = function (values) {\r\n return values\r\n .takeUntil(function (v) { return v == -Infinity; }, true)\r\n .aggregate(Functions.Lesser);\r\n };\r\n Enumerable.prototype.forEach = function (action) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var index = 0;\r\n Utility_1.using(_.getEnumerator(), function (e) {\r\n while (_.throwIfDisposed() && e.moveNext()) {\r\n if (action(e.current, index++) === false)\r\n break;\r\n }\r\n });\r\n };\r\n Enumerable.prototype.toArray = function (predicate) {\r\n var result = [];\r\n if (predicate)\r\n return this.where(predicate).toArray();\r\n this.forEach(function (x, i) {\r\n result[i] = x;\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.asEnumerable = function () {\r\n var _ = this;\r\n return new Enumerable(function () { return _.getEnumerator(); });\r\n };\r\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\r\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var dict = new Dictionary_1.default(compareSelector);\r\n this.forEach(function (x) {\r\n var key = keySelector(x);\r\n var element = elementSelector(x);\r\n var array = dict.getValue(key);\r\n if (array !== undefined)\r\n array.push(element);\r\n else\r\n dict.addByKeyValue(key, [element]);\r\n });\r\n return new Lookup(dict);\r\n };\r\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\r\n var obj = {};\r\n this.forEach(function (x) {\r\n obj[keySelector(x)] = elementSelector(x);\r\n });\r\n return obj;\r\n };\r\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var dict = new Dictionary_1.default(compareSelector);\r\n this.forEach(function (x) { return dict.addByKeyValue(keySelector(x), elementSelector(x)); });\r\n return dict;\r\n };\r\n Enumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator === void 0) { separator = \"\"; }\r\n if (selector === void 0) { selector = Functions.Identity; }\r\n return this.select(selector).toArray().join(separator);\r\n };\r\n Enumerable.prototype.doAction = function (action) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var actionResult = action(enumerator.current, index++);\r\n if (actionResult === false || actionResult === 0)\r\n return yielder.yieldBreak();\r\n if (actionResult !== 2)\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.force = function (defaultAction) {\r\n if (defaultAction === void 0) { defaultAction = 0; }\r\n this.throwIfDisposed();\r\n this.doAction(function (element) { return defaultAction; });\r\n };\r\n Enumerable.prototype.skip = function (count) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n if (!count || isNaN(count) || count < 0)\r\n return _;\r\n if (!isFinite(count))\r\n return Enumerable.empty();\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return this.doAction(function (element, index) {\r\n return index < c\r\n ? 2\r\n : 1;\r\n });\r\n };\r\n Enumerable.prototype.skipWhile = function (predicate) {\r\n this.throwIfDisposed();\r\n var skipping = true;\r\n return this.doAction(function (element, index) {\r\n if (skipping)\r\n skipping = predicate(element, index);\r\n return skipping\r\n ? 2\r\n : 1;\r\n });\r\n };\r\n Enumerable.prototype.take = function (count) {\r\n if (!count || isNaN(count) || count < 0)\r\n return Enumerable.empty();\r\n var _ = this;\r\n _.throwIfDisposed();\r\n if (!isFinite(count))\r\n return _;\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return _.doAction(function (element, index) { return index < c; });\r\n };\r\n Enumerable.prototype.takeWhile = function (predicate) {\r\n this.throwIfDisposed();\r\n return this.doAction(function (element, index) {\r\n return predicate(element, index)\r\n ? 1\r\n : 0;\r\n });\r\n };\r\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\r\n this.throwIfDisposed();\r\n if (!includeUntilValue)\r\n return this.doAction(function (element, index) {\r\n return predicate(element, index)\r\n ? 0\r\n : 1;\r\n });\r\n var found = false;\r\n return this.doAction(function (element, index) {\r\n if (found)\r\n return 0;\r\n found = predicate(element, index);\r\n return 1;\r\n });\r\n };\r\n Enumerable.prototype.takeExceptLast = function (count) {\r\n if (count === void 0) { count = 1; }\r\n var _ = this;\r\n if (!count || isNaN(count) || count <= 0)\r\n return _;\r\n if (!isFinite(count))\r\n return Enumerable.empty();\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var q;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n q = new Queue_1.default();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n q.enqueue(enumerator.current);\r\n if (q.count > c)\r\n return yielder.yieldReturn(q.dequeue());\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator, q);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.takeFromLast = function (count) {\r\n if (!count || isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n var _ = this;\r\n if (!isFinite(count))\r\n return _.reverse();\r\n Integer_1.default.assert(count, \"count\");\r\n return _.reverse().take(count);\r\n };\r\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var nestLevel = 0;\r\n var buffer, len;\r\n return new EnumeratorBase_1.default(function () {\r\n nestLevel = 0;\r\n buffer = [];\r\n len = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n buffer[len++] = enumerator.current;\r\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n }\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var next = Enumerable\r\n .fromArray(buffer)\r\n .selectMany(func);\r\n if (!next.any()) {\r\n return yielder.yieldBreak();\r\n }\r\n else {\r\n nestLevel++;\r\n buffer = [];\r\n len = 0;\r\n enumerator.dispose();\r\n enumerator = next.getEnumerator();\r\n }\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n buffer.length = 0;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumeratorStack = [];\r\n var enumerator;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n len = 0;\r\n }, function (yielder) {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n var value = resultSelector(enumerator.current, len);\r\n enumeratorStack[len++] = enumerator;\r\n enumerator = func(enumerator.current).getEnumerator();\r\n return yielder.yieldReturn(value);\r\n }\r\n if (len == 0)\r\n return false;\r\n enumerator.dispose();\r\n enumerator = enumeratorStack[--len];\r\n enumeratorStack.length = len;\r\n }\r\n }, function () {\r\n try {\r\n Utility_1.dispose(enumerator);\r\n }\r\n finally {\r\n Utility_1.disposeThese(enumeratorStack);\r\n }\r\n });\r\n });\r\n };\r\n Enumerable.prototype.flatten = function () {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = null;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n while (true) {\r\n if (middleEnumerator != null) {\r\n if (middleEnumerator.moveNext()) {\r\n return yielder.yieldReturn(middleEnumerator.current);\r\n }\r\n else {\r\n middleEnumerator = null;\r\n }\r\n }\r\n if (enumerator.moveNext()) {\r\n var c = enumerator.current;\r\n if (Array.isArray(c)) {\r\n middleEnumerator.dispose();\r\n middleEnumerator = Enumerable.fromArray(c)\r\n .selectMany(Functions.Identity)\r\n .flatten()\r\n .getEnumerator();\r\n continue;\r\n }\r\n else {\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n }\r\n return false;\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator, middleEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.pairwise = function (selector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n enumerator.moveNext();\r\n }, function (yielder) {\r\n var prev = enumerator.current;\r\n return enumerator.moveNext()\r\n && yielder.yieldReturn(selector(prev, enumerator.current));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.scan = function (func, seed) {\r\n var isUseSeed = seed !== undefined;\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var value;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n isFirst = true;\r\n }, function (yielder) {\r\n if (isFirst) {\r\n isFirst = false;\r\n return isUseSeed\r\n ? yielder.yieldReturn(value = seed)\r\n : enumerator.moveNext() && yielder.yieldReturn(value\r\n = enumerator.current);\r\n }\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(value = func(value, enumerator.current))\r\n : false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.select = function (selector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n if (selector.length < 2)\r\n return new WhereSelectEnumerable(_, null, selector);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n return enumerator.moveNext()\r\n ? yielder.yieldReturn(selector(enumerator.current, index++))\r\n : false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\r\n var _ = this;\r\n if (!resultSelector)\r\n resultSelector = function (a, b) { return b; };\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n middleEnumerator = undefined;\r\n index = 0;\r\n }, function (yielder) {\r\n if (middleEnumerator === undefined && !enumerator.moveNext())\r\n return false;\r\n do {\r\n if (!middleEnumerator) {\r\n var middleSeq = collectionSelector(enumerator.current, index++);\r\n if (!middleSeq)\r\n continue;\r\n middleEnumerator = Enumerator_1.from(middleSeq);\r\n }\r\n if (middleEnumerator.moveNext())\r\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\r\n middleEnumerator.dispose();\r\n middleEnumerator = null;\r\n } while (enumerator.moveNext());\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator, middleEnumerator);\r\n enumerator = null;\r\n middleEnumerator = null;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.choose = function (selector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var result = selector(enumerator.current, index++);\r\n if (result !== null && result !== undefined)\r\n return yielder.yieldReturn(result);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.where = function (predicate) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n if (predicate.length < 2)\r\n return new WhereEnumerable(_, predicate);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current, index++))\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.ofType = function (type) {\r\n var typeName;\r\n switch (type) {\r\n case Number:\r\n typeName = Types_1.default.NUMBER;\r\n break;\r\n case String:\r\n typeName = Types_1.default.STRING;\r\n break;\r\n case Boolean:\r\n typeName = Types_1.default.BOOLEAN;\r\n break;\r\n case Function:\r\n typeName = Types_1.default.FUNCTION;\r\n break;\r\n default:\r\n return this\r\n .where(function (x) { return Types_1.default.isInstanceOf(x, type); });\r\n }\r\n return this\r\n .where(function (x) { return typeof x === typeName; });\r\n };\r\n Enumerable.prototype.except = function (second, compareSelector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n if (second)\r\n Enumerable.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, true);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n keys.clear();\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.distinct = function (compareSelector) {\r\n return this.except(null, compareSelector);\r\n };\r\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var compareKey;\r\n var initial = true;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var key = compareSelector(enumerator.current);\r\n if (initial) {\r\n initial = false;\r\n }\r\n else if (compareKey === key) {\r\n continue;\r\n }\r\n compareKey = key;\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.reverse = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var buffer;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n buffer = _.toArray();\r\n index = buffer.length;\r\n }, function (yielder) {\r\n return index > 0\r\n && yielder.yieldReturn(buffer[--index]);\r\n }, function () {\r\n buffer.length = 0;\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.shuffle = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var buffer;\r\n var capacity;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n buffer = _.toArray();\r\n capacity = len = buffer.length;\r\n }, function (yielder) {\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var selectedIndex = Integer_1.default.random(len);\r\n var selectedValue = buffer[selectedIndex];\r\n buffer[selectedIndex] = buffer[--len];\r\n buffer[len] = null;\r\n if (len % 32 == 0)\r\n buffer.length = len;\r\n return yielder.yieldReturn(selectedValue);\r\n }, function () {\r\n buffer.length = 0;\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.count = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var count = 0;\r\n if (predicate) {\r\n _.forEach(function (x, i) {\r\n if (predicate(x, i))\r\n ++count;\r\n });\r\n }\r\n else {\r\n _.forEach(function () {\r\n ++count;\r\n });\r\n }\r\n return count;\r\n };\r\n Enumerable.prototype.all = function (predicate) {\r\n var result = true;\r\n this.forEach(function (x) {\r\n if (!predicate(x)) {\r\n result = false;\r\n return false;\r\n }\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.every = function (predicate) {\r\n return this.all(predicate);\r\n };\r\n Enumerable.prototype.any = function (predicate) {\r\n var result = false;\r\n if (predicate) {\r\n this.forEach(function (x) {\r\n result = predicate(x);\r\n return !result;\r\n });\r\n }\r\n else {\r\n this.forEach(function () {\r\n result = true;\r\n return false;\r\n });\r\n }\r\n return result;\r\n };\r\n Enumerable.prototype.some = function (predicate) {\r\n return this.any(predicate);\r\n };\r\n Enumerable.prototype.isEmpty = function () {\r\n return !this.any();\r\n };\r\n Enumerable.prototype.contains = function (value, compareSelector) {\r\n return compareSelector\r\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\r\n : this.any(function (v) { return v === value; });\r\n };\r\n Enumerable.prototype.indexOf = function (value, compareSelector) {\r\n var found = -1;\r\n if (compareSelector)\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(compareSelector(element), compareSelector(value), true)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n else\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(element, value, true)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n return found;\r\n };\r\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\r\n var result = -1;\r\n if (compareSelector)\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n result\r\n = i;\r\n });\r\n else\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(element, value, true))\r\n result = i;\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.defaultIfEmpty = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n isFirst = true;\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n if (enumerator.moveNext()) {\r\n isFirst = false;\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n else if (isFirst) {\r\n isFirst = false;\r\n return yielder.yieldReturn(defaultValue);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.zip = function (second, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = Enumerator_1.from(second);\r\n }, function (yielder) {\r\n return firstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.zipMultiple = function (second, resultSelector) {\r\n var _ = this;\r\n if (!second.length)\r\n return Enumerable.empty();\r\n return new Enumerable(function () {\r\n var secondTemp;\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n secondTemp = new Queue_1.default(second);\r\n index = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = null;\r\n }, function (yielder) {\r\n if (firstEnumerator.moveNext()) {\r\n while (true) {\r\n while (!secondEnumerator) {\r\n if (secondTemp.count) {\r\n var next = secondTemp.dequeue();\r\n if (next)\r\n secondEnumerator = Enumerator_1.from(next);\r\n }\r\n else\r\n return yielder.yieldBreak();\r\n }\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\r\n secondEnumerator.dispose();\r\n secondEnumerator = null;\r\n }\r\n }\r\n return yielder.yieldBreak();\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondTemp);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var outerEnumerator;\r\n var lookup;\r\n var innerElements = null;\r\n var innerCount = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n outerEnumerator = _.getEnumerator();\r\n lookup = Enumerable.from(inner)\r\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n }, function (yielder) {\r\n while (true) {\r\n if (innerElements != null) {\r\n var innerElement = innerElements[innerCount++];\r\n if (innerElement !== undefined)\r\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n innerElement = null;\r\n innerCount = 0;\r\n }\r\n if (outerEnumerator.moveNext()) {\r\n var key = outerKeySelector(outerEnumerator.current);\r\n innerElements = lookup.get(key);\r\n }\r\n else {\r\n return yielder.yieldBreak();\r\n }\r\n }\r\n }, function () {\r\n Utility_1.dispose(outerEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var lookup = null;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n lookup = Enumerable.from(inner)\r\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n }, function (yielder) {\r\n return enumerator.moveNext()\r\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.concatWith = function (other) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n firstEnumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n if (firstEnumerator != null) {\r\n if (firstEnumerator.moveNext())\r\n return yielder.yieldReturn(firstEnumerator.current);\r\n secondEnumerator = Enumerator_1.from(other);\r\n firstEnumerator.dispose();\r\n firstEnumerator = null;\r\n }\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(secondEnumerator.current);\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.merge = function (enumerables) {\r\n var _ = this;\r\n if (!enumerables.length)\r\n return _;\r\n if (enumerables.length == 1)\r\n return _.concatWith(enumerables[0]);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var queue;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n queue = new Queue_1.default(enumerables);\r\n }, function (yielder) {\r\n while (true) {\r\n while (!enumerator && queue.count) {\r\n enumerator = Enumerator_1.from(queue.dequeue());\r\n }\r\n if (enumerator && enumerator.moveNext())\r\n return yielder.yieldReturn(enumerator.current);\r\n if (enumerator) {\r\n enumerator.dispose();\r\n enumerator = null;\r\n continue;\r\n }\r\n return yielder.yieldBreak();\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator, queue);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.concat = function () {\r\n var enumerables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n enumerables[_i - 0] = arguments[_i];\r\n }\r\n var _ = this;\r\n if (enumerables.length == 0)\r\n return _;\r\n if (enumerables.length == 1)\r\n return _.concatWith(enumerables[0]);\r\n return _.merge(enumerables);\r\n };\r\n Enumerable.prototype.insertAt = function (index, other) {\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var count = 0;\r\n var isEnumerated = false;\r\n return new EnumeratorBase_1.default(function () {\r\n count = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = Enumerator_1.from(other);\r\n isEnumerated = false;\r\n }, function (yielder) {\r\n if (count == n) {\r\n isEnumerated = true;\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(secondEnumerator.current);\r\n }\r\n if (firstEnumerator.moveNext()) {\r\n count++;\r\n return yielder.yieldReturn(firstEnumerator.current);\r\n }\r\n return !isEnumerated\r\n && secondEnumerator.moveNext()\r\n && yielder.yieldReturn(secondEnumerator.current);\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.alternateMultiple = function (sequence) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var buffer, mode, enumerator, alternateEnumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence));\r\n enumerator = _.getEnumerator();\r\n var hasAtLeastOne = enumerator.moveNext();\r\n mode = hasAtLeastOne\r\n ? 1\r\n : 0;\r\n if (hasAtLeastOne)\r\n buffer = enumerator.current;\r\n }, function (yielder) {\r\n switch (mode) {\r\n case 0:\r\n return yielder.yieldBreak();\r\n case 2:\r\n if (alternateEnumerator.moveNext())\r\n return yielder.yieldReturn(alternateEnumerator.current);\r\n alternateEnumerator.reset();\r\n mode = 1;\r\n break;\r\n }\r\n var latest = buffer;\r\n var another = enumerator.moveNext();\r\n mode = another\r\n ? 2\r\n : 0;\r\n if (another)\r\n buffer = enumerator.current;\r\n return yielder.yieldReturn(latest);\r\n }, function () {\r\n Utility_1.dispose(enumerator, alternateEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.alternateSingle = function (value) {\r\n return this.alternateMultiple(Enumerable.make(value));\r\n };\r\n Enumerable.prototype.alternate = function () {\r\n var sequence = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n sequence[_i - 0] = arguments[_i];\r\n }\r\n return this.alternateMultiple(sequence);\r\n };\r\n Enumerable.prototype.intersect = function (second, compareSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n var outs;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n outs = new Dictionary_1.default(compareSelector);\r\n Enumerable.from(second)\r\n .forEach(function (key) {\r\n keys.addByKeyValue(key, true);\r\n });\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current;\r\n if (!outs.containsKey(current) && keys.containsKey(current)) {\r\n outs.addByKeyValue(current, true);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return yielder.yieldBreak();\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n return Utility_1.using(this.getEnumerator(), function (e1) { return Utility_1.using(Enumerable.from(second).getEnumerator(), function (e2) {\r\n while (e1.moveNext()) {\r\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n return false;\r\n }\r\n return !e2.moveNext();\r\n }); });\r\n };\r\n Enumerable.prototype.union = function (second, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var keys;\r\n return new EnumeratorBase_1.default(function () {\r\n firstEnumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n }, function (yielder) {\r\n var current;\r\n if (secondEnumerator === undefined) {\r\n while (firstEnumerator.moveNext()) {\r\n current = firstEnumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, null);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n }\r\n while (secondEnumerator.moveNext()) {\r\n current = secondEnumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, null);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.orderBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return new OrderedEnumerable(this, keySelector, 1);\r\n };\r\n Enumerable.prototype.orderUsing = function (comparison) {\r\n return new OrderedEnumerable(this, null, 1, null, comparison);\r\n };\r\n Enumerable.prototype.orderUsingReversed = function (comparison) {\r\n return new OrderedEnumerable(this, null, -1, null, comparison);\r\n };\r\n Enumerable.prototype.orderByDescending = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return new OrderedEnumerable(this, keySelector, -1);\r\n };\r\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\r\n var _ = this;\r\n if (!elementSelector)\r\n elementSelector = Functions.Identity;\r\n return new Enumerable(function () { return _.toLookup(keySelector, elementSelector, compareSelector)\r\n .getEnumerator(); });\r\n };\r\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\r\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n if (!elementSelector)\r\n elementSelector = Functions.Identity;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var key;\r\n var compareKey;\r\n var group;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n if (enumerator.moveNext()) {\r\n key = keySelector(enumerator.current);\r\n compareKey = compareSelector(key);\r\n group = [elementSelector(enumerator.current)];\r\n len = 1;\r\n }\r\n else\r\n group = null;\r\n }, function (yielder) {\r\n if (!group)\r\n return yielder.yieldBreak();\r\n var hasNext, c;\r\n while ((hasNext = enumerator.moveNext())) {\r\n c = enumerator.current;\r\n if (compareKey === compareSelector(keySelector(c)))\r\n group[len++] = elementSelector(c);\r\n else\r\n break;\r\n }\r\n var result = resultSelector(key, group);\r\n if (hasNext) {\r\n c = enumerator.current;\r\n key = keySelector(c);\r\n compareKey = compareSelector(key);\r\n group = [elementSelector(c)];\r\n len = 1;\r\n }\r\n else {\r\n group = null;\r\n }\r\n return yielder.yieldReturn(result);\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n group = null;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.buffer = function (size) {\r\n if (size < 1 || !isFinite(size))\r\n throw new Error(\"Invalid buffer size.\");\r\n Integer_1.default.assert(size, \"size\");\r\n var _ = this, len;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n var array = ArrayUtility.initialize(size);\r\n len = 0;\r\n while (len < size && enumerator.moveNext) {\r\n array[len++] = enumerator.current;\r\n }\r\n array.length = len;\r\n return len && yielder.yieldReturn(array);\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.aggregate = function (func, seed) {\r\n return this.scan(func, seed).lastOrDefault();\r\n };\r\n Enumerable.prototype.average = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var sum = 0;\r\n var sumInfinite = 0;\r\n var count = 0;\r\n this.forEach(function (x) {\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n sum = NaN;\r\n return false;\r\n }\r\n if (isFinite(value))\r\n sum += value;\r\n else\r\n sumInfinite += value > 0 ? (+1) : (-1);\r\n ++count;\r\n });\r\n if (sumInfinite)\r\n return sumInfinite * Infinity;\r\n return (isNaN(sum) || !count)\r\n ? NaN\r\n : (sum / count);\r\n };\r\n Enumerable.prototype.max = function () {\r\n return this.aggregate(Functions.Greater);\r\n };\r\n Enumerable.prototype.min = function () {\r\n return this.aggregate(Functions.Lesser);\r\n };\r\n Enumerable.prototype.maxBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\r\n };\r\n Enumerable.prototype.minBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\r\n };\r\n Enumerable.prototype.sum = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var sum = 0;\r\n var sumInfinite = 0;\r\n this.forEach(function (x) {\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n sum = NaN;\r\n return false;\r\n }\r\n if (isFinite(value))\r\n sum += value;\r\n else\r\n sumInfinite += value > 0 ? (+1) : (-1);\r\n });\r\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\r\n };\r\n Enumerable.prototype.product = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var result = 1, exists = false;\r\n this.forEach(function (x) {\r\n exists = true;\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n result = NaN;\r\n return false;\r\n }\r\n if (value == 0) {\r\n result = 0;\r\n return false;\r\n }\r\n result *= value;\r\n });\r\n return (exists && isNaN(result)) ? NaN : result;\r\n };\r\n Enumerable.prototype.elementAt = function (index) {\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x, i) {\r\n if (i == n) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n if (!found)\r\n throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n return value;\r\n };\r\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x, i) {\r\n if (i == n) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.first = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n if (!found)\r\n throw new Error(\"first:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.firstOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.last = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n if (!found)\r\n throw new Error(\"last:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.single = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n }\r\n else\r\n throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n if (!found)\r\n throw new Error(\"single:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.singleOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n }\r\n else\r\n throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.share = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var sharedEnumerator;\r\n return new Enumerable(function () {\r\n return new EnumeratorBase_1.default(function () {\r\n // assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n if (!sharedEnumerator)\r\n sharedEnumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n return sharedEnumerator.moveNext()\r\n && yielder.yieldReturn(sharedEnumerator.current);\r\n });\r\n }, function () {\r\n Utility_1.dispose(sharedEnumerator);\r\n });\r\n };\r\n Enumerable.prototype.memoize = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n var cache;\r\n var enumerator;\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n if (!enumerator)\r\n enumerator = _.getEnumerator();\r\n if (!cache)\r\n cache = [];\r\n index = 0;\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n var i = index++;\r\n if (i >= cache.length) {\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(cache[i] = enumerator.current)\r\n : false;\r\n }\r\n return yielder.yieldReturn(cache[i]);\r\n });\r\n }, function () {\r\n disposed = true;\r\n if (cache)\r\n cache.length = 0;\r\n cache = null;\r\n Utility_1.dispose(enumerator);\r\n enumerator = null;\r\n });\r\n };\r\n Enumerable.prototype.catchError = function (handler) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n try {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }\r\n catch (e) {\r\n }\r\n }, function (yielder) {\r\n try {\r\n throwIfDisposed(disposed);\r\n if (enumerator.moveNext())\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n catch (e) {\r\n handler(e);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.finallyAction = function (action) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(enumerator.current)\r\n : false;\r\n }, function () {\r\n try {\r\n Utility_1.dispose(enumerator);\r\n }\r\n finally {\r\n action();\r\n }\r\n });\r\n });\r\n };\r\n return Enumerable;\r\n })(DisposableBase_1.default);\r\n exports.Enumerable = Enumerable;\r\n var ArrayEnumerable = (function (_super) {\r\n __extends(ArrayEnumerable, _super);\r\n function ArrayEnumerable(source) {\r\n _super.call(this, function () {\r\n _.throwIfDisposed();\r\n return new ArrayEnumerator_1.default(function () {\r\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n return _._source;\r\n });\r\n });\r\n var _ = this;\r\n _._disposableObjectName = \"ArrayEnumerable\";\r\n _._source = source;\r\n }\r\n ArrayEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this._source = null;\r\n };\r\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\r\n get: function () {\r\n return this._source;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ArrayEnumerable.prototype.toArray = function () {\r\n var s = this.source;\r\n if (!s)\r\n return [];\r\n if (Array.isArray(s))\r\n return s.slice();\r\n var len = s.length, result = ArrayUtility.initialize(len);\r\n for (var i = 0; i < len; ++i) {\r\n result[i] = s[i];\r\n }\r\n return result;\r\n };\r\n ArrayEnumerable.prototype.asEnumerable = function () {\r\n return new ArrayEnumerable(this._source);\r\n };\r\n ArrayEnumerable.prototype.forEach = function (action) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n if (source) {\r\n for (var i = 0; i < source.length; ++i) {\r\n if (action(source[i], i) === false)\r\n break;\r\n }\r\n }\r\n };\r\n ArrayEnumerable.prototype.any = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source ? source.length : 0;\r\n return len && (!predicate || _super.prototype.any.call(this, predicate));\r\n };\r\n ArrayEnumerable.prototype.count = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source ? source.length : 0;\r\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\r\n };\r\n ArrayEnumerable.prototype.elementAt = function (index) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (index < source.length && index >= 0)\r\n ? source[index]\r\n : _super.prototype.elementAt.call(this, index);\r\n };\r\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (index < source.length && index >= 0)\r\n ? source[index]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.first = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (source && source.length)\r\n ? source[0]\r\n : _super.prototype.first.call(this);\r\n };\r\n ArrayEnumerable.prototype.firstOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (source && source.length)\r\n ? source[0]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.last = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source.length;\r\n return (len)\r\n ? source[len - 1]\r\n : _super.prototype.last.call(this);\r\n };\r\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source.length;\r\n return len\r\n ? source[len - 1]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.skip = function (count) {\r\n var _ = this;\r\n if (!count || count < 0)\r\n return _.asEnumerable();\r\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, count); });\r\n };\r\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\r\n if (count === void 0) { count = 1; }\r\n var _ = this, len = _._source ? _._source.length : 0;\r\n return _.take(len - count);\r\n };\r\n ArrayEnumerable.prototype.takeFromLast = function (count) {\r\n if (!count || count < 0)\r\n return Enumerable.empty();\r\n var _ = this, len = _._source\r\n ? _._source.length\r\n : 0;\r\n return _.skip(len - count);\r\n };\r\n ArrayEnumerable.prototype.reverse = function () {\r\n var _ = this;\r\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, _._source\r\n ? (_._source.length - 1)\r\n : 0, -1); });\r\n };\r\n ArrayEnumerable.prototype.memoize = function () {\r\n return new ArrayEnumerable(this._source);\r\n };\r\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n if (Array.isArray(second))\r\n return Arrays.areEqual(this.source, second, true, equalityComparer);\r\n if (Types_1.default.isInstanceOf(second, ArrayEnumerable))\r\n return second.sequenceEqual(this.source, equalityComparer);\r\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\r\n };\r\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator === void 0) { separator = \"\"; }\r\n if (selector === void 0) { selector = Functions.Identity; }\r\n var s = this._source;\r\n return !selector && Array.isArray(s)\r\n ? s.join(separator)\r\n : _super.prototype.toJoinedString.call(this, separator, selector);\r\n };\r\n return ArrayEnumerable;\r\n })(Enumerable);\r\n var Grouping = (function (_super) {\r\n __extends(Grouping, _super);\r\n function Grouping(_groupKey, elements) {\r\n _super.call(this, elements);\r\n this._groupKey = _groupKey;\r\n }\r\n Object.defineProperty(Grouping.prototype, \"key\", {\r\n get: function () {\r\n return this._groupKey;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Grouping;\r\n })(ArrayEnumerable);\r\n var Lookup = (function () {\r\n function Lookup(_dictionary) {\r\n this._dictionary = _dictionary;\r\n }\r\n Object.defineProperty(Lookup.prototype, \"count\", {\r\n get: function () {\r\n return this._dictionary.count;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lookup.prototype.get = function (key) {\r\n return this._dictionary.getValue(key);\r\n };\r\n Lookup.prototype.contains = function (key) {\r\n return this._dictionary.containsKey(key);\r\n };\r\n Lookup.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _._dictionary.getEnumerator();\r\n }, function (yielder) {\r\n if (!enumerator.moveNext())\r\n return false;\r\n var current = enumerator.current;\r\n return yielder.yieldReturn(new Grouping(current.key, current.value));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n return Lookup;\r\n })();\r\n var WhereEnumerable = (function (_super) {\r\n __extends(WhereEnumerable, _super);\r\n function WhereEnumerable(prevSource, prevPredicate) {\r\n _super.call(this, null);\r\n this.prevSource = prevSource;\r\n this.prevPredicate = prevPredicate;\r\n }\r\n WhereEnumerable.prototype.where = function (predicate) {\r\n if (predicate.length > 1)\r\n return _super.prototype.where.call(this, predicate);\r\n var prevPredicate = this.prevPredicate;\r\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\r\n return new WhereEnumerable(this.prevSource, composedPredicate);\r\n };\r\n WhereEnumerable.prototype.select = function (selector) {\r\n if (selector.length > 1)\r\n return _super.prototype.select.call(this, selector);\r\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector);\r\n };\r\n WhereEnumerable.prototype.getEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var source = this.prevSource;\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = source.getEnumerator();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current))\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n WhereEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this.prevPredicate = null;\r\n this.prevSource = null;\r\n };\r\n return WhereEnumerable;\r\n })(Enumerable);\r\n var WhereSelectEnumerable = (function (_super) {\r\n __extends(WhereSelectEnumerable, _super);\r\n function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) {\r\n _super.call(this, null);\r\n this.prevSource = prevSource;\r\n this.prevPredicate = prevPredicate;\r\n this.prevSelector = prevSelector;\r\n }\r\n WhereSelectEnumerable.prototype.where = function (predicate) {\r\n if (predicate.length > 1)\r\n return _super.prototype.where.call(this, predicate);\r\n return new WhereEnumerable(this, predicate);\r\n };\r\n WhereSelectEnumerable.prototype.select = function (selector) {\r\n if (selector.length > 1)\r\n return _super.prototype.select.call(this, selector);\r\n var _ = this;\r\n var prevSelector = _.prevSelector;\r\n var composedSelector = function (x) { return selector(prevSelector(x)); };\r\n return new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n };\r\n WhereSelectEnumerable.prototype.getEnumerator = function () {\r\n var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = source.getEnumerator();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n var c = enumerator.current;\r\n if (predicate == null || predicate(c)) {\r\n return yielder.yieldReturn(selector(c));\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n WhereSelectEnumerable.prototype._onDispose = function () {\r\n var _ = this;\r\n _super.prototype._onDispose.call(this);\r\n _.prevPredicate = null;\r\n _.prevSource = null;\r\n _.prevSelector = null;\r\n };\r\n return WhereSelectEnumerable;\r\n })(Enumerable);\r\n var OrderedEnumerable = (function (_super) {\r\n __extends(OrderedEnumerable, _super);\r\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n _super.call(this, null);\r\n this.source = source;\r\n this.keySelector = keySelector;\r\n this.order = order;\r\n this.parent = parent;\r\n this.comparer = comparer;\r\n }\r\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\r\n return new OrderedEnumerable(this.source, keySelector, order, this);\r\n };\r\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, 1);\r\n };\r\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\r\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\r\n };\r\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, -1);\r\n };\r\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\r\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\r\n };\r\n OrderedEnumerable.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var buffer;\r\n var indexes;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n buffer = Enumerable.toArray(_.source);\r\n indexes = createSortContext(_).generateSortedIndexes(buffer);\r\n }, function (yielder) {\r\n return (index < indexes.length)\r\n ? yielder.yieldReturn(buffer[indexes[index++]])\r\n : false;\r\n }, function () {\r\n if (buffer)\r\n buffer.length = 0;\r\n buffer = null;\r\n if (indexes)\r\n indexes.length = 0;\r\n indexes = null;\r\n });\r\n };\r\n OrderedEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this.source = null;\r\n this.keySelector = null;\r\n this.order = null;\r\n this.parent = null;\r\n };\r\n return OrderedEnumerable;\r\n })(Enumerable);\r\n function createSortContext(orderedEnumerable, currentContext) {\r\n if (currentContext === void 0) { currentContext = null; }\r\n var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\r\n if (orderedEnumerable.parent)\r\n return createSortContext(orderedEnumerable.parent, context);\r\n return context;\r\n }\r\n function throwIfDisposed(disposed, className) {\r\n if (className === void 0) { className = \"Enumerable\"; }\r\n if (disposed)\r\n throw new ObjectDisposedException_1.default(className);\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Enumerable;\r\n});\r\n//# sourceMappingURL=Linq.js.map","/*\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\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 {from as enumeratorFrom, forEach as enumeratorForEach, isEnumerable} 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, disposeThese, using} from '../System/Disposable/Utility';\r\nimport DisposableBase from '../System/Disposable/DisposableBase';\r\nimport Exception from \"../System/Exception\";\r\nimport ArgumentException from '../System/Exceptions/ArgumentException';\r\nimport ObjectDisposedException from '../System/Disposable/ObjectDisposedException';\r\nimport Order from \"../System/Collections/Sorting/Order\";\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\ntype Comparable = Primitive|IComparable;\r\n'use strict';\r\n\r\n// #region Local Constants.\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 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 DisposableBase implements IEnumerable\r\n{\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}\r\n\r\n\t/**\r\n\t * Static shortcut for creating an ArrayEnumerable.\r\n\t */\r\n\tstatic fromArray(array:IArray):Enumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(array);\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:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Type.isInstanceOf>(source, Enumerable))\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Array.isArray(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(()=>source.getEnumerator());\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\r\n\tstatic toArray(source:IEnumerable | IArray):T[]\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Array.isArray(source))\r\n\t\t\t\treturn source.slice();\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\tsource = new ArrayEnumerable(>source);\r\n\r\n\t\t\tif(Type.isInstanceOf>(source, Enumerable))\r\n\t\t\t\treturn source.toArray();\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t{\r\n\t\t\t\tvar result:T[] = [];\r\n\t\t\t\tenumeratorForEach(\r\n\t\t\t\t\tsource.getEnumerator(), (e, i) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult[i] = e;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\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//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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(values[Integer.random(values.length)])\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0; // Let the compiler know this is an int.\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);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic empty():Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\tFunctions.False\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\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? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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)=> (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)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration does not break.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):Enumerable\r\n\t{\r\n\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic make(element:T):Enumerable\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\tstatic range(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new Enumerable(\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\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic rangeDown(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\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):Enumerable\r\n\t{\r\n\t\treturn Enumerable.range(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\treturn Enumerable.rangeDown(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number = 0,\r\n\t\tto:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(to))\r\n\t\t\tthrow new Error(\"Must have a valid 'to' value.\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\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\t// Range to infinity has a more efficient mechanism.\r\n\t\tif(!isFinite(to))\r\n\t\t\treturn Enumerable.range(start, Infinity, (start(\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 start(\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 result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t: 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 result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\treturn result;\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 matches(input:string, pattern:any, flags:string = \"\"):Enumerable\r\n\t{\r\n\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(Type.isInstanceOf(pattern, 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 Enumerable(\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, count:number = Infinity):Enumerable\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\r\n\t\t\t? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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\tvar current:number = index++;\r\n\t\t\t\t\t\treturn current(\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},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++))\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(seed:T, valueFactory:Selector, skipSeed:Boolean = false):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic defer(enumerableFactory:() => IEnumerable):Enumerable\r\n\t{\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 = enumerableFactory().getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> enumerator.moveNext() && yielder.yieldReturn(enumerator.current),\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\tstatic forEach(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\tif(enumerable)\r\n\t\t{\r\n\t\t\tusing(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tenumeratorForEach(e, action);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\r\n\t\treturn enumerable && using(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tvar result:TResult[] = [];\r\n\t\t\t\tenumeratorForEach(e, (e, i)=>\r\n\t\t\t\t{\r\n\t\t\t\t\tresult[i] = selector(e);\r\n\t\t\t\t});\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:Enumerable):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:Enumerable):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\t// #endregion\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Instance methods...\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\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\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\tvar result:T[] = [];\r\n\r\n\t\tif(predicate) return this.where(predicate).toArray();\r\n\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tresult[i] = x\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(() => _.getEnumerator());\r\n\t}\r\n\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\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!==undefined) 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=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x)] = elementSelector(x);\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=> dict.addByKeyValue(keySelector(x), elementSelector(x)));\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\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):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 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\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\t\t);\r\n\t}\r\n\r\n\tforce(defaultAction:EnumerableAction = EnumerableAction.Break):void\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tthis.doAction(element => defaultAction);\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!count || isNaN(count) || count<0) // Out of bounds? Simply return this.\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\r\n\t\tvar c:number = count;\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tvar skipping:boolean = true;\r\n\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(skipping)\r\n\t\t\t\t\tskipping = predicate(element, index);\r\n\r\n\t\t\t\treturn skipping\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttake(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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)) // +Infinity equals no limit.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = 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):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t}\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\r\n\t\tif(!count || isNaN(count) || count<=0) // Out of bounds? Empty.\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\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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 in reverse.\r\n\t\t\treturn _.reverse();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn _.reverse().take(count);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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 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.fromArray(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(func);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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\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\tvar 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\tenumerator = func(enumerator.current).getEnumerator();\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\tdisposeThese(enumeratorStack);\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\tflatten():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 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!=null)\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 = 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\tif(Array.isArray(c))\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 = Enumerable.fromArray(c)\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(enumerator.current);\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 false;\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\t\t\t\t);\r\n\t\t\t}\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\t\t\t\t);\r\n\t\t\t}\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!==undefined; // 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\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\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(selector.length<2)\r\n\t\t\treturn new WhereSelectEnumerable(_, null, selector);\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: 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\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\r\n\tselectMany(collectionSelector:Selector>>):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector | IArray> | 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:any, middle:any) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a, b) => 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===undefined && !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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tchoose(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!==undefined)\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\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\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(predicate.length<2)\r\n\t\t\treturn new WhereEnumerable(_, predicate);\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\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\r\n\t}\r\n\r\n\tofType(type:{ new (): TType }):Enumerable;\r\n\tofType(type:any):Enumerable\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=>Type.isInstanceOf(x, type));\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.where(x=>typeof x===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerable,\r\n\t\tcompareSelector?:Selector):Enumerable\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\tEnumerable.forEach(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\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\tdistinct(compareSelector?:(value:T) => T):Enumerable\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] results in [0,1,2,0];\r\n\tdistinctUntilChanged(compareSelector?: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 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(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\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\treverse():Enumerable\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 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)=>\r\n\t\t\t\t\tindex>0\r\n\t\t\t\t\t&& 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\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\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar count:number = 0;\r\n\t\tif(predicate)\r\n\t\t{\r\n\t\t\t_.forEach((x, i) =>\r\n\t\t\t{\r\n\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\t++count;\r\n\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\tvar result = true;\r\n\t\tthis.forEach(x =>\r\n\t\t{\r\n\t\t\tif(!predicate(x))\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\tvar result = false;\r\n\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\tif(predicate)\r\n\t\t{\r\n\t\t\tthis.forEach(x =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x); // 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\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\tresult = true;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\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\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true)) result\r\n\t\t\t\t\t= i;\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):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 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)=>\r\n\t\t\t\t\tfirstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\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\tzipMultiple(\r\n\t\tsecond:IArray | IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\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\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerable | IArray,\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!==undefined)\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:IEnumerable | IArray,\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\tconcatWith(other:IEnumerable | IArray):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 firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator: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\tfirstEnumerator = _.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\tif(firstEnumerator!=null)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(firstEnumerator.moveNext()) return yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\t\tfirstEnumerator.dispose();\r\n\t\t\t\t\t\t\tfirstEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(secondEnumerator.moveNext()) return yielder.yieldReturn(secondEnumerator.current);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tmerge(enumerables:IArray | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!enumerables.length)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\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 | IArray>;\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 | IArray>(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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\r\n\r\n\t\treturn _.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tinsertAt(index:number, other:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerable | IArray):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\t\t\t\t);\r\n\t\t\t}\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\tintersect(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second)\r\n\t\t\t\t\t\t\t.forEach(key=>\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\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);\r\n\t\t\t\t\t}\r\n\t\t\t\t); // Should Dictionary be IDisposable?\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second).getEnumerator(),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\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:IEnumerable | IArray,\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\tunion(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\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 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);\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===undefined)\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 = Enumerable.from(second).getEnumerator();\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\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 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\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>|Enumerable>\r\n\t{\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() => _.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\tbuffer(size:number):IEnumerable\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\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 sum = 0;\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\tvar count = 0; // No need to make integer if the result could be a float.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tfunction(x)\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 += value>0 ? (+1) : (-1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(sumInfinite) // Not zero?\r\n\t\t\treturn sumInfinite*Infinity;\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 += value>0 ? (+1) : (-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\tx=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\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\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// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (!found) ? defaultValue : value;\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 _ = 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\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"first:No element satisfies the condition.\");\r\n\t\treturn value;\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\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\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\tsingle():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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"single:No element satisfies the condition.\");\r\n\t\treturn value;\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\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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\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\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 new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n\r\n\t\t\t\t\t\tif(!sharedEnumerator)\r\n\t\t\t\t\t\t\tsharedEnumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tsharedEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(sharedEnumerator.current)\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\tdispose(sharedEnumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\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\t// #region Error Handling\r\n\tcatchError(handler:(e:Error) => void):Enumerable\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):Enumerable\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\r\n\r\nclass ArrayEnumerable\r\nextends Enumerable\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; // Could possibly 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 s = this.source;\r\n\t\tif(!s)\r\n\t\t\treturn [];\r\n\r\n\t\tif(Array.isArray(s))\r\n\t\t\treturn (s).slice();\r\n\r\n\t\tvar len = s.length, result:T[] = ArrayUtility.initialize(len);\r\n\t\tfor(let i = 0; i\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\tvar source = _._source;\r\n\t\tif(source)\r\n\t\t{\r\n\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\tfor(let i = 0; iaction(source[i], i)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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 ? source.length : 0;\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 ? source.length : 0;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: super.elementAt(index);\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\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: super.first();\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\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: defaultValue;\r\n\t}\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 source = _._source, len = source.length;\r\n\t\treturn (len)\r\n\t\t\t? source[len - 1]\r\n\t\t\t: super.last();\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 source = _._source, len = source.length;\r\n\t\treturn len\r\n\t\t\t? source[len - 1]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!count || count<0) // Out of bounds? Simply return a unfiltered enumerable.\r\n\t\t\treturn _.asEnumerable();\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, len = _._source ? _._source.length : 0;\r\n\t\treturn _.take(len - count);\r\n\t}\r\n\r\n\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || count<0) return Enumerable.empty();\r\n\r\n\t\tvar _ = this,\r\n\t\t 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 new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Array.isArray(second))\r\n\t\t\treturn Arrays.areEqual(this.source, >second, true, equalityComparer);\r\n\r\n\t\tif(Type.isInstanceOf(second, 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\nclass WhereEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate // predicate.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\tvar prevPredicate = this.prevPredicate;\r\n\t\tvar composedPredicate = (x:T) => prevPredicate(x) && predicate(x);\r\n\t\treturn new WhereEnumerable(this.prevSource, composedPredicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\treturn new WhereSelectEnumerable(\r\n\t\t\tthis.prevSource,\r\n\t\t\tthis.prevPredicate,\r\n\t\t\tselector\r\n\t\t);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar predicate = this.prevPredicate;\r\n\t\tvar source = this.prevSource;\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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(enumerator.current))\r\n\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.prevPredicate = null;\r\n\t\tthis.prevSource = null;\r\n\t}\r\n}\r\n\r\nclass WhereSelectEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate, // predicate.length always <= 1\r\n\t\tprivate prevSelector:Selector // selector.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:(value:T, index?:number) => boolean):Enumerable\r\n\t{\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\treturn new WhereEnumerable(this, predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t// if selector use index, can't compose\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prevSelector = _.prevSelector;\r\n\t\tvar composedSelector = (x:TSource) => selector(prevSelector(x));\r\n\t\treturn new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t predicate = _.prevPredicate,\r\n\t\t source = _.prevSource,\r\n\t\t selector:Selector = _.prevSelector, // Type definition needed for correct inference.\r\n\t\t 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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\tif(predicate==null || predicate(c))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selector(c));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tsuper._onDispose();\r\n\t\t_.prevPredicate = null;\r\n\t\t_.prevSource = null;\r\n\t\t_.prevSelector = null;\r\n\t}\r\n}\r\n\r\nexport interface IOrderedEnumerable\r\nextends Enumerable\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 Enumerable 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}\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\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/**\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, className:string = \"Enumerable\"):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(className);\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","Utility_1","DisposableBase_1","Exception_1","ObjectDisposedException_1","KeySortedContext_1","createSortContext","orderedEnumerable","currentContext","throwIfDisposed","disposed","className","VOID0","LinqFunctions","_super","LinqFunctions.constructor","LinqFunctions.Greater","LinqFunctions.Lesser","Functions","freeze","UnsupportedEnumerableException","UnsupportedEnumerableException.constructor","Enumerable","Enumerable.constructor","Enumerable.fromArray","Enumerable.from","Enumerable.toArray","Enumerable.getEnumerator","Enumerable._onDispose","Enumerable.choice","Enumerable.cycle","Enumerable.empty","Enumerable.repeat","Enumerable.repeatWithFinalize","Enumerable.make","Enumerable.range","Enumerable.rangeDown","Enumerable.toInfinity","Enumerable.toNegativeInfinity","Enumerable.rangeTo","Enumerable.matches","Enumerable.generate","Enumerable.unfold","Enumerable.defer","Enumerable.forEach","Enumerable.map","Enumerable.max","Enumerable.min","Enumerable.asEnumerable","Enumerable.toLookup","Enumerable.toMap","Enumerable.toDictionary","Enumerable.toJoinedString","Enumerable.doAction","Enumerable.force","Enumerable.skip","Enumerable.skipWhile","Enumerable.take","Enumerable.takeWhile","Enumerable.takeUntil","Enumerable.takeExceptLast","Enumerable.takeFromLast","Enumerable.traverseBreadthFirst","Enumerable.traverseDepthFirst","Enumerable.flatten","Enumerable.pairwise","Enumerable.scan","Enumerable.select","Enumerable.selectMany","Enumerable.choose","Enumerable.where","Enumerable.ofType","Enumerable.except","Enumerable.distinct","Enumerable.distinctUntilChanged","Enumerable.reverse","Enumerable.shuffle","Enumerable.count","Enumerable.all","Enumerable.every","Enumerable.any","Enumerable.some","Enumerable.isEmpty","Enumerable.contains","Enumerable.indexOf","Enumerable.lastIndexOf","Enumerable.defaultIfEmpty","Enumerable.zip","Enumerable.zipMultiple","Enumerable.join","Enumerable.groupJoin","Enumerable.concatWith","Enumerable.merge","Enumerable.concat","Enumerable.insertAt","Enumerable.alternateMultiple","Enumerable.alternateSingle","Enumerable.alternate","Enumerable.intersect","Enumerable.sequenceEqual","Enumerable.union","Enumerable.orderBy","Enumerable.orderUsing","Enumerable.orderUsingReversed","Enumerable.orderByDescending","Enumerable.groupBy","Enumerable.partitionBy","Enumerable.buffer","Enumerable.aggregate","Enumerable.average","value","selector","x","isNaN","sum","NaN","isFinite","sumInfinite","count","Enumerable.maxBy","Enumerable.minBy","Enumerable.sum","Enumerable.product","Enumerable.elementAt","Enumerable.elementAtOrDefault","Enumerable.first","Enumerable.firstOrDefault","Enumerable.last","Enumerable.lastOrDefault","Enumerable.single","Enumerable.singleOrDefault","Enumerable.share","Enumerable.memoize","Enumerable.catchError","Enumerable.finallyAction","ArrayEnumerable","ArrayEnumerable.constructor","ArrayEnumerable._onDispose","get","ArrayEnumerable.source","enumerable","configurable","ArrayEnumerable.toArray","ArrayEnumerable.asEnumerable","ArrayEnumerable.forEach","ArrayEnumerable.any","ArrayEnumerable.count","ArrayEnumerable.elementAt","ArrayEnumerable.elementAtOrDefault","ArrayEnumerable.first","ArrayEnumerable.firstOrDefault","ArrayEnumerable.last","ArrayEnumerable.lastOrDefault","ArrayEnumerable.skip","ArrayEnumerable.takeExceptLast","ArrayEnumerable.takeFromLast","ArrayEnumerable.reverse","ArrayEnumerable.memoize","ArrayEnumerable.sequenceEqual","ArrayEnumerable.toJoinedString","Grouping","Grouping.constructor","Grouping.key","Lookup","Lookup.constructor","Lookup.count","Lookup.get","Lookup.contains","Lookup.getEnumerator","WhereEnumerable","WhereEnumerable.constructor","WhereEnumerable.where","WhereEnumerable.select","WhereEnumerable.getEnumerator","WhereEnumerable._onDispose","WhereSelectEnumerable","WhereSelectEnumerable.constructor","WhereSelectEnumerable.where","WhereSelectEnumerable.select","WhereSelectEnumerable.getEnumerator","WhereSelectEnumerable._onDispose","OrderedEnumerable","OrderedEnumerable.constructor","OrderedEnumerable.createOrderedEnumerable","OrderedEnumerable.thenBy","OrderedEnumerable.thenUsing","OrderedEnumerable.thenByDescending","OrderedEnumerable.thenUsingReversed","OrderedEnumerable.getEnumerator","OrderedEnumerable._onDispose","defineProperty"],"mappings":"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","file":"System.Linq/Linq.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\", '../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/Utility', '../System/Disposable/DisposableBase', \"../System/Exception\", '../System/Disposable/ObjectDisposedException', \"../System/Collections/Sorting/KeySortedContext\"], function (require, exports, Values, Arrays, ArrayUtility, Enumerator_1, Types_1, Integer_1, Functions_1, ArrayEnumerator_1, EnumeratorBase_1, Dictionary_1, Queue_1, Utility_1, DisposableBase_1, Exception_1, ObjectDisposedException_1, KeySortedContext_1) {\n 'use strict';\n var VOID0 = void 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.default);\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException() {\n _super.call(this, \"Unsupported enumerable.\");\n }\n return UnsupportedEnumerableException;\n })(Exception_1.default);\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n }\n Enumerable.fromArray = function (array) {\n return new ArrayEnumerable(array);\n };\n Enumerable.from = function (source) {\n if (Types_1.default.isObject(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Array.isArray(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); });\n if (Types_1.default.isArrayLike(source))\n return new ArrayEnumerable(source);\n }\n throw new UnsupportedEnumerableException();\n };\n Enumerable.toArray = function (source) {\n if (Types_1.default.isObject(source)) {\n if (Array.isArray(source))\n return source.slice();\n if (Types_1.default.isArrayLike(source))\n source = new ArrayEnumerable(source);\n if (source instanceof Enumerable)\n return source.toArray();\n if (Enumerator_1.isEnumerable(source)) {\n var result = [];\n Enumerator_1.forEach(source.getEnumerator(), function (e, i) {\n result[i] = e;\n });\n return result;\n }\n }\n throw new UnsupportedEnumerableException();\n };\n Enumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n Enumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n Enumerable.choice = function (values) {\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\n return yielder.yieldReturn(values[Integer_1.default.random(values.length)]);\n }); });\n };\n Enumerable.cycle = function (values) {\n return new Enumerable(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 });\n });\n };\n Enumerable.empty = function () {\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, Functions.False); });\n };\n Enumerable.repeat = function (element, 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 ? new Enumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); });\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); });\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new Enumerable(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 });\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = Infinity; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new Error(\"Must have a valid 'start' value.\");\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n if (!isFinite(step))\n throw new Error(\"Must have a valid 'step' value.\");\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ? new Enumerable(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 });\n })\n : new Enumerable(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 });\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = Infinity; }\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 return Enumerable.range(start, Infinity, step);\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.rangeDown(start, Infinity, step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (start === void 0) { start = 0; }\n if (to === void 0) { to = Infinity; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new Error(\"Must have a valid 'start' value.\");\n if (isNaN(to))\n throw new Error(\"Must have a valid 'to' value.\");\n if (!isFinite(step))\n throw new Error(\"Must have a valid 'step' value.\");\n step = Math.abs(step);\n if (!isFinite(to))\n return Enumerable.range(start, Infinity, (start < to) ? (+step) : (-step));\n return new Enumerable(function () {\n var value;\n return start < to\n ? new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n })\n : new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n });\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\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 Enumerable(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 ? new Enumerable(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 });\n })\n : new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); });\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new Enumerable(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 });\n });\n };\n Enumerable.defer = function (enumerableFactory) {\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = enumerableFactory().getEnumerator();\n }, function (yielder) { return enumerator.moveNext() && yielder.yieldReturn(enumerator.current); }, function () {\n Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n if (enumerable) {\n Utility_1.using(Enumerator_1.from(enumerable), function (e) {\n Enumerator_1.forEach(e, action);\n });\n }\n };\n Enumerable.map = function (enumerable, selector) {\n return enumerable && Utility_1.using(Enumerator_1.from(enumerable), function (e) {\n var result = [];\n Enumerator_1.forEach(e, function (e, i) {\n result[i] = selector(e);\n });\n return result;\n });\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.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n var index = 0;\n Utility_1.using(_.getEnumerator(), function (e) {\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n var result = [];\n if (predicate)\n return this.where(predicate).toArray();\n this.forEach(function (x, i) {\n result[i] = x;\n });\n return result;\n };\n Enumerable.prototype.asEnumerable = function () {\n var _ = this;\n return new Enumerable(function () { return _.getEnumerator(); });\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) {\n obj[keySelector(x)] = elementSelector(x);\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) { return dict.addByKeyValue(keySelector(x), elementSelector(x)); });\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.doAction = function (action) {\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 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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.force = function (defaultAction) {\n if (defaultAction === void 0) { defaultAction = 0; }\n this.throwIfDisposed();\n this.doAction(function (element) { return defaultAction; });\n };\n Enumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!count || isNaN(count) || 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 this.doAction(function (element, index) {\n return index < c\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n var skipping = true;\n return this.doAction(function (element, index) {\n if (skipping)\n skipping = predicate(element, index);\n return skipping\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.take = function (count) {\n if (!count || isNaN(count) || count < 0)\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return _;\n Integer_1.default.assert(count, \"count\");\n var c = count;\n return _.doAction(function (element, index) { return index < c; });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n });\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n });\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 });\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!count || isNaN(count) || 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 Utility_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.takeFromLast = function (count) {\n if (!count || isNaN(count) || count <= 0)\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _.reverse();\n Integer_1.default.assert(count, \"count\");\n return _.reverse().take(count);\n };\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\n var _ = this;\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 .fromArray(buffer)\n .selectMany(func);\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 Utility_1.dispose(enumerator);\n buffer.length = 0;\n });\n });\n };\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\n var _ = this;\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 enumerator = func(enumerator.current).getEnumerator();\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 Utility_1.dispose(enumerator);\n }\n finally {\n Utility_1.disposeThese(enumeratorStack);\n }\n });\n });\n };\n Enumerable.prototype.flatten = function () {\n var _ = this;\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 != null) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n if (Array.isArray(c)) {\n middleEnumerator.dispose();\n middleEnumerator = Enumerable.fromArray(c)\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(enumerator.current);\n }\n }\n return false;\n }\n }, function () {\n Utility_1.dispose(enumerator, middleEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n if (selector.length < 2)\n return new WhereSelectEnumerable(_, null, selector);\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 : false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n var _ = this;\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 Utility_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n if (predicate.length < 2)\n return new WhereEnumerable(_, predicate);\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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.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 .where(function (x) { return typeof x === typeName; });\n };\n Enumerable.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 Enumerable.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 Utility_1.dispose(enumerator);\n keys.clear();\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\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 (compareKey === key) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\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) {\n return index > 0\n && yielder.yieldReturn(buffer[--index]);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\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 _ = this;\n _.throwIfDisposed();\n var count = 0;\n if (predicate) {\n _.forEach(function (x, i) {\n if (predicate(x, i))\n ++count;\n });\n }\n else {\n _.forEach(function () {\n ++count;\n });\n }\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n var result = true;\n this.forEach(function (x) {\n if (!predicate(x)) {\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 var result = false;\n if (predicate) {\n this.forEach(function (x) {\n result = predicate(x);\n return !result;\n });\n }\n else {\n this.forEach(function () {\n result = true;\n return false;\n });\n }\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.isEmpty = function () {\n return !this.any();\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 if (compareSelector)\n this.forEach(function (element, i) {\n if (Values.areEqual(compareSelector(element), compareSelector(value), true)) {\n found = i;\n return false;\n }\n });\n else\n this.forEach(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 if (compareSelector)\n this.forEach(function (element, i) {\n if (Values.areEqual(compareSelector(element), compareSelector(value), true))\n result\n = i;\n });\n else\n this.forEach(function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\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) {\n return firstEnumerator.moveNext() && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n }, function () {\n Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\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 Utility_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(outerEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.concatWith = function (other) {\n var _ = this;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n return new EnumeratorBase_1.default(function () {\n firstEnumerator = _.getEnumerator();\n }, function (yielder) {\n if (firstEnumerator != null) {\n if (firstEnumerator.moveNext())\n return yielder.yieldReturn(firstEnumerator.current);\n secondEnumerator = Enumerator_1.from(other);\n firstEnumerator.dispose();\n firstEnumerator = null;\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n return false;\n }, function () {\n Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.prototype.merge = function (enumerables) {\n var _ = this;\n if (!enumerables.length)\n return _;\n if (enumerables.length == 1)\n return _.concatWith(enumerables[0]);\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 Utility_1.dispose(enumerator, queue);\n });\n });\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 var _ = this;\n if (enumerables.length == 0)\n return _;\n if (enumerables.length == 1)\n return _.concatWith(enumerables[0]);\n return _.merge(enumerables);\n };\n Enumerable.prototype.insertAt = function (index, other) {\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\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 Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator, alternateEnumerator);\n });\n });\n };\n Enumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n Enumerable.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 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 Enumerable.from(second)\n .forEach(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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return Utility_1.using(this.getEnumerator(), function (e1) { return Utility_1.using(Enumerable.from(second).getEnumerator(), function (e2) {\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.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\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 = Enumerable.from(second).getEnumerator();\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 Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\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.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _.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 Utility_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\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 sum = 0;\n var sumInfinite = 0;\n var count = 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 += value > 0 ? (+1) : (-1);\n ++count;\n });\n if (sumInfinite)\n return sumInfinite * Infinity;\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 += value > 0 ? (+1) : (-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) {\n exists = true;\n var value = selector(x);\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.elementAt = function (index) {\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x, i) {\n if (i == n) {\n value = x;\n found = true;\n return false;\n }\n });\n if (!found)\n throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\n return value;\n };\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x, i) {\n if (i == n) {\n value = x;\n found = true;\n return false;\n }\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.first = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n value = x;\n found = true;\n return false;\n });\n if (!found)\n throw new Error(\"first:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.firstOrDefault = 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 value = x;\n found = true;\n return false;\n });\n return (!found) ? defaultValue : value;\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.single = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n if (!found) {\n found = true;\n value = x;\n }\n else\n throw new Error(\"single:sequence contains more than one element.\");\n });\n if (!found)\n throw new Error(\"single:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.singleOrDefault = 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 if (!found) {\n found = true;\n value = x;\n }\n else\n throw new Error(\"single:sequence contains more than one element.\");\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return new EnumeratorBase_1.default(function () {\n if (!sharedEnumerator)\n sharedEnumerator = _.getEnumerator();\n }, function (yielder) {\n return sharedEnumerator.moveNext()\n && yielder.yieldReturn(sharedEnumerator.current);\n });\n }, function () {\n Utility_1.dispose(sharedEnumerator);\n });\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 Utility_1.dispose(enumerator);\n enumerator = null;\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n return Enumerable;\n })(DisposableBase_1.default);\n exports.Enumerable = Enumerable;\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 s = this.source;\n if (!s)\n return [];\n if (Array.isArray(s))\n return s.slice();\n var len = s.length, result = ArrayUtility.initialize(len);\n for (var i = 0; i < len; ++i) {\n result[i] = s[i];\n }\n return result;\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 var source = _._source;\n if (source) {\n for (var i = 0; i < source.length; ++i) {\n if (action(source[i], i) === false)\n break;\n }\n }\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source ? source.length : 0;\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 ? source.length : 0;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAt = function (index) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (index < source.length && index >= 0)\n ? source[index]\n : _super.prototype.elementAt.call(this, index);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (index < source.length && index >= 0)\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.first = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (source && source.length)\n ? source[0]\n : _super.prototype.first.call(this);\n };\n ArrayEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (source && source.length)\n ? source[0]\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 || count < 0)\n return _.asEnumerable();\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, len = _._source ? _._source.length : 0;\n return _.take(len - count);\n };\n ArrayEnumerable.prototype.takeFromLast = function (count) {\n if (!count || count < 0)\n return Enumerable.empty();\n var _ = this, 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 new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Array.isArray(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 })(Enumerable);\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 Utility_1.dispose(enumerator);\n });\n };\n return Lookup;\n })();\n var WhereEnumerable = (function (_super) {\n __extends(WhereEnumerable, _super);\n function WhereEnumerable(prevSource, prevPredicate) {\n _super.call(this, null);\n this.prevSource = prevSource;\n this.prevPredicate = prevPredicate;\n }\n WhereEnumerable.prototype.where = function (predicate) {\n if (predicate.length > 1)\n return _super.prototype.where.call(this, predicate);\n var prevPredicate = this.prevPredicate;\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\n return new WhereEnumerable(this.prevSource, composedPredicate);\n };\n WhereEnumerable.prototype.select = function (selector) {\n if (selector.length > 1)\n return _super.prototype.select.call(this, selector);\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector);\n };\n WhereEnumerable.prototype.getEnumerator = function () {\n var predicate = this.prevPredicate;\n var source = this.prevSource;\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = source.getEnumerator();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n };\n WhereEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.prevPredicate = null;\n this.prevSource = null;\n };\n return WhereEnumerable;\n })(Enumerable);\n var WhereSelectEnumerable = (function (_super) {\n __extends(WhereSelectEnumerable, _super);\n function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) {\n _super.call(this, null);\n this.prevSource = prevSource;\n this.prevPredicate = prevPredicate;\n this.prevSelector = prevSelector;\n }\n WhereSelectEnumerable.prototype.where = function (predicate) {\n if (predicate.length > 1)\n return _super.prototype.where.call(this, predicate);\n return new WhereEnumerable(this, predicate);\n };\n WhereSelectEnumerable.prototype.select = function (selector) {\n if (selector.length > 1)\n return _super.prototype.select.call(this, selector);\n var _ = this;\n var prevSelector = _.prevSelector;\n var composedSelector = function (x) { return selector(prevSelector(x)); };\n return new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\n };\n WhereSelectEnumerable.prototype.getEnumerator = function () {\n var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = source.getEnumerator();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var c = enumerator.current;\n if (predicate == null || predicate(c)) {\n return yielder.yieldReturn(selector(c));\n }\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n };\n WhereSelectEnumerable.prototype._onDispose = function () {\n var _ = this;\n _super.prototype._onDispose.call(this);\n _.prevPredicate = null;\n _.prevSource = null;\n _.prevSelector = null;\n };\n return WhereSelectEnumerable;\n })(Enumerable);\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 }\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 });\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 })(Enumerable);\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, className) {\n if (className === void 0) { className = \"Enumerable\"; }\n if (disposed)\n throw new ObjectDisposedException_1.default(className);\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'use strict'; // For compatibility with (let, const, function, class);\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 {from as enumeratorFrom, forEach as enumeratorForEach, isEnumerable} 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, disposeThese, using} from '../System/Disposable/Utility';\r\nimport DisposableBase from '../System/Disposable/DisposableBase';\r\nimport Exception from \"../System/Exception\";\r\nimport ArgumentException from '../System/Exceptions/ArgumentException';\r\nimport ObjectDisposedException from '../System/Disposable/ObjectDisposedException';\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\ntype Comparable = Primitive|IComparable;\r\n\r\n// #region Local Constants.\r\n\r\nconst VOID0:any = void 0;\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 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 DisposableBase implements IEnumerable\r\n{\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}\r\n\r\n\t/**\r\n\t * Static shortcut for creating an ArrayEnumerable.\r\n\t */\r\n\tstatic fromArray(array:IArray):Enumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(array);\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:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(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(Array.isArray(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(()=>source.getEnumerator());\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\r\n\tstatic toArray(source:IEnumerable | IArray):T[]\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Array.isArray(source))\r\n\t\t\t\treturn source.slice();\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\tsource = new ArrayEnumerable(>source);\r\n\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source.toArray();\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t{\r\n\t\t\t\tvar result:T[] = [];\r\n\t\t\t\tenumeratorForEach(\r\n\t\t\t\t\tsource.getEnumerator(), (e, i) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult[i] = e;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\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//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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(values[Integer.random(values.length)])\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0; // Let the compiler know this is an int.\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);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic empty():Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\tFunctions.False\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\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? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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)=> (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)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration does not break.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):Enumerable\r\n\t{\r\n\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic make(element:T):Enumerable\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\tstatic range(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new Enumerable(\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\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic rangeDown(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\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):Enumerable\r\n\t{\r\n\t\treturn Enumerable.range(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\treturn Enumerable.rangeDown(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number = 0,\r\n\t\tto:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(to))\r\n\t\t\tthrow new Error(\"Must have a valid 'to' value.\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\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\t// Range to infinity has a more efficient mechanism.\r\n\t\tif(!isFinite(to))\r\n\t\t\treturn Enumerable.range(start, Infinity, (start(\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 start(\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 result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t: 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 result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\treturn result;\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 matches(input:string, pattern:any, flags:string = \"\"):Enumerable\r\n\t{\r\n\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 Enumerable(\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, count:number = Infinity):Enumerable\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\r\n\t\t\t? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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\tvar current:number = index++;\r\n\t\t\t\t\t\treturn current(\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},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++))\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(seed:T, valueFactory:Selector, skipSeed:Boolean = false):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic defer(enumerableFactory:() => IEnumerable):Enumerable\r\n\t{\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 = enumerableFactory().getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> enumerator.moveNext() && yielder.yieldReturn(enumerator.current),\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\tstatic forEach(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\tif(enumerable)\r\n\t\t{\r\n\t\t\tusing(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tenumeratorForEach(e, action);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\r\n\t\treturn enumerable && using(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tvar result:TResult[] = [];\r\n\t\t\t\tenumeratorForEach(e, (e, i)=>\r\n\t\t\t\t{\r\n\t\t\t\t\tresult[i] = selector(e);\r\n\t\t\t\t});\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:Enumerable):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:Enumerable):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\t// #endregion\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Instance methods...\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\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\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\tvar result:T[] = [];\r\n\r\n\t\tif(predicate) return this.where(predicate).toArray();\r\n\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tresult[i] = x\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(() => _.getEnumerator());\r\n\t}\r\n\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=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x)] = elementSelector(x);\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=> dict.addByKeyValue(keySelector(x), elementSelector(x)));\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\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):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 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\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\t\t);\r\n\t}\r\n\r\n\tforce(defaultAction:EnumerableAction = EnumerableAction.Break):void\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tthis.doAction(element => defaultAction);\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!count || isNaN(count) || count<0) // Out of bounds? Simply return this.\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\r\n\t\tvar c:number = count;\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tvar skipping:boolean = true;\r\n\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(skipping)\r\n\t\t\t\t\tskipping = predicate(element, index);\r\n\r\n\t\t\t\treturn skipping\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttake(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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)) // +Infinity equals no limit.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = 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):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t}\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\r\n\t\tif(!count || isNaN(count) || count<=0) // Out of bounds? Empty.\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\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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 in reverse.\r\n\t\t\treturn _.reverse();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn _.reverse().take(count);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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 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.fromArray(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(func);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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\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\tvar 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\tenumerator = func(enumerator.current).getEnumerator();\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\tdisposeThese(enumeratorStack);\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\tflatten():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 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!=null)\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 = 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\tif(Array.isArray(c))\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 = Enumerable.fromArray(c)\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(enumerator.current);\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 false;\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\t\t\t\t);\r\n\t\t\t}\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\t\t\t\t);\r\n\t\t\t}\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\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\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(selector.length<2)\r\n\t\t\treturn new WhereSelectEnumerable(_, null, selector);\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: 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\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\r\n\tselectMany(collectionSelector:Selector>>):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector | IArray> | 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:any, middle:any) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a, b) => 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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tchoose(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\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\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(predicate.length<2)\r\n\t\t\treturn new WhereEnumerable(_, predicate);\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\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\r\n\t}\r\n\r\n\tofType(type:{ new (): TType }):Enumerable;\r\n\tofType(type:any):Enumerable\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.where(x=>typeof x===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerable,\r\n\t\tcompareSelector?:Selector):Enumerable\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\tEnumerable.forEach(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\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\tdistinct(compareSelector?:(value:T) => T):Enumerable\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] results in [0,1,2,0];\r\n\tdistinctUntilChanged(compareSelector?: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 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(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\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\treverse():Enumerable\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 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)=>\r\n\t\t\t\t\tindex>0\r\n\t\t\t\t\t&& 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\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\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar count:number = 0;\r\n\t\tif(predicate)\r\n\t\t{\r\n\t\t\t_.forEach((x, i) =>\r\n\t\t\t{\r\n\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\t++count;\r\n\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\tvar result = true;\r\n\t\tthis.forEach(x =>\r\n\t\t{\r\n\t\t\tif(!predicate(x))\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\tvar result = false;\r\n\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\tif(predicate)\r\n\t\t{\r\n\t\t\tthis.forEach(x =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x); // 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\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\tresult = true;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\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\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true)) result\r\n\t\t\t\t\t= i;\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):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 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)=>\r\n\t\t\t\t\tfirstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\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\tzipMultiple(\r\n\t\tsecond:IArray | IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\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\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerable | IArray,\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:IEnumerable | IArray,\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\tconcatWith(other:IEnumerable | IArray):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 firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator: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\tfirstEnumerator = _.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\tif(firstEnumerator!=null)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(firstEnumerator.moveNext()) return yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\t\tfirstEnumerator.dispose();\r\n\t\t\t\t\t\t\tfirstEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(secondEnumerator.moveNext()) return yielder.yieldReturn(secondEnumerator.current);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tmerge(enumerables:IArray | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!enumerables.length)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\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 | IArray>;\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 | IArray>(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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\r\n\r\n\t\treturn _.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tinsertAt(index:number, other:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerable | IArray):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\t\t\t\t);\r\n\t\t\t}\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\tintersect(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second)\r\n\t\t\t\t\t\t\t.forEach(key=>\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\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);\r\n\t\t\t\t\t}\r\n\t\t\t\t); // Should Dictionary be IDisposable?\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second).getEnumerator(),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\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:IEnumerable | IArray,\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\tunion(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\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 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);\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 = Enumerable.from(second).getEnumerator();\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\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 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\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>|Enumerable>\r\n\t{\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() => _.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\tbuffer(size:number):IEnumerable\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\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 sum = 0;\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\tvar count = 0; // No need to make integer if the result could be a float.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tfunction(x)\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 += value>0 ? (+1) : (-1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(sumInfinite) // Not zero?\r\n\t\t\treturn sumInfinite*Infinity;\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 += value>0 ? (+1) : (-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\tx=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\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\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// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (!found) ? defaultValue : value;\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 _ = 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\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"first:No element satisfies the condition.\");\r\n\t\treturn value;\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\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\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\tsingle():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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"single:No element satisfies the condition.\");\r\n\t\treturn value;\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\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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\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\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 new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n\r\n\t\t\t\t\t\tif(!sharedEnumerator)\r\n\t\t\t\t\t\t\tsharedEnumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tsharedEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(sharedEnumerator.current)\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\tdispose(sharedEnumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\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\t// #region Error Handling\r\n\tcatchError(handler:(e:Error) => void):Enumerable\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):Enumerable\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\r\n\r\nclass ArrayEnumerable\r\nextends Enumerable\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; // Could possibly 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 s = this.source;\r\n\t\tif(!s)\r\n\t\t\treturn [];\r\n\r\n\t\tif(Array.isArray(s))\r\n\t\t\treturn (s).slice();\r\n\r\n\t\tvar len = s.length, result:T[] = ArrayUtility.initialize(len);\r\n\t\tfor(let i = 0; i\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\tvar source = _._source;\r\n\t\tif(source)\r\n\t\t{\r\n\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\tfor(let i = 0; iaction(source[i], i)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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 ? source.length : 0;\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 ? source.length : 0;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: super.elementAt(index);\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\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: super.first();\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\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: defaultValue;\r\n\t}\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 source = _._source, len = source.length;\r\n\t\treturn (len)\r\n\t\t\t? source[len - 1]\r\n\t\t\t: super.last();\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 source = _._source, len = source.length;\r\n\t\treturn len\r\n\t\t\t? source[len - 1]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!count || count<0) // Out of bounds? Simply return a unfiltered enumerable.\r\n\t\t\treturn _.asEnumerable();\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, len = _._source ? _._source.length : 0;\r\n\t\treturn _.take(len - count);\r\n\t}\r\n\r\n\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || count<0) return Enumerable.empty();\r\n\r\n\t\tvar _ = this,\r\n\t\t 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 new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Array.isArray(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\nclass WhereEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate // predicate.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\tvar prevPredicate = this.prevPredicate;\r\n\t\tvar composedPredicate = (x:T) => prevPredicate(x) && predicate(x);\r\n\t\treturn new WhereEnumerable(this.prevSource, composedPredicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\treturn new WhereSelectEnumerable(\r\n\t\t\tthis.prevSource,\r\n\t\t\tthis.prevPredicate,\r\n\t\t\tselector\r\n\t\t);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar predicate = this.prevPredicate;\r\n\t\tvar source = this.prevSource;\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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(enumerator.current))\r\n\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.prevPredicate = null;\r\n\t\tthis.prevSource = null;\r\n\t}\r\n}\r\n\r\nclass WhereSelectEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate, // predicate.length always <= 1\r\n\t\tprivate prevSelector:Selector // selector.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:(value:T, index?:number) => boolean):Enumerable\r\n\t{\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\treturn new WhereEnumerable(this, predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t// if selector use index, can't compose\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prevSelector = _.prevSelector;\r\n\t\tvar composedSelector = (x:TSource) => selector(prevSelector(x));\r\n\t\treturn new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t predicate = _.prevPredicate,\r\n\t\t source = _.prevSource,\r\n\t\t selector:Selector = _.prevSelector, // Type definition needed for correct inference.\r\n\t\t 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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\tif(predicate==null || predicate(c))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selector(c));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tsuper._onDispose();\r\n\t\t_.prevPredicate = null;\r\n\t\t_.prevSource = null;\r\n\t\t_.prevSelector = null;\r\n\t}\r\n}\r\n\r\nexport interface IOrderedEnumerable\r\nextends Enumerable\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 Enumerable 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}\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\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/**\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, className:string = \"Enumerable\"):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(className);\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.js b/dist/amd/System/Collections/Array/Compare.js index 9164cdf2..2666ebba 100644 --- a/dist/amd/System/Collections/Array/Compare.js +++ b/dist/amd/System/Collections/Array/Compare.js @@ -1,6 +1,2 @@ -/* - * @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){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)return null;if(Array.isArray(r))return r.slice();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}); //# 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 d1cdf34f..8c3cb3ec 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","areAllEqual","arrays","strict","equalityComparer","areEqual","copyAndSort","comparer","areEquivalent"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,gBAAiB,eAAgB,SAAUC,EAASC,EAASC,EAAQC,GCWnG,QAAAC,GAAsBC,EAAeC,GAGpCF,GAAGA,GAAKA,GAAKA,IAAIA,IAAMA,IAAMA,EAC5BA,OAAOA,CAGRA,KAAIA,IAAMA,EACTA,OAAOA,CAERA,IAAIA,GAAMA,EAAEA,MACZA,OAAGA,KAAMA,EAAEA,QACHA,EAGCA,IAANA,GACKA,EAGDA,EAGR,QAAAG,GACCC,EACAC,EACAC,GAEAH,GAFAA,SAAAA,IAAAA,EAA2CA,EAAOA,WAE9CA,EACHA,KAAMA,IAAIA,OAAMA,kDACjBA,IAAGA,EAAOA,OAAOA,EAChBA,KAAMA,IAAIA,OAAMA,8CAEjBA,KAAIA,GADAA,GAAQA,EAAOA,GACXA,EAAIA,EAAGA,EAAIA,EAAOA,OAAUA,EAAFA,IAAOA,EAExCA,IAAIA,EAASA,EAAOA,EAAOA,GAAIA,EAAQA,GACtCA,OAAOA,CAETA,QAAOA,EAGR,QAAAI,GACCN,EAAaC,EACbG,EACAC,GAAAC,SAAAA,IAAAA,EAAyCA,EAAOA,SAEhDA,IAAIA,GAAMA,EAAaA,EAAGA,EAC1BA,IAAGA,EAAAA,WAAKA,UAAUA,GAAMA,MAAgBA,EAExCA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,IAASA,EAEvBA,IAAIA,EAAiBA,EAAEA,GAAIA,EAAEA,GAAIA,GAChCA,OAAOA,CAGTA,QAAOA,EAIR,QAAAC,GAAwBP,EAAaQ,GAEpCD,IAAIA,EAAGA,MAAOA,KACdA,IAAGA,MAAMA,QAAQA,GAAIA,MAAkBA,GAAGA,OAC1CA,IAAoBA,GAAhBA,EAAMA,EAAEA,MACTA,GAAIA,MAAOA,EAAIA,GAAIA,OAAMA,IAG3BA,KACAA,EAAEA,OAASA,EAEZA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,EAAOA,IAAKA,EAAEA,GAAKA,EAAEA,EAEpCA,OADAA,GAAEA,KAAKA,GACAA,EAMR,QAAAE,GACCT,EAAaC,EACbO,GAAAC,SAAAA,IAAAA,EAAyBA,EAAOA,QAEhCA,IAAIA,GAAMA,EAAaA,EAAGA,EAC1BA,IAAGA,EAAAA,WAAKA,UAAUA,GAAMA,MAAgBA,EAIxCA,GAAIA,EAAYA,EAAGA,GACnBA,EAAIA,EAAYA,EAAGA,EAEnBA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,IAASA,EAEvBA,GAA0BA,IAAvBA,EAASA,EAAEA,GAAIA,EAAEA,IACnBA,OAAOA,CAGTA,QAAOA,EAzEQb,EAAAM,YAAWA,EAkBXN,EAAAU,SAAQA,EAqCRV,EAAAa,cAAaA","file":"System/Collections/Array/Compare.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../../Types'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var Types_1 = require('../../Types');\r\n function validateSize(a, b) {\r\n if (a && b && a === b || !a && !b)\r\n return true;\r\n if (!a || !b)\r\n return false;\r\n var len = a.length;\r\n if (len !== b.length)\r\n return false;\r\n if (len === 0)\r\n return true;\r\n return len;\r\n }\r\n function areAllEqual(arrays, strict, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n if (!arrays)\r\n throw new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n if (arrays.length < 2)\r\n throw new Error(\"Cannot compare a set of arrays less than 2.\");\r\n var first = arrays[0];\r\n for (var i = 0, l = arrays.length; i < l; ++i) {\r\n if (!areEqual(first, arrays[i], strict, equalityComparer))\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areAllEqual = areAllEqual;\r\n function areEqual(a, b, strict, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n var len = validateSize(a, b);\r\n if (Types_1.default.isBoolean(len))\r\n return len;\r\n for (var i = 0; i < len; ++i) {\r\n if (!equalityComparer(a[i], b[i], strict))\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areEqual = areEqual;\r\n function copyAndSort(a, comparer) {\r\n if (!a)\r\n return null;\r\n if (Array.isArray(a))\r\n return a.slice();\r\n var len = a.length, b;\r\n if (len > 65536)\r\n b = new Array(len);\r\n else {\r\n b = [];\r\n b.length = len;\r\n }\r\n for (var i = 0; i < len; i++)\r\n b[i] = a[i];\r\n b.sort(comparer);\r\n return b;\r\n }\r\n function areEquivalent(a, b, comparer) {\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n var len = validateSize(a, b);\r\n if (Types_1.default.isBoolean(len))\r\n return len;\r\n a = copyAndSort(a, comparer);\r\n b = copyAndSort(b, comparer);\r\n for (var i = 0; i < len; ++i) {\r\n if (comparer(a[i], b[i]) !== 0)\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areEquivalent = areEquivalent;\r\n});\r\n//# sourceMappingURL=Compare.js.map","/*\r\n * @author 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):T[]\r\n{\r\n\tif(!a) return null;\r\n\tif(Array.isArray(a)) return (>a).slice();\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536) b = 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 = copyAndSort(a, comparer);\r\n\tb = copyAndSort(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 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 = copyAndSort(a, comparer);\n b = copyAndSort(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):T[]\r\n{\r\n\tif(!a) return null;\r\n\tif(Array.isArray(a)) return (>a).slice();\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536) b = 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 = copyAndSort(a, comparer);\r\n\tb = copyAndSort(b, comparer);\r\n\r\n\tfor(let i = 0; in})}function a(n,r){return void 0===r&&(r=!1),u(n,-(1/0),r,function(n,r){return n>r})}r.sum=e,r.average=i,r.product=t,r.min=N,r.max=a}); //# sourceMappingURL=Procedure.js.map diff --git a/dist/amd/System/Collections/Array/Procedure.js.map b/dist/amd/System/Collections/Array/Procedure.js.map index 4032b76b..182d871d 100644 --- a/dist/amd/System/Collections/Array/Procedure.js.map +++ b/dist/amd/System/Collections/Array/Procedure.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Procedure.js","System/Collections/Array/Procedure.ts"],"names":["define","require","exports","sum","source","ignoreNaN","average","product","ifSet","start","predicate","min","max"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCElD,QAAAC,GAAoBC,EAAiBC,GAEpCF,GAFoCA,SAAAA,IAAAA,GAAAA,IAEhCA,IAAWA,EAAOA,OACrBA,MAAOA,EAERA,IAAIA,GAASA,CAabA,OAZGA,GACFA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAAIA,GAAUA,KAGzBA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,KAGTA,EAGR,QAAAG,GAAwBF,EAAiBC,GAExCC,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAgBA,GAAZA,EAASA,CAyBbA,OAxBGA,IAEFA,EAAQA,EACRA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACVA,SAOFA,EAAQA,EAAOA,OACfA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,OAKPA,GAASA,MAAMA,GAAWA,IAAOA,EAAOA,EAGlD,QAAAC,GAAwBH,EAAiBC,GAExCE,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGRA,GAAUA,GAEHA,IAITA,OAAOA,GAGR,QAAAC,GACCJ,EACAK,EACAJ,EACAK,GAEAF,IAAIA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAENA,EAAUA,EAAGA,KACfA,EAASA,GACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGLA,EAAUA,EAAGA,KACfA,EAASA,IAEHA,IAGTA,OAAOA,GAIR,QAAAG,GAAoBP,EAAiBC,GAEpCM,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAEA,GAAFA,IAG3D,QAAAC,GAAoBR,EAAiBC,GAEpCO,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAAA,GAAEA,IAnJ7CV,EAAAC,IAAGA,EAqBHD,EAAAI,QAAOA,EAiCPJ,EAAAK,QAAOA,EAsFPL,EAAAS,IAAGA,EAKHT,EAAAU,IAAGA","file":"System/Collections/Array/Procedure.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function sum(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return 0;\r\n var result = 0;\r\n if (ignoreNaN)\r\n source.forEach(function (n) {\r\n if (!isNaN(n))\r\n result += n;\r\n });\r\n else\r\n source.every(function (n) {\r\n result += n;\r\n return !isNaN(result);\r\n });\r\n return result;\r\n }\r\n exports.sum = sum;\r\n function average(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = 0, count;\r\n if (ignoreNaN) {\r\n count = 0;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n result += n;\r\n count++;\r\n }\r\n });\r\n }\r\n else {\r\n count = source.length;\r\n source.every(function (n) {\r\n result += n;\r\n return !isNaN(result);\r\n });\r\n }\r\n return (!count || isNaN(result)) ? NaN : (result / count);\r\n }\r\n exports.average = average;\r\n function product(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = 1;\r\n if (ignoreNaN) {\r\n var found = false;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n result *= n;\r\n if (!found)\r\n found = true;\r\n }\r\n });\r\n if (!found)\r\n result = NaN;\r\n }\r\n else {\r\n source.every(function (n) {\r\n if (isNaN(n)) {\r\n result = NaN;\r\n return false;\r\n }\r\n result *= n;\r\n return true;\r\n });\r\n }\r\n return result;\r\n }\r\n exports.product = product;\r\n function ifSet(source, start, ignoreNaN, predicate) {\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = start;\r\n if (ignoreNaN) {\r\n var found = false;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n if (predicate(n, result))\r\n result = n;\r\n if (!found)\r\n found = true;\r\n }\r\n });\r\n if (!found)\r\n result = NaN;\r\n }\r\n else {\r\n source.every(function (n) {\r\n if (isNaN(n)) {\r\n result = NaN;\r\n return false;\r\n }\r\n if (predicate(n, result))\r\n result = n;\r\n return true;\r\n });\r\n }\r\n return result;\r\n }\r\n function min(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n return ifSet(source, +Infinity, ignoreNaN, function (n, result) { return n < result; });\r\n }\r\n exports.min = min;\r\n function max(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n return ifSet(source, -Infinity, ignoreNaN, function (n, result) { return n > result; });\r\n }\r\n exports.max = max;\r\n});\r\n//# sourceMappingURL=Procedure.js.map","/*\r\n * @author 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\nexport function sum(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn 0;\r\n\r\n\tvar result = 0;\r\n\tif(ignoreNaN)\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n)) result += n;\r\n\t\t});\r\n\telse\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\treturn result;\r\n}\r\n\r\nexport function average(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 0, count:number;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tcount = 0;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult += n;\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\telse\r\n\t{\r\n\t\tcount = source.length;\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treturn (!count || isNaN(result)) ? NaN : (result/count);\r\n}\r\n\r\nexport function product(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 1;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult *= n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tresult *= n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction ifSet(\r\n\tsource:number[],\r\n\tstart:number,\r\n\tignoreNaN:boolean,\r\n\tpredicate:(n:number, result:number) => boolean)\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = start;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tif(predicate(n, result))\r\n\t\t\t\t\tresult = n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif(predicate(n, result))\r\n\t\t\t\tresult = n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\treturn result;\r\n\r\n}\r\n\r\nexport function min(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\treturn ifSet(source, +Infinity, ignoreNaN, (n, result) => n n>result);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Procedure.js","System/Collections/Array/Procedure.ts"],"names":["define","require","exports","sum","source","ignoreNaN","average","product","ifSet","start","predicate","min","max"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCMlD,QAAAC,GAAoBC,EAAiBC,GAEpCF,GAFoCA,SAAAA,IAAAA,GAAAA,IAEhCA,IAAWA,EAAOA,OACrBA,MAAOA,EAERA,IAAIA,GAASA,CAabA,OAZGA,GACFA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAAIA,GAAUA,KAGzBA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,KAGTA,EAGR,QAAAG,GAAwBF,EAAiBC,GAExCC,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAgBA,GAAZA,EAASA,CAyBbA,OAxBGA,IAEFA,EAAQA,EACRA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACVA,SAOFA,EAAQA,EAAOA,OACfA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,OAKPA,GAASA,MAAMA,GAAWA,IAAOA,EAAOA,EAGlD,QAAAC,GAAwBH,EAAiBC,GAExCE,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGRA,GAAUA,GAEHA,IAITA,OAAOA,GAGR,QAAAC,GACCJ,EACAK,EACAJ,EACAK,GAEAF,IAAIA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAENA,EAAUA,EAAGA,KACfA,EAASA,GACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGLA,EAAUA,EAAGA,KACfA,EAASA,IAEHA,IAGTA,OAAOA,GAIR,QAAAG,GAAoBP,EAAiBC,GAEpCM,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAEA,GAAFA,IAG3D,QAAAC,GAAoBR,EAAiBC,GAEpCO,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAAA,GAAEA,IAnJ7CV,EAAAC,IAAGA,EAqBHD,EAAAI,QAAOA,EAiCPJ,EAAAK,QAAOA,EAsFPL,EAAAS,IAAGA,EAKHT,EAAAU,IAAGA","file":"System/Collections/Array/Procedure.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\n function sum(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return 0;\n var result = 0;\n if (ignoreNaN)\n source.forEach(function (n) {\n if (!isNaN(n))\n result += n;\n });\n else\n source.every(function (n) {\n result += n;\n return !isNaN(result);\n });\n return result;\n }\n exports.sum = sum;\n function average(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return NaN;\n var result = 0, count;\n if (ignoreNaN) {\n count = 0;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n result += n;\n count++;\n }\n });\n }\n else {\n count = source.length;\n source.every(function (n) {\n result += n;\n return !isNaN(result);\n });\n }\n return (!count || isNaN(result)) ? NaN : (result / count);\n }\n exports.average = average;\n function product(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return NaN;\n var result = 1;\n if (ignoreNaN) {\n var found = false;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n result *= n;\n if (!found)\n found = true;\n }\n });\n if (!found)\n result = NaN;\n }\n else {\n source.every(function (n) {\n if (isNaN(n)) {\n result = NaN;\n return false;\n }\n result *= n;\n return true;\n });\n }\n return result;\n }\n exports.product = product;\n function ifSet(source, start, ignoreNaN, predicate) {\n if (!source || !source.length)\n return NaN;\n var result = start;\n if (ignoreNaN) {\n var found = false;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n if (predicate(n, result))\n result = n;\n if (!found)\n found = true;\n }\n });\n if (!found)\n result = NaN;\n }\n else {\n source.every(function (n) {\n if (isNaN(n)) {\n result = NaN;\n return false;\n }\n if (predicate(n, result))\n result = n;\n return true;\n });\n }\n return result;\n }\n function min(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n return ifSet(source, +Infinity, ignoreNaN, function (n, result) { return n < result; });\n }\n exports.min = min;\n function max(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n return ifSet(source, -Infinity, ignoreNaN, function (n, result) { return n > result; });\n }\n exports.max = max;\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\nexport function sum(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn 0;\r\n\r\n\tvar result = 0;\r\n\tif(ignoreNaN)\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n)) result += n;\r\n\t\t});\r\n\telse\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\treturn result;\r\n}\r\n\r\nexport function average(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 0, count:number;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tcount = 0;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult += n;\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\telse\r\n\t{\r\n\t\tcount = source.length;\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treturn (!count || isNaN(result)) ? NaN : (result/count);\r\n}\r\n\r\nexport function product(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 1;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult *= n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tresult *= n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction ifSet(\r\n\tsource:number[],\r\n\tstart:number,\r\n\tignoreNaN:boolean,\r\n\tpredicate:(n:number, result:number) => boolean)\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = start;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tif(predicate(n, result))\r\n\t\t\t\t\tresult = n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif(predicate(n, result))\r\n\t\t\t\tresult = n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\treturn result;\r\n\r\n}\r\n\r\nexport function min(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\treturn ifSet(source, +Infinity, ignoreNaN, (n, result) => n n>result);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Array/Sort.js b/dist/amd/System/Collections/Array/Sort.js index ee638513..d38d0fd0 100644 --- a/dist/amd/System/Collections/Array/Sort.js +++ b/dist/amd/System/Collections/Array/Sort.js @@ -1,6 +1,2 @@ -/* - * @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,n){function t(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=t(r(f)),N=t(r(o)),d=Math.min(l.length,N.length),s=Array.isArray(e)?e:null,c=0;d>c;c++){var v=l[c],y=N[c],p=s?c\r\n var Types_1 = require('../../Types');\r\n var Compare_1 = require('../../Compare');\r\n function ensureArray(value) {\r\n return Array.isArray(value)\r\n ? value\r\n : [value];\r\n }\r\n function createComparer(selector, order, equivalentToNaN) {\r\n if (order === void 0) { order = 1; }\r\n if (equivalentToNaN === void 0) { equivalentToNaN = NaN; }\r\n var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN);\r\n return function (a, b) {\r\n var aValue = ensureArray(selector(a));\r\n var bValue = ensureArray(selector(b));\r\n var len = Math.min(aValue.length, bValue.length);\r\n var oArray = Array.isArray(order) ? order : null;\r\n for (var i = 0; i < len; i++) {\r\n var vA = aValue[i], vB = bValue[i], o = oArray\r\n ? (i < oArray.length ? oArray[i] : 1)\r\n : order;\r\n if (nanHasEquivalent) {\r\n if (Types_1.default.isTrueNaN(vA))\r\n vA = equivalentToNaN;\r\n if (Types_1.default.isTrueNaN(vB))\r\n vB = equivalentToNaN;\r\n }\r\n var r = Compare_1.compare(vA, vB);\r\n if (r !== 0)\r\n return o * r;\r\n }\r\n return 0;\r\n };\r\n }\r\n exports.createComparer = createComparer;\r\n exports.default = createComparer;\r\n exports.by = createComparer;\r\n});\r\n//# sourceMappingURL=Sort.js.map","/*\r\n * @author 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 {compare,CompareResult} from '../../Compare';\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 +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["define","require","exports","Types_1","Compare_1","ensureArray","value","createComparer","selector","order","equivalentToNaN","by"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,cAAe,iBAAkB,SAAUC,EAASC,EAASC,EAASC,GCYpG,QAAAC,GAAwBC,GAEvBD,MAAOA,OAAMA,QAAQA,GACbA,GACDA,GA0BR,QAAAE,GACCC,EACAC,EACAC,GADAH,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,IAEAA,IAAIA,IAAoBA,EAAAA,WAAKA,UAAUA,EAEvCA,OAAOA,UAACA,EAAqBA,GAQ5BA,IAAIA,GALAA,GAASA,EAAYA,EAASA,IAC9BA,EAASA,EAAYA,EAASA,IAC9BA,EAAMA,KAAKA,IAAIA,EAAOA,OAAQA,EAAOA,QAErCA,EAAiBA,MAAMA,QAAQA,GAASA,EAAQA,KAC5CA,EAAIA,EAAKA,EAAFA,EAAOA,IACtBA,CACCA,GAAIA,GAAKA,EAAOA,GAAIA,EAAKA,EAAOA,GAC5BA,EAAKA,EACDA,EAAEA,EAAOA,OAASA,EAAOA,GAAKA,EACxBA,CAEXA,KAECA,EAAAA,WAAKA,UAAUA,KACjBA,EAAKA,GACHA,EAAAA,WAAKA,UAAUA,KACjBA,EAAKA,GAIPA,IAAIA,GAAIA,EAAAA,QAAQA,EAAIA,EACpBA,IAAOA,IAAJA,EACFA,MAAOA,GAAEA,EAIXA,MAAOA,IArCOL,EAAAK,eAAcA,EA0CXL,EAAAA,WAAOK,EACPL,EAAAS,GAAEJ","file":"System/Collections/Array/Sort.js","sourcesContent":["define([\"require\", \"exports\", '../../Types', '../../Compare'], function (require, exports, Types_1, Compare_1) {\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.default.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.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 }\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\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 diff --git a/dist/amd/System/Collections/Array/Utility.js b/dist/amd/System/Collections/Array/Utility.js index 33ec5820..e311bf60 100644 --- a/dist/amd/System/Collections/Array/Utility.js +++ b/dist/amd/System/Collections/Array/Utility.js @@ -1,6 +1,2 @@ -/* - * @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,a,i,o,f){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?h(e,u(Math.min(n,Math.max(e.length-t,0))),t,0,n):e}function h(e,t,n,r,a){if(void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=1/0),!e)throw new o["default"]("source",I);if(!t)throw new o["default"]("destination",I);if(0>n)throw new f["default"]("sourceIndex",n,M);var i=e.length;if(n>=i)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,M);var u=e.length-n;if(isFinite(a)&&a>u)throw new f["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");a=Math.min(a,u);for(var l=0;a>l;++l)t[r+l]=e[n+l];return t}function d(e,t,n){if(void 0===n&&(n=a.areEqual),e&&e.length){if(Array.isArray(e))return-1!=e.indexOf(t);for(var r=0;rr)throw new f["default"]("max",r,M)}else r=1/0;for(var i=e.length-1;i>=0&&(e[i]!==t||(e[i]=n,++a,--r));--i);}return a}function s(e,t,n,a){r["default"].assert(n,"index"),r["default"].assert(n,"length");for(var i=n+a,o=n;i>o;++o)e[o]=t}function w(e,t,n){s(e,null,t,n)}function v(e,t,n){if(void 0===n&&(n=a.areEqual),!e)throw new o["default"]("array",I);var r=e.length,i=!r||!d(e,t,n);return i&&(e[r]=t),i}function g(e,t){if(!e)throw new o["default"]("array",I);if(!n["default"].isFunction(t))throw new i["default"]("predicate","Must be a function.");for(var r=e.length,a=0;r>a;++a)if(a in e&&t(e[a]))return a;return-1}function p(e,t){if(!e)throw new o["default"]("source",I);if(t)for(var n=0;nt)throw new f["default"]("index",t,M);var n=tn)throw new f["default"]("max",n,M)}else n=1/0;for(var u=e.length-1;u>=0&&(!r(e[u],t)||(e.splice(u,1),++i,--n));--u);}return i}function E(e,t){if(r["default"].assert(t,"count"),0>t)throw new f["default"]("count",t,M);for(var n=[];t--;)n.push(e);return n}function A(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(a=A(a,t-1));for(var i=0;i65536?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?h(e,u(Math.min(n,Math.max(e.length-t,0))),t,0,n):e}function h(e,t,n,r,a){if(void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=1/0),!e)throw new f["default"]("source",q);if(!t)throw new f["default"]("destination",q);if(0>n)throw new o["default"]("sourceIndex",n,F);var i=e.length;if(n>=i)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,F);var u=e.length-n;if(isFinite(a)&&a>u)throw new o["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");a=Math.min(a,u);for(var l=0;a>l;++l)t[r+l]=e[n+l];return t}function d(e,t,n){if(void 0===n&&(n=a.areEqual),e&&e.length){if(Array.isArray(e))return-1!=e.indexOf(t);for(var r=0;rr)throw new o["default"]("max",r,F)}else r=1/0;for(var i=e.length-1;i>=0&&(e[i]!==t||(e[i]=n,++a,--r));--i);}return a}function s(e,t,n,a){r["default"].assert(n,"index"),r["default"].assert(n,"length");for(var i=n+a,f=n;i>f;++f)e[f]=t}function v(e,t,n){s(e,null,t,n)}function w(e,t,n){if(void 0===n&&(n=a.areEqual),!e)throw new f["default"]("array",q);var r=e.length,i=!r||!d(e,t,n);return i&&(e[r]=t),i}function g(e,t){if(!e)throw new f["default"]("array",q);if(!n["default"].isFunction(t))throw new i["default"]("predicate","Must be a function.");for(var r=e.length,a=0;r>a;++a)if(a in e&&t(e[a]))return a;return-1}function p(e,t){if(!e)throw new f["default"]("source",q);if(t)for(var n=0;nt)throw new o["default"]("index",t,F);var n=tn)throw new o["default"]("max",n,F)}else n=1/0;for(var u=e.length-1;u>=0&&(!r(e[u],t)||(e.splice(u,1),++i,--n));--u);}return i}function E(e,t){if(r["default"].assert(t,"count"),0>t)throw new o["default"]("count",t,F);for(var n=[];t--;)n.push(e);return n}function A(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(a=A(a,t-1));for(var i=0;ia;a++){var f=e[a];if(f)try{f(t)}catch(o){if(!r)throw o;n["default"].isFunction(r)&&r(o,a)}}}function M(e,t,n){I(l(e),t,n)}function b(e,t,r){if(!e)return null;var a=l(e);if(e.length)for(var i=0,f=a.length;f>i;i++){var o=a[i];try{a[i]=o?o(t):void 0}catch(u){if(a[i]=void 0,!r)throw u;n["default"].isFunction(r)&&r(u,i)}}return a}t.initialize=u,t.copy=l;var q="Cannot be null.",F="Cannot be less than zero.";t.copyTo=h,t.contains=d,t.replace=c,t.updateRange=s,t.clear=v,t.register=w,t.findIndex=g,t.forEach=p,t.applyTo=x,t.removeIndex=y,t.remove=m,t.repeat=E,t.flatten=A,t.dispatchUnsafe=I,t.dispatch=M,t.dispatchMapped=b}); //# sourceMappingURL=Utility.js.map diff --git a/dist/amd/System/Collections/Array/Utility.js.map b/dist/amd/System/Collections/Array/Utility.js.map index 30657d71..b6f5bcae 100644 --- a/dist/amd/System/Collections/Array/Utility.js.map +++ b/dist/amd/System/Collections/Array/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Utility.js","System/Collections/Array/Utility.ts"],"names":["define","require","exports","Types_1","Integer_1","Compare_1","ArgumentException_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","initialize","length","copy","source","sourceIndex","copyTo","destination","destinationIndex","contains","array","item","equalityComparer","replace","old","newValue","max","updateRange","value","index","clear","register","findIndex","predicate","forEach","fn","applyTo","target","removeIndex","remove","repeat","element","count","flatten","a","recurseDepth","CBN","CBL0"],"mappings":"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","file":"System/Collections/Array/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../../Types');\r\n var Integer_1 = require('../../Integer');\r\n var Compare_1 = require('../../Compare');\r\n var ArgumentException_1 = require('../../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException');\r\n var ArgumentOutOfRangeException_1 = require('../../Exceptions/ArgumentOutOfRangeException');\r\n function initialize(length) {\r\n Integer_1.default.assert(length, 'length');\r\n var array;\r\n if (length > 65536)\r\n array = new Array(length);\r\n else {\r\n array = [];\r\n array.length = length;\r\n }\r\n return array;\r\n }\r\n exports.initialize = initialize;\r\n function copy(source, sourceIndex, length) {\r\n if (sourceIndex === void 0) { sourceIndex = 0; }\r\n if (length === void 0) { length = Infinity; }\r\n if (!source)\r\n return source;\r\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\r\n }\r\n exports.copy = copy;\r\n var CBN = 'Cannot be null.', CBL0 = 'Cannot be less than zero.';\r\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\r\n if (sourceIndex === void 0) { sourceIndex = 0; }\r\n if (destinationIndex === void 0) { destinationIndex = 0; }\r\n if (length === void 0) { length = Infinity; }\r\n if (!source)\r\n throw new ArgumentNullException_1.default('source', CBN);\r\n if (!destination)\r\n throw new ArgumentNullException_1.default('destination', CBN);\r\n if (sourceIndex < 0)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0);\r\n var sourceLength = source.length;\r\n if (sourceIndex >= sourceLength)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n if (destination.length < 0)\r\n throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0);\r\n var maxLength = source.length - sourceIndex;\r\n if (isFinite(length) && length > maxLength)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n length = Math.min(length, maxLength);\r\n for (var i = 0; i < length; ++i) {\r\n destination[destinationIndex + i] = source[sourceIndex + i];\r\n }\r\n return destination;\r\n }\r\n exports.copyTo = copyTo;\r\n function contains(array, item, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (array && array.length) {\r\n if (Array.isArray(array))\r\n return array.indexOf(item) != -1;\r\n for (var i = 0; i < array.length; ++i) {\r\n if (equalityComparer(array[i], item))\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n exports.contains = contains;\r\n function replace(array, old, newValue, max) {\r\n var count = 0;\r\n if (max !== 0) {\r\n if (!max)\r\n max = Infinity;\r\n else if (max < 0)\r\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\r\n for (var i = (array.length - 1); i >= 0; --i) {\r\n if (array[i] === old) {\r\n array[i] = newValue;\r\n ++count;\r\n if (!--max)\r\n break;\r\n }\r\n }\r\n }\r\n return count;\r\n }\r\n exports.replace = replace;\r\n function updateRange(array, value, index, length) {\r\n Integer_1.default.assert(index, 'index');\r\n Integer_1.default.assert(index, 'length');\r\n var end = index + length;\r\n for (var i = index; i < end; ++i) {\r\n array[i] = value;\r\n }\r\n }\r\n exports.updateRange = updateRange;\r\n function clear(array, index, length) {\r\n updateRange(array, null, index, length);\r\n }\r\n exports.clear = clear;\r\n function register(array, item, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n var len = array.length;\r\n var ok = !len || !contains(array, item, equalityComparer);\r\n if (ok)\r\n array[len] = item;\r\n return ok;\r\n }\r\n exports.register = register;\r\n function findIndex(array, predicate) {\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n if (!Types_1.default.isFunction(predicate))\r\n throw new ArgumentException_1.default('predicate', 'Must be a function.');\r\n var len = array.length;\r\n for (var i = 0; i < len; ++i) {\r\n if ((i) in (array) && predicate(array[i]))\r\n return i;\r\n }\r\n return -1;\r\n }\r\n exports.findIndex = findIndex;\r\n function forEach(source, fn) {\r\n if (!source)\r\n throw new ArgumentNullException_1.default('source', CBN);\r\n if (fn) {\r\n for (var i = 0; i < source.length; ++i) {\r\n if (fn(source[i]) === false)\r\n break;\r\n }\r\n }\r\n return source;\r\n }\r\n exports.forEach = forEach;\r\n function applyTo(target, fn) {\r\n if (!target)\r\n throw new ArgumentNullException_1.default('target', CBN);\r\n if (fn) {\r\n for (var i = 0; i < target.length; ++i) {\r\n target[i] = fn(target[i]);\r\n }\r\n }\r\n return target;\r\n }\r\n exports.applyTo = applyTo;\r\n function removeIndex(array, index) {\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n Integer_1.default.assert(index, 'index');\r\n if (index < 0)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, CBL0);\r\n var exists = index < array.length;\r\n if (exists)\r\n array.splice(index, 1);\r\n return exists;\r\n }\r\n exports.removeIndex = removeIndex;\r\n function remove(array, value, max, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n var count = 0;\r\n if (array && array.length && max !== 0) {\r\n if (!max)\r\n max = Infinity;\r\n else if (max < 0)\r\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\r\n for (var i = (array.length - 1); i >= 0; --i) {\r\n if (equalityComparer(array[i], value)) {\r\n array.splice(i, 1);\r\n ++count;\r\n if (!--max)\r\n break;\r\n }\r\n }\r\n }\r\n return count;\r\n }\r\n exports.remove = remove;\r\n function repeat(element, count) {\r\n Integer_1.default.assert(count, 'count');\r\n if (count < 0)\r\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\r\n var result = [];\r\n while (count--) {\r\n result.push(element);\r\n }\r\n return result;\r\n }\r\n exports.repeat = repeat;\r\n function flatten(a, recurseDepth) {\r\n if (recurseDepth === void 0) { recurseDepth = 0; }\r\n var result = [];\r\n for (var i = 0; i < a.length; i++) {\r\n var x = a[i];\r\n if (Array.isArray(x)) {\r\n if (recurseDepth > 0)\r\n x = flatten(x, recurseDepth - 1);\r\n for (var n = 0; n < x.length; n++)\r\n result.push(x[n]);\r\n }\r\n else\r\n result.push(x);\r\n }\r\n return result;\r\n }\r\n exports.flatten = flatten;\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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):IArray\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\tCBL0 = 'Cannot be less than zero.';\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:IArray,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):IArray\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(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\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(array && array.length)\r\n\t{\r\n\r\n\t\tif(Array.isArray(array)) return array.indexOf(item)!= -1;\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\r\n\tvar count = 0;\r\n\tif(max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\t\tfor(let i = (array.length - 1); i>=0; --i)\r\n\t\t{\r\n\t\t\tif(array[i]===old)\r\n\t\t\t{\r\n\t\t\t\tarray[i] = newValue;\r\n\t\t\t\t++count;\r\n\t\t\t\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn count;\r\n\r\n}\r\n\r\n/**\r\n * Replaces values of an array across a range of indexes.\r\n * @param array\r\n * @param value\r\n * @param index\r\n * @param length\r\n */\r\nexport function updateRange(\r\n\tarray:T[],\r\n\tvalue:T,\r\n\tindex:number,\r\n\tlength:number):void\r\n{\r\n\tInteger.assert(index, 'index');\r\n\tInteger.assert(index, 'length');\r\n\r\n\tvar end = index + length;\r\n\tfor(let i:number = index; i(\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\tvar len = array.length;\r\n\tfor(let i = 0; i}\r\n */\r\nexport function forEach(\r\n\tsource:IArray,\r\n\tfn:(value:T, index?:number) => (void|boolean)):IArray\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(fn)\r\n\t{\r\n\t\tfor(let i = 0; i}\r\n */\r\nexport function applyTo(target:IArray, fn:(a:T) => T):IArray\r\n{\r\n\tif(!target)\r\n\t\tthrow new ArgumentNullException('target', CBN);\r\n\r\n\tif(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)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tvar count = 0;\r\n\tif(array && array.length && max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\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\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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:T[] = [];\r\n\twhile(count--)\r\n\t{\r\n\t\tresult.push(element);\r\n\t}\r\n\r\n\treturn result;\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.', CBL0 = 'Cannot be less than zero.';\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 (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 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 contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (array && array.length) {\n if (Array.isArray(array))\n return array.indexOf(item) != -1;\n for (var i = 0; i < array.length; ++i) {\n if (equalityComparer(array[i], item))\n return true;\n }\n }\n return false;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n var count = 0;\n if (max !== 0) {\n if (!max)\n max = Infinity;\n else if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n for (var i = (array.length - 1); i >= 0; --i) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (!--max)\n break;\n }\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, index, length) {\n Integer_1.default.assert(index, 'index');\n Integer_1.default.assert(index, 'length');\n var end = index + length;\n for (var i = index; i < end; ++i) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, index, length) {\n updateRange(array, null, index, length);\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 for (var i = 0; i < len; ++i) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, fn) {\n if (!source)\n throw new ArgumentNullException_1.default('source', CBN);\n if (fn) {\n for (var i = 0; i < source.length; ++i) {\n if (fn(source[i]) === false)\n break;\n }\n }\n return source;\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (!target)\n throw new ArgumentNullException_1.default('target', CBN);\n if (fn) {\n for (var i = 0; i < target.length; ++i) {\n target[i] = fn(target[i]);\n }\n }\n return target;\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)\n throw new ArgumentNullException_1.default('array', CBN);\n var count = 0;\n if (array && array.length && max !== 0) {\n if (!max)\n max = Infinity;\n else if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n for (var i = (array.length - 1); i >= 0; --i) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n if (!--max)\n break;\n }\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 = [];\n while (count--) {\n result.push(element);\n }\n return result;\n }\n exports.repeat = repeat;\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 function dispatchUnsafe(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.dispatchUnsafe = dispatchUnsafe;\n function dispatch(listeners, payload, trap) {\n dispatchUnsafe(copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n function dispatchMapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = 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 : undefined;\n }\n catch (ex) {\n result[i] = undefined;\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.dispatchMapped = dispatchMapped;\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\tCBL0 = 'Cannot be less than zero.';\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(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\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(array && array.length)\r\n\t{\r\n\r\n\t\tif(Array.isArray(array)) return array.indexOf(item)!= -1;\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\r\n\tvar count = 0;\r\n\tif(max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\t\tfor(let i = (array.length - 1); i>=0; --i)\r\n\t\t{\r\n\t\t\tif(array[i]===old)\r\n\t\t\t{\r\n\t\t\t\tarray[i] = newValue;\r\n\t\t\t\t++count;\r\n\t\t\t\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn count;\r\n\r\n}\r\n\r\n/**\r\n * Replaces values of an array across a range of indexes.\r\n * @param array\r\n * @param value\r\n * @param index\r\n * @param length\r\n */\r\nexport function updateRange(\r\n\tarray:T[],\r\n\tvalue:T,\r\n\tindex:number,\r\n\tlength:number):void\r\n{\r\n\tInteger.assert(index, 'index');\r\n\tInteger.assert(index, 'length');\r\n\r\n\tvar end = index + length;\r\n\tfor(let i:number = index; i(\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\tvar len = array.length;\r\n\tfor(let i = 0; i}\r\n */\r\nexport function forEach(\r\n\tsource:IArray,\r\n\tfn:(value:T, index?:number) => (void|boolean)):IArray\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(fn)\r\n\t{\r\n\t\tfor(let i = 0; i}\r\n */\r\nexport function applyTo(target:IArray, fn:(a:T) => T):IArray\r\n{\r\n\tif(!target)\r\n\t\tthrow new ArgumentNullException('target', CBN);\r\n\r\n\tif(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)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tvar count = 0;\r\n\tif(array && array.length && max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\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\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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:T[] = [];\r\n\twhile(count--)\r\n\t{\r\n\t\tresult.push(element);\r\n\t}\r\n\r\n\treturn result;\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(\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)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tdispatchUnsafe(copy(listeners), payload, trap);\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n * Returns the results in an array that matches the indexes of the listeners.\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n * @returns {any}\r\n */\r\nexport function dispatchMapped(\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; il;l++)if(n(u[l].key)===o)return!0;return!1},e.prototype.clear=function(){var e=this,r=e._buckets,n=t.prototype.clear.call(this);e._count=0;for(var o in r)r.hasOwnProperty(o)&&delete r[o];return e._entries.clear(),n},e.prototype.getCount=function(){return this._count},e.prototype.getEnumerator=function(){var t,e=this;return new u["default"](function(){t=e._entries.first},function(e){if(null!=t){var r={key:t.key,value:t.value};return t=t.next,e.yieldReturn(r)}return e.yieldBreak()})},e.prototype.getKeys=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.key)}),e},e.prototype.getValues=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.value)}),e},e}(i["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=c}); +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","../../Compare","../../Types","../../Functions","./DictionaryBase","../Enumeration/EnumeratorBase"],function(t,e,r,n,o,i,u){"use strict";function a(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function s(t){return null===t?"null":t===l?"undefined":typeof t.toString===n["default"].FUNCTION?t.toString():Object.prototype.toString.call(t)}var l=void 0,p=function(){function t(t,e,r,n){this.key=t,this.value=e,this.prev=r,this.next=n}return t}(),c=function(){function t(t,e){this.first=t,this.last=e}return t.prototype.addLast=function(t){var e=this;null!=e.last?(e.last.next=t,t.prev=e.last,e.last=t):e.first=e.last=t},t.prototype.replace=function(t,e){var r=this;null!=t.prev?(t.prev.next=e,e.prev=t.prev):r.first=e,null!=t.next?(t.next.prev=e,e.next=t.next):r.last=e},t.prototype.remove=function(t){var e=this;null!=t.prev?t.prev.next=t.next:e.first=t.next,null!=t.next?t.next.prev=t.prev:e.last=t.prev},t.prototype.clear=function(){for(var t=this;t.last;)t.remove(t.last)},t.prototype.forEach=function(t){for(var e=this,r=e.first;r;)t(r),r=r.next},t}(),f=function(t){function e(e){void 0===e&&(e=o["default"].Identity),t.call(this),this.compareSelector=e,this._count=0,this._entries=new c,this._buckets={}}return __extends(e,t),e.prototype.setKV=function(t,e,n){var o,i=this,u=i._buckets,c=i._entries,f=i.compareSelector,v=f(t),h=s(v);if(a(u,h)){for(var y=r.areEqual,d=u[h],_=0;_l;l++)if(n(u[l].key)===o)return!0;return!1},e.prototype.clear=function(){var e=this,r=e._buckets,n=t.prototype.clear.call(this);e._count=0;for(var o in r)r.hasOwnProperty(o)&&delete r[o];return e._entries.clear(),n},e.prototype.getCount=function(){return this._count},e.prototype.getEnumerator=function(){var t,e=this;return new u["default"](function(){t=e._entries.first},function(e){if(null!=t){var r={key:t.key,value:t.value};return t=t.next,e.yieldReturn(r)}return e.yieldBreak()})},e.prototype.getKeys=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.key)}),e},e.prototype.getValues=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.value)}),e},e}(i["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=f}); //# sourceMappingURL=Dictionary.js.map diff --git a/dist/amd/System/Collections/Dictionaries/Dictionary.js.map b/dist/amd/System/Collections/Dictionaries/Dictionary.js.map index 06558eaf..ca138350 100644 --- a/dist/amd/System/Collections/Dictionaries/Dictionary.js.map +++ b/dist/amd/System/Collections/Dictionaries/Dictionary.js.map @@ -1 +1 @@ -{"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","DictionaryBase_1","EnumeratorBase_1","callHasOwnProperty","target","key","computeHashCode","obj","HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","Dictionary","_super","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues","defineProperty","value"],"mappings":"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","file":"System/Collections/Dictionaries/Dictionary.js","sourcesContent":["/*\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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], function (require, exports) {\r\n ///\r\n var Compare_1 = require('../../Compare');\r\n var Types_1 = require('../../Types');\r\n var Functions_1 = require('../../Functions');\r\n var DictionaryBase_1 = require('./DictionaryBase');\r\n var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase');\r\n var HashEntry = (function () {\r\n function HashEntry(key, value, prev, next) {\r\n this.key = key;\r\n this.value = value;\r\n this.prev = prev;\r\n this.next = next;\r\n }\r\n return HashEntry;\r\n })();\r\n var EntryList = (function () {\r\n function EntryList(first, last) {\r\n this.first = first;\r\n this.last = last;\r\n }\r\n EntryList.prototype.addLast = function (entry) {\r\n var _ = this;\r\n if (_.last != null) {\r\n _.last.next = entry;\r\n entry.prev = _.last;\r\n _.last = entry;\r\n }\r\n else\r\n _.first = _.last = entry;\r\n };\r\n EntryList.prototype.replace = function (entry, newEntry) {\r\n var _ = this;\r\n if (entry.prev != null) {\r\n entry.prev.next = newEntry;\r\n newEntry.prev = entry.prev;\r\n }\r\n else\r\n _.first = newEntry;\r\n if (entry.next != null) {\r\n entry.next.prev = newEntry;\r\n newEntry.next = entry.next;\r\n }\r\n else\r\n _.last = newEntry;\r\n };\r\n EntryList.prototype.remove = function (entry) {\r\n var _ = this;\r\n if (entry.prev != null)\r\n entry.prev.next = entry.next;\r\n else\r\n _.first = entry.next;\r\n if (entry.next != null)\r\n entry.next.prev = entry.prev;\r\n else\r\n _.last = entry.prev;\r\n };\r\n EntryList.prototype.clear = function () {\r\n var _ = this;\r\n while (_.last) {\r\n _.remove(_.last);\r\n }\r\n };\r\n EntryList.prototype.forEach = function (closure) {\r\n var _ = this, currentEntry = _.first;\r\n while (currentEntry) {\r\n closure(currentEntry);\r\n currentEntry = currentEntry.next;\r\n }\r\n };\r\n return EntryList;\r\n })();\r\n function callHasOwnProperty(target, key) {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n }\r\n function computeHashCode(obj) {\r\n if (obj === null)\r\n return \"null\";\r\n if (obj === undefined)\r\n return \"undefined\";\r\n return (typeof obj.toString === Types_1.default.FUNCTION)\r\n ? obj.toString()\r\n : Object.prototype.toString.call(obj);\r\n }\r\n var Dictionary = (function (_super) {\r\n __extends(Dictionary, _super);\r\n function Dictionary(compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions_1.default.Identity; }\r\n _super.call(this);\r\n this.compareSelector = compareSelector;\r\n this._count = 0;\r\n this._entries = new EntryList();\r\n this._buckets = {};\r\n }\r\n Dictionary.prototype.setKV = function (key, value, allowOverwrite) {\r\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey), entry;\r\n if (callHasOwnProperty(buckets, hash)) {\r\n var equal = Compare_1.areEqual;\r\n var array = buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n var old = array[i];\r\n if (comparer(old.key) === compareKey) {\r\n if (!allowOverwrite)\r\n throw new Error(\"Key already exists.\");\r\n var changed = !equal(old.value, value);\r\n if (changed) {\r\n if (value === undefined) {\r\n entries.remove(old);\r\n array.splice(i, 1);\r\n if (!array.length)\r\n delete buckets[hash];\r\n --_._count;\r\n }\r\n else {\r\n entry = new HashEntry(key, value);\r\n entries.replace(old, entry);\r\n array[i] = entry;\r\n }\r\n _._onValueUpdate(key, value, old.value);\r\n }\r\n return changed;\r\n }\r\n }\r\n array.push(entry = entry || new HashEntry(key, value));\r\n }\r\n else {\r\n if (value === undefined) {\r\n if (allowOverwrite)\r\n return false;\r\n else\r\n throw new Error(\"Cannot add 'undefined' value.\");\r\n }\r\n buckets[hash] = [entry = new HashEntry(key, value)];\r\n }\r\n ++_._count;\r\n entries.addLast(entry);\r\n _._onValueUpdate(key, value, undefined);\r\n return true;\r\n };\r\n Dictionary.prototype.addByKeyValue = function (key, value) {\r\n this.setKV(key, value, false);\r\n };\r\n Dictionary.prototype.getValue = function (key) {\r\n var buckets = this._buckets, comparer = this.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(buckets, hash))\r\n return undefined;\r\n var array = buckets[hash];\r\n for (var _i = 0; _i < array.length; _i++) {\r\n var entry = array[_i];\r\n if (comparer(entry.key) === compareKey)\r\n return entry.value;\r\n }\r\n return undefined;\r\n };\r\n Dictionary.prototype.setValue = function (key, value) {\r\n return this.setKV(key, value, true);\r\n };\r\n Dictionary.prototype.containsKey = function (key) {\r\n var _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(buckets, hash))\r\n return false;\r\n var array = buckets[hash];\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (comparer(array[i].key) === compareKey)\r\n return true;\r\n }\r\n return false;\r\n };\r\n Dictionary.prototype.clear = function () {\r\n var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this);\r\n _._count = 0;\r\n for (var key in buckets) {\r\n if (buckets.hasOwnProperty(key))\r\n delete buckets[key];\r\n }\r\n _._entries.clear();\r\n return count;\r\n };\r\n Dictionary.prototype.getCount = function () {\r\n return this._count;\r\n };\r\n Dictionary.prototype.getEnumerator = function () {\r\n var _ = this, currentEntry;\r\n return new EnumeratorBase_1.default(function () { currentEntry = _._entries.first; }, function (yielder) {\r\n if (currentEntry != null) {\r\n var result = { key: currentEntry.key, value: currentEntry.value };\r\n currentEntry = currentEntry.next;\r\n return yielder.yieldReturn(result);\r\n }\r\n return yielder.yieldBreak();\r\n });\r\n };\r\n Dictionary.prototype.getKeys = function () {\r\n var _ = this, result = [];\r\n _._entries.forEach(function (entry) { return result.push(entry.key); });\r\n return result;\r\n };\r\n Dictionary.prototype.getValues = function () {\r\n var _ = this, result = [];\r\n _._entries.forEach(function (entry) { return result.push(entry.value); });\r\n return result;\r\n };\r\n return Dictionary;\r\n })(DictionaryBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Dictionary;\r\n});\r\n//# sourceMappingURL=Dictionary.js.map","/*\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 {areEqual} from '../../Compare';\r\nimport Type from '../../Types';\r\nimport Functions from '../../Functions';\r\nimport DictionaryAbstractBase from './DictionaryBase';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\n\r\n\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic prev?:HashEntry,\r\n\t\tpublic next?:HashEntry)\r\n\t{ }\r\n}\r\n\r\nclass EntryList\r\n{\r\n\tconstructor(\r\n\t\tpublic first?:HashEntry,\r\n\t\tpublic last?:HashEntry)\r\n\t{ }\r\n\r\n\taddLast(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.last!=null)\r\n\t\t{\r\n\t\t\t_.last.next = entry;\r\n\t\t\tentry.prev = _.last;\r\n\t\t\t_.last = entry;\r\n\t\t}\r\n\t\telse\r\n\t\t\t_.first = _.last = entry;\r\n\t}\r\n\r\n\treplace(entry:HashEntry, newEntry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null)\r\n\t\t{\r\n\t\t\tentry.prev.next = newEntry;\r\n\t\t\tnewEntry.prev = entry.prev;\r\n\t\t}\r\n\t\telse _.first = newEntry;\r\n\r\n\t\tif(entry.next!=null)\r\n\t\t{\r\n\t\t\tentry.next.prev = newEntry;\r\n\t\t\tnewEntry.next = entry.next;\r\n\t\t}\r\n\t\telse _.last = newEntry;\r\n\r\n\t}\r\n\r\n\tremove(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null) entry.prev.next = entry.next;\r\n\t\telse _.first = entry.next;\r\n\r\n\t\tif(entry.next!=null) entry.next.prev = entry.prev;\r\n\t\telse _.last = entry.prev;\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\twhile(_.last)\r\n\t\t{\r\n\t\t\t_.remove(_.last);\r\n\t\t}\r\n\t}\r\n\r\n\tforEach(closure:(entry:HashEntry) => void):void\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry = _.first;\r\n\t\twhile(currentEntry)\r\n\t\t{\r\n\t\t\tclosure(currentEntry);\r\n\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t}\r\n\t}\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\nfunction computeHashCode(obj:any):string\r\n{\r\n\tif(obj===null) return \"null\";\r\n\tif(obj===undefined) return \"undefined\";\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 DictionaryAbstractBase\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _entries = new EntryList();\r\n\tprivate _buckets:IMap[]> = {};\r\n\r\n\tconstructor(private compareSelector:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\r\n\tprivate setKV(key:TKey, value:TValue, allowOverwrite:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey), entry:HashEntry;\r\n\r\n\t\tif(callHasOwnProperty(buckets, hash))\r\n\t\t{\r\n\t\t\tvar equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\t\tvar array = buckets[hash];\r\n\t\t\tfor(let i = 0; i(key, value);\r\n\t\t\t\t\t\t\tentries.replace(old, entry);\r\n\t\t\t\t\t\t\tarray[i] = entry;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_._onValueUpdate(key, value, old.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn changed;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tarray.push(entry = entry || new HashEntry(key, value));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(value===undefined)\r\n\t\t\t{\r\n\t\t\t\tif(allowOverwrite)\r\n\t\t\t\t\treturn false;\r\n\t\t\t\telse\r\n\t\t\t\t\tthrow new Error(\"Cannot add 'undefined' value.\");\r\n\t\t\t}\r\n\t\t\tbuckets[hash] = [entry = new HashEntry(key, value)];\r\n\t\t}\r\n\t\t++_._count;\r\n\t\tentries.addLast(entry);\r\n\t\t_._onValueUpdate(key, value, undefined);\r\n\t\treturn true;\r\n\t}\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tthis.setKV(key, value, false);\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar buckets = this._buckets, comparer = this.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return undefined;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let entry of array)\r\n\t\t{\r\n\t\t\tif(comparer(entry.key)===compareKey) return entry.value;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\treturn this.setKV(key, value, true);\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return false;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let i = 0, len = array.length; i>\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() => { currentEntry = _._entries.first; },\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\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\t_._entries.forEach(entry=> result.push(entry.key));\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\t_._entries.forEach(entry=> result.push(entry.value));\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","DictionaryBase_1","EnumeratorBase_1","callHasOwnProperty","target","key","computeHashCode","obj","VOID0","HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","Dictionary","_super","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues","defineProperty","value"],"mappings":"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","file":"System/Collections/Dictionaries/Dictionary.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\", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], function (require, exports, Compare_1, Types_1, Functions_1, DictionaryBase_1, EnumeratorBase_1) {\n 'use strict';\n var VOID0 = void 0;\n var HashEntry = (function () {\n function HashEntry(key, value, prev, next) {\n this.key = key;\n this.value = value;\n this.prev = prev;\n this.next = next;\n }\n return HashEntry;\n })();\n var EntryList = (function () {\n function EntryList(first, last) {\n this.first = first;\n this.last = last;\n }\n EntryList.prototype.addLast = function (entry) {\n var _ = this;\n if (_.last != null) {\n _.last.next = entry;\n entry.prev = _.last;\n _.last = entry;\n }\n else\n _.first = _.last = entry;\n };\n EntryList.prototype.replace = function (entry, newEntry) {\n var _ = this;\n if (entry.prev != null) {\n entry.prev.next = newEntry;\n newEntry.prev = entry.prev;\n }\n else\n _.first = newEntry;\n if (entry.next != null) {\n entry.next.prev = newEntry;\n newEntry.next = entry.next;\n }\n else\n _.last = newEntry;\n };\n EntryList.prototype.remove = function (entry) {\n var _ = this;\n if (entry.prev != null)\n entry.prev.next = entry.next;\n else\n _.first = entry.next;\n if (entry.next != null)\n entry.next.prev = entry.prev;\n else\n _.last = entry.prev;\n };\n EntryList.prototype.clear = function () {\n var _ = this;\n while (_.last) {\n _.remove(_.last);\n }\n };\n EntryList.prototype.forEach = function (closure) {\n var _ = this, currentEntry = _.first;\n while (currentEntry) {\n closure(currentEntry);\n currentEntry = currentEntry.next;\n }\n };\n return EntryList;\n })();\n function callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n }\n function computeHashCode(obj) {\n if (obj === null)\n return \"null\";\n if (obj === VOID0)\n return \"undefined\";\n return (typeof obj.toString === Types_1.default.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n }\n var Dictionary = (function (_super) {\n __extends(Dictionary, _super);\n function Dictionary(compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions_1.default.Identity; }\n _super.call(this);\n this.compareSelector = compareSelector;\n this._count = 0;\n this._entries = new EntryList();\n this._buckets = {};\n }\n Dictionary.prototype.setKV = function (key, value, allowOverwrite) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey), entry;\n if (callHasOwnProperty(buckets, hash)) {\n var equal = Compare_1.areEqual;\n var array = buckets[hash];\n for (var i = 0; i < array.length; i++) {\n var old = array[i];\n if (comparer(old.key) === compareKey) {\n if (!allowOverwrite)\n throw new Error(\"Key already exists.\");\n var changed = !equal(old.value, value);\n if (changed) {\n if (value === VOID0) {\n entries.remove(old);\n array.splice(i, 1);\n if (!array.length)\n delete buckets[hash];\n --_._count;\n }\n else {\n entry = new HashEntry(key, value);\n entries.replace(old, entry);\n array[i] = entry;\n }\n _._onValueUpdate(key, value, old.value);\n }\n return changed;\n }\n }\n array.push(entry = entry || new HashEntry(key, value));\n }\n else {\n if (value === VOID0) {\n if (allowOverwrite)\n return false;\n else\n throw new Error(\"Cannot add 'undefined' value.\");\n }\n buckets[hash] = [entry = new HashEntry(key, value)];\n }\n ++_._count;\n entries.addLast(entry);\n _._onValueUpdate(key, value, undefined);\n return true;\n };\n Dictionary.prototype.addByKeyValue = function (key, value) {\n this.setKV(key, value, false);\n };\n Dictionary.prototype.getValue = function (key) {\n var buckets = this._buckets, comparer = this.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey);\n if (!callHasOwnProperty(buckets, hash))\n return undefined;\n var array = buckets[hash];\n for (var _i = 0; _i < array.length; _i++) {\n var entry = array[_i];\n if (comparer(entry.key) === compareKey)\n return entry.value;\n }\n return undefined;\n };\n Dictionary.prototype.setValue = function (key, value) {\n return this.setKV(key, value, true);\n };\n Dictionary.prototype.containsKey = function (key) {\n var _ = this, buckets = _._buckets, comparer = _.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey);\n if (!callHasOwnProperty(buckets, hash))\n return false;\n var array = buckets[hash];\n for (var i = 0, len = array.length; i < len; i++) {\n if (comparer(array[i].key) === compareKey)\n return true;\n }\n return false;\n };\n Dictionary.prototype.clear = function () {\n var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this);\n _._count = 0;\n for (var key in buckets) {\n if (buckets.hasOwnProperty(key))\n delete buckets[key];\n }\n _._entries.clear();\n return count;\n };\n Dictionary.prototype.getCount = function () {\n return this._count;\n };\n Dictionary.prototype.getEnumerator = function () {\n var _ = this, currentEntry;\n return new EnumeratorBase_1.default(function () { currentEntry = _._entries.first; }, function (yielder) {\n if (currentEntry != null) {\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 _._entries.forEach(function (entry) { return result.push(entry.key); });\n return result;\n };\n Dictionary.prototype.getValues = function () {\n var _ = this, result = [];\n _._entries.forEach(function (entry) { return result.push(entry.value); });\n return result;\n };\n return Dictionary;\n })(DictionaryBase_1.default);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\nimport {areEqual} from '../../Compare';\r\nimport Type from '../../Types';\r\nimport Functions from '../../Functions';\r\nimport DictionaryAbstractBase from './DictionaryBase';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\n\r\nconst VOID0:any = void 0;\r\n\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic prev?:HashEntry,\r\n\t\tpublic next?:HashEntry)\r\n\t{ }\r\n}\r\n\r\nclass EntryList\r\n{\r\n\tconstructor(\r\n\t\tpublic first?:HashEntry,\r\n\t\tpublic last?:HashEntry)\r\n\t{ }\r\n\r\n\taddLast(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.last!=null)\r\n\t\t{\r\n\t\t\t_.last.next = entry;\r\n\t\t\tentry.prev = _.last;\r\n\t\t\t_.last = entry;\r\n\t\t}\r\n\t\telse\r\n\t\t\t_.first = _.last = entry;\r\n\t}\r\n\r\n\treplace(entry:HashEntry, newEntry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null)\r\n\t\t{\r\n\t\t\tentry.prev.next = newEntry;\r\n\t\t\tnewEntry.prev = entry.prev;\r\n\t\t}\r\n\t\telse _.first = newEntry;\r\n\r\n\t\tif(entry.next!=null)\r\n\t\t{\r\n\t\t\tentry.next.prev = newEntry;\r\n\t\t\tnewEntry.next = entry.next;\r\n\t\t}\r\n\t\telse _.last = newEntry;\r\n\r\n\t}\r\n\r\n\tremove(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null) entry.prev.next = entry.next;\r\n\t\telse _.first = entry.next;\r\n\r\n\t\tif(entry.next!=null) entry.next.prev = entry.prev;\r\n\t\telse _.last = entry.prev;\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\twhile(_.last)\r\n\t\t{\r\n\t\t\t_.remove(_.last);\r\n\t\t}\r\n\t}\r\n\r\n\tforEach(closure:(entry:HashEntry) => void):void\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry = _.first;\r\n\t\twhile(currentEntry)\r\n\t\t{\r\n\t\t\tclosure(currentEntry);\r\n\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t}\r\n\t}\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\nfunction computeHashCode(obj:any):string\r\n{\r\n\tif(obj===null) return \"null\";\r\n\tif(obj===VOID0) return \"undefined\";\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 DictionaryAbstractBase\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _entries = new EntryList();\r\n\tprivate _buckets:IMap[]> = {};\r\n\r\n\tconstructor(private compareSelector:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\r\n\tprivate setKV(key:TKey, value:TValue, allowOverwrite:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey), entry:HashEntry;\r\n\r\n\t\tif(callHasOwnProperty(buckets, hash))\r\n\t\t{\r\n\t\t\tvar equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\t\tvar array = buckets[hash];\r\n\t\t\tfor(let i = 0; i(key, value);\r\n\t\t\t\t\t\t\tentries.replace(old, entry);\r\n\t\t\t\t\t\t\tarray[i] = entry;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_._onValueUpdate(key, value, old.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn changed;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tarray.push(entry = entry || new HashEntry(key, value));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif(allowOverwrite)\r\n\t\t\t\t\treturn false;\r\n\t\t\t\telse\r\n\t\t\t\t\tthrow new Error(\"Cannot add 'undefined' value.\");\r\n\t\t\t}\r\n\t\t\tbuckets[hash] = [entry = new HashEntry(key, value)];\r\n\t\t}\r\n\t\t++_._count;\r\n\t\tentries.addLast(entry);\r\n\t\t_._onValueUpdate(key, value, undefined);\r\n\t\treturn true;\r\n\t}\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tthis.setKV(key, value, false);\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar buckets = this._buckets, comparer = this.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return undefined;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let entry of array)\r\n\t\t{\r\n\t\t\tif(comparer(entry.key)===compareKey) return entry.value;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\treturn this.setKV(key, value, true);\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return false;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let i = 0, len = array.length; i>\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() => { currentEntry = _._entries.first; },\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\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\t_._entries.forEach(entry=> result.push(entry.key));\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\t_._entries.forEach(entry=> result.push(entry.value));\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js index 7130669d..78e10a13 100644 --- a/dist/amd/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/amd/System/Collections/Dictionaries/DictionaryBase.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","../../Compare","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentException","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException"],function(e,t,r,n,o,u,a){var i=function(){function e(){this._updateRecursion=0}return Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype._onValueUpdate=function(e,t,n){if(!r.areEqual(t,n,!0)){var o=this;o.onValueChanged&&o.onValueChanged(e,t,n),0==o._updateRecursion&&o._onUpdated()}},e.prototype._onUpdated=function(){var e=this;e.onUpdated&&e.onUpdated()},e.prototype.handleUpdate=function(e){var t,r=this;if(e){r._updateRecursion++;try{t=e()}finally{r._updateRecursion--}}else t=0==r._updateRecursion;return t&&0==r._updateRecursion&&r._onUpdated(),t},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.add=function(e){if(!e)throw new o["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");this.addByKeyValue(e.key,e.value)},e.prototype.clear=function(){var e=this,t=e.keys,r=t.length;return r&&e.handleUpdate(function(){return t.forEach(function(t){e.removeByKey(t)}),!0}),0!=e.count&&console.warn("Dictionary clear() results in mismatched count."),r},e.prototype.contains=function(e){if(!e)return!1;var t=this.getValue(e.key);return r.areEqual(t,e.value)},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),!e)throw new u["default"]("array");for(var r=this.getEnumerator();r.moveNext();)e[t++]=r.current;return e},e.prototype.toArray=function(){return this.copyTo([],0)},e.prototype.remove=function(e){if(!e)return 0;var t=e.key,n=this.getValue(t);return r.areEqual(n,e.value)&&this.removeByKey(t)?1:0},Object.defineProperty(e.prototype,"keys",{get:function(){return this.getKeys()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){return this.getValues()},enumerable:!0,configurable:!0}),e.prototype.addByKeyValue=function(e,t){var r=this;if(r.containsKey(e)){var n=new a["default"]("Adding a key/value when the key already exists.");throw n.data.key=e,n.data.value=t,n}r.setValue(e,t)},e.prototype.containsKey=function(e){var t=this.getValue(e);return void 0!==t},e.prototype.containsValue=function(e){for(var t=this.getEnumerator(),n=r.areEqual;t.moveNext();)if(n(t.current,e,!0))return t.dispose(),!0;return!1},e.prototype.removeByKey=function(e){return this.setValue(e,void 0)},e.prototype.removeByValue=function(e){var t=this,n=0,o=r.areEqual;return t.keys.forEach(function(r){o(t.getValue(r),e,!0)&&(t.removeByKey(r),++n)}),n},e.prototype.importPairs=function(e){var t=this;return t.handleUpdate(function(){var r=!1;return e.forEach(function(e){t.setValue(e.key,e.value),r=!0}),r})},e.prototype.getEnumerator=function(){var e,t,r=this,o=0;return new n["default"](function(){e=r.keys,t=e.length},function(n){for(;t>o;){var u=e[o++],a=r.getValue(u);if(void 0!==a)return n.yieldReturn({key:u,value:a})}return n.yieldBreak()})},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); +define(["require","exports","../../Compare","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],function(e,t,r,n,o,u,a){"use strict";var i=void 0,c=function(){function e(){this._updateRecursion=0}return Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype._onValueUpdate=function(e,t,n){if(!r.areEqual(t,n,!0)){var o=this;o.onValueChanged&&o.onValueChanged(e,t,n),0==o._updateRecursion&&o._onUpdated()}},e.prototype._onUpdated=function(){var e=this;e.onUpdated&&e.onUpdated()},e.prototype.handleUpdate=function(e){var t,r=this;if(e){r._updateRecursion++;try{t=e()}finally{r._updateRecursion--}}else t=0==r._updateRecursion;return t&&0==r._updateRecursion&&r._onUpdated(),t},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this;if(!e)throw new o["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");a["default"](e,function(e,r){return t.addByKeyValue(e,r)})},e.prototype.clear=function(){var e=this,t=e.keys,r=t.length;return r&&e.handleUpdate(function(){return t.forEach(function(t){e.removeByKey(t)}),!0}),0!=e.count&&console.warn("Dictionary clear() results in mismatched count."),r},e.prototype.contains=function(e){var t=this;return e?a["default"](e,function(e,n){var o=t.getValue(e);return r.areEqual(n,o)}):!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),!e)throw new o["default"]("array");for(var r=this.getEnumerator();r.moveNext();)e[t++]=r.current;return e},e.prototype.toArray=function(){return this.copyTo([],0)},e.prototype.remove=function(e){var t=this;return e?a["default"](e,function(e,n){var o=t.getValue(e);return r.areEqual(n,o)&&t.removeByKey(e)?1:0}):0},Object.defineProperty(e.prototype,"keys",{get:function(){return this.getKeys()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){return this.getValues()},enumerable:!0,configurable:!0}),e.prototype.addByKeyValue=function(e,t){var r=this;if(r.containsKey(e)){var n=new u["default"]("Adding a key/value when the key already exists.");throw n.data.key=e,n.data.value=t,n}r.setValue(e,t)},e.prototype.containsKey=function(e){var t=this.getValue(e);return t!==i},e.prototype.containsValue=function(e){for(var t=this.getEnumerator(),n=r.areEqual;t.moveNext();)if(n(t.current,e,!0))return t.dispose(),!0;return!1},e.prototype.removeByKey=function(e){return this.setValue(e,void 0)},e.prototype.removeByValue=function(e){var t=this,n=0,o=r.areEqual;return t.keys.forEach(function(r){o(t.getValue(r),e,!0)&&(t.removeByKey(r),++n)}),n},e.prototype.importPairs=function(e){var t=this;return t.handleUpdate(function(){var r=!1;return e.forEach(function(e){return a["default"](e,function(e,n){t.setValue(e,n),r=!0})}),r})},e.prototype.getEnumerator=function(){var e,t,r=this,o=0;return new n["default"](function(){e=r.keys,t=e.length},function(n){for(;t>o;){var u=e[o++],a=r.getValue(u);if(a!==i)return n.yieldReturn({key:u,value:a})}return n.yieldBreak()})},e}();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 5734a760..d31a39c8 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":["define","require","exports","Compare_1","EnumeratorBase_1","ArgumentException_1","ArgumentNullException_1","InvalidOperationException_1","DictionaryBase","DictionaryBase.constructor","get","DictionaryBase.isUpdating","enumerable","configurable","DictionaryBase._onValueUpdate","DictionaryBase._onUpdated","DictionaryBase.handleUpdate","DictionaryBase.isReadOnly","DictionaryBase.count","DictionaryBase.add","DictionaryBase.clear","DictionaryBase.contains","DictionaryBase.copyTo","DictionaryBase.toArray","DictionaryBase.remove","DictionaryBase.keys","DictionaryBase.values","DictionaryBase.addByKeyValue","DictionaryBase.containsKey","DictionaryBase.containsValue","DictionaryBase.removeByKey","DictionaryBase.removeByValue","DictionaryBase.importPairs","DictionaryBase.getEnumerator","Object","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException'], function (require, exports) {\r\n ///\r\n var Compare_1 = require('../../Compare');\r\n var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase');\r\n var ArgumentException_1 = require('../../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException');\r\n var InvalidOperationException_1 = require('../../Exceptions/InvalidOperationException');\r\n var DictionaryBase = (function () {\r\n function DictionaryBase() {\r\n this._updateRecursion = 0;\r\n }\r\n Object.defineProperty(DictionaryBase.prototype, \"isUpdating\", {\r\n get: function () { return this._updateRecursion != 0; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype._onValueUpdate = function (key, value, old) {\r\n if (!Compare_1.areEqual(value, old, true)) {\r\n var _ = this;\r\n if (_.onValueChanged)\r\n _.onValueChanged(key, value, old);\r\n if (_._updateRecursion == 0)\r\n _._onUpdated();\r\n }\r\n };\r\n DictionaryBase.prototype._onUpdated = function () {\r\n var _ = this;\r\n if (_.onUpdated)\r\n _.onUpdated();\r\n };\r\n DictionaryBase.prototype.handleUpdate = function (closure) {\r\n var _ = this, result;\r\n if (closure) {\r\n _._updateRecursion++;\r\n try {\r\n result = closure();\r\n }\r\n finally {\r\n _._updateRecursion--;\r\n }\r\n }\r\n else\r\n result = _._updateRecursion == 0;\r\n if (result && _._updateRecursion == 0)\r\n _._onUpdated();\r\n return result;\r\n };\r\n Object.defineProperty(DictionaryBase.prototype, \"isReadOnly\", {\r\n get: function () { return false; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DictionaryBase.prototype, \"count\", {\r\n get: function () { return this.getCount(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype.add = function (item) {\r\n if (!item)\r\n throw new ArgumentException_1.default('item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.');\r\n this.addByKeyValue(item.key, item.value);\r\n };\r\n DictionaryBase.prototype.clear = function () {\r\n var _ = this, keys = _.keys, count = keys.length;\r\n if (count)\r\n _.handleUpdate(function () {\r\n keys.forEach(function (key) { _.removeByKey(key); });\r\n return true;\r\n });\r\n if (_.count != 0)\r\n console.warn(\"Dictionary clear() results in mismatched count.\");\r\n return count;\r\n };\r\n DictionaryBase.prototype.contains = function (item) {\r\n if (!item)\r\n return false;\r\n var value = this.getValue(item.key);\r\n return Compare_1.areEqual(value, item.value);\r\n };\r\n DictionaryBase.prototype.copyTo = function (array, index) {\r\n if (index === void 0) { index = 0; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array');\r\n var e = this.getEnumerator();\r\n while (e.moveNext()) {\r\n array[index++] = e.current;\r\n }\r\n return array;\r\n };\r\n DictionaryBase.prototype.toArray = function () {\r\n return this.copyTo([], 0);\r\n };\r\n DictionaryBase.prototype.remove = function (item) {\r\n if (!item)\r\n return 0;\r\n var key = item.key, value = this.getValue(key);\r\n return (Compare_1.areEqual(value, item.value) && this.removeByKey(key))\r\n ? 1 : 0;\r\n };\r\n Object.defineProperty(DictionaryBase.prototype, \"keys\", {\r\n get: function () { return this.getKeys(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DictionaryBase.prototype, \"values\", {\r\n get: function () { return this.getValues(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype.addByKeyValue = function (key, value) {\r\n var _ = this;\r\n if (_.containsKey(key)) {\r\n var ex = new InvalidOperationException_1.default(\"Adding a key/value when the key already exists.\");\r\n ex.data['key'] = key;\r\n ex.data['value'] = value;\r\n throw ex;\r\n }\r\n _.setValue(key, value);\r\n };\r\n DictionaryBase.prototype.containsKey = function (key) {\r\n var value = this.getValue(key);\r\n return value !== undefined;\r\n };\r\n DictionaryBase.prototype.containsValue = function (value) {\r\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\r\n while (e.moveNext()) {\r\n if (equal(e.current, value, true)) {\r\n e.dispose();\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n DictionaryBase.prototype.removeByKey = function (key) {\r\n return this.setValue(key, undefined);\r\n };\r\n DictionaryBase.prototype.removeByValue = function (value) {\r\n var _ = this, count = 0, equal = Compare_1.areEqual;\r\n _.keys.forEach(function (key) {\r\n if (equal(_.getValue(key), value, true)) {\r\n _.removeByKey(key);\r\n ++count;\r\n }\r\n });\r\n return count;\r\n };\r\n DictionaryBase.prototype.importPairs = function (pairs) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n pairs.forEach(function (pair) {\r\n _.setValue(pair.key, pair.value);\r\n changed = true;\r\n });\r\n return changed;\r\n });\r\n };\r\n DictionaryBase.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var keys, len, i = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n keys = _.keys;\r\n len = keys.length;\r\n }, function (yielder) {\r\n while (i < len) {\r\n var key = keys[i++], value = _.getValue(key);\r\n if (value !== undefined)\r\n return yielder.yieldReturn({ key: key, value: value });\r\n }\r\n return yielder.yieldBreak();\r\n });\r\n };\r\n return DictionaryBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DictionaryBase;\r\n});\r\n//# sourceMappingURL=DictionaryBase.js.map","/*\r\n * @author 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 EnumeratorBase from '../Enumeration/EnumeratorBase';\r\nimport ArgumentException from '../../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\r\nimport InvalidOperationException from '../../Exceptions/InvalidOperationException';\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nabstract class DictionaryBase\r\nimplements IDictionary\r\n{\r\n\t// This allows for batch updates in order to improve the efficiency of responsive systems.\r\n\tprivate _updateRecursion:number;\r\n\r\n\tconstructor() {\r\n\t\tthis._updateRecursion = 0;\r\n\t}\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t// Could implement an event dispatcher pattern here easily...\r\n\tonValueChanged:(key:TKey, value:TValue, old:TValue) => void;\r\n\r\n\tprotected _onValueUpdate(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t\tif(!areEqual(value, old, true))\r\n\t\t{\r\n\r\n\t\t\tvar _ = this;\r\n\t\t\tif(_.onValueChanged)\r\n\t\t\t\t_.onValueChanged(key, value, old);\r\n\r\n\t\t\t// If the update recursion is zero, then we are finished with updates.\r\n\t\t\tif(_._updateRecursion==0)\r\n\t\t\t\t_._onUpdated();\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t// Listening to every value update can get noisy. Here we allow for batch update signaling.\r\n\t// The consumer of this class can also wire up their own event system.\r\n\tonUpdated:() => void;\r\n\r\n\tprivate _onUpdated():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.onUpdated)\r\n\t\t\t_.onUpdated();\r\n\t}\r\n\r\n\t// Takes a closure that if returning true will propagate an update signal.\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tvar _ = this, result:boolean;\r\n\t\tif(closure)\r\n\t\t{\r\n\t\t\t_._updateRecursion++;\r\n\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tresult = closure();\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\t_._updateRecursion--;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tresult = _._updateRecursion==0;\r\n\r\n\t\tif(result && _._updateRecursion==0)\r\n\t\t\t_._onUpdated();\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// ICollection\r\n\t/////////////////////////////////////////\r\n\tget isReadOnly():boolean { return false; }\r\n\r\n\tprotected abstract getCount():number;\r\n\tget count():number { return this.getCount(); }\r\n\r\n\tadd(item:IKeyValuePair):void\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'item',\r\n\t\t\t\t'Dictionaries must use a valid key/value pair. \\''+item+'\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\tthis.addByKeyValue(item.key, item.value);\r\n\t}\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, keys = _.keys, count = keys.length;\r\n\r\n\t\tif(count)\r\n\t\t\t_.handleUpdate(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tkeys.forEach(key=> { _.removeByKey(key); });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tif(_.count!=0) // After they've all been removed, then should be zero.\r\n\t\t\tconsole.warn(\"Dictionary clear() results in mismatched count.\");\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:IKeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item) return false;\r\n\r\n\t\tvar value = this.getValue(item.key);\r\n\t\treturn areEqual(value, item.value);\r\n\t}\r\n\r\n\tcopyTo(array:IKeyValuePair[], index:number = 0):IKeyValuePair[]\r\n\t{\r\n\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t// This is a generic implementation that will work for all derived classes.\r\n\t\t// It can be overridden and optimized.\r\n\t\tvar e = this.getEnumerator();\r\n\t\twhile(e.moveNext()) // Disposes when finished.\r\n\t\t{\r\n\t\t\tarray[index++] = e.current;\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\r\n\ttoArray():IKeyValuePair[] {\r\n\t\treturn this.copyTo([],0);\r\n\t}\r\n\r\n\tremove(item:IKeyValuePair):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\tvar key = item.key, value = this.getValue(key);\r\n\t\treturn (areEqual(value, item.value) && this.removeByKey(key))\r\n\t\t\t? 1 : 0;\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\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key)) {\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\t_.setValue(key, value);\r\n\t}\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tabstract setValue(key:TKey, value:TValue):boolean;\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar value = this.getValue(key);\r\n\t\treturn value!==undefined;\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, undefined);\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\t_.keys.forEach(key=>\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\t++count;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportPairs(pairs:IKeyValuePair[]):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\tpairs.forEach(\r\n\t\t\t\t\t\tpair=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_.setValue(pair.key, pair.value);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\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\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar 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\tkeys = _.keys;\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\twhile(i\r\nimport {areEqual} from '../../Compare';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\nimport ArgumentException from '../../Exceptions/ArgumentException';\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\nimplements IDictionary\r\n{\r\n\t// This allows for batch updates in order to improve the efficiency of responsive systems.\r\n\tprivate _updateRecursion:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._updateRecursion = 0;\r\n\t}\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t// Could implement an event dispatcher pattern here easily...\r\n\tonValueChanged:(key:TKey, value:TValue, old:TValue) => void;\r\n\r\n\tprotected _onValueUpdate(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t\tif(!areEqual(value, old, true))\r\n\t\t{\r\n\r\n\t\t\tvar _ = this;\r\n\t\t\tif(_.onValueChanged)\r\n\t\t\t\t_.onValueChanged(key, value, old);\r\n\r\n\t\t\t// If the update recursion is zero, then we are finished with updates.\r\n\t\t\tif(_._updateRecursion==0)\r\n\t\t\t\t_._onUpdated();\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t// Listening to every value update can get noisy. Here we allow for batch update signaling.\r\n\t// The consumer of this class can also wire up their own event system.\r\n\tonUpdated:() => void;\r\n\r\n\tprivate _onUpdated():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.onUpdated)\r\n\t\t\t_.onUpdated();\r\n\t}\r\n\r\n\t// Takes a closure that if returning true will propagate an update signal.\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tvar _ = this, result:boolean;\r\n\t\tif(closure)\r\n\t\t{\r\n\t\t\t_._updateRecursion++;\r\n\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tresult = closure();\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\t_._updateRecursion--;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tresult = _._updateRecursion==0;\r\n\r\n\t\tif(result && _._updateRecursion==0)\r\n\t\t\t_._onUpdated();\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// ICollection\r\n\t/////////////////////////////////////////\r\n\tget isReadOnly():boolean { return false; }\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number { return this.getCount(); }\r\n\r\n\tadd(item:KeyValuePair):void\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\textractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, keys = _.keys, count = keys.length;\r\n\r\n\t\tif(count)\r\n\t\t\t_.handleUpdate(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tkeys.forEach(key=> { _.removeByKey(key); });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tif(_.count!=0) // After they've all been removed, then should be zero.\r\n\t\t\tconsole.warn(\"Dictionary clear() results in mismatched count.\");\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) 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\tcopyTo(array:IKeyValuePair[], index:number = 0):IKeyValuePair[]\r\n\t{\r\n\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t// This is a generic implementation that will work for all derived classes.\r\n\t\t// It can be overridden and optimized.\r\n\t\tvar e = this.getEnumerator();\r\n\t\twhile(e.moveNext()) // Disposes when finished.\r\n\t\t{\r\n\t\t\tarray[index++] = e.current;\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\r\n\ttoArray():IKeyValuePair[]\r\n\t{\r\n\t\treturn this.copyTo([], 0);\r\n\t}\r\n\r\n\tremove(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\r\n\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):void\r\n\t{\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\t_.setValue(key, value);\r\n\t}\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tabstract setValue(key:TKey, value:TValue):boolean;\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar value = this.getValue(key);\r\n\t\treturn value!==VOID0;\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, undefined);\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\t_.keys.forEach(key=>\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\t++count;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportPairs(pairs:KeyValuePair[]):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\tpairs.forEach(\r\n\t\t\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t})\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\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar 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\tkeys = _.keys;\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\twhile(it)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["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;n= order.length)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.');\r\n return _.setValue(order[index], value);\r\n };\r\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n for (var i = 0; i < values.length; i++) {\r\n if (_.setByIndex(i, values[i]))\r\n changed = true;\r\n }\r\n return changed;\r\n });\r\n };\r\n OrderedStringKeyDictionary.prototype.setValues = function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i - 0] = arguments[_i];\r\n }\r\n return this.importValues(values);\r\n };\r\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\r\n return this.setByIndex(index, undefined);\r\n };\r\n OrderedStringKeyDictionary.prototype.getKeys = function () {\r\n var _ = this;\r\n return _._order.filter(function (key) { return _.containsKey(key); });\r\n };\r\n return OrderedStringKeyDictionary;\r\n })(StringKeyDictionary_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = OrderedStringKeyDictionary;\r\n});\r\n//# sourceMappingURL=OrderedStringKeyDictionary.js.map","/*\r\n * @author 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\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\treturn this._order.indexOf(key, 0);\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\treturn this.getValue(this._order[index]);\r\n\t}\r\n\r\n\t// adding keepIndex allows for clearing a value while still retaining it's index.\r\n\tsetValue(key:string, value:TValue, keepIndex?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, exists = _.indexOfKey(key)!= -1;\r\n\t\tif(!exists && (value!==undefined || keepIndex))\r\n\t\t\t_._order.push(key);\r\n\t\telse if(exists && value===undefined && !keepIndex)\r\n\t\t\tArrayUtility.remove(_._order, key);\r\n\r\n\t\treturn super.setValue(key, value);\r\n\t}\r\n\r\n\tsetByIndex(index:number, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, order = _._order;\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is less than zero.');\r\n\t\tif(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","OrderedStringKeyDictionary.constructor","OrderedStringKeyDictionary.indexOfKey","OrderedStringKeyDictionary.getValueByIndex","OrderedStringKeyDictionary.setValue","OrderedStringKeyDictionary.setByIndex","OrderedStringKeyDictionary.importValues","OrderedStringKeyDictionary.setValues","OrderedStringKeyDictionary.removeByIndex","OrderedStringKeyDictionary.getKeys","defineProperty","value"],"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,mBAAoB,wBAAyB,gDAAiD,SAAUC,EAASC,EAASC,EAAcC,EAAuBC,GCD7L,YAMA,IAAMC,GAAY,OAElBC,EAAA,SAAAC,GAQCD,QAAAA,KAECE,EAAAA,KAAAA,MAJOA,KAAAA,UA2ETF,MA/EQA,WAAAA,EAAAA,GAWPA,EAAAA,UAAAA,WAAAA,SAAWA,GAEVG,MAAOA,MAAKA,OAAOA,QAAQA,EAAKA,IAGjCH,EAAAA,UAAAA,gBAAAA,SAAgBA,GAEfI,MAAOA,MAAKA,SAASA,KAAKA,OAAOA,KAIlCJ,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,EAAcA,GAElCK,GAAIA,GAAIA,KAAMA,EAA6BA,IAApBA,EAAEA,WAAWA,EAMpCA,OALIA,IAAWA,IAAQA,IAASA,EAExBA,GAAUA,IAAQA,IAAUA,GACnCA,EAAaA,OAAOA,EAAEA,OAAQA,GAF9BA,EAAEA,OAAOA,KAAKA,GAIRA,EAAAA,UAAMA,SAAQA,KAAAA,KAACA,EAAKA,IAG5BL,EAAAA,UAAAA,WAAAA,SAAWA,EAAcA,GAExBM,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,MACxBA,IAASA,EAANA,EACFA,KAAMA,IAAIA,GAAAA,WAA4BA,QAASA,EAAOA,qBACvDA,IAAGA,GAAOA,EAAMA,OACfA,KAAMA,IAAIA,GAAAA,WAA4BA,QAASA,EAAOA,6BACvDA,OAAOA,GAAEA,SAASA,EAAMA,GAAQA,IAIjCN,EAAAA,UAAAA,aAAAA,SAAaA,GAEZO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAGCA,IAAIA,GADAA,IAAkBA,EACdA,EAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE5BA,EAAEA,WAAWA,EAAGA,EAAOA,MACzBA,GAAUA,EAEZA,OAAOA,MAOVP,EAAAA,UAAAA,UAAAA,WD5BW,IC4BDQ,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAETA,OAAOA,MAAKA,aAAaA,IAG1BR,EAAAA,UAAAA,cAAAA,SAAcA,GAEbS,MAAOA,MAAKA,WAAWA,EAAOA,SAGrBT,EAAAA,UAAAA,QAAVA,WAECU,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,OAAOA,OAAOA,SAAAA,GAAMA,MAAAA,GAAEA,YAAYA,MAG7CV,GA/EQH,EAAAA,WAFRN,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDoDIjB,EAAAA,WAAkBK","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.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\", '../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 return this._order.indexOf(key, 0);\n };\n OrderedStringKeyDictionary.prototype.getValueByIndex = function (index) {\n return this.getValue(this._order[index]);\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.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 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, undefined);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this;\n return _._order.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'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\treturn this._order.indexOf(key, 0);\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\treturn this.getValue(this._order[index]);\r\n\t}\r\n\r\n\t// adding keepIndex allows for clearing a value while still retaining it's index.\r\n\tsetValue(key:string, value:TValue, keepIndex?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, exists = _.indexOfKey(key)!= -1;\r\n\t\tif(!exists && (value!==VOID0 || keepIndex))\r\n\t\t\t_._order.push(key);\r\n\t\telse if(exists && value===VOID0 && !keepIndex)\r\n\t\t\tArrayUtility.remove(_._order, key);\r\n\r\n\t\treturn super.setValue(key, value);\r\n\t}\r\n\r\n\tsetByIndex(index:number, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, order = _._order;\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is less than zero.');\r\n\t\tif(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 diff --git a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js index 52f0b821..a715dd55 100644 --- a/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js +++ b/dist/amd/System/Collections/Dictionaries/StringKeyDictionary.js @@ -1,7 +1,2 @@ -/// -/* - * @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,r){function e(){this.constructor=t}for(var n in r)r.hasOwnProperty(n)&&(t[n]=r[n]);t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)};define(["require","exports","../../Compare","./DictionaryBase"],function(t,r,e,n){var o=function(t){function r(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(r,t),r.prototype.containsKey=function(t){return t in this._map},r.prototype.containsValue=function(t){var r=this._map,n=e.areEqual;for(var o in r)if(r.hasOwnProperty(o)&&n(r[o],t))return!0;return!1},r.prototype.getValue=function(t){return this._map[t]},r.prototype.setValue=function(t,r){var e=this,n=e._map,o=n[t];return o!==r?(void 0===r?t in n&&(delete n[t],--e._count):(t in n||++e._count,n[t]=r),e._onValueUpdate(t,r,o),!0):!1},r.prototype.importMap=function(t){var r=this;return r.handleUpdate(function(){var e=!1;for(var n in t)t.hasOwnProperty(n)&&r.setValue(n,t[n])&&(e=!0);return e})},r.prototype.toMap=function(t){var r=this,e={};for(var n in r._map)if(r._map.hasOwnProperty(n)){var o=r._map[n];t&&(o=t(n,o)),void 0!==o&&(e[n]=o)}return e},r.prototype.getKeys=function(){var t=this,r=[];for(var e in t._map)t._map.hasOwnProperty(e)&&r.push(e);return r},r.prototype.getValues=function(){var t=this,r=[];for(var e in t._map)t._map.hasOwnProperty(e)&&r.push(t._map[e]);return r},r.prototype.getCount=function(){return this._count},r}(n["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); +var __extends=this&&this.__extends||function(t,r){function e(){this.constructor=t}for(var n in r)r.hasOwnProperty(n)&&(t[n]=r[n]);t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)};define(["require","exports","../../Compare","./DictionaryBase"],function(t,r,e,n){"use strict";var o=void 0,a=function(t){function r(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(r,t),r.prototype.containsKey=function(t){return t in this._map},r.prototype.containsValue=function(t){var r=this._map,n=e.areEqual;for(var o in r)if(r.hasOwnProperty(o)&&n(r[o],t))return!0;return!1},r.prototype.getValue=function(t){return this._map[t]},r.prototype.setValue=function(t,r){var e=this,n=e._map,a=n[t];return a!==r?(r===o?t in n&&(delete n[t],--e._count):(t in n||++e._count,n[t]=r),e._onValueUpdate(t,r,a),!0):!1},r.prototype.importMap=function(t){var r=this;return r.handleUpdate(function(){var e=!1;for(var n in t)t.hasOwnProperty(n)&&r.setValue(n,t[n])&&(e=!0);return e})},r.prototype.toMap=function(t){var r=this,e={};for(var n in r._map)if(r._map.hasOwnProperty(n)){var a=r._map[n];t&&(a=t(n,a)),a!==o&&(e[n]=a)}return e},r.prototype.getKeys=function(){var t=this,r=[];for(var e in t._map)t._map.hasOwnProperty(e)&&r.push(e);return r},r.prototype.getValues=function(){var t=this,r=[];for(var e in t._map)t._map.hasOwnProperty(e)&&r.push(t._map[e]);return r},r.prototype.getCount=function(){return this._count},r}(n["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=a}); //# 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 eb5b0528..49ea4cac 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","StringKeyDictionary","_super","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount","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,oBAAqB,SAAUC,EAASC,EAASC,EAAWC,GCC3G,GAAAC,GAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WAECA,KAAAA,OAAgBA,EAChBA,KAAAA,QAwHTF,MA3HQA,WAAAA,EAAAA,GAMPA,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,MAAOA,KAAQA,MAASA,MAGzBH,EAAAA,UAAAA,cAAAA,SAAcA,GAEbI,GAAIA,GAAMA,KAAKA,KAAMA,EAAmDA,EAAAA,QACxEA,KAAIA,GAAIA,KAAOA,GAEdA,GAAGA,EAAIA,eAAeA,IAAQA,EAAMA,EAAIA,GAAMA,GAC7CA,OAAOA,CAETA,QAAOA,GAIRJ,EAAAA,UAAAA,SAAAA,SAASA,GAERK,MAAOA,MAAKA,KAAKA,IAGlBL,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,GAEpBM,GAAIA,GAAIA,KAAMA,EAAMA,EAAEA,KAAMA,EAAMA,EAAIA,EACtCA,OAAGA,KAAMA,GAGGA,SAARA,EAECA,IAAOA,WAEFA,GAAIA,KACTA,EAAEA,SAKAA,IAAOA,MACTA,EAAEA,OACLA,EAAIA,GAAOA,GAGZA,EAAEA,eAAeA,EAAKA,EAAOA,IACtBA,IAEDA,GAIRN,EAAAA,UAAAA,UAAAA,SAAUA,GAETO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAECA,GAAIA,IAAkBA,CACtBA,KAAIA,GAAIA,KAAOA,GAEXA,EAAOA,eAAeA,IAAQA,EAAEA,SAASA,EAAKA,EAAOA,MACvDA,GAAUA,EAEZA,OAAOA,MAKVP,EAAAA,UAAAA,MAAAA,SAAMA,GAELQ,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEhBA,GAAGA,EAAEA,KAAKA,eAAeA,GACzBA,CACCA,GAAIA,GAAQA,EAAEA,KAAKA,EAChBA,KACFA,EAAQA,EAASA,EAAKA,IACZA,SAARA,IACFA,EAAOA,GAAOA,GAGjBA,MAAOA,IAGER,EAAAA,UAAAA,QAAVA,WAGCS,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAGdA,OAAOA,IAIET,EAAAA,UAAAA,UAAVA,WAGCU,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAAEA,KAAKA,GAGrBA,OAAOA,IAGEV,EAAAA,UAAAA,SAAVA,WAECW,MAAOA,MAAKA,QAIdX,GA3HQD,EAAAA,WAFRN,QAAAmB,eAAAf,EAAA,cAAAgB,OAAA,IDsFIhB,EAAAA,WAAkBG","file":"System/Collections/Dictionaries/StringKeyDictionary.js","sourcesContent":["///\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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', './DictionaryBase'], function (require, exports) {\r\n var Compare_1 = require('../../Compare');\r\n var DictionaryBase_1 = require('./DictionaryBase');\r\n var StringKeyDictionary = (function (_super) {\r\n __extends(StringKeyDictionary, _super);\r\n function StringKeyDictionary() {\r\n _super.apply(this, arguments);\r\n this._count = 0;\r\n this._map = {};\r\n }\r\n StringKeyDictionary.prototype.containsKey = function (key) {\r\n return (key) in (this._map);\r\n };\r\n StringKeyDictionary.prototype.containsValue = function (value) {\r\n var map = this._map, equal = Compare_1.areEqual;\r\n for (var key in map) {\r\n if (map.hasOwnProperty(key) && equal(map[key], value))\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringKeyDictionary.prototype.getValue = function (key) {\r\n return this._map[key];\r\n };\r\n StringKeyDictionary.prototype.setValue = function (key, value) {\r\n var _ = this, map = _._map, old = map[key];\r\n if (old !== value) {\r\n if (value === undefined) {\r\n if ((key) in (map)) {\r\n delete map[key];\r\n --_._count;\r\n }\r\n }\r\n else {\r\n if (!((key) in (map)))\r\n ++_._count;\r\n map[key] = value;\r\n }\r\n _._onValueUpdate(key, value, old);\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringKeyDictionary.prototype.importMap = function (values) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n for (var key in values) {\r\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n changed = true;\r\n }\r\n return changed;\r\n });\r\n };\r\n StringKeyDictionary.prototype.toMap = function (selector) {\r\n var _ = this, result = {};\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key)) {\r\n var value = _._map[key];\r\n if (selector)\r\n value = selector(key, value);\r\n if (value !== undefined)\r\n result[key] = value;\r\n }\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getKeys = function () {\r\n var _ = this, result = [];\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key))\r\n result.push(key);\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getValues = function () {\r\n var _ = this, result = [];\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key))\r\n result.push(_._map[key]);\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getCount = function () {\r\n return this._count;\r\n };\r\n return StringKeyDictionary;\r\n })(DictionaryBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = StringKeyDictionary;\r\n});\r\n//# sourceMappingURL=StringKeyDictionary.js.map","///\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 {areEqual} from '../../Compare';\r\nimport DictionaryBase from './DictionaryBase';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\r\n\r\n\r\nexport default\r\nclass StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\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\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\treturn this._map[key];\r\n\t}\r\n\r\n\tsetValue(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===undefined)\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(!((key)in(map)))\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\t_._onValueUpdate(key, value, old);\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\tfor(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!==undefined)\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\r\n\t\tvar _ = this, result:string[] = [];\r\n\t\tfor(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\tresult.push(key);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tfor(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\tresult.push(_._map[key]);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file +{"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","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount","defineProperty","value"],"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,gBAAiB,oBAAqB,SAAUC,EAASC,EAASC,EAAWC,GCD3G,YAOA,IAAMC,GAAY,OAElBC,EAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WAECA,KAAAA,OAAgBA,EAChBA,KAAAA,QAwHTF,MA3HQA,WAAAA,EAAAA,GAMPA,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,MAAOA,KAAQA,MAASA,MAGzBH,EAAAA,UAAAA,cAAAA,SAAcA,GAEbI,GAAIA,GAAMA,KAAKA,KAAMA,EAAmDA,EAAAA,QACxEA,KAAIA,GAAIA,KAAOA,GAEdA,GAAGA,EAAIA,eAAeA,IAAQA,EAAMA,EAAIA,GAAMA,GAC7CA,OAAOA,CAETA,QAAOA,GAIRJ,EAAAA,UAAAA,SAAAA,SAASA,GAERK,MAAOA,MAAKA,KAAKA,IAGlBL,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,GAEpBM,GAAIA,GAAIA,KAAMA,EAAMA,EAAEA,KAAMA,EAAMA,EAAIA,EACtCA,OAAGA,KAAMA,GAGLA,IAAQA,EAEPA,IAAOA,WAEFA,GAAIA,KACTA,EAAEA,SAKAA,IAAOA,MACTA,EAAEA,OACLA,EAAIA,GAAOA,GAGZA,EAAEA,eAAeA,EAAKA,EAAOA,IACtBA,IAEDA,GAIRN,EAAAA,UAAAA,UAAAA,SAAUA,GAETO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAECA,GAAIA,IAAkBA,CACtBA,KAAIA,GAAIA,KAAOA,GAEXA,EAAOA,eAAeA,IAAQA,EAAEA,SAASA,EAAKA,EAAOA,MACvDA,GAAUA,EAEZA,OAAOA,MAKVP,EAAAA,UAAAA,MAAAA,SAAMA,GAELQ,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEhBA,GAAGA,EAAEA,KAAKA,eAAeA,GACzBA,CACCA,GAAIA,GAAQA,EAAEA,KAAKA,EAChBA,KACFA,EAAQA,EAASA,EAAKA,IACpBA,IAAQA,IACVA,EAAOA,GAAOA,GAGjBA,MAAOA,IAGER,EAAAA,UAAAA,QAAVA,WAGCS,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAGdA,OAAOA,IAIET,EAAAA,UAAAA,UAAVA,WAGCU,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAAEA,KAAKA,GAGrBA,OAAOA,IAGEV,EAAAA,UAAAA,SAAVA,WAECW,MAAOA,MAAKA,QAIdX,GA3HQF,EAAAA,WAFRN,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDiFIjB,EAAAA,WAAkBI","file":"System/Collections/Dictionaries/StringKeyDictionary.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\", '../../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.containsKey = function (key) {\n return (key) in (this._map);\n };\n StringKeyDictionary.prototype.containsValue = function (value) {\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 return this._map[key];\n };\n StringKeyDictionary.prototype.setValue = 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 (!((key) in (map)))\n ++_._count;\n map[key] = value;\n }\n _._onValueUpdate(key, value, old);\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 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 var _ = this, result = [];\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key))\n result.push(key);\n }\n return result;\n };\n StringKeyDictionary.prototype.getValues = function () {\n var _ = this, result = [];\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key))\n result.push(_._map[key]);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\nimport {areEqual} from '../../Compare';\r\nimport DictionaryBase from './DictionaryBase';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\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\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\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\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\treturn this._map[key];\r\n\t}\r\n\r\n\tsetValue(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(!((key)in(map)))\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\t_._onValueUpdate(key, value, old);\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\tfor(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\r\n\t\tvar _ = this, result:string[] = [];\r\n\t\tfor(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\tresult.push(key);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tfor(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\tresult.push(_._map[key]);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js index 064cc2a4..e4b5e2fc 100644 --- a/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/amd/System/Collections/Enumeration/ArrayEnumerator.js @@ -1,6 +1,2 @@ -/* - * @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){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["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}); //# 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 98c74a44..fcb2bd0f 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","ArrayEnumerator.constructor","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,GCAlH,GAAAC,GAAA,SAAAC,GAKCD,QAAAA,GAAYA,EAAoBA,EAAkBA,GAAlBE,SAAAA,IAAAA,EAAAA,GAAkBA,SAAAA,IAAAA,EAAAA,GAEjDA,EAAAA,KAAAA,KACCA,WAECA,GAAIA,GAAQA,EAAAA,WAAKA,WAAWA,GAAkBA,IAAmBA,CACjEA,QAAQA,OAAQA,EAAOA,QAASA,EAAOA,OAASA,EAAQA,EAAMA,OAASA,EAAIA,KAAMA,KAIrFF,MAdiCA,WAAAA,EAAAA,GAcjCA,GAdiCF,EAAAA,WADjCL,QAAAU,eAAAN,EAAA,cAAAO,OAAA,IDcIP,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './IndexEnumerator', '../../Types'], function (require, exports) {\r\n ///\r\n var IndexEnumerator_1 = require('./IndexEnumerator');\r\n var Types_1 = require('../../Types');\r\n var ArrayEnumerator = (function (_super) {\r\n __extends(ArrayEnumerator, _super);\r\n function ArrayEnumerator(arrayOrFactory, start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n _super.call(this, function () {\r\n var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n return { source: array, pointer: start, length: (array ? array.length : 0), step: step };\r\n });\r\n }\r\n return ArrayEnumerator;\r\n })(IndexEnumerator_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArrayEnumerator;\r\n});\r\n//# sourceMappingURL=ArrayEnumerator.js.map","/*\r\n * @author 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\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","ArrayEnumerator.constructor","defineProperty","value"],"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,oBAAqB,eAAgB,SAAUC,EAASC,EAASC,EAAmBC,GCDlH,YAMA,IAAAC,GAAA,SAAAC,GAKCD,QAAAA,GAAYA,EAAoBA,EAAkBA,GAAlBE,SAAAA,IAAAA,EAAAA,GAAkBA,SAAAA,IAAAA,EAAAA,GAEjDA,EAAAA,KAAAA,KACCA,WAECA,GAAIA,GAAQA,EAAAA,WAAKA,WAAWA,GAAkBA,IAAmBA,CACjEA,QAAQA,OAAQA,EAAOA,QAASA,EAAOA,OAASA,EAAQA,EAAMA,OAASA,EAAIA,KAAMA,KAIrFF,MAdiCA,WAAAA,EAAAA,GAcjCA,GAdiCF,EAAAA,WADjCL,QAAAU,eAAAN,EAAA,cAAAO,OAAA,IDUIP,EAAAA,WAAkBG","file":"System/Collections/Enumeration/ArrayEnumerator.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\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 diff --git a/dist/amd/System/Collections/Enumeration/Enumerator.js b/dist/amd/System/Collections/Enumeration/Enumerator.js index 68c70cf8..a079aadc 100644 --- a/dist/amd/System/Collections/Enumeration/Enumerator.js +++ b/dist/amd/System/Collections/Enumeration/Enumerator.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","../../Types","./ArrayEnumerator","./IndexEnumerator"],function(e,r,t,n,o){function u(e){if(!e)return c;if(Array.isArray(e))return new n["default"](e);if(!t["default"].isPrimitive(e)){if(t["default"].isArrayLike(e))return new o["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(i(e))return e.getEnumerator()}throw new Error("Unknown enumerable.")}function i(e){return t["default"].hasMemberOfType(e,"getEnumerator",t["default"].FUNCTION)}function f(e,r){if(e)for(var t=0;e.moveNext()&&r(e.current,t++)!==!1;);}var a=function(){function e(){}return Object.defineProperty(e.prototype,"current",{get:function(){return void 0},enumerable:!0,configurable:!0}),e.prototype.moveNext=function(){return!1},e.prototype.reset=function(){},e.prototype.dispose=function(){},e}(),c=new a;r.from=u,r.isEnumerable=i,r.forEach=f}); +define(["require","exports","../../Types","./ArrayEnumerator","./IndexEnumerator"],function(e,r,t,n,u){"use strict";function o(e){if(!e)return c;if(Array.isArray(e))return new n["default"](e);if(!t["default"].isPrimitive(e)){if(t["default"].isArrayLike(e))return new u["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(i(e))return e.getEnumerator()}throw new Error("Unknown enumerable.")}function i(e){return t["default"].hasMemberOfType(e,"getEnumerator",t["default"].FUNCTION)}function f(e,r){if(e)for(var t=0;e.moveNext()&&r(e.current,t++)!==!1;);}var a=function(){function e(){}return Object.defineProperty(e.prototype,"current",{get:function(){},enumerable:!0,configurable:!0}),e.prototype.moveNext=function(){return!1},e.prototype.reset=function(){},e.prototype.dispose=function(){},e}(),c=new a;r.from=o,r.isEnumerable=i,r.forEach=f}); //# sourceMappingURL=Enumerator.js.map diff --git a/dist/amd/System/Collections/Enumeration/Enumerator.js.map b/dist/amd/System/Collections/Enumeration/Enumerator.js.map index 827636fa..a7b8171a 100644 --- a/dist/amd/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/amd/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/Enumerator.js","System/Collections/Enumeration/Enumerator.ts"],"names":["define","require","exports","Types_1","ArrayEnumerator_1","IndexEnumerator_1","from","source","isEnumerable","instance","forEach","e","action","EmptyEnumerator","get","EmptyEnumerator.current","enumerable","configurable","EmptyEnumerator.moveNext","Empty"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,cAAe,oBAAqB,qBAAsB,SAAUC,EAASC,EAASC,EAASC,EAAmBC,GC+BhJ,QAAAC,GAAwBC,GAGvBD,IAAIA,EACHA,MAAOA,EAERA,IAAGA,MAAMA,QAAQA,GAChBA,MAAOA,IAAIA,GAAAA,WAAwBA,EAGpCA,KAAIA,EAAAA,WAAKA,YAAYA,GACrBA,CACCA,GAAGA,EAAAA,WAAKA,YAAeA,GAEtBA,MAAOA,IAAIA,GAAAA,WACVA,WAECA,OACCA,OAAQA,EACRA,OAAQA,EAAOA,OACfA,QAASA,EACTA,KAAMA,IAKVA,IAAGA,EAAgBA,GAClBA,MAAOA,GAAOA,gBAIhBA,KAAMA,IAAIA,OAAMA,uBAGjB,QAAAE,GAAgCC,GAE/BD,MAAOA,GAAAA,WAAKA,gBAAgCA,EAAUA,gBAAiBA,EAAAA,WAAKA,UAG7E,QAAAE,GACCC,EACAC,GAEAF,GAAGA,EAIFA,IAFAA,GAAIA,GAAQA,EAENA,EAAEA,YAEJA,EAAOA,EAAEA,QAASA,QAAWA,KArEnC,GAAAG,GAAA,WAAAA,QAAAA,MAeAA,MAbCA,QAAAA,eAAIA,EAAAA,UAAAA,WDROC,ICQXD,WAECE,MAAOA,SDPGC,YAAY,EACZC,cAAc,ICSzBJ,EAAAA,UAAAA,SAAAA,WAECK,OAAOA,GAGRL,EAAAA,UAAAA,MAAAA,aAEAA,EAAAA,UAAAA,QAAAA,aACDA,KAEMM,EAAQ,GAAIN,EAGFX,GAAAI,KAAIA,EAkCJJ,EAAAM,aAAYA,EAKZN,EAAAQ,QAAOA","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Types', './ArrayEnumerator', './IndexEnumerator'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../../Types');\r\n var ArrayEnumerator_1 = require('./ArrayEnumerator');\r\n var IndexEnumerator_1 = require('./IndexEnumerator');\r\n var EmptyEnumerator = (function () {\r\n function EmptyEnumerator() {\r\n }\r\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\r\n get: function () {\r\n return undefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EmptyEnumerator.prototype.moveNext = function () {\r\n return false;\r\n };\r\n EmptyEnumerator.prototype.reset = function () { };\r\n EmptyEnumerator.prototype.dispose = function () { };\r\n return EmptyEnumerator;\r\n })();\r\n var Empty = new EmptyEnumerator();\r\n function from(source) {\r\n if (!source)\r\n return Empty;\r\n if (Array.isArray(source))\r\n return new ArrayEnumerator_1.default(source);\r\n if (!Types_1.default.isPrimitive(source)) {\r\n if (Types_1.default.isArrayLike(source)) {\r\n return new IndexEnumerator_1.default(function () {\r\n return {\r\n source: source,\r\n length: source.length,\r\n pointer: 0,\r\n step: 1\r\n };\r\n });\r\n }\r\n if (isEnumerable(source))\r\n return source.getEnumerator();\r\n }\r\n throw new Error(\"Unknown enumerable.\");\r\n }\r\n exports.from = from;\r\n function isEnumerable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, \"getEnumerator\", Types_1.default.FUNCTION);\r\n }\r\n exports.isEnumerable = isEnumerable;\r\n function forEach(e, action) {\r\n if (e) {\r\n var index = 0;\r\n while (e.moveNext()) {\r\n if (action(e.current, index++) === false)\r\n break;\r\n }\r\n }\r\n }\r\n exports.forEach = forEach;\r\n});\r\n//# sourceMappingURL=Enumerator.js.map","/*\r\n * @author 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 DisposableBase from '../../Disposable/DisposableBase';\r\nimport ArrayEnumerator from './ArrayEnumerator';\r\nimport IndexEnumerator from './IndexEnumerator';\r\n\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerable | IArray):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\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(Type.isArrayLike(source))\r\n\t\t{\r\n\t\t\treturn new IndexEnumerator(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsource: source,\r\n\t\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\t\tstep: 1\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\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 forEach(\r\n\te:IEnumerator,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tvar index = 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\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\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","Types_1","ArrayEnumerator_1","IndexEnumerator_1","from","source","isEnumerable","instance","forEach","e","action","EmptyEnumerator","get","enumerable","configurable","EmptyEnumerator.moveNext","Empty"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,cAAe,oBAAqB,qBAAsB,SAAUC,EAASC,EAASC,EAASC,EAAmBC,GCIhJ,YAgCA,SAAAC,GAAwBC,GAGvBD,IAAIA,EACHA,MAAOA,EAERA,IAAGA,MAAMA,QAAQA,GAChBA,MAAOA,IAAIA,GAAAA,WAAwBA,EAGpCA,KAAIA,EAAAA,WAAKA,YAAYA,GACrBA,CACCA,GAAGA,EAAAA,WAAKA,YAAeA,GAEtBA,MAAOA,IAAIA,GAAAA,WACVA,WAECA,OACCA,OAAQA,EACRA,OAAQA,EAAOA,OACfA,QAASA,EACTA,KAAMA,IAKVA,IAAGA,EAAgBA,GAClBA,MAAOA,GAAOA,gBAIhBA,KAAMA,IAAIA,OAAMA,uBAGjB,QAAAE,GAAgCC,GAE/BD,MAAOA,GAAAA,WAAKA,gBAAgCA,EAAUA,gBAAiBA,EAAAA,WAAKA,UAG7E,QAAAE,GACCC,EACAC,GAEAF,GAAGA,EAIFA,IAFAA,GAAIA,GAAQA,EAENA,EAAEA,YAEJA,EAAOA,EAAEA,QAASA,QAAWA,KArEnC,GAAAG,GAAA,WAAAA,QAAAA,MAeAA,MAbCA,QAAAA,eAAIA,EAAAA,UAAAA,WDZOC,ICYXD,aDTWE,YAAY,EACZC,cAAc,ICazBH,EAAAA,UAAAA,SAAAA,WAECI,OAAOA,GAGRJ,EAAAA,UAAAA,MAAAA,aAEAA,EAAAA,UAAAA,QAAAA,aACDA,KAEMK,EAAQ,GAAIL,EAGFX,GAAAI,KAAIA,EAkCJJ,EAAAM,aAAYA,EAKZN,EAAAQ,QAAOA","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["define([\"require\", \"exports\", '../../Types', './ArrayEnumerator', './IndexEnumerator'], function (require, exports, Types_1, ArrayEnumerator_1, IndexEnumerator_1) {\n 'use strict';\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return undefined;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n return EmptyEnumerator;\n })();\n var Empty = new EmptyEnumerator();\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.isPrimitive(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 (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 forEach(e, action) {\n if (e) {\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase';\r\nimport ArrayEnumerator from './ArrayEnumerator';\r\nimport IndexEnumerator from './IndexEnumerator';\r\n\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerable | IArray):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\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(Type.isArrayLike(source))\r\n\t\t{\r\n\t\t\treturn new IndexEnumerator(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsource: source,\r\n\t\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\t\tstep: 1\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\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 forEach(\r\n\te:IEnumerator,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tvar index = 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\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js index b664729b..1e265a2f 100644 --- a/dist/amd/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/amd/System/Collections/Enumeration/EnumeratorBase.js @@ -1,6 +1,2 @@ -/* - * @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","../../Disposable/DisposableBase"],function(e,t,r){var n,i=function(){function e(){}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=null,!1},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(n||(n={}));var o=function(e){function t(t,r,n){e.call(this),this.initializer=t,this.tryGetNext=r,this.disposer=n,this.reset()}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e._yielder=new i,e._state=n.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case n.Before:e._state=n.Running;var t=e.initializer;t&&t();case n.Running:return e.tryGetNext(e._yielder)?!0:(this.dispose(),!1);case n.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype._onDispose=function(){var e=this,t=e.disposer;e.initializer=null,e.disposer=null;var r=e._yielder;e._yielder=null,r&&r.yieldBreak();try{t&&t()}finally{this._state=n.After}},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 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","../../Disposable/DisposableBase"],function(e,t,r){"use strict";var n,i=function(){function e(){}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=null,!1},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(n||(n={}));var o=function(e){function t(t,r,n){e.call(this),this.initializer=t,this.tryGetNext=r,this.disposer=n,this.reset()}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e._yielder=new i,e._state=n.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case n.Before:e._state=n.Running;var t=e.initializer;t&&t();case n.Running:return e.tryGetNext(e._yielder)?!0:(this.dispose(),!1);case n.After:return!1}}catch(r){throw this.dispose(),r}},t.prototype._onDispose=function(){var e=this,t=e.disposer;e.initializer=null,e.disposer=null;var r=e._yielder;e._yielder=null,r&&r.yieldBreak();try{t&&t()}finally{this._state=n.After}},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# 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 84727e1d..35d17744 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","DisposableBase_1","EnumeratorState","Yielder","get","Yielder.current","enumerable","configurable","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorBase","_super","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._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,mCAAoC,SAAUC,EAASC,EAASC,GCI9F,GAiBKC,GAjBLC,EAAA,WAAAA,QAAAA,MAcAA,MAXCA,QAAAA,eAAIA,EAAAA,UAAAA,WDFOC,ICEXD,WAAkBE,MAAOA,MAAKA,UDDnBC,YAAY,EACZC,cAAc,ICEzBJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,MADAA,MAAKA,SAAWA,GACTA,GAGRL,EAAAA,UAAAA,WAAAA,WAECM,MADAA,MAAKA,SAAWA,MACTA,GAETN,MAGA,SAAKD,GAAkBA,EAAAA,EAAAA,OAAAA,GAAAA,SAAQA,EAAAA,EAAAA,QAAAA,GAAAA,UAASA,EAAAA,EAAAA,MAAAA,GAAAA,SAAnCA,IAAAA,MAGL,IAAAQ,GAAA,SAAAC,GAYCD,QAAAA,GACSA,EACAA,EACAA,GAERE,EAAAA,KAAAA,MAJQA,KAAAA,YAAAA,EACAA,KAAAA,WAAAA,EACAA,KAAAA,SAAAA,EAGRA,KAAKA,QA6DPF,MA9EgCA,WAAAA,EAAAA,GAM/BA,OAAAA,eAAIA,EAAAA,UAAAA,WDION,ICJXM,WACCG,MAAOA,MAAKA,SAASA,SDMXP,YAAY,EACZC,cAAc,ICOzBG,EAAAA,UAAAA,MAAAA,WACCI,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,GAAIA,GACjBA,EAAEA,OAASA,EAAgBA,QAG5BJ,EAAAA,UAAAA,SAAAA,WACCK,GAAIA,GAAIA,IACRA,KACCA,OAAOA,EAAEA,QACRA,IAAKA,GAAgBA,OACpBA,EAAEA,OAASA,EAAgBA,OAC3BA,IAAIA,GAAcA,EAAEA,WACjBA,IACFA,GAEFA,KAAKA,GAAgBA,QACpBA,MAAGA,GAAEA,WAAWA,EAAEA,WACVA,GAGPA,KAAKA,WACEA,EAETA,KAAKA,GAAgBA,MACpBA,OAAOA,GAGVA,MAAMA,GAELA,KADAA,MAAKA,UACCA,IAIEL,EAAAA,UAAAA,WAAVA,WACCM,GAAIA,GAAIA,KAAMA,EAAWA,EAAEA,QAE3BA,GAAEA,YAAcA,KAChBA,EAAEA,SAAWA,IAEbA,IAAIA,GAAUA,EAAEA,QAChBA,GAAEA,SAAWA,KACVA,GACFA,EAAQA,YAETA,KAEIA,GACFA,IDVQ,QCeTA,KAAKA,OAASA,EAAgBA,QAIjCN,GA9EgCT,EAAAA,WADhCL,QAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,IDmEIlB,EAAAA,WAAkBU","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Disposable/DisposableBase'], function (require, exports) {\r\n var DisposableBase_1 = require('../../Disposable/DisposableBase');\r\n var Yielder = (function () {\r\n function Yielder() {\r\n }\r\n Object.defineProperty(Yielder.prototype, \"current\", {\r\n get: function () { return this._current; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Yielder.prototype.yieldReturn = function (value) {\r\n this._current = value;\r\n return true;\r\n };\r\n Yielder.prototype.yieldBreak = function () {\r\n this._current = null;\r\n return false;\r\n };\r\n return Yielder;\r\n })();\r\n var EnumeratorState;\r\n (function (EnumeratorState) {\r\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\r\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\r\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\r\n })(EnumeratorState || (EnumeratorState = {}));\r\n var EnumeratorBase = (function (_super) {\r\n __extends(EnumeratorBase, _super);\r\n function EnumeratorBase(initializer, tryGetNext, disposer) {\r\n _super.call(this);\r\n this.initializer = initializer;\r\n this.tryGetNext = tryGetNext;\r\n this.disposer = disposer;\r\n this.reset();\r\n }\r\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\r\n get: function () {\r\n return this._yielder.current;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EnumeratorBase.prototype.reset = function () {\r\n var _ = this;\r\n _._yielder = new Yielder();\r\n _._state = EnumeratorState.Before;\r\n };\r\n EnumeratorBase.prototype.moveNext = function () {\r\n var _ = this;\r\n try {\r\n switch (_._state) {\r\n case EnumeratorState.Before:\r\n _._state = EnumeratorState.Running;\r\n var initializer = _.initializer;\r\n if (initializer)\r\n initializer();\r\n case EnumeratorState.Running:\r\n if (_.tryGetNext(_._yielder)) {\r\n return true;\r\n }\r\n else {\r\n this.dispose();\r\n return false;\r\n }\r\n case EnumeratorState.After:\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.dispose();\r\n throw e;\r\n }\r\n };\r\n EnumeratorBase.prototype._onDispose = function () {\r\n var _ = this, disposer = _.disposer;\r\n _.initializer = null;\r\n _.disposer = null;\r\n var yielder = _._yielder;\r\n _._yielder = null;\r\n if (yielder)\r\n yielder.yieldBreak();\r\n try {\r\n if (disposer)\r\n disposer();\r\n }\r\n finally {\r\n this._state = EnumeratorState.After;\r\n }\r\n };\r\n return EnumeratorBase;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = EnumeratorBase;\r\n});\r\n//# sourceMappingURL=EnumeratorBase.js.map","/*\r\n * @author 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 DisposableBase from '../../Disposable/DisposableBase'\r\n\r\n\r\n\r\nclass Yielder implements IYield\r\n{\r\n\tprivate _current:T;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean {\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean {\r\n\t\tthis._current = null;\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\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\r\n\tget current():T {\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\t// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n\tconstructor(\r\n\t\tprivate initializer:() => void,\r\n\t\tprivate tryGetNext:(yielder:IYield) => boolean,\r\n\t\tprivate disposer?:() => void)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\r\n\treset():void {\r\n\t\tvar _ = this;\r\n\t\t_._yielder = new Yielder();\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean {\r\n\t\tvar _ = this;\r\n\t\ttry {\r\n\t\t\tswitch(_._state) {\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\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\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\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void {\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\t\tvar yielder = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tif(yielder)\r\n\t\t\tyielder.yieldBreak();\r\n\r\n\t\ttry {\r\n\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\r\n\t\t}\r\n\t\tfinally {\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","DisposableBase_1","EnumeratorState","Yielder","get","Yielder.current","enumerable","configurable","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorBase","_super","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._onDispose","defineProperty","value"],"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,mCAAoC,SAAUC,EAASC,EAASC,GCE9F,YAOA,IAiBKC,GAjBLC,EAAA,WAAAA,QAAAA,MAcAA,MAXCA,QAAAA,eAAIA,EAAAA,UAAAA,WDNOC,ICMXD,WAAkBE,MAAOA,MAAKA,UDLnBC,YAAY,EACZC,cAAc,ICMzBJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,MADAA,MAAKA,SAAWA,GACTA,GAGRL,EAAAA,UAAAA,WAAAA,WAECM,MADAA,MAAKA,SAAWA,MACTA,GAETN,MAGA,SAAKD,GAAkBA,EAAAA,EAAAA,OAAAA,GAAAA,SAAQA,EAAAA,EAAAA,QAAAA,GAAAA,UAASA,EAAAA,EAAAA,MAAAA,GAAAA,SAAnCA,IAAAA,MAGL,IAAAQ,GAAA,SAAAC,GAYCD,QAAAA,GACSA,EACAA,EACAA,GAERE,EAAAA,KAAAA,MAJQA,KAAAA,YAAAA,EACAA,KAAAA,WAAAA,EACAA,KAAAA,SAAAA,EAGRA,KAAKA,QA6DPF,MA9EgCA,WAAAA,EAAAA,GAM/BA,OAAAA,eAAIA,EAAAA,UAAAA,WDAON,ICAXM,WACCG,MAAOA,MAAKA,SAASA,SDEXP,YAAY,EACZC,cAAc,ICWzBG,EAAAA,UAAAA,MAAAA,WACCI,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,GAAIA,GACjBA,EAAEA,OAASA,EAAgBA,QAG5BJ,EAAAA,UAAAA,SAAAA,WACCK,GAAIA,GAAIA,IACRA,KACCA,OAAOA,EAAEA,QACRA,IAAKA,GAAgBA,OACpBA,EAAEA,OAASA,EAAgBA,OAC3BA,IAAIA,GAAcA,EAAEA,WACjBA,IACFA,GAEFA,KAAKA,GAAgBA,QACpBA,MAAGA,GAAEA,WAAWA,EAAEA,WACVA,GAGPA,KAAKA,WACEA,EAETA,KAAKA,GAAgBA,MACpBA,OAAOA,GAGVA,MAAMA,GAELA,KADAA,MAAKA,UACCA,IAIEL,EAAAA,UAAAA,WAAVA,WACCM,GAAIA,GAAIA,KAAMA,EAAWA,EAAEA,QAE3BA,GAAEA,YAAcA,KAChBA,EAAEA,SAAWA,IAEbA,IAAIA,GAAUA,EAAEA,QAChBA,GAAEA,SAAWA,KACVA,GACFA,EAAQA,YAETA,KAEIA,GACFA,IDdQ,QCmBTA,KAAKA,OAASA,EAAgBA,QAIjCN,GA9EgCT,EAAAA,WADhCL,QAAAqB,eAAAjB,EAAA,cAAAkB,OAAA,ID+DIlB,EAAAA,WAAkBU","file":"System/Collections/Enumeration/EnumeratorBase.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\", '../../Disposable/DisposableBase'], function (require, exports, DisposableBase_1) {\n 'use strict';\n var Yielder = (function () {\n function Yielder() {\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 = null;\n return false;\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) {\n _super.call(this);\n this.initializer = initializer;\n this.tryGetNext = tryGetNext;\n this.disposer = disposer;\n this.reset();\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _._yielder = new 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._onDispose = function () {\n var _ = this, disposer = _.disposer;\n _.initializer = null;\n _.disposer = null;\n var yielder = _._yielder;\n _._yielder = null;\n if (yielder)\n yielder.yieldBreak();\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase'\r\n\r\n\r\n\r\nclass Yielder implements IYield\r\n{\r\n\tprivate _current:T;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean {\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean {\r\n\t\tthis._current = null;\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\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\r\n\tget current():T {\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\t// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n\tconstructor(\r\n\t\tprivate initializer:() => void,\r\n\t\tprivate tryGetNext:(yielder:IYield) => boolean,\r\n\t\tprivate disposer?:() => void)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\r\n\treset():void {\r\n\t\tvar _ = this;\r\n\t\t_._yielder = new Yielder();\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean {\r\n\t\tvar _ = this;\r\n\t\ttry {\r\n\t\t\tswitch(_._state) {\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\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\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\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void {\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\t\tvar yielder = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tif(yielder)\r\n\t\t\tyielder.yieldBreak();\r\n\r\n\t\ttry {\r\n\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\r\n\t\t}\r\n\t\tfinally {\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 diff --git a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js index b0d36d64..d1345f44 100644 --- a/dist/amd/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/amd/System/Collections/Enumeration/IndexEnumerator.js @@ -1,2 +1,2 @@ -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){var n=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){if(t.length&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var e=t.pointer;if(e){if(e!=Math.floor(e))throw new Error("Invalid IndexEnumerator pointer value ("+e+") has decimal.")}else t.pointer=0;t.pointer=e;var n=t.step;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator step value ("+n+") has decimal.")}else t.step=1;t.step=n}},function(e){var r=t&&t.source?t.length:0;if(!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)})}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){if(t.length&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var e=t.pointer;if(e){if(e!=Math.floor(e))throw new Error("Invalid IndexEnumerator pointer value ("+e+") has decimal.")}else t.pointer=0;t.pointer=e;var n=t.step;if(n){if(n!=Math.floor(n))throw new Error("Invalid IndexEnumerator step value ("+n+") has decimal.")}else t.step=1;t.step=n}},function(e){var r=t&&t.source?t.length:0;if(!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)})}return __extends(r,e),r}(t["default"]);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 9051ab8d..393d1df8 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","IndexEnumerator.constructor","defineProperty","value"],"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,oBAAqB,SAAUC,EAASC,EAASC,GCH/E,GAAAC,GAAA,SAAAC,GAICD,QAAAA,GACCA,GAGAE,GAAIA,EACJA,GAAAA,KAAAA,KACCA,WAGCA,GADAA,EAASA,IACNA,GAAUA,EAAOA,OACpBA,CACCA,GAAGA,EAAOA,QAAwBA,IAAdA,EAAOA,KAC1BA,KAAMA,IAAIA,OAAMA,0CAEjBA,IAAIA,GAAUA,EAAOA,OACrBA,IAAIA,GAECA,GAAGA,GAASA,KAAKA,MAAMA,GAC3BA,KAAMA,IAAIA,OAAMA,0CAA4CA,EAAUA,sBAFtEA,GAAOA,QAAUA,CAGlBA,GAAOA,QAAUA,CAEjBA,IAAIA,GAAOA,EAAOA,IAClBA,IAAIA,GAECA,GAAGA,GAAMA,KAAKA,MAAMA,GACxBA,KAAMA,IAAIA,OAAMA,uCAAyCA,EAAOA,sBAFhEA,GAAOA,KAAOA,CAGfA,GAAOA,KAAOA,IAIhBA,SAACA,GAEAA,GAAIA,GAAOA,GAAUA,EAAOA,OAAUA,EAAOA,OAASA,CACtDA,KAAIA,EACHA,MAAOA,GAAQA,YAChBA,IAAIA,GAAUA,EAAOA,OAErBA,OADAA,GAAOA,SAAWA,EAAOA,KACTA,EAARA,GAAeA,GAASA,EAC7BA,EAAQA,YAAYA,EAAOA,OAAOA,IAClCA,EAAQA,cAGZA,WAEIA,IAEFA,EAAOA,OAASA,QAKrBF,MAtDiCA,WAAAA,EAAAA,GAsDjCA,GAtDiCD,EAAAA,WADjCL,QAAAS,eAAAL,EAAA,cAAAM,OAAA,ID4CIN,EAAAA,WAAkBE","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './EnumeratorBase'], function (require, exports) {\r\n var EnumeratorBase_1 = require('./EnumeratorBase');\r\n var IndexEnumerator = (function (_super) {\r\n __extends(IndexEnumerator, _super);\r\n function IndexEnumerator(sourceFactory) {\r\n var source;\r\n _super.call(this, function () {\r\n source = sourceFactory();\r\n if (source && source.source) {\r\n if (source.length && source.step === 0)\r\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\r\n var pointer = source.pointer;\r\n if (!pointer)\r\n source.pointer = 0;\r\n else if (pointer != Math.floor(pointer))\r\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n source.pointer = pointer;\r\n var step = source.step;\r\n if (!step)\r\n source.step = 1;\r\n else if (step != Math.floor(step))\r\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n source.step = step;\r\n }\r\n }, function (yielder) {\r\n var len = (source && source.source) ? source.length : 0;\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var current = source.pointer;\r\n source.pointer += source.step;\r\n return (current < len && current >= 0)\r\n ? yielder.yieldReturn(source.source[current])\r\n : yielder.yieldBreak();\r\n }, function () {\r\n if (source) {\r\n source.source = null;\r\n }\r\n });\r\n }\r\n return IndexEnumerator;\r\n })(EnumeratorBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = IndexEnumerator;\r\n});\r\n//# sourceMappingURL=IndexEnumerator.js.map","import 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\tif(source.length && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\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\tsource.pointer = 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\tsource.step = 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)\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}\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","IndexEnumerator.constructor","defineProperty","value"],"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,oBAAqB,SAAUC,EAASC,EAASC,GCD/E,YAIA,IAAAC,GAAA,SAAAC,GAICD,QAAAA,GACCA,GAGAE,GAAIA,EACJA,GAAAA,KAAAA,KACCA,WAGCA,GADAA,EAASA,IACNA,GAAUA,EAAOA,OACpBA,CACCA,GAAGA,EAAOA,QAAwBA,IAAdA,EAAOA,KAC1BA,KAAMA,IAAIA,OAAMA,0CAEjBA,IAAIA,GAAUA,EAAOA,OACrBA,IAAIA,GAECA,GAAGA,GAASA,KAAKA,MAAMA,GAC3BA,KAAMA,IAAIA,OAAMA,0CAA4CA,EAAUA,sBAFtEA,GAAOA,QAAUA,CAGlBA,GAAOA,QAAUA,CAEjBA,IAAIA,GAAOA,EAAOA,IAClBA,IAAIA,GAECA,GAAGA,GAAMA,KAAKA,MAAMA,GACxBA,KAAMA,IAAIA,OAAMA,uCAAyCA,EAAOA,sBAFhEA,GAAOA,KAAOA,CAGfA,GAAOA,KAAOA,IAIhBA,SAACA,GAEAA,GAAIA,GAAOA,GAAUA,EAAOA,OAAUA,EAAOA,OAASA,CACtDA,KAAIA,EACHA,MAAOA,GAAQA,YAChBA,IAAIA,GAAUA,EAAOA,OAErBA,OADAA,GAAOA,SAAWA,EAAOA,KACTA,EAARA,GAAeA,GAASA,EAC7BA,EAAQA,YAAYA,EAAOA,OAAOA,IAClCA,EAAQA,cAGZA,WAEIA,IAEFA,EAAOA,OAASA,QAKrBF,MAtDiCA,WAAAA,EAAAA,GAsDjCA,GAtDiCD,EAAAA,WADjCL,QAAAS,eAAAL,EAAA,cAAAM,OAAA,IDuCIN,EAAAA,WAAkBE","file":"System/Collections/Enumeration/IndexEnumerator.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\", './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 if (source.length && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n source.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 source.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)\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 }\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'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\tif(source.length && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\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\tsource.pointer = 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\tsource.step = 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)\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}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Enumeration/forEach.js b/dist/amd/System/Collections/Enumeration/forEach.js index 523209d1..edaf6400 100644 --- a/dist/amd/System/Collections/Enumeration/forEach.js +++ b/dist/amd/System/Collections/Enumeration/forEach.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ define(["require","exports","../../Disposable/Utility","../../Collections/Enumeration/Enumerator"],function(e,n,o,i){function t(e,n){e&&o.using(i.from(e),function(e){i.forEach(e,n)})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); //# sourceMappingURL=forEach.js.map diff --git a/dist/amd/System/Collections/Enumeration/forEach.js.map b/dist/amd/System/Collections/Enumeration/forEach.js.map index d13626c3..b30ac407 100644 --- a/dist/amd/System/Collections/Enumeration/forEach.js.map +++ b/dist/amd/System/Collections/Enumeration/forEach.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/forEach.js","System/Collections/Enumeration/forEach.ts"],"names":["define","require","exports","Utility_1","Enumerator","forEach","enumerable","action","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,2BAA4B,4CAA6C,SAAUC,EAASC,EAASC,EAAWC,GCM9I,QAAAC,GACIC,EACAC,GAEIF,GACAA,EAAAA,MAAMA,EAAWA,KAAKA,GAAaA,SAAAA,GAE/BA,EAAWA,QAAQA,EAAGA,KAPlCG,OAAAC,eAAAP,EAAA,cAAAQ,OAAA,IDGIR,EAAAA,WAAkBG","file":"System/Collections/Enumeration/forEach.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], function (require, exports) {\r\n ///\r\n ///\r\n var Utility_1 = require('../../Disposable/Utility');\r\n var Enumerator = require('../../Collections/Enumeration/Enumerator');\r\n function forEach(enumerable, action) {\r\n if (enumerable) {\r\n Utility_1.using(Enumerator.from(enumerable), function (e) {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = forEach;\r\n});\r\n//# sourceMappingURL=forEach.js.map","/*\r\n * @author 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 {using} from '../../Disposable/Utility';\r\nimport * as Enumerator from '../../Collections/Enumeration/Enumerator';\r\n\r\nexport default function forEach(\r\n enumerable:IEnumerable | IArray,\r\n action:(element:T, index?:number) => any):void\r\n{\r\n if (enumerable) {\r\n using(Enumerator.from(enumerable), e=>\r\n {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/forEach.js","System/Collections/Enumeration/forEach.ts"],"names":["define","require","exports","Utility_1","Enumerator","forEach","enumerable","action","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,2BAA4B,4CAA6C,SAAUC,EAASC,EAASC,EAAWC,GCU9I,QAAAC,GACIC,EACAC,GAEIF,GACAA,EAAAA,MAAMA,EAAWA,KAAKA,GAAaA,SAAAA,GAE/BA,EAAWA,QAAQA,EAAGA,KAPlCG,OAAAC,eAAAP,EAAA,cAAAQ,OAAA,IDDIR,EAAAA,WAAkBG","file":"System/Collections/Enumeration/forEach.js","sourcesContent":["define([\"require\", \"exports\", '../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], function (require, exports, Utility_1, Enumerator) {\n function forEach(enumerable, action) {\n if (enumerable) {\n Utility_1.using(Enumerator.from(enumerable), function (e) {\n Enumerator.forEach(e, action);\n });\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = forEach;\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 {using} from '../../Disposable/Utility';\r\nimport * as Enumerator from '../../Collections/Enumeration/Enumerator';\r\n\r\nexport default function forEach(\r\n enumerable:IEnumerable | IArray,\r\n action:(element:T, index?:number) => any):void\r\n{\r\n if (enumerable) {\r\n using(Enumerator.from(enumerable), e=>\r\n {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/LinkedList.js b/dist/amd/System/Collections/LinkedList.js index 5fd6e975..09ad3ddf 100644 --- a/dist/amd/System/Collections/LinkedList.js +++ b/dist/amd/System/Collections/LinkedList.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports","../Compare","../Text/Utility","../Collections/Array/Utility","./Enumeration/Enumerator","./Enumeration/EnumeratorBase","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException","../Exceptions/ArgumentOutOfRangeException"],function(t,e,n,r,o,i,u,s,a,f,d){function p(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new _(e,t)),n}function c(t,e){if(!t)throw new f["default"]("Cannot be null.");if(t.list!=e)throw new s["default"]("Provided node does not belong to this list.");var n=t._node;if(!n)throw new s["default"]("Provided node is not valid.");return n}var l=function(){function t(t,e,n){this.value=t,this.prev=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.prev)throw new s["default"]("Adding a node that is already placed.")},t}(),h=function(){function t(t){var e=this,n=0,r=null,o=null,u=i.from(t);for(u.moveNext()&&(r=o=new l(u.current),++n);u.moveNext();)o=o.next=new l(u.current,o),++n;e._first=r,e._last=o,e._count=n}return t.prototype._addFirst=function(t){var e=this,n=e._first,r=new l(t,null,n);return n?n.prev=r:e._last=r,e._first=r,e._count+=1,r},t.prototype._addLast=function(t){var e=this,n=e._last,r=new l(t,n);return n?n.next=r:e._first=r,e._last=r,e._count+=1,r},t.prototype._addNodeBefore=function(t,e){e.assertDetached(),e.next=t,e.prev=t.prev,t.prev.next=e,t.prev=e,this._count+=1},t.prototype._addNodeAfter=function(t,e){e.assertDetached(),e.prev=t,e.next=t.next,t.next.prev=e,t.next=e,this._count+=1},t.prototype._findFirst=function(t){for(var e=n.areEqual,r=this._first;r;){if(e(t,r.value))return r;r=r.next}return null},t.prototype._findLast=function(t){for(var e=n.areEqual,r=this._last;r;){if(e(t,r.value))return r;r=r.prev}return null},t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();o.forEach(n,t),n.length=0}else for(var r=this._first,i=0;r&&t(r.value,i++)!==!1;)r=r.next},t.prototype.getEnumerator=function(){var t,e=this;return new u["default"](function(){t=new l(null,null,e._first)},function(e){return(t=t.next)?e.yieldReturn(t.value):e.yieldBreak()})},Object.defineProperty(t.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),t.prototype.add=function(t){this._addLast(t)},t.prototype.clear=function(){var t=this;t._first=null,t._last=null;var e=t._count;return t._count=0,e},t.prototype.contains=function(t){var e=!1,r=n.areEqual;return this.forEach(function(n){return!(e=r(t,n))}),e},t.prototype.copyTo=function(t,e){return void 0===e&&(e=0),this.forEach(function(n,r){t[e+r]=n}),t},t.prototype.toArray=function(){var t=o.initialize(this._count);return this.copyTo(t)},t.prototype.removeOnce=function(t){var e=this,n=e._findFirst(t);if(n){var r=n.prev,o=n.next;r?r.next=o:e._first=o,o?o.prev=r:e._last=r,e._count-=1}return null!=n},t.prototype.remove=function(t){for(var e=this,n=0;e.removeOnce(t);)++n;return n},Object.defineProperty(t.prototype,"first",{get:function(){return p(this._first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return p(this._last,this)},enumerable:!0,configurable:!0}),t.prototype._getNodeAt=function(t){if(0>t)throw new d["default"]("index",t,"Is less than zero.");if(t>=this._count)throw new d["default"]("index",t,"Is greater than count.");for(var e=this._first,n=0;e&&tt)throw new d["default"]("index",t,"Is less than zero.");if(t>=this._count)throw new d["default"]("index",t,"Is greater than count.");for(var e=this._first,n=0;e&&t\r\n ///\r\n var Values = require('../Compare');\r\n var TextUtility = require('../Text/Utility');\r\n var ArrayUtility = require('../Collections/Array/Utility');\r\n var Enumerator = require('./Enumeration/Enumerator');\r\n var EnumeratorBase_1 = require('./Enumeration/EnumeratorBase');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var ArgumentException_1 = require('../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../Exceptions/ArgumentNullException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var Node = (function () {\r\n function Node(value, prev, next) {\r\n this.value = value;\r\n this.prev = prev;\r\n this.next = next;\r\n }\r\n Node.prototype.assertDetached = function () {\r\n if (this.next || this.prev)\r\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\r\n };\r\n return Node;\r\n })();\r\n function ensureExternal(node, list) {\r\n if (!node)\r\n return null;\r\n var external = node.external;\r\n if (!external)\r\n node.external = external = new LinkedListNode(list, node);\r\n return external;\r\n }\r\n function getInternal(node, list) {\r\n if (!node)\r\n throw new ArgumentNullException_1.default(\"Cannot be null.\");\r\n if (node.list != list)\r\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\r\n var n = node._node;\r\n if (!n)\r\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\r\n return n;\r\n }\r\n var LinkedList = (function () {\r\n function LinkedList(source) {\r\n var _ = this, c = 0, first = null, last = null;\r\n var e = Enumerator.from(source);\r\n if (e.moveNext()) {\r\n first = last = new Node(e.current);\r\n ++c;\r\n }\r\n while (e.moveNext()) {\r\n last = last.next = new Node(e.current, last);\r\n ++c;\r\n }\r\n _._first = first;\r\n _._last = last;\r\n _._count = c;\r\n }\r\n LinkedList.prototype._addFirst = function (entry) {\r\n var _ = this, first = _._first;\r\n var prev = new Node(entry, null, first);\r\n if (first)\r\n first.prev = prev;\r\n else\r\n _._last = prev;\r\n _._first = prev;\r\n _._count += 1;\r\n return prev;\r\n };\r\n LinkedList.prototype._addLast = function (entry) {\r\n var _ = this, last = _._last;\r\n var next = new Node(entry, last);\r\n if (last)\r\n last.next = next;\r\n else\r\n _._first = next;\r\n _._last = next;\r\n _._count += 1;\r\n return next;\r\n };\r\n LinkedList.prototype._addNodeBefore = function (n, inserting) {\r\n inserting.assertDetached();\r\n inserting.next = n;\r\n inserting.prev = n.prev;\r\n n.prev.next = inserting;\r\n n.prev = inserting;\r\n this._count += 1;\r\n };\r\n LinkedList.prototype._addNodeAfter = function (n, inserting) {\r\n inserting.assertDetached();\r\n inserting.prev = n;\r\n inserting.next = n.next;\r\n n.next.prev = inserting;\r\n n.next = inserting;\r\n this._count += 1;\r\n };\r\n LinkedList.prototype._findFirst = function (entry) {\r\n var equals = Values.areEqual, next = this._first;\r\n while (next) {\r\n if (equals(entry, next.value))\r\n return next;\r\n next = next.next;\r\n }\r\n return null;\r\n };\r\n LinkedList.prototype._findLast = function (entry) {\r\n var equals = Values.areEqual, prev = this._last;\r\n while (prev) {\r\n if (equals(entry, prev.value))\r\n return prev;\r\n prev = prev.prev;\r\n }\r\n return null;\r\n };\r\n LinkedList.prototype.forEach = function (action, useCopy) {\r\n if (useCopy === void 0) { useCopy = false; }\r\n if (useCopy) {\r\n var array = this.toArray();\r\n ArrayUtility.forEach(array, action);\r\n array.length = 0;\r\n }\r\n else {\r\n var next = this._first, index = 0;\r\n while (next && action(next.value, index++) !== false) {\r\n next = next.next;\r\n }\r\n }\r\n };\r\n LinkedList.prototype.getEnumerator = function () {\r\n var _ = this, current;\r\n return new EnumeratorBase_1.default(function () {\r\n current = new Node(null, null, _._first);\r\n }, function (yielder) {\r\n return (current = current.next)\r\n ? yielder.yieldReturn(current.value)\r\n : yielder.yieldBreak();\r\n });\r\n };\r\n Object.defineProperty(LinkedList.prototype, \"count\", {\r\n get: function () {\r\n return this._count;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedList.prototype, \"isReadOnly\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedList.prototype.add = function (entry) {\r\n this._addLast(entry);\r\n };\r\n LinkedList.prototype.clear = function () {\r\n var _ = this;\r\n _._first = null;\r\n _._last = null;\r\n var count = _._count;\r\n _._count = 0;\r\n return count;\r\n };\r\n LinkedList.prototype.contains = function (entry) {\r\n var found = false, equals = Values.areEqual;\r\n this.forEach(function (e) { return !(found = equals(entry, e)); });\r\n return found;\r\n };\r\n LinkedList.prototype.copyTo = function (array, index) {\r\n if (index === void 0) { index = 0; }\r\n this.forEach(function (entry, i) {\r\n array[index + i] = entry;\r\n });\r\n return array;\r\n };\r\n LinkedList.prototype.toArray = function () {\r\n var array = ArrayUtility.initialize(this._count);\r\n return this.copyTo(array);\r\n };\r\n LinkedList.prototype.removeOnce = function (entry) {\r\n var _ = this;\r\n var node = _._findFirst(entry);\r\n if (node) {\r\n var prev = node.prev, next = node.next;\r\n if (prev)\r\n prev.next = next;\r\n else\r\n _._first = next;\r\n if (next)\r\n next.prev = prev;\r\n else\r\n _._last = prev;\r\n _._count -= 1;\r\n }\r\n return node != null;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var _ = this, removedCount = 0;\r\n while (_.removeOnce(entry)) {\r\n ++removedCount;\r\n }\r\n return removedCount;\r\n };\r\n Object.defineProperty(LinkedList.prototype, \"first\", {\r\n get: function () {\r\n return ensureExternal(this._first, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedList.prototype, \"last\", {\r\n get: function () {\r\n return ensureExternal(this._last, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedList.prototype._getNodeAt = function (index) {\r\n if (index < 0)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.');\r\n if (index >= this._count)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than count.');\r\n var next = this._first, i = 0;\r\n while (next && index < i++) {\r\n next = next.next;\r\n }\r\n return next;\r\n };\r\n LinkedList.prototype.getValueAt = function (index) {\r\n return this._getNodeAt(index).value;\r\n };\r\n LinkedList.prototype.getNodeAt = function (index) {\r\n return ensureExternal(this._getNodeAt(index), this);\r\n };\r\n LinkedList.prototype.find = function (entry) {\r\n return ensureExternal(this._findFirst(entry), this);\r\n };\r\n LinkedList.prototype.findLast = function (entry) {\r\n return ensureExternal(this._findLast(entry), this);\r\n };\r\n LinkedList.prototype.addFirst = function (entry) {\r\n this._addFirst(entry);\r\n };\r\n LinkedList.prototype.addLast = function (entry) {\r\n this._addLast(entry);\r\n };\r\n LinkedList.prototype.removeFirst = function () {\r\n var _ = this, first = _._first;\r\n if (first) {\r\n var next = first.next;\r\n _._first = next;\r\n if (next)\r\n next.prev = null;\r\n _._count -= 1;\r\n }\r\n };\r\n LinkedList.prototype.removeLast = function () {\r\n var _ = this, last = _._last;\r\n if (last) {\r\n var prev = last.prev;\r\n _._last = prev;\r\n if (prev)\r\n prev.next = null;\r\n _._count -= 1;\r\n }\r\n };\r\n LinkedList.prototype.removeNode = function (node) {\r\n var _ = this;\r\n var n = getInternal(node, _);\r\n var prev = n.prev, next = n.next, a = false, b = false;\r\n if (prev)\r\n prev.next = next;\r\n else if (_._first == n)\r\n _._first = next;\r\n else\r\n a = true;\r\n if (next)\r\n next.prev = prev;\r\n else if (_._last == n)\r\n _._last = prev;\r\n else\r\n b = true;\r\n if (a !== b) {\r\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\"));\r\n }\r\n return !a && !b;\r\n };\r\n LinkedList.prototype.addBefore = function (node, entry) {\r\n this._addNodeBefore(getInternal(node, this), new Node(entry));\r\n };\r\n LinkedList.prototype.addAfter = function (node, entry) {\r\n this._addNodeAfter(getInternal(node, this), new Node(entry));\r\n };\r\n LinkedList.prototype.addNodeBefore = function (node, before) {\r\n this._addNodeBefore(getInternal(node, this), getInternal(before, this));\r\n };\r\n LinkedList.prototype.addNodeAfter = function (node, after) {\r\n this._addNodeAfter(getInternal(node, this), getInternal(after, this));\r\n };\r\n return LinkedList;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = LinkedList;\r\n var LinkedListNode = (function () {\r\n function LinkedListNode(_list, _node) {\r\n this._list = _list;\r\n this._node = _node;\r\n }\r\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\r\n get: function () {\r\n return this._list;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\r\n get: function () {\r\n return ensureExternal(this._node.prev, this._list);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\r\n get: function () {\r\n return ensureExternal(this._node.next, this._list);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\r\n get: function () {\r\n return this._node.value;\r\n },\r\n set: function (v) {\r\n this._node.value = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedListNode.prototype.addBefore = function (entry) {\r\n this._list.addBefore(this, entry);\r\n };\r\n LinkedListNode.prototype.addAfter = function (entry) {\r\n this._list.addAfter(this, entry);\r\n };\r\n LinkedListNode.prototype.addNodeBefore = function (before) {\r\n this._list.addNodeBefore(this, before);\r\n };\r\n LinkedListNode.prototype.addNodeAfter = function (after) {\r\n this._list.addNodeAfter(this, after);\r\n };\r\n LinkedListNode.prototype.remove = function () {\r\n this._list.removeNode(this);\r\n };\r\n return LinkedListNode;\r\n })();\r\n});\r\n//# sourceMappingURL=LinkedList.js.map","/*\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\nimport * as Values from '../Compare';\r\nimport * as TextUtility from '../Text/Utility';\r\nimport * as ArrayUtility from '../Collections/Array/Utility';\r\nimport * as Enumerator from './Enumeration/Enumerator';\r\nimport EnumeratorBase from './Enumeration/EnumeratorBase';\r\n\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\nimport ArgumentException from '../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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\nclass Node\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic prev?:Node,\r\n\t\tpublic next?:Node)\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.prev)\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:Node, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\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):Node\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\r\n\t\t\t\"Cannot be null.\");\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:Node = (node)._node;\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\nimplements ILinkedList\r\n{\r\n\tprivate _first:Node;\r\n\tprivate _last:Node;\r\n\tprivate _count:number;\r\n\r\n\tconstructor(source?:IEnumerable);\r\n\tconstructor(source?:IArray);\r\n\tconstructor(source:any)\r\n\t{\r\n\t\tvar _ = this, c = 0, first:Node = null, last:Node = null;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tfirst = last = new Node(e.current);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlast = last.next = new Node(e.current, last);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._first = first;\r\n\t\t_._last = last;\r\n\t\t_._count = c;\r\n\t}\r\n\r\n\t// #region Internals.\r\n\r\n\tprivate _addFirst(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tvar prev = new Node(entry, null, first);\r\n\t\tif(first)\r\n\t\t\tfirst.prev = prev;\r\n\t\telse\r\n\t\t\t_._last = prev;\r\n\r\n\t\t_._first = prev;\r\n\r\n\t\t_._count += 1;\r\n\r\n\t\treturn prev;\r\n\t}\r\n\r\n\tprivate _addLast(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tvar next = new Node(entry, last);\r\n\t\tif(last)\r\n\t\t\tlast.next = next;\r\n\t\telse\r\n\t\t\t_._first = next;\r\n\r\n\t\t_._last = next;\r\n\t\t_._count += 1;\r\n\r\n\t\treturn next;\r\n\t}\r\n\r\n\tprivate _addNodeBefore(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.next = n;\r\n\t\tinserting.prev = n.prev;\r\n\r\n\t\tn.prev.next = inserting;\r\n\t\tn.prev = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\r\n\tprivate _addNodeAfter(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.prev = n;\r\n\t\tinserting.next = n.next;\r\n\r\n\t\tn.next.prev = inserting;\r\n\t\tn.next = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\tprivate _findFirst(entry:T):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._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):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._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.prev;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region IEnumerateEach\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar array = this.toArray();\r\n\t\t\tArrayUtility.forEach(array, action);\r\n\t\t\tarray.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar next = this._first, index:number = 0;\r\n\t\t\twhile(next && action(next.value, index++)!==false)\r\n\t\t\t{\r\n\t\t\t\tnext = next.next;\r\n\t\t\t}\r\n\t\t}\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\tvar _ = this, current:Node;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tcurrent = new Node(null, null, _._first);\r\n\t\t\t}, // Initialize anchor...\r\n\t\t\t(yielder)=>\r\n\t\t\t\t(current = current.next)\r\n\t\t\t\t\t? yielder.yieldReturn(current.value)\r\n\t\t\t\t\t: yielder.yieldBreak()\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._first = null;\r\n\t\t_._last = null;\r\n\t\tvar count = _._count;\r\n\t\t_._count = 0;\r\n\t\treturn count;\r\n\t}\r\n\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tvar found:boolean = false, equals = Values.areEqual;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tcopyTo(array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.forEach(\r\n\t\t\t(entry, i) =>\r\n\t\t\t{\r\n\t\t\t\tarray[index + i] = entry;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar array = ArrayUtility.initialize(this._count);\r\n\t\treturn this.copyTo(array);\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar node:Node = _._findFirst(entry);\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tvar prev = node.prev, next = node.next;\r\n\t\t\tif(prev) prev.next = next;\r\n\t\t\telse _._first = next;\r\n\t\t\tif(next) next.prev = prev;\r\n\t\t\telse _._last = prev;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\r\n\t\treturn node!=null;\r\n\r\n\t}\r\n\r\n\tremove(entry:T):number\r\n\t{\r\n\t\tvar _ = this, removedCount:number = 0;\r\n\t\twhile(_.removeOnce(entry))\r\n\t\t{\r\n\t\t\t++removedCount;\r\n\t\t}\r\n\t\treturn removedCount;\r\n\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._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\tprivate _getNodeAt(index:number):Node\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is less than zero.');\r\n\r\n\t\tif(index>=this._count)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is greater than count.');\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index\r\n\t{\r\n\t\treturn ensureExternal(this._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._addFirst(entry);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tif(first)\r\n\t\t{\r\n\t\t\tvar next = first.next;\r\n\t\t\t_._first = next;\r\n\t\t\tif(next) // Might have been the last.\r\n\t\t\t\tnext.prev = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tif(last)\r\n\t\t{\r\n\t\t\tvar prev = last.prev;\r\n\t\t\t_._last = prev;\r\n\t\t\tif(prev) // Might have been the first.\r\n\t\t\t\tprev.next = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\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\t\tvar n:Node = getInternal(node, _);\r\n\t\tvar prev = n.prev, next = n.next, a:boolean = false, b:boolean = false;\r\n\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==n) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.prev = prev;\r\n\t\telse if(_._last==n) _._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\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\taddBefore(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\r\n\taddAfter(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\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 _node:Node)\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._node.prev, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._node.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._node.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._node.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":["define","require","exports","Values","TextUtility","ArrayUtility","Enumerator","EnumeratorBase_1","InvalidOperationException_1","ArgumentException_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","ensureExternal","node","list","getInternal","Node","Node.constructor","Node.assertDetached","LinkedList","LinkedList.constructor","LinkedList._addFirst","LinkedList._addLast","LinkedList._addNodeBefore","LinkedList._addNodeAfter","LinkedList._findFirst","LinkedList._findLast","LinkedList.forEach","LinkedList.getEnumerator","get","LinkedList.count","enumerable","configurable","LinkedList.isReadOnly","LinkedList.add","LinkedList.clear","LinkedList.contains","LinkedList.copyTo","LinkedList.toArray","LinkedList.removeOnce","LinkedList.remove","LinkedList.first","LinkedList.last","LinkedList._getNodeAt","LinkedList.getValueAt","LinkedList.getNodeAt","LinkedList.find","LinkedList.findLast","LinkedList.addFirst","LinkedList.addLast","LinkedList.removeFirst","LinkedList.removeLast","LinkedList.removeNode","LinkedList.addBefore","LinkedList.addAfter","LinkedList.addNodeBefore","LinkedList.addNodeAfter","Object","defineProperty","value","LinkedListNode","LinkedListNode.constructor","LinkedListNode.list","LinkedListNode.previous","LinkedListNode.next","LinkedListNode.value","set","LinkedListNode.addBefore","LinkedListNode.addAfter","LinkedListNode.addNodeBefore","LinkedListNode.addNodeAfter","LinkedListNode.remove"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["define([\"require\", \"exports\", '../Compare', '../Text/Utility', '../Collections/Array/Utility', './Enumeration/Enumerator', './Enumeration/EnumeratorBase', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentException', '../Exceptions/ArgumentNullException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports, Values, TextUtility, ArrayUtility, Enumerator, EnumeratorBase_1, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1) {\n 'use strict';\n var Node = (function () {\n function Node(value, prev, next) {\n this.value = value;\n this.prev = prev;\n this.next = next;\n }\n Node.prototype.assertDetached = function () {\n if (this.next || this.prev)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return Node;\n })();\n function ensureExternal(node, list) {\n if (!node)\n return null;\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(\"Cannot be null.\");\n if (node.list != list)\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\n var n = node._node;\n if (!n)\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function () {\n function LinkedList(source) {\n var _ = this, c = 0, first = null, last = null;\n var e = Enumerator.from(source);\n if (e.moveNext()) {\n first = last = new Node(e.current);\n ++c;\n }\n while (e.moveNext()) {\n last = last.next = new Node(e.current, last);\n ++c;\n }\n _._first = first;\n _._last = last;\n _._count = c;\n }\n LinkedList.prototype._addFirst = function (entry) {\n var _ = this, first = _._first;\n var prev = new Node(entry, null, first);\n if (first)\n first.prev = prev;\n else\n _._last = prev;\n _._first = prev;\n _._count += 1;\n return prev;\n };\n LinkedList.prototype._addLast = function (entry) {\n var _ = this, last = _._last;\n var next = new Node(entry, last);\n if (last)\n last.next = next;\n else\n _._first = next;\n _._last = next;\n _._count += 1;\n return next;\n };\n LinkedList.prototype._addNodeBefore = function (n, inserting) {\n inserting.assertDetached();\n inserting.next = n;\n inserting.prev = n.prev;\n n.prev.next = inserting;\n n.prev = inserting;\n this._count += 1;\n };\n LinkedList.prototype._addNodeAfter = function (n, inserting) {\n inserting.assertDetached();\n inserting.prev = n;\n inserting.next = n.next;\n n.next.prev = inserting;\n n.next = inserting;\n this._count += 1;\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._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 equals = Values.areEqual, prev = this._last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.prev;\n }\n return null;\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy) {\n var array = this.toArray();\n ArrayUtility.forEach(array, action);\n array.length = 0;\n }\n else {\n var next = this._first, index = 0;\n while (next && action(next.value, index++) !== false) {\n next = next.next;\n }\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n var _ = this, current;\n return new EnumeratorBase_1.default(function () {\n current = new Node(null, null, _._first);\n }, function (yielder) {\n return (current = current.next)\n ? yielder.yieldReturn(current.value)\n : yielder.yieldBreak();\n });\n };\n Object.defineProperty(LinkedList.prototype, \"count\", {\n get: function () {\n return this._count;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"isReadOnly\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.add = function (entry) {\n this._addLast(entry);\n };\n LinkedList.prototype.clear = function () {\n var _ = this;\n _._first = null;\n _._last = null;\n var count = _._count;\n _._count = 0;\n return count;\n };\n LinkedList.prototype.contains = function (entry) {\n var found = false, equals = Values.areEqual;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n LinkedList.prototype.copyTo = function (array, index) {\n if (index === void 0) { index = 0; }\n this.forEach(function (entry, i) {\n array[index + i] = entry;\n });\n return array;\n };\n LinkedList.prototype.toArray = function () {\n var array = ArrayUtility.initialize(this._count);\n return this.copyTo(array);\n };\n LinkedList.prototype.removeOnce = function (entry) {\n var _ = this;\n var node = _._findFirst(entry);\n if (node) {\n var prev = node.prev, next = node.next;\n if (prev)\n prev.next = next;\n else\n _._first = next;\n if (next)\n next.prev = prev;\n else\n _._last = prev;\n _._count -= 1;\n }\n return node != null;\n };\n LinkedList.prototype.remove = function (entry) {\n var _ = this, removedCount = 0;\n while (_.removeOnce(entry)) {\n ++removedCount;\n }\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype._getNodeAt = function (index) {\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.');\n if (index >= this._count)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than count.');\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedList.prototype.getValueAt = function (index) {\n return this._getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._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._addFirst(entry);\n };\n LinkedList.prototype.addLast = function (entry) {\n this._addLast(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._first;\n if (first) {\n var next = first.next;\n _._first = next;\n if (next)\n next.prev = null;\n _._count -= 1;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._last;\n if (last) {\n var prev = last.prev;\n _._last = prev;\n if (prev)\n prev.next = null;\n _._count -= 1;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n var n = getInternal(node, _);\n var prev = n.prev, next = n.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == n)\n _._first = next;\n else\n a = true;\n if (next)\n next.prev = prev;\n else if (_._last == n)\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 return !a && !b;\n };\n LinkedList.prototype.addBefore = function (node, entry) {\n this._addNodeBefore(getInternal(node, this), new Node(entry));\n };\n LinkedList.prototype.addAfter = function (node, entry) {\n this._addNodeAfter(getInternal(node, this), new Node(entry));\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._addNodeBefore(getInternal(node, this), getInternal(before, this));\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._addNodeAfter(getInternal(node, this), getInternal(after, this));\n };\n return LinkedList;\n })();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _node) {\n this._list = _list;\n this._node = _node;\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._node.prev, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._node.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._node.value;\n },\n set: function (v) {\n this._node.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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from '../Compare';\r\nimport * as TextUtility from '../Text/Utility';\r\nimport * as ArrayUtility from '../Collections/Array/Utility';\r\nimport * as Enumerator from './Enumeration/Enumerator';\r\nimport EnumeratorBase from './Enumeration/EnumeratorBase';\r\n\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\nimport ArgumentException from '../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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\nclass Node\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic prev?:Node,\r\n\t\tpublic next?:Node)\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.prev)\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:Node, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\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):Node\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\r\n\t\t\t\"Cannot be null.\");\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:Node = (node)._node;\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\nimplements ILinkedList\r\n{\r\n\tprivate _first:Node;\r\n\tprivate _last:Node;\r\n\tprivate _count:number;\r\n\r\n\tconstructor(source?:IEnumerable);\r\n\tconstructor(source?:IArray);\r\n\tconstructor(source:any)\r\n\t{\r\n\t\tvar _ = this, c = 0, first:Node = null, last:Node = null;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tfirst = last = new Node(e.current);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlast = last.next = new Node(e.current, last);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._first = first;\r\n\t\t_._last = last;\r\n\t\t_._count = c;\r\n\t}\r\n\r\n\t// #region Internals.\r\n\r\n\tprivate _addFirst(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tvar prev = new Node(entry, null, first);\r\n\t\tif(first)\r\n\t\t\tfirst.prev = prev;\r\n\t\telse\r\n\t\t\t_._last = prev;\r\n\r\n\t\t_._first = prev;\r\n\r\n\t\t_._count += 1;\r\n\r\n\t\treturn prev;\r\n\t}\r\n\r\n\tprivate _addLast(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tvar next = new Node(entry, last);\r\n\t\tif(last)\r\n\t\t\tlast.next = next;\r\n\t\telse\r\n\t\t\t_._first = next;\r\n\r\n\t\t_._last = next;\r\n\t\t_._count += 1;\r\n\r\n\t\treturn next;\r\n\t}\r\n\r\n\tprivate _addNodeBefore(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.next = n;\r\n\t\tinserting.prev = n.prev;\r\n\r\n\t\tn.prev.next = inserting;\r\n\t\tn.prev = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\r\n\tprivate _addNodeAfter(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.prev = n;\r\n\t\tinserting.next = n.next;\r\n\r\n\t\tn.next.prev = inserting;\r\n\t\tn.next = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\tprivate _findFirst(entry:T):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._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):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._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.prev;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region IEnumerateEach\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar array = this.toArray();\r\n\t\t\tArrayUtility.forEach(array, action);\r\n\t\t\tarray.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar next = this._first, index:number = 0;\r\n\t\t\twhile(next && action(next.value, index++)!==false)\r\n\t\t\t{\r\n\t\t\t\tnext = next.next;\r\n\t\t\t}\r\n\t\t}\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\tvar _ = this, current:Node;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tcurrent = new Node(null, null, _._first);\r\n\t\t\t}, // Initialize anchor...\r\n\t\t\t(yielder)=>\r\n\t\t\t\t(current = current.next)\r\n\t\t\t\t\t? yielder.yieldReturn(current.value)\r\n\t\t\t\t\t: yielder.yieldBreak()\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._first = null;\r\n\t\t_._last = null;\r\n\t\tvar count = _._count;\r\n\t\t_._count = 0;\r\n\t\treturn count;\r\n\t}\r\n\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tvar found:boolean = false, equals = Values.areEqual;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tcopyTo(array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.forEach(\r\n\t\t\t(entry, i) =>\r\n\t\t\t{\r\n\t\t\t\tarray[index + i] = entry;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar array = ArrayUtility.initialize(this._count);\r\n\t\treturn this.copyTo(array);\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar node:Node = _._findFirst(entry);\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tvar prev = node.prev, next = node.next;\r\n\t\t\tif(prev) prev.next = next;\r\n\t\t\telse _._first = next;\r\n\t\t\tif(next) next.prev = prev;\r\n\t\t\telse _._last = prev;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\r\n\t\treturn node!=null;\r\n\r\n\t}\r\n\r\n\tremove(entry:T):number\r\n\t{\r\n\t\tvar _ = this, removedCount:number = 0;\r\n\t\twhile(_.removeOnce(entry))\r\n\t\t{\r\n\t\t\t++removedCount;\r\n\t\t}\r\n\t\treturn removedCount;\r\n\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._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\tprivate _getNodeAt(index:number):Node\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is less than zero.');\r\n\r\n\t\tif(index>=this._count)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is greater than count.');\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index\r\n\t{\r\n\t\treturn ensureExternal(this._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._addFirst(entry);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tif(first)\r\n\t\t{\r\n\t\t\tvar next = first.next;\r\n\t\t\t_._first = next;\r\n\t\t\tif(next) // Might have been the last.\r\n\t\t\t\tnext.prev = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tif(last)\r\n\t\t{\r\n\t\t\tvar prev = last.prev;\r\n\t\t\t_._last = prev;\r\n\t\t\tif(prev) // Might have been the first.\r\n\t\t\t\tprev.next = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\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\t\tvar n:Node = getInternal(node, _);\r\n\t\tvar prev = n.prev, next = n.next, a:boolean = false, b:boolean = false;\r\n\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==n) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.prev = prev;\r\n\t\telse if(_._last==n) _._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\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\taddBefore(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\r\n\taddAfter(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\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 _node:Node)\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._node.prev, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._node.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._node.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._node.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/Queue.js b/dist/amd/System/Collections/Queue.js index 7c62aa54..8c4a03ea 100644 --- a/dist/amd/System/Collections/Queue.js +++ b/dist/amd/System/Collections/Queue.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","./Enumeration/forEach","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException"],function(e,t,r,a,i,n,o,u,c,p,y){function _(e,t){if(0>e)throw new y["default"](t,e,"Must be greater than zero")}function s(e,t){n["default"].assert(e,t),_(e,t)}var l=4,f=100,d=l,h=[],v=function(){function e(e){var t=this;if(t._head=0,t._tail=0,t._size=0,t._version=0,e)if(i["default"].isNumber(e)){var r=e;s(r,"capacity"),t._array=r?a.initialize(r):h}else{var n=e;t._array=a.initialize(i["default"].isArrayLike(n)?n.length:d),u["default"](n,function(e){return t.enqueue(e)}),t._version=0}else t._array=h;t._capacity=t._array.length}return Object.defineProperty(e.prototype,"count",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.add=function(e){this.enqueue(e)},e.prototype.clear=function(){var e=this,t=e._array,r=e._head,i=e._tail,n=e._size;return i>r?a.clear(t,r,n):(a.clear(t,r,t.length-r),a.clear(t,0,i)),e._head=0,e._tail=0,e._size=0,e._version++,n},e.prototype.contains=function(e){for(var t=this,a=t._array,i=t._head,n=t._size,o=t._capacity;n-->0;){if(r.areEqual(a[i],e))return!0;i=(i+1)%o}return!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),null==e)throw new Error("ArgumentNullException: array cannot be null.");s(t,"arrayIndex");var r=this,i=r._size;if(i){var n=i,o=r._array,u=r._capacity,c=r._head,p=u-c,y=i>p?p:i;return a.copyTo(o,e,c,t,y),n-=y,n>0&&a.copyTo(o,e,0,t+u-c,n),e}},e.prototype.toArray=function(){var e=this,t=e._size,r=a.initialize(t);return t?e.copyTo(r):r},e.prototype.remove=function(e){throw new c["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},e.prototype.dispose=function(){var e=this;e.clear(),e._array!=h&&(e._array.length=e._capacity=0,e._array=h),e._version=0},e.prototype.forEach=function(e){for(var t=this,r=t.toArray(),a=t._size,i=0;a>i&&e(r[i],i)!==!1;i++);},e.prototype.setCapacity=function(e){s(e,"capacity");var t=this,r=t._array,i=t._capacity;if(e!=i){var n=t._head,o=t._tail,u=t._size;if(r!=h&&e>i&&o>n)return r.length=t._capacity=e,void t._version++;var c=a.initialize(e);u>0&&(o>n?a.copyTo(r,c,n,0,u):(a.copyTo(r,c,n,0,i-n),a.copyTo(r,c,0,i-n,o))),t._array=c,t._capacity=e,t._head=0,t._tail=u==e?0:u,t._version++}},e.prototype.enqueue=function(e){var t=this,r=t._array,a=t._size,i=t._capacity;if(a==i){var n=i*f;i+l>n&&(n=i+l),t.setCapacity(n),r=t._array,i=t._capacity}var o=t._tail;r[o]=e,t._tail=(o+1)%i,t._size=a+1,t._version++},e.prototype.dequeue=function(){var e=this;if(0==e._size)throw new p["default"]("Cannot dequeue an empty queue.");var t=e._array,r=e._head,a=e._array[r];return t[r]=null,e._head=(r+1)%e._capacity,e._size--,e._version++,a},e.prototype._getElement=function(e){s(e,"index");var t=this;return t._array[(t._head+e)%t._capacity]},e.prototype.peek=function(){if(0==this._size)throw new p["default"]("Cannot call peek on an empty queue.");return this._array[this._head]},e.prototype.trimExcess=function(){var e=this,t=e._size;te)throw new p["default"](t,e,"Must be greater than zero")}function y(e,t){n["default"].assert(e,t),_(e,t)}var l=4,f=32,d=100,h=l,v=[],m=function(){function e(e){var t=this;if(t._head=0,t._tail=0,t._size=0,t._version=0,e)if(a["default"].isNumber(e)){var r=e;y(r,"capacity"),t._array=r?i.initialize(r):v}else{var n=e;t._array=i.initialize(a["default"].isArrayLike(n)?n.length:h),u["default"](n,function(e){return t.enqueue(e)}),t._version=0}else t._array=v;t._capacity=t._array.length}return Object.defineProperty(e.prototype,"count",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.add=function(e){this.enqueue(e)},e.prototype.clear=function(){var e=this,t=e._array,r=e._head,a=e._tail,n=e._size;return a>r?i.clear(t,r,n):(i.clear(t,r,t.length-r),i.clear(t,0,a)),e._head=0,e._tail=0,e._size=0,e._version++,e.trimExcess(),n},e.prototype.dump=function(e){if(void 0===e&&(e=1/0),a["default"].isNumber(e,!1)&&0>e)throw new p["default"]("max",e,"must be greater than or equal to 0.");var t=this,r=[];if(isFinite(e))for(n["default"].assert(e,"max");e--&&t._size;)r.push(t.dequeue());else for(;t._size;)r.push(t.dequeue());return t.trimExcess(),r},e.prototype.contains=function(e){for(var t=this,i=t._array,a=t._head,n=t._size,o=t._capacity;n-- >0;){if(r.areEqual(i[a],e))return!0;a=(a+1)%o}return!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),null==e)throw new Error("ArgumentNullException: array cannot be null.");y(t,"arrayIndex");var r=this,a=r._size;if(a){var n=a,o=r._array,u=r._capacity,c=r._head,s=u-c,p=a>s?s:a;return i.copyTo(o,e,c,t,p),n-=p,n>0&&i.copyTo(o,e,0,t+u-c,n),e}},e.prototype.toArray=function(){var e=this,t=e._size,r=i.initialize(t);return t?e.copyTo(r):r},e.prototype.remove=function(e){throw new c["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},e.prototype.dispose=function(){var e=this;e.clear(),e._array!=v&&(e._array.length=e._capacity=0,e._array=v),e._version=0},e.prototype.forEach=function(e){for(var t=this,r=t.toArray(),i=t._size,a=0;i>a&&e(r[a],a)!==!1;a++);},e.prototype.setCapacity=function(e){y(e,"capacity");var t=this,r=t._array,a=t._capacity;if(e!=a){var n=t._head,o=t._tail,u=t._size;if(r!=v&&e>a&&o>n)return r.length=t._capacity=e,void t._version++;var c=i.initialize(e);u>0&&(o>n?i.copyTo(r,c,n,0,u):(i.copyTo(r,c,n,0,a-n),i.copyTo(r,c,0,a-n,o))),t._array=c,t._capacity=e,t._head=0,t._tail=u==e?0:u,t._version++}},e.prototype.enqueue=function(e){var t=this,r=t._array,i=t._size,a=t._capacity;if(i==a){var n=a*d;a+l>n&&(n=a+l),t.setCapacity(n),r=t._array,a=t._capacity}var o=t._tail;r[o]=e,t._tail=(o+1)%a,t._size=i+1,t._version++},e.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var r=t._array,i=t._head,a=t._array[i];return r[i]=null,t._head=(i+1)%t._capacity,t._size--,t._sizee)&&t.setCapacity(r)},e.prototype.getEnumerator=function(){var e,t,r=this;return new o["default"](function(){t=r._version,e=0},function(i){if(t!=r._version)throw new s["default"]("Collection was changed during enumeration.");return e==r._size?i.yieldBreak():i.yieldReturn(r._getElement(e++))})},e}();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 977f8702..80a79e9f 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":["define","require","exports","Values","AU","Types_1","Integer_1","EnumeratorBase_1","forEach_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","assertZeroOrGreater","value","property","assertIntegerZeroOrGreater","MINIMUM_GROW","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","Queue.constructor","get","Queue.count","enumerable","configurable","Queue.isReadOnly","Queue.add","Queue.clear","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","Object","defineProperty"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../Compare');\r\n var AU = require('./Array/Utility');\r\n var Types_1 = require('../Types');\r\n var Integer_1 = require('../Integer');\r\n var EnumeratorBase_1 = require('./Enumeration/EnumeratorBase');\r\n var forEach_1 = require('./Enumeration/forEach');\r\n var NotImplementedException_1 = require('../Exceptions/NotImplementedException');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var MINIMUM_GROW = 4;\r\n var GROW_FACTOR_HALF = 100;\r\n var DEFAULT_CAPACITY = MINIMUM_GROW;\r\n var emptyArray = [];\r\n var Queue = (function () {\r\n function Queue(source) {\r\n var _ = this;\r\n _._head = 0;\r\n _._tail = 0;\r\n _._size = 0;\r\n _._version = 0;\r\n if (!source)\r\n _._array = emptyArray;\r\n else {\r\n if (Types_1.default.isNumber(source)) {\r\n var capacity = source;\r\n assertIntegerZeroOrGreater(capacity, \"capacity\");\r\n _._array = capacity\r\n ? AU.initialize(capacity)\r\n : emptyArray;\r\n }\r\n else {\r\n var se = source;\r\n _._array = AU.initialize(Types_1.default.isArrayLike(se)\r\n ? se.length\r\n : DEFAULT_CAPACITY);\r\n forEach_1.default(se, function (e) { return _.enqueue(e); });\r\n _._version = 0;\r\n }\r\n }\r\n _._capacity = _._array.length;\r\n }\r\n Object.defineProperty(Queue.prototype, \"count\", {\r\n get: function () {\r\n return this._size;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Queue.prototype, \"isReadOnly\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Queue.prototype.add = function (item) {\r\n this.enqueue(item);\r\n };\r\n Queue.prototype.clear = function () {\r\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n if (head < tail)\r\n AU.clear(array, head, size);\r\n else {\r\n AU.clear(array, head, array.length - head);\r\n AU.clear(array, 0, tail);\r\n }\r\n _._head = 0;\r\n _._tail = 0;\r\n _._size = 0;\r\n _._version++;\r\n return size;\r\n };\r\n Queue.prototype.contains = function (item) {\r\n var _ = this;\r\n var array = _._array, index = _._head, count = _._size, len = _._capacity;\r\n while (count-- > 0) {\r\n if (Values.areEqual(array[index], item))\r\n return true;\r\n index = (index + 1) % len;\r\n }\r\n return false;\r\n };\r\n Queue.prototype.copyTo = function (target, arrayIndex) {\r\n if (arrayIndex === void 0) { arrayIndex = 0; }\r\n if (target == null)\r\n throw new Error(\"ArgumentNullException: array cannot be null.\");\r\n assertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n var _ = this, size = _._size;\r\n if (!size)\r\n return;\r\n var numToCopy = size, source = _._array, len = _._capacity, head = _._head, lh = len - head, firstPart = (lh < size)\r\n ? lh\r\n : size;\r\n AU.copyTo(source, target, head, arrayIndex, firstPart);\r\n numToCopy -= firstPart;\r\n if (numToCopy > 0)\r\n AU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n return target;\r\n };\r\n Queue.prototype.toArray = function () {\r\n var _ = this, size = _._size;\r\n var arr = AU.initialize(size);\r\n return size ? _.copyTo(arr) : arr;\r\n };\r\n Queue.prototype.remove = function (item) {\r\n throw new NotImplementedException_1.default(\"ICollection\\.remove is not implemented in Queue\\\" +\r\n \" since it would require destroying the underlying array to remove the item.\");\r\n };\r\n Queue.prototype.dispose = function () {\r\n var _ = this;\r\n _.clear();\r\n if (_._array != emptyArray) {\r\n _._array.length = _._capacity = 0;\r\n _._array = emptyArray;\r\n }\r\n _._version = 0;\r\n };\r\n Queue.prototype.forEach = function (action) {\r\n var _ = this, copy = _.toArray(), len = _._size;\r\n for (var i = 0; i < len; i++) {\r\n if (action(copy[i], i) === false)\r\n break;\r\n }\r\n };\r\n Queue.prototype.setCapacity = function (capacity) {\r\n assertIntegerZeroOrGreater(capacity, \"capacity\");\r\n var _ = this, array = _._array, len = _._capacity;\r\n if (capacity == len)\r\n return;\r\n var head = _._head, tail = _._tail, size = _._size;\r\n if (array != emptyArray && capacity > len && head < tail) {\r\n array.length = _._capacity = capacity;\r\n _._version++;\r\n return;\r\n }\r\n var newArray = AU.initialize(capacity);\r\n if (size > 0) {\r\n if (head < tail) {\r\n AU.copyTo(array, newArray, head, 0, size);\r\n }\r\n else {\r\n AU.copyTo(array, newArray, head, 0, len - head);\r\n AU.copyTo(array, newArray, 0, len - head, tail);\r\n }\r\n }\r\n _._array = newArray;\r\n _._capacity = capacity;\r\n _._head = 0;\r\n _._tail = (size == capacity) ? 0 : size;\r\n _._version++;\r\n };\r\n Queue.prototype.enqueue = function (item) {\r\n var _ = this, array = _._array, size = _._size, len = _._capacity;\r\n if (size == len) {\r\n var newCapacity = len * GROW_FACTOR_HALF;\r\n if (newCapacity < len + MINIMUM_GROW)\r\n newCapacity = len + MINIMUM_GROW;\r\n _.setCapacity(newCapacity);\r\n array = _._array;\r\n len = _._capacity;\r\n }\r\n var tail = _._tail;\r\n array[tail] = item;\r\n _._tail = (tail + 1) % len;\r\n _._size = size + 1;\r\n _._version++;\r\n };\r\n Queue.prototype.dequeue = function () {\r\n var _ = this;\r\n if (_._size == 0)\r\n throw new InvalidOperationException_1.default(\"Cannot dequeue an empty queue.\");\r\n var array = _._array, head = _._head;\r\n var removed = _._array[head];\r\n array[head] = null;\r\n _._head = (head + 1) % _._capacity;\r\n _._size--;\r\n _._version++;\r\n return removed;\r\n };\r\n Queue.prototype._getElement = function (index) {\r\n assertIntegerZeroOrGreater(index, \"index\");\r\n var _ = this;\r\n return _._array[(_._head + index) % _._capacity];\r\n };\r\n Queue.prototype.peek = function () {\r\n if (this._size == 0)\r\n throw new InvalidOperationException_1.default(\"Cannot call peek on an empty queue.\");\r\n return this._array[this._head];\r\n };\r\n Queue.prototype.trimExcess = function () {\r\n var _ = this;\r\n var size = _._size;\r\n if (size < Math.floor(_._capacity * 0.9))\r\n _.setCapacity(size);\r\n };\r\n Queue.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var index;\r\n var version;\r\n return new EnumeratorBase_1.default(function () {\r\n version = _._version;\r\n index = 0;\r\n }, function (yielder) {\r\n if (version != _._version)\r\n throw new InvalidOperationException_1.default(\"Collection was changed during enumeration.\");\r\n if (index == _._size)\r\n return yielder.yieldBreak();\r\n return yielder.yieldReturn(_._getElement(index++));\r\n });\r\n };\r\n return Queue;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Queue;\r\n function assertZeroOrGreater(value, property) {\r\n if (value < 0)\r\n throw new ArgumentOutOfRangeException_1.default(property, value, \"Must be greater than zero\");\r\n }\r\n function assertIntegerZeroOrGreater(value, property) {\r\n Integer_1.default.assert(value, property);\r\n assertZeroOrGreater(value, property);\r\n }\r\n});\r\n//# sourceMappingURL=Queue.js.map","/*\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\nimport * as Values 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 forEach from './Enumeration/forEach';\r\nimport NotImplementedException from '../Exceptions/NotImplementedException';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\r\n\r\nconst MINIMUM_GROW:number = 4;\r\n// var 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 implements ICollection, IEnumerateEach, IDisposable\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\tprivate _version:number;\r\n\r\n\r\n\tconstructor(source?:IEnumerable | IArray | number)\r\n\t{\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\t\t_._version = 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 = | IArray> source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\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\tforEach(se, (e:T)=> _.enqueue(e));\r\n\r\n\t\t\t\t_._version = 0;\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\t// #region ICollection implementation\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(item:T):void\r\n\t{\r\n\t\tthis.enqueue(item);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head0)\r\n\t\t{\r\n\t\t\tif(Values.areEqual(array[index], item)) // May need a equality compare here.\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tindex = (index + 1)%len;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tcopyTo(target:T[], arrayIndex:number = 0):T[]\r\n\t{\r\n\t\tif(target==null)\r\n\t\t\tthrow new Error(\"ArgumentNullException: array cannot be null.\");\r\n\r\n\t\tassertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n\r\n\t\tvar _ = this, size = _._size;\r\n\r\n\t\tif(!size) return;\r\n\r\n\t\tvar numToCopy = size,\r\n\t\t source = _._array,\r\n\t\t len = _._capacity,\r\n\t\t head = _._head,\r\n\t\t lh = len - head,\r\n\t\t firstPart\r\n\t\t = (lh0)\r\n\t\t\tAU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this, size = _._size;\r\n\t\tvar arr:T[] = AU.initialize(size);\r\n\t\treturn size ? _.copyTo(arr) : arr;\r\n\t}\r\n\r\n\tremove(item:T):number\r\n\t{\r\n\t\tthrow new NotImplementedException(\r\n\t\t\t\"ICollection\\.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\r\n\t// #endregion\r\n\r\n\t// Results in a complete reset. Allows for easy cleanup elsewhere.\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.clear();\r\n\t\tif(_._array!=emptyArray)\r\n\t\t{\r\n\t\t\t_._array.length = _._capacity = 0;\r\n\t\t\t_._array = emptyArray;\r\n\t\t}\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\t// Until implementing a changed enumeration mechanism, a copy needs to be used.\r\n\t\tvar _ = this, copy = _.toArray(), len = _._size;\r\n\t\tfor(let i = 0; iaction(copy[i], i)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\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(head\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\tif(version!=_._version)\r\n\t\t\t\t\tthrow new InvalidOperationException(\"Collection was changed during enumeration.\");\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":["define","require","exports","Values","AU","Types_1","Integer_1","EnumeratorBase_1","forEach_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","assertZeroOrGreater","value","property","assertIntegerZeroOrGreater","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","Queue.constructor","get","Queue.count","enumerable","configurable","Queue.isReadOnly","Queue.add","Queue.clear","Queue.dump","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue.tryDequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","Object","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["define([\"require\", \"exports\", '../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports, Values, AU, Types_1, Integer_1, EnumeratorBase_1, forEach_1, NotImplementedException_1, InvalidOperationException_1, ArgumentOutOfRangeException_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 () {\n function Queue(source) {\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _._version = 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 forEach_1.default(se, function (e) { return _.enqueue(e); });\n _._version = 0;\n }\n }\n _._capacity = _._array.length;\n }\n Object.defineProperty(Queue.prototype, \"count\", {\n get: function () {\n return this._size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Queue.prototype, \"isReadOnly\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Queue.prototype.add = function (item) {\n this.enqueue(item);\n };\n Queue.prototype.clear = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, size);\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 _._version++;\n _.trimExcess();\n return size;\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n if (Types_1.default.isNumber(max, false) && max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, 'must be greater than or equal to 0.');\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.default.assert(max, 'max');\n while (max-- && _._size) {\n result.push(_.dequeue());\n }\n }\n else {\n while (_._size) {\n result.push(_.dequeue());\n }\n }\n _.trimExcess();\n return result;\n };\n Queue.prototype.contains = function (item) {\n var _ = this;\n var array = _._array, index = _._head, count = _._size, len = _._capacity;\n while (count-- > 0) {\n if (Values.areEqual(array[index], item))\n return true;\n index = (index + 1) % len;\n }\n return false;\n };\n Queue.prototype.copyTo = function (target, arrayIndex) {\n if (arrayIndex === void 0) { arrayIndex = 0; }\n if (target == null)\n throw new Error(\"ArgumentNullException: array cannot be null.\");\n assertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\n var _ = this, size = _._size;\n if (!size)\n return;\n var numToCopy = size, source = _._array, len = _._capacity, head = _._head, lh = len - head, firstPart = (lh < size)\n ? lh\n : size;\n AU.copyTo(source, target, head, arrayIndex, firstPart);\n numToCopy -= firstPart;\n if (numToCopy > 0)\n AU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\n return target;\n };\n Queue.prototype.toArray = function () {\n var _ = this, size = _._size;\n var arr = AU.initialize(size);\n return size ? _.copyTo(arr) : arr;\n };\n Queue.prototype.remove = function (item) {\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.dispose = function () {\n var _ = this;\n _.clear();\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n _._version = 0;\n };\n Queue.prototype.forEach = function (action) {\n var _ = this, copy = _.toArray(), len = _._size;\n for (var i = 0; i < len; i++) {\n if (action(copy[i], i) === false)\n break;\n }\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 _._version++;\n };\n Queue.prototype.enqueue = 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 _._version++;\n };\n Queue.prototype.dequeue = 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 if (_._size < _._capacity / 2) {\n _.trimExcess(SHRINK_THRESHOLD);\n }\n _._version++;\n return removed;\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 if (version != _._version)\n throw new InvalidOperationException_1.default(\"Collection was changed during enumeration.\");\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n })();\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values 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 forEach from './Enumeration/forEach';\r\nimport NotImplementedException from '../Exceptions/NotImplementedException';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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 implements ICollection, IEnumerateEach, IDisposable\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\tprivate _version:number;\r\n\r\n\r\n\tconstructor(source?:IEnumerable | IArray | number)\r\n\t{\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\t\t_._version = 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 = | IArray> 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\tforEach(se, (e:T)=> _.enqueue(e));\r\n\r\n\t\t\t\t_._version = 0;\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\t// #region ICollection implementation\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(item:T):void\r\n\t{\r\n\t\tthis.enqueue(item);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Clears out the array and returns the number of items that were removed.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head0)\r\n\t\t{\r\n\t\t\tif(Values.areEqual(array[index], item)) // May need a equality compare here.\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tindex = (index + 1)%len;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tcopyTo(target:T[], arrayIndex:number = 0):T[]\r\n\t{\r\n\t\tif(target==null)\r\n\t\t\tthrow new Error(\"ArgumentNullException: array cannot be null.\");\r\n\r\n\t\tassertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n\r\n\t\tvar _ = this, size = _._size;\r\n\r\n\t\tif(!size) return;\r\n\r\n\t\tvar numToCopy = size,\r\n\t\t source = _._array,\r\n\t\t len = _._capacity,\r\n\t\t head = _._head,\r\n\t\t lh = len - head,\r\n\t\t firstPart\r\n\t\t = (lh0)\r\n\t\t\tAU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this, size = _._size;\r\n\t\tvar arr:T[] = AU.initialize(size);\r\n\t\treturn size ? _.copyTo(arr) : arr;\r\n\t}\r\n\r\n\tremove(item:T):number\r\n\t{\r\n\t\tthrow new NotImplementedException(\r\n\t\t\t\"ICollection\\.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\r\n\t// #endregion\r\n\r\n\t// Results in a complete reset. Allows for easy cleanup elsewhere.\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.clear();\r\n\t\tif(_._array!=emptyArray)\r\n\t\t{\r\n\t\t\t_._array.length = _._capacity = 0;\r\n\t\t\t_._array = emptyArray;\r\n\t\t}\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\t// Until implementing a changed enumeration mechanism, a copy needs to be used.\r\n\t\tvar _ = this, copy = _.toArray(), len = _._size;\r\n\t\tfor(let i = 0; iaction(copy[i], i)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\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\tif(version!=_._version)\r\n\t\t\t\t\tthrow new InvalidOperationException(\"Collection was changed during enumeration.\");\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 diff --git a/dist/amd/System/Collections/Sorting/KeySortedContext.js b/dist/amd/System/Collections/Sorting/KeySortedContext.js index d68931c8..6e4f7dab 100644 --- a/dist/amd/System/Collections/Sorting/KeySortedContext.js +++ b/dist/amd/System/Collections/Sorting/KeySortedContext.js @@ -1,6 +1,2 @@ -/* - * @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){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(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}); //# 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 5ddf0f24..a76a7488 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","KeySortedContext.constructor","KeySortedContext.compare","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,GCOvI,GAAAC,GAAA,SAAAC,GAGCD,QAAAA,GACCA,EACUA,EACVA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAyBA,EAAOA,SAEhCA,EAAAA,KAAAA,KAAMA,EAAMA,EAAUA,GAJZA,KAAAA,aAAAA,EAgBZF,MApB2DA,WAAAA,EAAAA,GAW1DA,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZG,GAAIA,GAAIA,KAAMA,EAAKA,EAAEA,YACrBA,KAAIA,GAAMA,GAAIA,EAAAA,WAAUA,SAAUA,MAAOA,GAAAA,UAAMA,QAAOA,KAAAA,KAACA,EAAGA,EAE1DA,IAAIA,GAAIA,EAAOA,QAAaA,EAAGA,GAASA,EAAGA,GAC3CA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBH,GApB2DF,EAAAA,WAD3DN,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDcIT,EAAAA,WAAkBI","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', \"./SortContext\", \"../../Functions\"], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var SortContext_1 = require(\"./SortContext\");\r\n var Functions_1 = require(\"../../Functions\");\r\n var KeySortedContext = (function (_super) {\r\n __extends(KeySortedContext, _super);\r\n function KeySortedContext(next, _keySelector, order, comparer) {\r\n if (order === void 0) { order = 1; }\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n _super.call(this, next, comparer, order);\r\n this._keySelector = _keySelector;\r\n }\r\n KeySortedContext.prototype.compare = function (a, b) {\r\n var _ = this, ks = _._keySelector;\r\n if (!ks || ks == Functions_1.default.Identity)\r\n return _super.prototype.compare.call(this, a, b);\r\n var d = Values.compare(ks(a), ks(b));\r\n if (d == 0 && _._next)\r\n return _._next.compare(a, b);\r\n return _._order * d;\r\n };\r\n return KeySortedContext;\r\n })(SortContext_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = KeySortedContext;\r\n});\r\n//# sourceMappingURL=KeySortedContext.js.map","/*\r\n * @author 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 Order from './Order'\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\ntype Comparable = Primitive|IComparable\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","KeySortedContext.constructor","KeySortedContext.compare","defineProperty","value"],"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,gBAAiB,gBAAiB,mBAAoB,SAAUC,EAASC,EAASC,EAAQC,EAAeC,GCDvI,YAaA,IAAAC,GAAA,SAAAC,GAGCD,QAAAA,GACCA,EACUA,EACVA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAyBA,EAAOA,SAEhCA,EAAAA,KAAAA,KAAMA,EAAMA,EAAUA,GAJZA,KAAAA,aAAAA,EAgBZF,MApB2DA,WAAAA,EAAAA,GAW1DA,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZG,GAAIA,GAAIA,KAAMA,EAAKA,EAAEA,YACrBA,KAAIA,GAAMA,GAAIA,EAAAA,WAAUA,SAAUA,MAAOA,GAAAA,UAAMA,QAAOA,KAAAA,KAACA,EAAGA,EAE1DA,IAAIA,GAAIA,EAAOA,QAAaA,EAAGA,GAASA,EAAGA,GAC3CA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBH,GApB2DF,EAAAA,WAD3DN,QAAAY,eAAAR,EAAA,cAAAS,OAAA,IDUIT,EAAAA,WAAkBI","file":"System/Collections/Sorting/KeySortedContext.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\", '../../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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from '../../Compare'\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\ntype Comparable = Primitive|IComparable\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 diff --git a/dist/amd/System/Collections/Sorting/Order.js b/dist/amd/System/Collections/Sorting/Order.js deleted file mode 100644 index 89ae872b..00000000 --- a/dist/amd/System/Collections/Sorting/Order.js +++ /dev/null @@ -1,2 +0,0 @@ -define(["require","exports"],function(e,i){}); -//# sourceMappingURL=Order.js.map diff --git a/dist/amd/System/Collections/Sorting/Order.js.map b/dist/amd/System/Collections/Sorting/Order.js.map deleted file mode 100644 index b00eee83..00000000 --- a/dist/amd/System/Collections/Sorting/Order.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Sorting/Order.js"],"names":["define","require","exports"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC","file":"System/Collections/Sorting/Order.js","sourcesContent":["(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=Order.js.map"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/Sorting/SortContext.js b/dist/amd/System/Collections/Sorting/SortContext.js index 37822b95..cdc7b370 100644 --- a/dist/amd/System/Collections/Sorting/SortContext.js +++ b/dist/amd/System/Collections/Sorting/SortContext.js @@ -1,6 +1,2 @@ -/* - * @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){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 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}); //# 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 e94c0ab6..9e953de0 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","SortContext.constructor","get","SortContext.order","enumerable","configurable","SortContext.generateSortedIndexes","SortContext.compare","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iBAAkB,SAAUC,EAASC,EAASC,GCS5E,GAAAC,GAAA,WAWCA,QAAAA,GACWA,EACAA,EACAA,GADVC,SAAAA,IAAAA,EAAoCA,EAAOA,SAC3CA,SAAAA,IAAAA,EAAAA,GAFUA,KAAAA,MAAAA,EACAA,KAAAA,UAAAA,EACAA,KAAAA,OAAAA,EA+BZD,MArCCA,QAAAA,eAAIA,EAAAA,UAAAA,SDPOE,ICOXF,WACEG,MAAOA,MAAKA,QDPHC,YAAY,EACZC,cAAc,ICqBzBL,EAAAA,UAAAA,sBAAAA,SAAsBA,GAAtBM,GAAAA,GAAAA,IAECA,IAAWA,MAARA,EAAcA,QACjBA,IAAIA,GAAkBA,EAAOA,IAAIA,SAACA,EAAGA,GAAIA,MAAAA,IAEzCA,OADAA,GAAOA,KAAKA,SAACA,EAAGA,GAAMA,MAAAA,GAAKA,QAAQA,EAAOA,GAAIA,EAAOA,MAC9CA,GASRN,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZO,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,UAAUA,EAAGA,EACvBA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBP,IA7CAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDuBIZ,EAAAA,WAAkBE","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var SortContext = (function () {\r\n function SortContext(_next, _comparer, _order) {\r\n if (_comparer === void 0) { _comparer = Values.compare; }\r\n if (_order === void 0) { _order = 1; }\r\n this._next = _next;\r\n this._comparer = _comparer;\r\n this._order = _order;\r\n }\r\n Object.defineProperty(SortContext.prototype, \"order\", {\r\n get: function () { return this._order; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SortContext.prototype.generateSortedIndexes = function (source) {\r\n var _this = this;\r\n if (source == null)\r\n return [];\r\n var result = source.map(function (s, i) { return i; });\r\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\r\n return result;\r\n };\r\n SortContext.prototype.compare = function (a, b) {\r\n var _ = this;\r\n var d = _._comparer(a, b);\r\n if (d == 0 && _._next)\r\n return _._next.compare(a, b);\r\n return _._order * d;\r\n };\r\n return SortContext;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SortContext;\r\n});\r\n//# sourceMappingURL=SortContext.js.map","/*\r\n * @author 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 * as Values from '../../Compare'\r\nimport Order from './Order'\r\nimport Integer from '../../Integer'\r\nimport forEach from \"../Enumeration/forEach\"\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","SortContext.constructor","get","SortContext.order","enumerable","configurable","SortContext.generateSortedIndexes","SortContext.compare","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,iBAAkB,SAAUC,EAASC,EAASC,GCI5E,YAUA,IAAAC,GAAA,WAWCA,QAAAA,GACWA,EACAA,EACAA,GADVC,SAAAA,IAAAA,EAAoCA,EAAOA,SAC3CA,SAAAA,IAAAA,EAAAA,GAFUA,KAAAA,MAAAA,EACAA,KAAAA,UAAAA,EACAA,KAAAA,OAAAA,EA+BZD,MArCCA,QAAAA,eAAIA,EAAAA,UAAAA,SDXOE,ICWXF,WACEG,MAAOA,MAAKA,QDXHC,YAAY,EACZC,cAAc,ICyBzBL,EAAAA,UAAAA,sBAAAA,SAAsBA,GAAtBM,GAAAA,GAAAA,IAECA,IAAWA,MAARA,EAAcA,QACjBA,IAAIA,GAAkBA,EAAOA,IAAIA,SAACA,EAAGA,GAAIA,MAAAA,IAEzCA,OADAA,GAAOA,KAAKA,SAACA,EAAGA,GAAMA,MAAAA,GAAKA,QAAQA,EAAOA,GAAIA,EAAOA,MAC9CA,GASRN,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZO,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,UAAUA,EAAGA,EACvBA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBP,IA7CAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDmBIZ,EAAAA,WAAkBE","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["define([\"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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from '../../Compare'\r\nimport Integer from '../../Integer'\r\nimport forEach from \"../Enumeration/forEach\"\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 diff --git a/dist/amd/System/Compare.js b/dist/amd/System/Compare.js index 0aa43ec9..e18f3af6 100644 --- a/dist/amd/System/Compare.js +++ b/dist/amd/System/Compare.js @@ -1,8 +1,2 @@ -/// -/// -/* - * @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,a){function o(e,r,a){return void 0===a&&(a=!0),e===r||!a&&e==r||n(e)&&n(r)}function u(e,r,u){return void 0===u&&(u=!0),o(e,r,u)?0:e&&a["default"].hasMember(e,i)?e.compareTo(r):r&&a["default"].hasMember(r,i)?-r.compareTo(e):e>r||u&&(0===e&&0==r||null===e&&void 0===r)?1:r>e||u&&(0===r&&0==e||null===r&&void 0===e)?-1:NaN}var n=a["default"].isTrueNaN;r.areEqual=o;var i="compareTo";r.compare=u}); +define(["require","exports","./Types"],function(e,r,a){function o(e,r,a){return void 0===a&&(a=!0),e===r||!a&&e==r||n(e)&&n(r)}function u(e,r,u){return void 0===u&&(u=!0),o(e,r,u)?0:e&&a["default"].hasMember(e,t)?e.compareTo(r):r&&a["default"].hasMember(r,t)?-r.compareTo(e):e>r||u&&(0===e&&0==r||null===e&&r===i)?1:r>e||u&&(0===r&&0==e||null===r&&e===i)?-1:NaN}var n=a["default"].isTrueNaN,i=void 0;r.areEqual=o;var t="compareTo";r.compare=u}); //# sourceMappingURL=Compare.js.map diff --git a/dist/amd/System/Compare.js.map b/dist/amd/System/Compare.js.map index 7e70b5a0..c2cb698d 100644 --- a/dist/amd/System/Compare.js.map +++ b/dist/amd/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["define","require","exports","Types_1","areEqual","a","b","strict","compare","isTrueNaN","COMPARE_TO"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,WAAY,SAAUC,EAASC,EAASC,GCYtE,QAAAC,GAAyBC,EAAOC,EAAOC,GAEtCH,MAFsCA,UAAAA,IAAAA,GAAAA,GAE/BA,IAAIA,IAAMA,GAAUA,GAAGA,GAAKA,EAAUA,IAAMA,EAAUA,GAO9D,QAAAI,GAAwBH,EAAOC,EAAOC,GAGrCC,MAHqCA,UAAAA,IAAAA,GAAAA,GAGlCA,EAASA,EAAGA,EAAGA,GACVA,EAELA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,GAClBA,EAAEA,UAAUA,GACZA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,IACtBA,EAAEA,UAAUA,GAIlBA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAgBA,SAAJA,GAC1CA,EAELA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAgBA,SAAJA,GAC1CA,GAEDA,IAtCR,GAAOC,GAAYN,EAAAA,WAAKM,SAURP,GAAAE,SAAQA,CAKxB,IAAMM,GAAa,WAIHR,GAAAM,QAAOA","file":"System/Compare.js","sourcesContent":["///\r\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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Types'], function (require, exports) {\r\n var Types_1 = require('./Types');\r\n var isTrueNaN = Types_1.default.isTrueNaN;\r\n function areEqual(a, b, strict) {\r\n if (strict === void 0) { strict = true; }\r\n return a === b || !strict && a == b || isTrueNaN(a) && isTrueNaN(b);\r\n }\r\n exports.areEqual = areEqual;\r\n var COMPARE_TO = \"compareTo\";\r\n function compare(a, b, strict) {\r\n if (strict === void 0) { strict = true; }\r\n if (areEqual(a, b, strict))\r\n return 0;\r\n if (a && Types_1.default.hasMember(a, COMPARE_TO))\r\n return a.compareTo(b);\r\n else if (b && Types_1.default.hasMember(b, COMPARE_TO))\r\n return -b.compareTo(a);\r\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === undefined))\r\n return 1;\r\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === undefined))\r\n return -1;\r\n return NaN;\r\n }\r\n exports.compare = compare;\r\n});\r\n//# sourceMappingURL=Compare.js.map","///\r\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 Type from './Types';\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nexport const enum CompareResult {\r\n\tEqual = 0,\r\n\tGreater = 1,\r\n\tLess = -1\r\n}\r\n\r\n\r\n// Used for special equals cases like NaN.\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\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);\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a);\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===undefined))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===undefined))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\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","compare","isTrueNaN","VOID0","COMPARE_TO"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,WAAY,SAAUC,EAASC,EAASC,GCetE,QAAAC,GAAyBC,EAAOC,EAAOC,GAEtCH,MAFsCA,UAAAA,IAAAA,GAAAA,GAE/BA,IAAIA,IAAMA,GAAUA,GAAGA,GAAKA,EAAUA,IAAMA,EAAUA,GAO9D,QAAAI,GAAwBH,EAAOC,EAAOC,GAGrCC,MAHqCA,UAAAA,IAAAA,GAAAA,GAGlCA,EAASA,EAAGA,EAAGA,GACVA,EAELA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,GAClBA,EAAEA,UAAUA,GACZA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,IACtBA,EAAEA,UAAUA,GAIlBA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAYA,IAAIA,GAC9CA,EAELA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAYA,IAAIA,GAC9CA,GAEDA,IAlCR,GAAOC,GAAYN,EAAAA,WAAKM,UAElBC,EAAY,MAIFR,GAAAE,SAAQA,CAKxB,IAAMO,GAAa,WAIHT,GAAAM,QAAOA","file":"System/Compare.js","sourcesContent":["define([\"require\", \"exports\", './Types'], function (require, exports, Types_1) {\n var isTrueNaN = Types_1.default.isTrueNaN;\n var VOID0 = void 0;\n function areEqual(a, b, strict) {\n if (strict === void 0) { strict = true; }\n return a === b || !strict && a == b || 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.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 }\n exports.compare = compare;\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 equals cases like NaN.\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\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);\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a);\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"]} \ No newline at end of file diff --git a/dist/amd/System/Diagnostics/Stopwatch.js b/dist/amd/System/Diagnostics/Stopwatch.js index 7ced2747..af2c63e3 100644 --- a/dist/amd/System/Diagnostics/Stopwatch.js +++ b/dist/amd/System/Diagnostics/Stopwatch.js @@ -1,6 +1,2 @@ -/* - * @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){var i=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return(new Date).getTime()},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(t){var i=e.getTimestampMilliseconds();return t(),new n["default"](e.getTimestampMilliseconds()-i)},e.prototype.record=function(t){var n=e.measure(t);return this._elapsed+=n.milliseconds,n},e.prototype.start=function(){var t=this;t._isRunning||(t._startTimeStamp=e.getTimestampMilliseconds(),t._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 t=this;if(t._isRunning){var i=e.getTimestampMilliseconds(),r=t._startTimeStamp,s=i-r;return t._startTimeStamp=i,t._elapsed+=s,new n["default"](s)}return n["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?e.getTimestampMilliseconds()-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,t,n){"use strict";var i=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return(new Date).getTime()},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(t){var i=e.getTimestampMilliseconds();return t(),new n["default"](e.getTimestampMilliseconds()-i)},e.prototype.record=function(t){var n=e.measure(t);return this._elapsed+=n.milliseconds,n},e.prototype.start=function(){var t=this;t._isRunning||(t._startTimeStamp=e.getTimestampMilliseconds(),t._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 t=this;if(t._isRunning){var i=e.getTimestampMilliseconds(),r=t._startTimeStamp,s=i-r;return t._startTimeStamp=i,t._elapsed+=s,new n["default"](s)}return n["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?e.getTimestampMilliseconds()-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}); //# sourceMappingURL=Stopwatch.js.map diff --git a/dist/amd/System/Diagnostics/Stopwatch.js.map b/dist/amd/System/Diagnostics/Stopwatch.js.map index 0bd56ce5..baa9d184 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","Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","get","Stopwatch.isRunning","enumerable","configurable","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GCI/E,GAAAC,GAAA,WAkBCA,QAAAA,KAECC,KAAKA,QAkGPD,MAlHQA,GAAAA,yBAAPA,WAECE,OAAOA,GAAKA,OAAQA,WAOrBF,OAAAA,eAAIA,EAAAA,UAAAA,aDROG,ICQXH,WAECI,MAAOA,MAAKA,YDPFC,YAAY,EACZC,cAAc,ICclBN,EAAAA,SAAPA,WAECO,GAAIA,GAAIA,GAAIA,EAEZA,OADAA,GAAEA,QACKA,GAGDP,EAAAA,QAAPA,SAAeA,GAEdQ,GAAIA,GAAQA,EAAUA,0BAEtBA,OADAA,KACOA,GAAIA,GAAAA,WAASA,EAAUA,2BAA6BA,IAG5DR,EAAAA,UAAAA,OAAAA,SAAOA,GAGNS,GAAIA,GAAIA,EAAUA,QAAQA,EAE1BA,OADAA,MAAKA,UAAYA,EAAEA,aACZA,GAGRT,EAAAA,UAAAA,MAAAA,WAECU,GAAIA,GAAIA,IACJA,GAAEA,aACLA,EAAEA,gBAAkBA,EAAUA,2BAC9BA,EAAEA,YAAaA,IAIjBV,EAAAA,UAAAA,KAAAA,WAECW,GAAIA,GAAIA,IACLA,GAAEA,aACJA,EAAEA,UAAYA,EAAEA,uBAChBA,EAAEA,YAAaA,IAIjBX,EAAAA,UAAAA,MAAAA,WAECY,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,EACbA,EAAEA,YAAaA,EACfA,EAAEA,gBAAkBA,KAKrBZ,EAAAA,UAAAA,IAAAA,WAECa,GAAIA,GAAIA,IACRA,IAAGA,EAAEA,WAAYA,CAChBA,GAAIA,GAAIA,EAAUA,2BACdA,EAAIA,EAAEA,gBACNA,EAAIA,EAAIA,CAGZA,OAFAA,GAAEA,gBAAkBA,EACpBA,EAAEA,UAAYA,EACPA,GAAIA,GAAAA,WAASA,GAGpBA,MAAOA,GAAAA,WAASA,MAGlBb,OAAAA,eAAIA,EAAAA,UAAAA,0BD5BOG,IC4BXH,WAECc,MAAOA,MAAKA,WACRA,EAAUA,2BAA6BA,KAAKA,gBAC7CA,GD3BOT,YAAY,EACZC,cAAc,IC6BzBN,OAAAA,eAAIA,EAAAA,UAAAA,cD1BOG,IC0BXH,WAECe,MAAOA,MAAKA,WACTA,GAAIA,GAAAA,WAASA,KAAKA,wBAClBA,EAAAA,WAASA,MDzBFV,YAAY,EACZC,cAAc,IC2BzBN,OAAAA,eAAIA,EAAAA,UAAAA,uBDxBOG,ICwBXH,WAECgB,GAAIA,GAAIA,KACJA,EAAcA,EAAEA,QAKpBA,OAHGA,GAAEA,aACJA,GAAeA,EAAEA,wBAEXA,GDzBGX,YAAY,EACZC,cAAc,IC2BzBN,OAAAA,eAAIA,EAAAA,UAAAA,WDxBOG,ICwBXH,WAECiB,MAAOA,IAAIA,GAAAA,WAASA,KAAKA,sBDvBfZ,YAAY,EACZC,cAAc,ICyB1BN,IAtHAkB,QAAAC,eAAArB,EAAA,cAAAsB,OAAA,IDkGItB,EAAAA,WAAkBE","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Time/TimeSpan'], function (require, exports) {\r\n var TimeSpan_1 = require('../Time/TimeSpan');\r\n var Stopwatch = (function () {\r\n function Stopwatch() {\r\n this.reset();\r\n }\r\n Stopwatch.getTimestampMilliseconds = function () {\r\n return (new Date()).getTime();\r\n };\r\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\r\n get: function () {\r\n return this._isRunning;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Stopwatch.startNew = function () {\r\n var s = new Stopwatch();\r\n s.start();\r\n return s;\r\n };\r\n Stopwatch.measure = function (closure) {\r\n var start = Stopwatch.getTimestampMilliseconds();\r\n closure();\r\n return new TimeSpan_1.default(Stopwatch.getTimestampMilliseconds() - start);\r\n };\r\n Stopwatch.prototype.record = function (closure) {\r\n var e = Stopwatch.measure(closure);\r\n this._elapsed += e.milliseconds;\r\n return e;\r\n };\r\n Stopwatch.prototype.start = function () {\r\n var _ = this;\r\n if (!_._isRunning) {\r\n _._startTimeStamp = Stopwatch.getTimestampMilliseconds();\r\n _._isRunning = true;\r\n }\r\n };\r\n Stopwatch.prototype.stop = function () {\r\n var _ = this;\r\n if (_._isRunning) {\r\n _._elapsed += _.currentLapMilliseconds;\r\n _._isRunning = false;\r\n }\r\n };\r\n Stopwatch.prototype.reset = function () {\r\n var _ = this;\r\n _._elapsed = 0;\r\n _._isRunning = false;\r\n _._startTimeStamp = NaN;\r\n };\r\n Stopwatch.prototype.lap = function () {\r\n var _ = this;\r\n if (_._isRunning) {\r\n var t = Stopwatch.getTimestampMilliseconds();\r\n var s = _._startTimeStamp;\r\n var e = t - s;\r\n _._startTimeStamp = t;\r\n _._elapsed += e;\r\n return new TimeSpan_1.default(e);\r\n }\r\n else\r\n return TimeSpan_1.default.zero;\r\n };\r\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\r\n get: function () {\r\n return this._isRunning\r\n ? (Stopwatch.getTimestampMilliseconds() - this._startTimeStamp)\r\n : 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\r\n get: function () {\r\n return this._isRunning\r\n ? new TimeSpan_1.default(this.currentLapMilliseconds)\r\n : TimeSpan_1.default.zero;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\r\n get: function () {\r\n var _ = this;\r\n var timeElapsed = _._elapsed;\r\n if (_._isRunning)\r\n timeElapsed += _.currentLapMilliseconds;\r\n return timeElapsed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\r\n get: function () {\r\n return new TimeSpan_1.default(this.elapsedMilliseconds);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Stopwatch;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Stopwatch;\r\n});\r\n//# sourceMappingURL=Stopwatch.js.map","/*\r\n * @author 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 TimeSpan from '../Time/TimeSpan';\r\n\r\n\r\nexport default\r\nclass Stopwatch\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(Stopwatch.getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\trecord(closure:() => void):TimeSpan\r\n\t{\r\n\t\t// Although a reasonably thread safe way to record, it may not correctly represent time in an async scenario.\r\n\t\tvar e = Stopwatch.measure(closure);\r\n\t\tthis._elapsed += e.milliseconds;\r\n\t\treturn e;\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\t_._startTimeStamp = Stopwatch.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 = Stopwatch.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? (Stopwatch.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","Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","get","Stopwatch.isRunning","enumerable","configurable","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,oBAAqB,SAAUC,EAASC,EAASC,GCI/E,YAKA,IAAAC,GAAA,WAkBCA,QAAAA,KAECC,KAAKA,QAkGPD,MAlHQA,GAAAA,yBAAPA,WAECE,OAAOA,GAAKA,OAAQA,WAOrBF,OAAAA,eAAIA,EAAAA,UAAAA,aDZOG,ICYXH,WAECI,MAAOA,MAAKA,YDXFC,YAAY,EACZC,cAAc,ICkBlBN,EAAAA,SAAPA,WAECO,GAAIA,GAAIA,GAAIA,EAEZA,OADAA,GAAEA,QACKA,GAGDP,EAAAA,QAAPA,SAAeA,GAEdQ,GAAIA,GAAQA,EAAUA,0BAEtBA,OADAA,KACOA,GAAIA,GAAAA,WAASA,EAAUA,2BAA6BA,IAG5DR,EAAAA,UAAAA,OAAAA,SAAOA,GAGNS,GAAIA,GAAIA,EAAUA,QAAQA,EAE1BA,OADAA,MAAKA,UAAYA,EAAEA,aACZA,GAGRT,EAAAA,UAAAA,MAAAA,WAECU,GAAIA,GAAIA,IACJA,GAAEA,aACLA,EAAEA,gBAAkBA,EAAUA,2BAC9BA,EAAEA,YAAaA,IAIjBV,EAAAA,UAAAA,KAAAA,WAECW,GAAIA,GAAIA,IACLA,GAAEA,aACJA,EAAEA,UAAYA,EAAEA,uBAChBA,EAAEA,YAAaA,IAIjBX,EAAAA,UAAAA,MAAAA,WAECY,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,EACbA,EAAEA,YAAaA,EACfA,EAAEA,gBAAkBA,KAKrBZ,EAAAA,UAAAA,IAAAA,WAECa,GAAIA,GAAIA,IACRA,IAAGA,EAAEA,WAAYA,CAChBA,GAAIA,GAAIA,EAAUA,2BACdA,EAAIA,EAAEA,gBACNA,EAAIA,EAAIA,CAGZA,OAFAA,GAAEA,gBAAkBA,EACpBA,EAAEA,UAAYA,EACPA,GAAIA,GAAAA,WAASA,GAGpBA,MAAOA,GAAAA,WAASA,MAGlBb,OAAAA,eAAIA,EAAAA,UAAAA,0BDhCOG,ICgCXH,WAECc,MAAOA,MAAKA,WACRA,EAAUA,2BAA6BA,KAAKA,gBAC7CA,GD/BOT,YAAY,EACZC,cAAc,ICiCzBN,OAAAA,eAAIA,EAAAA,UAAAA,cD9BOG,IC8BXH,WAECe,MAAOA,MAAKA,WACTA,GAAIA,GAAAA,WAASA,KAAKA,wBAClBA,EAAAA,WAASA,MD7BFV,YAAY,EACZC,cAAc,IC+BzBN,OAAAA,eAAIA,EAAAA,UAAAA,uBD5BOG,IC4BXH,WAECgB,GAAIA,GAAIA,KACJA,EAAcA,EAAEA,QAKpBA,OAHGA,GAAEA,aACJA,GAAeA,EAAEA,wBAEXA,GD7BGX,YAAY,EACZC,cAAc,IC+BzBN,OAAAA,eAAIA,EAAAA,UAAAA,WD5BOG,IC4BXH,WAECiB,MAAOA,IAAIA,GAAAA,WAASA,KAAKA,sBD3BfZ,YAAY,EACZC,cAAc,IC6B1BN,IAtHAkB,QAAAC,eAAArB,EAAA,cAAAsB,OAAA,ID8FItB,EAAAA,WAAkBE","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["define([\"require\", \"exports\", '../Time/TimeSpan'], function (require, exports, TimeSpan_1) {\n 'use strict';\n var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.default(Stopwatch.getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.record = function (closure) {\n var e = Stopwatch.measure(closure);\n this._elapsed += e.milliseconds;\n return e;\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = Stopwatch.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 = Stopwatch.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 ? (Stopwatch.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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport TimeSpan from '../Time/TimeSpan';\r\n\r\n\r\nexport default\r\nclass Stopwatch\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(Stopwatch.getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\trecord(closure:() => void):TimeSpan\r\n\t{\r\n\t\t// Although a reasonably thread safe way to record, it may not correctly represent time in an async scenario.\r\n\t\tvar e = Stopwatch.measure(closure);\r\n\t\tthis._elapsed += e.milliseconds;\r\n\t\treturn e;\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\t_._startTimeStamp = Stopwatch.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 = Stopwatch.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? (Stopwatch.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.js b/dist/amd/System/Disposable/DisposableBase.js index 654ebe90..ca3134b3 100644 --- a/dist/amd/System/Disposable/DisposableBase.js +++ b/dist/amd/System/Disposable/DisposableBase.js @@ -1,6 +1,2 @@ -/* - * @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,o){var s=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 o["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"]=s}); +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}); //# sourceMappingURL=DisposableBase.js.map diff --git a/dist/amd/System/Disposable/DisposableBase.js.map b/dist/amd/System/Disposable/DisposableBase.js.map index a970a53a..528418ff 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","DisposableBase.constructor","get","DisposableBase.wasDisposed","enumerable","configurable","DisposableBase.throwIfDisposed","DisposableBase.dispose","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,6BAA8B,SAAUC,EAASC,EAASC,GCMxF,GAAAC,GAAA,WAGCA,QAAAA,GAAoBA,GAAAC,KAAAA,WAAAA,EAIZA,KAAAA,cAAuBA,EA0ChCD,MAzCCA,QAAAA,eAAIA,EAAAA,UAAAA,eDPOE,ICOXF,WAECG,MAAOA,MAAKA,cDNFC,YAAY,EACZC,cAAc,ICWfL,EAAAA,UAAAA,gBAAVA,SACCA,EACAA,GAEAM,GAFAA,SAAAA,IAAAA,EAAoBA,KAAKA,uBAEtBA,KAAKA,aACPA,KAAMA,IAAIA,GAAAA,WAAwBA,EAAYA,EAC/CA,QAAOA,GAIRN,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAIA,IACRA,KAAIA,EAAEA,aACNA,CAGCA,EAAEA,cAAeA,CACjBA,KAECA,EAAEA,aDhBU,QCoBTA,EAAEA,YACJA,EAAEA,gBAMIP,EAAAA,UAAAA,WAAVA,aAEDA,IAEAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDrBIZ,EAAAA,WCqBWE","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ObjectDisposedException'], function (require, exports) {\r\n ///\r\n var ObjectDisposedException_1 = require('./ObjectDisposedException');\r\n var DisposableBase = (function () {\r\n function DisposableBase(_finalizer) {\r\n this._finalizer = _finalizer;\r\n this._wasDisposed = false;\r\n }\r\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return this._wasDisposed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\r\n if (objectName === void 0) { objectName = this._disposableObjectName; }\r\n if (this._wasDisposed)\r\n throw new ObjectDisposedException_1.default(objectName, message);\r\n return true;\r\n };\r\n DisposableBase.prototype.dispose = function () {\r\n var _ = this;\r\n if (!_._wasDisposed) {\r\n _._wasDisposed = true;\r\n try {\r\n _._onDispose();\r\n }\r\n finally {\r\n if (_._finalizer)\r\n _._finalizer();\r\n }\r\n }\r\n };\r\n DisposableBase.prototype._onDispose = function () { };\r\n return DisposableBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DisposableBase;\r\n});\r\n//# sourceMappingURL=DisposableBase.js.map","/*\r\n * @author 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 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","DisposableBase.constructor","get","DisposableBase.wasDisposed","enumerable","configurable","DisposableBase.throwIfDisposed","DisposableBase.dispose","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,6BAA8B,SAAUC,EAASC,EAASC,GCKxF,YAIA,IAAAC,GAAA,WAGCA,QAAAA,GAAoBA,GAAAC,KAAAA,WAAAA,EAIZA,KAAAA,cAAuBA,EA0ChCD,MAzCCA,QAAAA,eAAIA,EAAAA,UAAAA,eDTOE,ICSXF,WAECG,MAAOA,MAAKA,cDRFC,YAAY,EACZC,cAAc,ICafL,EAAAA,UAAAA,gBAAVA,SACCA,EACAA,GAEAM,GAFAA,SAAAA,IAAAA,EAAoBA,KAAKA,uBAEtBA,KAAKA,aACPA,KAAMA,IAAIA,GAAAA,WAAwBA,EAAYA,EAC/CA,QAAOA,GAIRN,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAIA,IACRA,KAAIA,EAAEA,aACNA,CAGCA,EAAEA,cAAeA,CACjBA,KAECA,EAAEA,aDlBU,QCsBTA,EAAEA,YACJA,EAAEA,gBAMIP,EAAAA,UAAAA,WAAVA,aAEDA,IAEAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDvBIZ,EAAAA,WCuBWE","file":"System/Disposable/DisposableBase.js","sourcesContent":["define([\"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'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 diff --git a/dist/amd/System/Disposable/ObjectDisposedException.js b/dist/amd/System/Disposable/ObjectDisposedException.js index 7b0a1210..94d035d5 100644 --- a/dist/amd/System/Disposable/ObjectDisposedException.js +++ b/dist/amd/System/Disposable/ObjectDisposedException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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["default"]);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 5fd111dd..490d743a 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","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed","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,GCCtG,GAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAQCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAASA,EAAgBA,SAACA,GAC/BA,EAAEA,WAAaA,IA2BlBF,MAvCQA,WAAAA,EAAAA,GAiBGA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,UAGxBA,OAFAA,GAAQA,EAASA,IAAMA,EAAQA,KAAQA,GAEhCA,IAAMA,EAAEA,KAAOA,KAAOA,EAAQA,EAAEA,QAAUA,KAG3CJ,EAAAA,gBAAPA,SACCA,EACAA,EACAA,GAEAK,GAAGA,EAAWA,YACbA,KAAMA,IAAIA,GAAwBA,EAAYA,IAGjDL,GAvCQF,EAAAA,WAFRL,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDuBIV,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Exceptions/InvalidOperationException'], function (require, exports) {\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var NAME = 'ObjectDisposedException';\r\n var ObjectDisposedException = (function (_super) {\r\n __extends(ObjectDisposedException, _super);\r\n function ObjectDisposedException(objectName, message, innerException) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, message, innerException, function (_) {\r\n _.objectName = objectName;\r\n });\r\n }\r\n ObjectDisposedException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n ObjectDisposedException.prototype.toString = function () {\r\n var _ = this, oName = _.objectName;\r\n oName = oName ? ('{' + oName + '} ') : '';\r\n return '[' + _.name + ': ' + oName + _.message + ']';\r\n };\r\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\r\n if (disposable.wasDisposed)\r\n throw new ObjectDisposedException(objectName, message);\r\n };\r\n return ObjectDisposedException;\r\n })(InvalidOperationException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ObjectDisposedException;\r\n});\r\n//# sourceMappingURL=ObjectDisposedException.js.map","/*\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 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","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed","defineProperty","value"],"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,2CAA4C,SAAUC,EAASC,EAASC,GCCtG,YAMA,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAQCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAASA,EAAgBA,SAACA,GAC/BA,EAAEA,WAAaA,IA2BlBF,MAvCQA,WAAAA,EAAAA,GAiBGA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,UAGxBA,OAFAA,GAAQA,EAASA,IAAMA,EAAQA,KAAQA,GAEhCA,IAAMA,EAAEA,KAAOA,KAAOA,EAAQA,EAAEA,QAAUA,KAG3CJ,EAAAA,gBAAPA,SACCA,EACAA,EACAA,GAEAK,GAAGA,EAAWA,YACbA,KAAMA,IAAIA,GAAwBA,EAAYA,IAGjDL,GAvCQF,EAAAA,WAFRL,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDkBIV,EAAAA,WAAkBG","file":"System/Disposable/ObjectDisposedException.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\", '../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'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 diff --git a/dist/amd/System/Disposable/Utility.js b/dist/amd/System/Disposable/Utility.js index 1f52c0d2..5a4002e6 100644 --- a/dist/amd/System/Disposable/Utility.js +++ b/dist/amd/System/Disposable/Utility.js @@ -1,6 +1,2 @@ -/* - * @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,r){"use strict";function t(){for(var e=[],n=0;nr;r++){var s=e[r];if(s)if(n){var u=o(s,!0);u&&(t||(t=[]),t.push(u))}else{var l=!1;try{o(s,!1),l=!0}finally{!l&&i>r+1&&f(e,!1,r+1)}if(!l)break}}return t}n.dispose=t,n.disposeWithoutException=i,n.disposeThese=s,n.using=u}); //# sourceMappingURL=Utility.js.map diff --git a/dist/amd/System/Disposable/Utility.js.map b/dist/amd/System/Disposable/Utility.js.map index a6371011..7a054cdb 100644 --- a/dist/amd/System/Disposable/Utility.js.map +++ b/dist/amd/System/Disposable/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/Utility.js","System/Disposable/Utility.ts"],"names":["define","require","exports","Types_1","dispose","disposeWithoutException","disposeThese","disposables","trapExceptions","using","disposable","closure","disposeSingle","disposeTheseInternal","index"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCKvE,YAQA,SAAAC,KDTQ,ICSgBA,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGvBA,GAAqBA,GAAaA,GAUnC,QAAAC,KDdQ,ICcgCA,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGvCA,OAAOA,GAAqBA,GAAaA,GAS1C,QAAAC,GAA6BC,EAA2BC,GAEvDF,MAAOA,IAAeA,EAAYA,OAC/BA,EAAqBA,EAAYA,QAASA,GAC1CA,KAkBJ,QAAAG,GACCC,EACAC,GAEAF,IAECA,MAAOA,GAAQA,GDtCT,QC0CNA,EAAcA,GAAYA,IAS5B,QAAAG,GACCF,EACAF,GAEAI,GAAGA,EAAAA,WAAKA,GAAGA,GAAYA,OAAOA,WAAWA,WAExCA,GAAGA,EAEFA,IAECA,EAAWA,UAEZA,MAAMA,GAELA,MAAOA,OAIRA,GAAWA,SAGbA,OAAOA,MAMR,QAAAC,GACCN,EACAC,EACAM,GAAAD,SAAAA,IAAAA,EAAAA,EAKAA,KAHAA,GAAIA,GACAA,EAAMA,EAAYA,OAEVA,EAANA,EAAWA,IACjBA,CACCA,GAAIA,GAAOA,EAAYA,EACvBA,IAAIA,EACJA,GAAGA,EACHA,CACCA,GAAIA,GAAKA,EAAcA,GAAMA,EAC1BA,KAEEA,IAAYA,MAChBA,EAAWA,KAAKA,QAIlBA,CACCA,GAAIA,IAAUA,CACdA,KAECA,EAAcA,GAAMA,GACpBA,GAAUA,ED/DE,SCoERA,GAAqBA,EAAVA,EAAQA,GAItBA,EAAqBA,GAAaA,EAAOA,EAAQA,GAInDA,IAAIA,EAASA,OAIfA,MAAOA,GAzIQX,EAAAE,QAAOA,EAaPF,EAAAG,wBAAuBA,EAYvBH,EAAAI,aAAYA,EAsBZJ,EAAAO,MAAKA","file":"System/Disposable/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n 'use strict';\r\n function dispose() {\r\n var disposables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n disposables[_i - 0] = arguments[_i];\r\n }\r\n disposeTheseInternal(disposables, false);\r\n }\r\n exports.dispose = dispose;\r\n function disposeWithoutException() {\r\n var disposables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n disposables[_i - 0] = arguments[_i];\r\n }\r\n return disposeTheseInternal(disposables, true);\r\n }\r\n exports.disposeWithoutException = disposeWithoutException;\r\n function disposeThese(disposables, trapExceptions) {\r\n return disposables && disposables.length\r\n ? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n : null;\r\n }\r\n exports.disposeThese = disposeThese;\r\n function using(disposable, closure) {\r\n try {\r\n return closure(disposable);\r\n }\r\n finally {\r\n disposeSingle(disposable, false);\r\n }\r\n }\r\n exports.using = using;\r\n function disposeSingle(disposable, trapExceptions) {\r\n if (Types_1.default.of(disposable).member('dispose').isFunction) {\r\n if (trapExceptions) {\r\n try {\r\n disposable.dispose();\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n else\r\n disposable.dispose();\r\n }\r\n return null;\r\n }\r\n function disposeTheseInternal(disposables, trapExceptions, index) {\r\n if (index === void 0) { index = 0; }\r\n var exceptions;\r\n var len = disposables.length;\r\n for (; index < len; index++) {\r\n var next = disposables[index];\r\n if (!next)\r\n continue;\r\n if (trapExceptions) {\r\n var ex = disposeSingle(next, true);\r\n if (ex) {\r\n if (!exceptions)\r\n exceptions = [];\r\n exceptions.push(ex);\r\n }\r\n }\r\n else {\r\n var success = false;\r\n try {\r\n disposeSingle(next, false);\r\n success = true;\r\n }\r\n finally {\r\n if (!success && index + 1 < len) {\r\n disposeTheseInternal(disposables, false, index + 1);\r\n }\r\n }\r\n if (!success)\r\n break;\r\n }\r\n }\r\n return exceptions;\r\n }\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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\n\r\n'use strict';\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 * @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\n\r\n/**\r\n * Takes any number of disposables and traps any errors that occur when disposing.\r\n * Returns an array of the exceptions thrown.\r\n * @param disposables\r\n * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeWithoutException(...disposables:IDisposable[]):any[]\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\treturn disposeTheseInternal(disposables, true);\r\n}\r\n\r\n/**\r\n * Takes an array of disposable objects and ensures they are disposed.\r\n * @param disposables\r\n * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeThese(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n{\r\n\treturn disposables && disposables.length\r\n\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t: null;\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(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\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 * @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\n\r\n/**\r\n * Takes any number of disposables and traps any errors that occur when disposing.\r\n * Returns an array of the exceptions thrown.\r\n * @param disposables\r\n * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeWithoutException(...disposables:IDisposable[]):any[]\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\treturn disposeTheseInternal(disposables, true);\r\n}\r\n\r\n/**\r\n * Takes an array of disposable objects and ensures they are disposed.\r\n * @param disposables\r\n * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeThese(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n{\r\n\treturn disposables && disposables.length\r\n\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t: null;\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(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\r\n ///\r\n var shallowCopy_1 = require('../Utility/shallowCopy');\r\n var DisposableBase_1 = require('../Disposable/DisposableBase');\r\n var AU = require('../Collections/Array/Utility');\r\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\r\n var EventDispatcherEntry = (function (_super) {\r\n __extends(EventDispatcherEntry, _super);\r\n function EventDispatcherEntry(type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n _super.call(this);\r\n this.type = type;\r\n this.listener = listener;\r\n this.useCapture = useCapture;\r\n this.priority = priority;\r\n var _ = this;\r\n _.type = type;\r\n _.listener = listener;\r\n _.useCapture = useCapture;\r\n _.priority = priority;\r\n }\r\n EventDispatcherEntry.prototype.dispose = function () {\r\n this.listener = null;\r\n };\r\n Object.defineProperty(EventDispatcherEntry.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return this.listener == null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EventDispatcherEntry.prototype.matches = function (type, listener, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var _ = this;\r\n return _.type == type\r\n && _.listener == listener\r\n && _.useCapture == useCapture;\r\n };\r\n EventDispatcherEntry.prototype.equals = function (other) {\r\n var _ = this;\r\n return _.type == other.type\r\n && _.listener == other.listener\r\n && _.useCapture == other.useCapture\r\n && _.priority == other.priority;\r\n };\r\n return EventDispatcherEntry;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = EventDispatcherEntry;\r\n var EventDispatcher = (function (_super) {\r\n __extends(EventDispatcher, _super);\r\n function EventDispatcher() {\r\n _super.apply(this, arguments);\r\n this._isDisposing = false;\r\n }\r\n EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n var l = this._listeners;\r\n if (!l)\r\n this._listeners = l = [];\r\n l.push(new EventDispatcherEntry(type, listener, useCapture, priority));\r\n };\r\n EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n if (!this.hasEventListener(type, listener, useCapture))\r\n this.addEventListener(type, listener, useCapture, priority);\r\n };\r\n EventDispatcher.prototype.hasEventListener = function (type, listener, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var l = this._listeners;\r\n return l && l.some(function (value) {\r\n return type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture);\r\n });\r\n };\r\n EventDispatcher.prototype.removeEventListener = function (type, listener, userCapture) {\r\n if (userCapture === void 0) { userCapture = false; }\r\n var l = this._listeners;\r\n if (l) {\r\n var i = AU.findIndex(l, function (entry) { return entry.matches(type, listener, userCapture); });\r\n if (i != -1) {\r\n var e = l[i];\r\n l.splice(i, 1);\r\n e.dispose();\r\n }\r\n }\r\n };\r\n EventDispatcher.prototype.dispatchEvent = function (e, params) {\r\n var _this = this;\r\n var _ = this, l = _._listeners;\r\n if (!l || !l.length)\r\n return false;\r\n var event;\r\n if (typeof e == \"string\") {\r\n event = Object.create(Event);\r\n if (!params)\r\n params = {};\r\n event.cancelable = !!params.cancelable;\r\n event.target = _;\r\n event.type = e;\r\n }\r\n else\r\n event = e;\r\n var type = event.type;\r\n var entries = [];\r\n l.forEach(function (e) { if (e.type == type)\r\n entries.push(e); });\r\n if (!entries.length)\r\n return false;\r\n entries.sort(function (a, b) { return b.priority - a.priority; });\r\n entries.forEach(function (entry) {\r\n var newEvent = Object.create(Event);\r\n shallowCopy_1.default(event, newEvent);\r\n newEvent.target = _this;\r\n entry.listener(newEvent);\r\n });\r\n return true;\r\n };\r\n Object.defineProperty(EventDispatcher, \"DISPOSING\", {\r\n get: function () { return DISPOSING; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EventDispatcher, \"DISPOSED\", {\r\n get: function () { return DISPOSED; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EventDispatcher.prototype, \"isDisposing\", {\r\n get: function () {\r\n return this._isDisposing;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EventDispatcher.prototype.dispose = function () {\r\n var _ = this;\r\n if (!_.wasDisposed && !_._isDisposing) {\r\n _._isDisposing = true;\r\n _.dispatchEvent(DISPOSING);\r\n _super.prototype.dispose.call(this);\r\n _.dispatchEvent(DISPOSED);\r\n var l = _._listeners;\r\n if (l) {\r\n this._listeners = null;\r\n l.forEach(function (e) { return e.dispose(); });\r\n }\r\n }\r\n };\r\n return EventDispatcher;\r\n })(DisposableBase_1.default);\r\n});\r\n//# sourceMappingURL=EventDispatcher.js.map","/*\r\n * @author 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 shallowCopy from '../Utility/shallowCopy';\r\nimport DisposableBase from '../Disposable/DisposableBase';\r\nimport * as AU from '../Collections/Array/Utility';\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\nexport default\r\nclass EventDispatcherEntry extends DisposableBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:EventListener,\r\n\t\tpublic useCapture:boolean = false,\r\n\t\tpublic priority:number = 0)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.useCapture = useCapture;\r\n\t\t_.priority = priority;\r\n\t\t// _.useWeakReference = useWeakReference;\r\n\t}\r\n\r\n\t// useWeakReference: boolean;\r\n\r\n\tdispose():void {\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\tget wasDisposed():boolean {\r\n\t\treturn this.listener==null;\r\n\t}\r\n\r\n\tmatches(type:string, listener:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t && _.listener==listener\r\n\t\t && _.useCapture==useCapture;\r\n\t}\r\n\r\n\tequals(other:EventDispatcherEntry):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==other.type\r\n\t\t && _.listener==other.listener\r\n\t\t && _.useCapture==other.useCapture\r\n\t\t && _.priority==other.priority\r\n\t\t\t// && this.useWeakReference == other.useWeakReference\r\n\t\t\t;\r\n\t}\r\n}\r\n\r\nclass EventDispatcher extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprivate _listeners:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tvar l:EventDispatcherEntry[] = this._listeners;\r\n\t\tif(!l)\r\n\t\t\tthis._listeners = l = [];\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\tl.push(new EventDispatcherEntry(type, listener, useCapture, priority));//, useWeakReference));\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:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener, useCapture))\r\n\t\t\tthis.addEventListener(type, listener, useCapture, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar l = this._listeners;\r\n\t\treturn l && l.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n type==value.type && (!listener || listener==value.listener && useCapture==value.useCapture)\r\n\t\t\t);\r\n\r\n\t}\r\n\r\n\tremoveEventListener(type:string, listener:EventListener, userCapture:boolean = false):void {\r\n\r\n\t\tvar l = this._listeners;\r\n\r\n\t\tif(l) {\r\n\t\t\tvar i = AU.findIndex(l, entry=> entry.matches(type, listener, userCapture));\r\n\t\t\tif(i!= -1) {\r\n\t\t\t\tvar e = l[i];\r\n\t\t\t\tl.splice(i, 1);\r\n\t\t\t\te.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:Event):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean {\r\n\r\n\t\tvar _ = this, l = _._listeners;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:Event;\r\n\r\n\t\tif(typeof e==\"string\") {\r\n\t\t\tevent = Object.create(Event);\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tevent.cancelable = !!params.cancelable;\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[] = [];//, propagate = true, prevent = false;\r\n\t\tl.forEach((e:EventDispatcherEntry):void => { if(e.type==type) entries.push(e); });\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort(function (a, b) { return b.priority - a.priority; });\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\t\tentry=> {\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.listener(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\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\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\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 = _._listeners;\r\n\t\t\tif(l) {\r\n\t\t\t\tthis._listeners = 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/EventDispatcher.js","System/Events/EventDispatcher.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","define","require","exports","shallowCopy_1","DisposableBase_1","AU","DISPOSING","DISPOSED","EventDispatcherEntry","_super","EventDispatcherEntry.constructor","EventDispatcherEntry.dispose","get","EventDispatcherEntry.wasDisposed","enumerable","configurable","EventDispatcherEntry.matches","EventDispatcherEntry.equals","defineProperty","value","EventDispatcher","EventDispatcher.constructor","EventDispatcher.addEventListener","EventDispatcher.registerEventListener","EventDispatcher.hasEventListener","EventDispatcher.removeEventListener","EventDispatcher.dispatchEvent","priority","a","EventDispatcher.DISPOSING","EventDispatcher.DISPOSED","EventDispatcher.isDisposing","EventDispatcher.dispose"],"mappings":"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","file":"System/Events/EventDispatcher.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\", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], function (require, exports, shallowCopy_1, DisposableBase_1, AU) {\n 'use strict';\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n _super.call(this);\n this.type = type;\n this.listener = listener;\n this.useCapture = useCapture;\n this.priority = priority;\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.useCapture = useCapture;\n _.priority = priority;\n }\n EventDispatcherEntry.prototype.dispose = function () {\n this.listener = null;\n };\n Object.defineProperty(EventDispatcherEntry.prototype, \"wasDisposed\", {\n get: function () {\n return this.listener == null;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherEntry.prototype.matches = function (type, listener, useCapture) {\n if (useCapture === void 0) { useCapture = false; }\n var _ = this;\n return _.type == type\n && _.listener == listener\n && _.useCapture == useCapture;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.type == other.type\n && _.listener == other.listener\n && _.useCapture == other.useCapture\n && _.priority == other.priority;\n };\n return EventDispatcherEntry;\n })(DisposableBase_1.default);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n var EventDispatcher = (function (_super) {\n __extends(EventDispatcher, _super);\n function EventDispatcher() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n var l = this._listeners;\n if (!l)\n this._listeners = l = [];\n l.push(new EventDispatcherEntry(type, listener, useCapture, priority));\n };\n EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener, useCapture))\n this.addEventListener(type, listener, useCapture, priority);\n };\n EventDispatcher.prototype.hasEventListener = function (type, listener, useCapture) {\n if (useCapture === void 0) { useCapture = false; }\n var l = this._listeners;\n return l && l.some(function (value) {\n return type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture);\n });\n };\n EventDispatcher.prototype.removeEventListener = function (type, listener, userCapture) {\n if (userCapture === void 0) { userCapture = false; }\n var l = this._listeners;\n if (l) {\n var i = AU.findIndex(l, function (entry) { return entry.matches(type, listener, userCapture); });\n if (i != -1) {\n var e = l[i];\n l.splice(i, 1);\n e.dispose();\n }\n }\n };\n EventDispatcher.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._listeners;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Object.create(Event);\n if (!params)\n params = {};\n event.cancelable = !!params.cancelable;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = [];\n l.forEach(function (e) { if (e.type == type)\n entries.push(e); });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.priority - a.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.default(event, newEvent);\n newEvent.target = _this;\n entry.listener(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcher, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcher, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcher.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcher.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 = _._listeners;\n if (l) {\n this._listeners = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcher;\n })(DisposableBase_1.default);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\nexport default\r\nclass EventDispatcherEntry extends DisposableBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:EventListener,\r\n\t\tpublic useCapture:boolean = false,\r\n\t\tpublic priority:number = 0)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.useCapture = useCapture;\r\n\t\t_.priority = priority;\r\n\t\t// _.useWeakReference = useWeakReference;\r\n\t}\r\n\r\n\t// useWeakReference: boolean;\r\n\r\n\tdispose():void {\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\tget wasDisposed():boolean {\r\n\t\treturn this.listener==null;\r\n\t}\r\n\r\n\tmatches(type:string, listener:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t && _.listener==listener\r\n\t\t && _.useCapture==useCapture;\r\n\t}\r\n\r\n\tequals(other:EventDispatcherEntry):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==other.type\r\n\t\t && _.listener==other.listener\r\n\t\t && _.useCapture==other.useCapture\r\n\t\t && _.priority==other.priority\r\n\t\t\t// && this.useWeakReference == other.useWeakReference\r\n\t\t\t;\r\n\t}\r\n}\r\n\r\nclass EventDispatcher extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprivate _listeners:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tvar l:EventDispatcherEntry[] = this._listeners;\r\n\t\tif(!l)\r\n\t\t\tthis._listeners = l = [];\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\tl.push(new EventDispatcherEntry(type, listener, useCapture, priority));//, useWeakReference));\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:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener, useCapture))\r\n\t\t\tthis.addEventListener(type, listener, useCapture, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar l = this._listeners;\r\n\t\treturn l && l.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n type==value.type && (!listener || listener==value.listener && useCapture==value.useCapture)\r\n\t\t\t);\r\n\r\n\t}\r\n\r\n\tremoveEventListener(type:string, listener:EventListener, userCapture:boolean = false):void {\r\n\r\n\t\tvar l = this._listeners;\r\n\r\n\t\tif(l) {\r\n\t\t\tvar i = AU.findIndex(l, entry=> entry.matches(type, listener, userCapture));\r\n\t\t\tif(i!= -1) {\r\n\t\t\t\tvar e = l[i];\r\n\t\t\t\tl.splice(i, 1);\r\n\t\t\t\te.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:Event):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean {\r\n\r\n\t\tvar _ = this, l = _._listeners;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:Event;\r\n\r\n\t\tif(typeof e==\"string\") {\r\n\t\t\tevent = Object.create(Event);\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tevent.cancelable = !!params.cancelable;\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[] = [];//, propagate = true, prevent = false;\r\n\t\tl.forEach((e:EventDispatcherEntry):void => { if(e.type==type) entries.push(e); });\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort(function (a, b) { return b.priority - a.priority; });\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\t\tentry=> {\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.listener(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\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\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\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 = _._listeners;\r\n\t\t\tif(l) {\r\n\t\t\t\tthis._listeners = 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/Exception.js b/dist/amd/System/Exception.js index 7e9bb927..c9fd8750 100644 --- a/dist/amd/System/Exception.js +++ b/dist/amd/System/Exception.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports"],function(e,t){var n="Exception",r=function(){function e(e,t,n){void 0===e&&(e=null),void 0===t&&(t=null),this.message=e;var r=this;r.name=r.getName(),r.data={},t&&(r.data.innerException=t),n&&n(r),Object.freeze(r)}return e.prototype.getName=function(){return n},e.prototype.toString=function(){var e=this,t=e.message;return t=t?": "+t:"","["+e.name+t+"]"},e.prototype.dispose=function(){var e=this.data;for(var t in e)e.hasOwnProperty(t)&&delete e[t]},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); +define(["require","exports"],function(e,t){"use strict";var n="Exception",r=function(){function e(e,t,n){void 0===e&&(e=null),void 0===t&&(t=null),this.message=e;var r=this;r.name=r.getName(),r.data={},t&&(r.data.innerException=t),n&&n(r),Object.freeze(r)}return e.prototype.getName=function(){return n},e.prototype.toString=function(){var e=this,t=e.message;return t=t?": "+t:"","["+e.name+t+"]"},e.prototype.dispose=function(){var e=this.data;for(var t in e)e.hasOwnProperty(t)&&delete e[t]},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}); //# sourceMappingURL=Exception.js.map diff --git a/dist/amd/System/Exception.js.map b/dist/amd/System/Exception.js.map index 0ceabd15..ade1fc42 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","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose","Object","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCKlD,GAAMC,GAAc,YAKpBC,EAAA,WAeCA,QAAAA,GACQA,EACPA,EACAA,GAFAC,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MADOA,KAAAA,QAAAA,CAIPA,IAAIA,GAAIA,IACRA,GAAEA,KAAOA,EAAEA,UACXA,EAAEA,QACCA,IACFA,EAAEA,KAAqBA,eAAIA,GAOzBA,GAAeA,EAAcA,GAChCA,OAAOA,OAAOA,GAoChBD,MA1BWA,GAAAA,UAAAA,QAAVA,WACEE,MAAOA,IAKTF,EAAAA,UAAAA,SAAAA,WAECG,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,OAGpBA,OAFAA,GAAIA,EAAKA,KAAOA,EAAKA,GAEdA,IAAMA,EAAEA,KAAOA,EAAIA,KAM3BH,EAAAA,UAAAA,QAAAA,WAECI,GAAIA,GAAOA,KAAKA,IAChBA,KAAIA,GAAIA,KAAKA,GAETA,EAAKA,eAAeA,UACfA,GAAKA,IAGhBJ,IApEAK,QAAAC,eAAAR,EAAA,cAAAS,OAAA,IDwBIT,EAAAA,WAAkBE","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n var NAME = 'Exception';\r\n var Exception = (function () {\r\n function Exception(message, innerException, beforeSealing) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n this.message = message;\r\n var _ = this;\r\n _.name = _.getName();\r\n _.data = {};\r\n if (innerException)\r\n _.data['innerException'] = innerException;\r\n if (beforeSealing)\r\n beforeSealing(_);\r\n Object.freeze(_);\r\n }\r\n Exception.prototype.getName = function () { return NAME; };\r\n Exception.prototype.toString = function () {\r\n var _ = this, m = _.message;\r\n m = m ? (': ' + m) : '';\r\n return '[' + _.name + m + ']';\r\n };\r\n Exception.prototype.dispose = function () {\r\n var data = this.data;\r\n for (var k in data) {\r\n if (data.hasOwnProperty(k))\r\n delete data[k];\r\n }\r\n };\r\n return Exception;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Exception;\r\n});\r\n//# sourceMappingURL=Exception.js.map","/*\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\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\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\t\tObject.freeze(_);\r\n\t}\r\n\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\tvar _ = this, m = _.message;\r\n\t\tm = m ? (': ' + m) : '';\r\n\r\n\t\treturn '[' + _.name + 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","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCKlD,YAMA,IAAMC,GAAc,YAKpBC,EAAA,WAeCA,QAAAA,GACQA,EACPA,EACAA,GAFAC,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MADOA,KAAAA,QAAAA,CAIPA,IAAIA,GAAIA,IACRA,GAAEA,KAAOA,EAAEA,UACXA,EAAEA,QACCA,IACFA,EAAEA,KAAqBA,eAAIA,GAOzBA,GAAeA,EAAcA,GAChCA,OAAOA,OAAOA,GAoChBD,MA1BWA,GAAAA,UAAAA,QAAVA,WACEE,MAAOA,IAKTF,EAAAA,UAAAA,SAAAA,WAECG,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,OAGpBA,OAFAA,GAAIA,EAAKA,KAAOA,EAAKA,GAEdA,IAAMA,EAAEA,KAAOA,EAAIA,KAM3BH,EAAAA,UAAAA,QAAAA,WAECI,GAAIA,GAAOA,KAAKA,IAChBA,KAAIA,GAAIA,KAAKA,GAETA,EAAKA,eAAeA,UACfA,GAAKA,IAGhBJ,IApEAK,QAAAC,eAAAR,EAAA,cAAAS,OAAA,IDiBIT,EAAAA,WAAkBE","file":"System/Exception.js","sourcesContent":["define([\"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 Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n var _ = this, m = _.message;\n m = m ? (': ' + m) : '';\n return '[' + _.name + 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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n\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\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\t\tObject.freeze(_);\r\n\t}\r\n\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\tvar _ = this, m = _.message;\r\n\t\tm = m ? (': ' + m) : '';\r\n\r\n\t\treturn '[' + _.name + 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 diff --git a/dist/amd/System/ExceptionType.js b/dist/amd/System/ExceptionType.js index 375682b0..f6700490 100644 --- a/dist/amd/System/ExceptionType.js +++ b/dist/amd/System/ExceptionType.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ define(["require","exports"],function(r,e){e.Error="Error",e.EvalError="EvalError",e.RangeError="RangeError",e.ReferenceError="ReferenceError",e.SyntaxError="SyntaxError",e.TypeError="TypeError",e.URIError="URIError"}); //# sourceMappingURL=ExceptionType.js.map diff --git a/dist/amd/System/ExceptionType.js.map b/dist/amd/System/ExceptionType.js.map index 59011a6b..e5240fef 100644 --- a/dist/amd/System/ExceptionType.js.map +++ b/dist/amd/System/ExceptionType.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/ExceptionType.js","System/ExceptionType.ts"],"names":["define","require","exports","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCalDA,EAAAC,MAAQ,QAMRD,EAAAE,UAAY,YAMZF,EAAAG,WAAa,aAObH,EAAAI,eAAiB,iBAMjBJ,EAAAK,YAAc,cAMdL,EAAAM,UAAY,YAMZN,EAAAO,SAAW","file":"System/ExceptionType.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n exports.Error = 'Error';\r\n exports.EvalError = 'EvalError';\r\n exports.RangeError = 'RangeError';\r\n exports.ReferenceError = 'ReferenceError';\r\n exports.SyntaxError = 'SyntaxError';\r\n exports.TypeError = 'TypeError';\r\n exports.URIError = 'URIError';\r\n});\r\n//# sourceMappingURL=ExceptionType.js.map","/*\r\n * @author 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 * Since the 'Error' type in JavaScript is simply {name:string, message:string},\r\n * Exception types provide a means for identifying and properly reusing 'name'.\r\n *\r\n * This is mostly for reference.\r\n */\r\n\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nError = 'Error';\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nEvalError = 'EvalError';\r\n\r\n/**\r\n * Out of range number value has occurred.\r\n */\r\nexport const\r\nRangeError = 'RangeError';\r\n\r\n\r\n/**\r\n * An illegal reference has occurred.\r\n */\r\nexport const\r\nReferenceError = 'ReferenceError';\r\n\r\n/**\r\n * A syntax error within code inside the eval() function has occurred. All other syntax errors are not caught by try/catch/finally, and will trigger the default browser error message associated with the error. To catch actual syntax errors, you may use the onerror event.\r\n */\r\nexport const\r\nSyntaxError = 'SyntaxError';\r\n\r\n/**\r\n * An error in the expected variable type has occurred.\r\n */\r\nexport const\r\nTypeError = 'TypeError';\r\n\r\n/**\r\n * An error when encoding or decoding the URI has occurred (ie: when calling encodeURI()).\r\n */\r\nexport const\r\nURIError = 'URIError';\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/ExceptionType.js","System/ExceptionType.ts"],"names":["define","require","exports","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCiBlDA,EAAAC,MAAQ,QAMRD,EAAAE,UAAY,YAMZF,EAAAG,WAAa,aAObH,EAAAI,eAAiB,iBAMjBJ,EAAAK,YAAc,cAMdL,EAAAM,UAAY,YAMZN,EAAAO,SAAW","file":"System/ExceptionType.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\n exports.Error = 'Error';\n exports.EvalError = 'EvalError';\n exports.RangeError = 'RangeError';\n exports.ReferenceError = 'ReferenceError';\n exports.SyntaxError = 'SyntaxError';\n exports.TypeError = 'TypeError';\n exports.URIError = 'URIError';\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 * Since the 'Error' type in JavaScript is simply {name:string, message:string},\r\n * Exception types provide a means for identifying and properly reusing 'name'.\r\n *\r\n * This is mostly for reference.\r\n */\r\n\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nError = 'Error';\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nEvalError = 'EvalError';\r\n\r\n/**\r\n * Out of range number value has occurred.\r\n */\r\nexport const\r\nRangeError = 'RangeError';\r\n\r\n\r\n/**\r\n * An illegal reference has occurred.\r\n */\r\nexport const\r\nReferenceError = 'ReferenceError';\r\n\r\n/**\r\n * A syntax error within code inside the eval() function has occurred. All other syntax errors are not caught by try/catch/finally, and will trigger the default browser error message associated with the error. To catch actual syntax errors, you may use the onerror event.\r\n */\r\nexport const\r\nSyntaxError = 'SyntaxError';\r\n\r\n/**\r\n * An error in the expected variable type has occurred.\r\n */\r\nexport const\r\nTypeError = 'TypeError';\r\n\r\n/**\r\n * An error when encoding or decoding the URI has occurred (ie: when calling encodeURI()).\r\n */\r\nexport const\r\nURIError = 'URIError';\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/ArgumentException.js b/dist/amd/System/Exceptions/ArgumentException.js index d5e9c97a..af566932 100644 --- a/dist/amd/System/Exceptions/ArgumentException.js +++ b/dist/amd/System/Exceptions/ArgumentException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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.prototype.toString=function(){var t=this;return"["+t.name+": "+t.message+"]"},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 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.prototype.toString=function(){var t=this;return"["+t.name+": "+t.message+"]"},e}(n["default"]);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 1231f0dd..a30a4ffa 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","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString","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,GCEtH,GAAMC,GAAc,oBAEpBC,EAAA,SAAAC,GAOCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GAFAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,KAGAA,IAAIA,GAAKA,EAAaA,IAAMA,EAAYA,KAAQA,EAEhDA,GAAAA,KAAAA,KAAMA,EAAAA,KAAKA,EAAKA,GAAUA,EAAgBA,SAACA,GAC1CA,EAAEA,UAAYA,EACXA,GAAeA,EAAcA,KAgBnCF,MAhCgCA,WAAAA,EAAAA,GAqBrBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,IACRA,OAAOA,IAAMA,EAAEA,KAAOA,KAAOA,EAAEA,QAAUA,KAG3CJ,GAhCgCH,EAAAA,WADhCL,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDoBIV,EAAAA,WAAkBI","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException', '../Text/Utility'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var Utility_1 = require('../Text/Utility');\r\n var NAME = 'ArgumentException';\r\n var ArgumentException = (function (_super) {\r\n __extends(ArgumentException, _super);\r\n function ArgumentException(paramName, message, innerException, beforeSealing) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n var pn = paramName ? ('{' + paramName + '} ') : '';\r\n _super.call(this, Utility_1.trim(pn + message), innerException, function (_) {\r\n _.paramName = paramName;\r\n if (beforeSealing)\r\n beforeSealing(_);\r\n });\r\n }\r\n ArgumentException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n ArgumentException.prototype.toString = function () {\r\n var _ = this;\r\n return '[' + _.name + ': ' + _.message + ']';\r\n };\r\n return ArgumentException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentException;\r\n});\r\n//# sourceMappingURL=ArgumentException.js.map","/*\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 Type from '../Types';\r\nimport Exception from '../Exception';\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\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\ttoString():string\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn '[' + _.name + ': ' + _.message + ']';\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","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString","defineProperty","value"],"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,oBAAqB,mBAAoB,SAAUC,EAASC,EAASC,EAAmBC,GCAtH,YAQA,IAAMC,GAAc,oBAEpBC,EAAA,SAAAC,GAOCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GAFAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,KAGAA,IAAIA,GAAKA,EAAaA,IAAMA,EAAYA,KAAQA,EAEhDA,GAAAA,KAAAA,KAAMA,EAAAA,KAAKA,EAAKA,GAAUA,EAAgBA,SAACA,GAC1CA,EAAEA,UAAYA,EACXA,GAAeA,EAAcA,KAgBnCF,MAhCgCA,WAAAA,EAAAA,GAqBrBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,IACRA,OAAOA,IAAMA,EAAEA,KAAOA,KAAOA,EAAEA,QAAUA,KAG3CJ,GAhCgCH,EAAAA,WADhCL,QAAAa,eAAAT,EAAA,cAAAU,OAAA,IDeIV,EAAAA,WAAkBI","file":"System/Exceptions/ArgumentException.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\", './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 ArgumentException.prototype.toString = function () {\n var _ = this;\n return '[' + _.name + ': ' + _.message + ']';\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport Exception from '../Exception';\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\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\ttoString():string\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn '[' + _.name + ': ' + _.message + ']';\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Exceptions/ArgumentNullException.js b/dist/amd/System/Exceptions/ArgumentNullException.js index 736a1e45..94f9ade8 100644 --- a/dist/amd/System/Exceptions/ArgumentNullException.js +++ b/dist/amd/System/Exceptions/ArgumentNullException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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["default"]);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 5dead11b..f3f5f960 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","ArgumentNullException.constructor","ArgumentNullException.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,GCDlF,GAAMC,GAAc,wBAEpBC,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,IACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,GAQ5BF,MAfoCA,WAAAA,EAAAA,GAUzBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAfoCF,EAAAA,WADpCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDcIR,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ArgumentException'], function (require, exports) {\r\n var ArgumentException_1 = require('./ArgumentException');\r\n var NAME = 'ArgumentNullException';\r\n var ArgumentNullException = (function (_super) {\r\n __extends(ArgumentNullException, _super);\r\n function ArgumentNullException(paramName, message, innerException) {\r\n if (message === void 0) { message = ''; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, paramName, message, innerException);\r\n }\r\n ArgumentNullException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return ArgumentNullException;\r\n })(ArgumentException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentNullException;\r\n});\r\n//# sourceMappingURL=ArgumentNullException.js.map","/*\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\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","ArgumentNullException.constructor","ArgumentNullException.getName","defineProperty","value"],"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,uBAAwB,SAAUC,EAASC,EAASC,GCAlF,YAKA,IAAMC,GAAc,wBAEpBC,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,IACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,GAQ5BF,MAfoCA,WAAAA,EAAAA,GAUzBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAfoCF,EAAAA,WADpCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDSIR,EAAAA,WAAkBG","file":"System/Exceptions/ArgumentNullException.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\", './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'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 diff --git a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js index 0570cdcc..55614bf8 100644 --- a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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,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,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}); //# sourceMappingURL=ArgumentOutOfRangeException.js.map diff --git a/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/amd/System/Exceptions/ArgumentOutOfRangeException.js.map index 6d1b698f..fd3b07c9 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","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.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,GCClF,GAAMC,GAAc,8BAEpBC,EAAA,SAAAC,GAKCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,KACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,EAAgBA,SAACA,GAC1CA,EAAEA,YAAcA,IAUnBF,MArB0CA,WAAAA,EAAAA,GAgB/BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GArB0CF,EAAAA,WAD1CL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDcIR,EAAAA,WAAkBG","file":"System/Exceptions/ArgumentOutOfRangeException.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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ArgumentException'], function (require, exports) {\r\n var ArgumentException_1 = require('./ArgumentException');\r\n var NAME = 'ArgumentOutOfRangeException';\r\n var ArgumentOutOfRangeException = (function (_super) {\r\n __extends(ArgumentOutOfRangeException, _super);\r\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\r\n if (message === void 0) { message = ' '; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, paramName, message, innerException, function (_) {\r\n _.actualValue = actualValue;\r\n });\r\n }\r\n ArgumentOutOfRangeException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return ArgumentOutOfRangeException;\r\n })(ArgumentException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentOutOfRangeException;\r\n});\r\n//# sourceMappingURL=ArgumentOutOfRangeException.js.map","/*\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 Type from '../Types';\r\nimport Exception from '../Exception';\r\nimport ArgumentException from './ArgumentException';\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, 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","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.getName","defineProperty","value"],"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,uBAAwB,SAAUC,EAASC,EAASC,GCIlF,YAGA,IAAMC,GAAc,8BAEpBC,EAAA,SAAAC,GAKCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,KACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,EAAgBA,SAACA,GAC1CA,EAAEA,YAAcA,IAUnBF,MArB0CA,WAAAA,EAAAA,GAgB/BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GArB0CF,EAAAA,WAD1CL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDSIR,EAAAA,WAAkBG","file":"System/Exceptions/ArgumentOutOfRangeException.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\", './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, 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 Type from '../Types';\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, 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 diff --git a/dist/amd/System/Exceptions/InvalidOperationException.js b/dist/amd/System/Exceptions/InvalidOperationException.js index 0924392b..0a98567d 100644 --- a/dist/amd/System/Exceptions/InvalidOperationException.js +++ b/dist/amd/System/Exceptions/InvalidOperationException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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 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"],function(t,e,n){"use strict";var r="InvalidOperationException",o=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return r},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=InvalidOperationException.js.map diff --git a/dist/amd/System/Exceptions/InvalidOperationException.js.map b/dist/amd/System/Exceptions/InvalidOperationException.js.map index fb6e6e79..a3155a32 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","InvalidOperationException.constructor","InvalidOperationException.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,GCDhF,GAAMC,GAAc,4BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACwCE,EAAAA,MAAAA,KAAAA,WAOxCF,MAPwCA,WAAAA,EAAAA,GAE7BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPwCF,EAAAA,WADxCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDYIR,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'InvalidOperationException';\r\n var InvalidOperationException = (function (_super) {\r\n __extends(InvalidOperationException, _super);\r\n function InvalidOperationException() {\r\n _super.apply(this, arguments);\r\n }\r\n InvalidOperationException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return InvalidOperationException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = InvalidOperationException;\r\n});\r\n//# sourceMappingURL=InvalidOperationException.js.map","/*\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\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","InvalidOperationException.constructor","InvalidOperationException.getName","defineProperty","value"],"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,qBAAsB,SAAUC,EAASC,EAASC,GCAhF,YAKA,IAAMC,GAAc,4BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACwCE,EAAAA,MAAAA,KAAAA,WAOxCF,MAPwCA,WAAAA,EAAAA,GAE7BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPwCF,EAAAA,WADxCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDOIR,EAAAA,WAAkBG","file":"System/Exceptions/InvalidOperationException.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\", './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'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 diff --git a/dist/amd/System/Exceptions/NotImplementedException.js b/dist/amd/System/Exceptions/NotImplementedException.js index 20315c91..3c0b078c 100644 --- a/dist/amd/System/Exceptions/NotImplementedException.js +++ b/dist/amd/System/Exceptions/NotImplementedException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){var o="NotImplementedException",r=function(e){function t(){e.apply(this,arguments)}return __extends(t,e),t.prototype.getName=function(){return o},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["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="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}); //# sourceMappingURL=NotImplementedException.js.map diff --git a/dist/amd/System/Exceptions/NotImplementedException.js.map b/dist/amd/System/Exceptions/NotImplementedException.js.map index 25466ae2..f251a4ed 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","NotImplementedException.constructor","NotImplementedException.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,GCDhF,GAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACsCE,EAAAA,MAAAA,KAAAA,WAOtCF,MAPsCA,WAAAA,EAAAA,GAE3BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPsCF,EAAAA,WADtCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDYIR,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'NotImplementedException';\r\n var NotImplementedException = (function (_super) {\r\n __extends(NotImplementedException, _super);\r\n function NotImplementedException() {\r\n _super.apply(this, arguments);\r\n }\r\n NotImplementedException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return NotImplementedException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = NotImplementedException;\r\n});\r\n//# sourceMappingURL=NotImplementedException.js.map","/*\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\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","NotImplementedException.constructor","NotImplementedException.getName","defineProperty","value"],"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,qBAAsB,SAAUC,EAASC,EAASC,GCAhF,YAKA,IAAMC,GAAc,0BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACsCE,EAAAA,MAAAA,KAAAA,WAOtCF,MAPsCA,WAAAA,EAAAA,GAE3BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPsCF,EAAAA,WADtCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDOIR,EAAAA,WAAkBG","file":"System/Exceptions/NotImplementedException.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\", './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'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 diff --git a/dist/amd/System/Exceptions/NullReferenceException.js b/dist/amd/System/Exceptions/NullReferenceException.js index 2f816404..22cb90be 100644 --- a/dist/amd/System/Exceptions/NullReferenceException.js +++ b/dist/amd/System/Exceptions/NullReferenceException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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){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 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}); //# sourceMappingURL=NullReferenceException.js.map diff --git a/dist/amd/System/Exceptions/NullReferenceException.js.map b/dist/amd/System/Exceptions/NullReferenceException.js.map index 2be69ef2..b2873c19 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","NullReferenceException.constructor","NullReferenceException.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,GCDhF,GAAMC,GAAc,yBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACqCE,EAAAA,MAAAA,KAAAA,WAOrCF,MAPqCA,WAAAA,EAAAA,GAE1BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPqCF,EAAAA,WADrCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDYIR,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'NullReferenceException';\r\n var NullReferenceException = (function (_super) {\r\n __extends(NullReferenceException, _super);\r\n function NullReferenceException() {\r\n _super.apply(this, arguments);\r\n }\r\n NullReferenceException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return NullReferenceException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = NullReferenceException;\r\n});\r\n//# sourceMappingURL=NullReferenceException.js.map","/*\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\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","NullReferenceException.constructor","NullReferenceException.getName","defineProperty","value"],"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,qBAAsB,SAAUC,EAASC,EAASC,GCAhF,YAKA,IAAMC,GAAc,yBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACqCE,EAAAA,MAAAA,KAAAA,WAOrCF,MAPqCA,WAAAA,EAAAA,GAE1BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPqCF,EAAAA,WADrCL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDOIR,EAAAA,WAAkBG","file":"System/Exceptions/NullReferenceException.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\", './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'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 diff --git a/dist/amd/System/Exceptions/SystemException.js b/dist/amd/System/Exceptions/SystemException.js index e40ab3dc..18d4ca0f 100644 --- a/dist/amd/System/Exceptions/SystemException.js +++ b/dist/amd/System/Exceptions/SystemException.js @@ -1,7 +1,2 @@ -/* - * @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.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){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 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","../Exception"],function(t,e,n){"use strict";var r="SystemException",o=function(t){function e(){t.apply(this,arguments)}return __extends(e,t),e.prototype.getName=function(){return r},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o}); //# sourceMappingURL=SystemException.js.map diff --git a/dist/amd/System/Exceptions/SystemException.js.map b/dist/amd/System/Exceptions/SystemException.js.map index 6ac2bb69..e453d42a 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","SystemException.constructor","SystemException.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,GCD3E,GAAMC,GAAc,kBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KAC8BE,EAAAA,MAAAA,KAAAA,WAM9BF,MAN8BA,WAAAA,EAAAA,GAEnBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAETH,GAN8BF,EAAAA,WAD9BL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDYIR,EAAAA,WAAkBG","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Exception'], function (require, exports) {\r\n var Exception_1 = require('../Exception');\r\n var NAME = 'SystemException';\r\n var SystemException = (function (_super) {\r\n __extends(SystemException, _super);\r\n function SystemException() {\r\n _super.apply(this, arguments);\r\n }\r\n SystemException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return SystemException;\r\n })(Exception_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SystemException;\r\n});\r\n//# sourceMappingURL=SystemException.js.map","/*\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\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport default\r\nclass SystemException extends Exception {\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","SystemException.constructor","SystemException.getName","defineProperty","value"],"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,gBAAiB,SAAUC,EAASC,EAASC,GCA3E,YAKA,IAAMC,GAAc,kBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KAC8BE,EAAAA,MAAAA,KAAAA,WAgB9BF,MAhB8BA,WAAAA,EAAAA,GAYnBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAETH,GAhB8BF,EAAAA,WAD9BL,QAAAW,eAAAP,EAAA,cAAAQ,OAAA,IDOIR,EAAAA,WAAkBG","file":"System/Exceptions/SystemException.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\", '../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'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 diff --git a/dist/amd/System/Functions.js b/dist/amd/System/Functions.js index f029948c..847a4fcb 100644 --- a/dist/amd/System/Functions.js +++ b/dist/amd/System/Functions.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports"],function(e,t){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,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}); //# sourceMappingURL=Functions.js.map diff --git a/dist/amd/System/Functions.js.map b/dist/amd/System/Functions.js.map index 21d2bdd2..1d72f796 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","Functions.Identity","Functions.True","Functions.False","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCKlD,GAmCOC,GAnCPA,EAAA,WAAAA,QAAAA,MA6BAA,MAtBCA,GAAAA,UAAAA,SAAAA,SAAYA,GACVC,MAAOA,IAMTD,EAAAA,UAAAA,KAAAA,WACEE,OAAOA,GAMTF,EAAAA,UAAAA,MAAAA,WACEG,OAAOA,GAKTH,EAAAA,UAAAA,MAAAA,aAEDA,KAEMI,EAA0B,GAAIJ,IAIpC,SAAOA,GAMKA,EAAAA,SACRA,EAAcA,SAMNA,EAAAA,KACRA,EAAcA,KAMNA,EAAAA,MACRA,EAAcA,MAKNA,EAAAA,MACRA,EAAcA,OA3BXA,IAAAA,OA+BPK,OAAOC,OAAON,GAEdK,OAAAE,eAAAR,EAAA,cAAAS,OAAA,IDrDIT,EAAAA,WCqDWC","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var Functions = (function () {\r\n function Functions() {\r\n }\r\n Functions.prototype.Identity = function (x) { return x; };\r\n Functions.prototype.True = function () { return true; };\r\n Functions.prototype.False = function () { return false; };\r\n Functions.prototype.Blank = function () { };\r\n return Functions;\r\n })();\r\n var rootFunctions = new Functions();\r\n var Functions;\r\n (function (Functions) {\r\n Functions.Identity = rootFunctions.Identity;\r\n Functions.True = rootFunctions.True;\r\n Functions.False = rootFunctions.False;\r\n Functions.Blank = rootFunctions.Blank;\r\n })(Functions || (Functions = {}));\r\n Object.freeze(Functions);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Functions;\r\n});\r\n//# sourceMappingURL=Functions.js.map","/*\r\n * @author 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 * 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","Functions.Identity","Functions.True","Functions.False","rootFunctions","Object","freeze","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCIlD,YAKA,IAmCOC,GAnCPA,EAAA,WAAAA,QAAAA,MA6BAA,MAtBCA,GAAAA,UAAAA,SAAAA,SAAYA,GACVC,MAAOA,IAMTD,EAAAA,UAAAA,KAAAA,WACEE,OAAOA,GAMTF,EAAAA,UAAAA,MAAAA,WACEG,OAAOA,GAKTH,EAAAA,UAAAA,MAAAA,aAEDA,KAEMI,EAA0B,GAAIJ,IAIpC,SAAOA,GAMKA,EAAAA,SACRA,EAAcA,SAMNA,EAAAA,KACRA,EAAcA,KAMNA,EAAAA,MACRA,EAAcA,MAKNA,EAAAA,MACRA,EAAcA,OA3BXA,IAAAA,OA+BPK,OAAOC,OAAON,GAEdK,OAAAE,eAAAR,EAAA,cAAAS,OAAA,IDxDIT,EAAAA,WCwDWC","file":"System/Functions.js","sourcesContent":["define([\"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'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 diff --git a/dist/amd/System/Integer.js b/dist/amd/System/Integer.js index e37cf461..fad476ff 100644 --- a/dist/amd/System/Integer.js +++ b/dist/amd/System/Integer.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ define(["require","exports","./Types","./Exceptions/ArgumentException"],function(n,e,r,t){function u(n){return 0|n}var u;!function(n){function e(n){return Math.random()*n|0}function u(n){return i(n,"max"),0==n?0:(n+=n>0?1:-1,e(n))}function o(n){return r["default"].isNumber(n,!1)&&n==(0|n)}function i(n,e){var r=o(n);if(!r)throw new t["default"](e||"n","Must be an integer.");return r}n.random=u;var u;!function(n){function r(n){return e(n)}n.under=r}(u=n.random||(n.random={})),n.is=o,n.assert=i}(u||(u={})),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 74fa7ab1..0a1aaaee 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","Types_1","ArgumentException_1","Integer","n","Integer.r","Integer.random","Integer.is","Integer.assert","Integer.random.under","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,UAAW,kCAAmC,SAAUC,EAASC,EAASC,EAASC,GCIjH,QAAAC,GAAiBC,GAEhBD,MAAWA,GAAJA,EAGR,GAAOA,IAAP,SAAOA,GAGNA,QAAAA,GAAWA,GACVE,MAAQA,MAAKA,SAASA,EAAOA,EAc9BF,QAAAA,GAAuBA,GAGtBG,MADAA,GAAOA,EAAIA,OACHA,GAALA,EAAeA,GAClBA,GAAOA,EAAMA,EAAIA,EAAIA,GACdA,EAAEA,IAwBVH,QAAAA,GAAmBA,GAElBI,MAAOA,GAAAA,WAAKA,SAASA,GAAGA,IAAUA,IAAQA,EAAJA,GAGvCJ,QAAAA,GAAuBA,EAAUA,GAEhCK,GAAIA,GAAIA,EAAGA,EACXA,KAAIA,EAEHA,KAAMA,IAAIA,GAAAA,WAAkBA,GAAgBA,IAAKA,sBAElDA,OAAOA,GAzCQL,EAAAA,OAAMA,CAQtBA,IAAcA,IAAdA,SAAcA,GAabG,QAAAA,GAAsBA,GAErBG,MAAOA,GAAEA,GAFMH,EAAAA,MAAKA,GAbRH,EAAAA,EAAAA,SAAAA,EAAAA,YAqBEA,EAAAA,GAAEA,EAKFA,EAAAA,OAAMA,GApDhBA,IAAAA,OAgEPO,OAAAC,eAAAX,EAAA,cAAAY,OAAA,IDnCIZ,EAAAA,WCmCWG","file":"System/Integer.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Types', './Exceptions/ArgumentException'], function (require, exports) {\r\n var Types_1 = require('./Types');\r\n var ArgumentException_1 = require('./Exceptions/ArgumentException');\r\n function Integer(n) {\r\n return n | 0;\r\n }\r\n var Integer;\r\n (function (Integer) {\r\n function r(max) {\r\n return (Math.random() * max) | 0;\r\n }\r\n function random(max) {\r\n assert(max, 'max');\r\n if (max == 0)\r\n return 0;\r\n max += max > 0 ? 1 : -1;\r\n return r(max);\r\n }\r\n Integer.random = random;\r\n var random;\r\n (function (random) {\r\n function under(boundary) {\r\n return r(boundary);\r\n }\r\n random.under = under;\r\n })(random = Integer.random || (Integer.random = {}));\r\n function is(n) {\r\n return Types_1.default.isNumber(n, false) && n == (n | 0);\r\n }\r\n Integer.is = is;\r\n function assert(n, argumentName) {\r\n var i = is(n);\r\n if (!i) {\r\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be an integer.\");\r\n }\r\n return i;\r\n }\r\n Integer.assert = assert;\r\n })(Integer || (Integer = {}));\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Integer;\r\n});\r\n//# sourceMappingURL=Integer.js.map","/*\r\n * @author 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 ArgumentException from './Exceptions/ArgumentException';\r\n\r\nfunction Integer(n:number):number\r\n{\r\n\treturn n | 0;\r\n}\r\n\r\nmodule Integer\r\n{\r\n\r\n\tfunction r(max:number):number {\r\n\t\treturn (Math.random()*max) | 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a random integer from zero to the max.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * Examples:
\r\n\t * ```Integer.random(1)``` will return 0 or 1.
\r\n\t * ```Integer.random(-2)``` will return 0, -1, or -2.
\r\n\t *\r\n\t * @param max\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(max:number):number\r\n\t{\r\n\t\tassert(max,'max');\r\n\t\tif(max==0) return 0;\r\n\t\tmax += max > 0 ? 1 : -1;\r\n\t\treturn r(max);\r\n\t}\r\n\r\n\texport module random {\r\n\r\n\t\t/**\r\n\t\t * Returns a random integer from zero up to the boundary value.\r\n\t\t * Negative and fractional numbers are allowed.\r\n\t\t *\r\n\t\t * Example:
\r\n\t\t * ```Integer.random(-2)``` will return 0, or -1.
\r\n\t\t * ```Integer.random(5)``` will return 0, 1, 2, 3 or 4.
\r\n\t\t *\r\n\t\t * @param boundary\r\n\t\t * @returns {number}\r\n\t\t */\r\n\t\texport function under(boundary:number):number\r\n\t\t{\r\n\t\t\treturn r(boundary)\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn Type.isNumber(n, false) && n==(n | 0);\r\n\t}\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{\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be an integer.\");\r\n\t\t}\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","Types_1","ArgumentException_1","Integer","n","Integer.r","Integer.random","Integer.is","Integer.assert","Integer.random.under","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,UAAW,kCAAmC,SAAUC,EAASC,EAASC,EAASC,GCQjH,QAAAC,GAAiBC,GAEhBD,MAAWA,GAAJA,EAGR,GAAOA,IAAP,SAAOA,GAGNA,QAAAA,GAAWA,GACVE,MAAQA,MAAKA,SAASA,EAAOA,EAc9BF,QAAAA,GAAuBA,GAGtBG,MADAA,GAAOA,EAAIA,OACHA,GAALA,EAAeA,GAClBA,GAAOA,EAAMA,EAAIA,EAAIA,GACdA,EAAEA,IAwBVH,QAAAA,GAAmBA,GAElBI,MAAOA,GAAAA,WAAKA,SAASA,GAAGA,IAAUA,IAAQA,EAAJA,GAGvCJ,QAAAA,GAAuBA,EAAUA,GAEhCK,GAAIA,GAAIA,EAAGA,EACXA,KAAIA,EAEHA,KAAMA,IAAIA,GAAAA,WAAkBA,GAAgBA,IAAKA,sBAElDA,OAAOA,GAzCQL,EAAAA,OAAMA,CAQtBA,IAAcA,IAAdA,SAAcA,GAabG,QAAAA,GAAsBA,GAErBG,MAAOA,GAAEA,GAFMH,EAAAA,MAAKA,GAbRH,EAAAA,EAAAA,SAAAA,EAAAA,YAqBEA,EAAAA,GAAEA,EAKFA,EAAAA,OAAMA,GApDhBA,IAAAA,OAgEPO,OAAAC,eAAAX,EAAA,cAAAY,OAAA,IDvCIZ,EAAAA,WCuCWG","file":"System/Integer.js","sourcesContent":["define([\"require\", \"exports\", './Types', './Exceptions/ArgumentException'], function (require, exports, Types_1, ArgumentException_1) {\n function Integer(n) {\n return n | 0;\n }\n var Integer;\n (function (Integer) {\n function r(max) {\n return (Math.random() * max) | 0;\n }\n function random(max) {\n assert(max, 'max');\n if (max == 0)\n return 0;\n max += max > 0 ? 1 : -1;\n return r(max);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function under(boundary) {\n return r(boundary);\n }\n random.under = under;\n })(random = Integer.random || (Integer.random = {}));\n function is(n) {\n return Types_1.default.isNumber(n, false) && n == (n | 0);\n }\n Integer.is = is;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i) {\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be an integer.\");\n }\n return i;\n }\n Integer.assert = assert;\n })(Integer || (Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\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 ArgumentException from './Exceptions/ArgumentException';\r\n\r\nfunction Integer(n:number):number\r\n{\r\n\treturn n | 0;\r\n}\r\n\r\nmodule Integer\r\n{\r\n\r\n\tfunction r(max:number):number {\r\n\t\treturn (Math.random()*max) | 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a random integer from zero to the max.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * Examples:
\r\n\t * ```Integer.random(1)``` will return 0 or 1.
\r\n\t * ```Integer.random(-2)``` will return 0, -1, or -2.
\r\n\t *\r\n\t * @param max\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(max:number):number\r\n\t{\r\n\t\tassert(max,'max');\r\n\t\tif(max==0) return 0;\r\n\t\tmax += max > 0 ? 1 : -1;\r\n\t\treturn r(max);\r\n\t}\r\n\r\n\texport module random {\r\n\r\n\t\t/**\r\n\t\t * Returns a random integer from zero up to the boundary value.\r\n\t\t * Negative and fractional numbers are allowed.\r\n\t\t *\r\n\t\t * Example:
\r\n\t\t * ```Integer.random(-2)``` will return 0, or -1.
\r\n\t\t * ```Integer.random(5)``` will return 0, 1, 2, 3 or 4.
\r\n\t\t *\r\n\t\t * @param boundary\r\n\t\t * @returns {number}\r\n\t\t */\r\n\t\texport function under(boundary:number):number\r\n\t\t{\r\n\t\t\treturn r(boundary)\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn Type.isNumber(n, false) && n==(n | 0);\r\n\t}\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{\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be an integer.\");\r\n\t\t}\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/Lazy.js b/dist/amd/System/Lazy.js index 0b7d36ba..49df2012 100644 --- a/dist/amd/System/Lazy.js +++ b/dist/amd/System/Lazy.js @@ -1,6 +1,2 @@ -/* - * @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){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["default"]);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 a4f12c7c..3d6102dd 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","Lazy.constructor","get","Lazy.isValueCreated","enumerable","configurable","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals","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,+BAAgC,SAAUC,EAASC,EAASC,GCA1F,GAAAC,GAAA,SAAAC,GAOCD,QAAAA,GAAoBA,GAEnBE,EAAAA,KAAAA,MAFmBA,KAAAA,SAAAA,EAGnBA,KAAKA,sBAAwBA,OA4E/BF,MArFsBA,WAAAA,EAAAA,GAYrBA,OAAAA,eAAIA,EAAAA,UAAAA,kBDJOG,ICIXH,WAECI,MAAOA,MAAKA,iBDHFC,YAAY,EACZC,cAAc,ICMzBN,OAAAA,eAAIA,EAAAA,UAAAA,YDHOG,ICGXH,WAECO,OAAQA,KAAKA,eAAkBA,KAAaA,UDFlCF,YAAY,EACZC,cAAc,ICKzBN,EAAAA,UAAAA,MAAAA,SAAMA,GACLQ,GAAIA,GAAIA,IAKRA,IAHGA,GACFA,EAAEA,kBAECA,EAAEA,SAQLA,MAFAA,GAAEA,iBAAkBA,EACpBA,EAAEA,OAASA,MACJA,CAPPA,IAAGA,EACFA,KAAMA,IAAIA,OAAMA,kEACjBA,QAAOA,GASTR,OAAAA,eAAIA,EAAAA,UAAAA,SDLOG,ICKXH,WAECS,MAAOA,MAAKA,YDJFJ,YAAY,EACZC,cAAc,ICMzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,GAAIA,GAAIA,IAERA,GAAEA,iBAEFA,KACCA,IAAIA,EAAEA,iBAAmBA,EAAEA,SAAUA,CACpCA,GAAIA,GAAIA,EAAEA,UAGVA,OAFAA,GAAEA,OAASA,EACXA,EAAEA,iBAAkBA,EACbA,GDJC,QCQNA,IACFA,EAAEA,SAAWA,MAGfA,MAAOA,GAAEA,QAKAV,EAAAA,UAAAA,WAAVA,WACCW,KAAKA,SAAWA,KAChBA,KAAKA,OAASA,MAGfX,EAAAA,UAAAA,OAAAA,SAAOA,GAENY,MAAOA,OAAMA,GAGdZ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXa,MAAOA,MAAKA,OAAOA,IAAUA,KAAKA,QAAQA,EAAMA,OAElDb,GArFsBD,EAAAA,WADtBL,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,ID0EIjB,EAAAA,WAAkBE","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Disposable/DisposableBase'], function (require, exports) {\r\n ///\r\n ///\r\n var DisposableBase_1 = require('./Disposable/DisposableBase');\r\n var Lazy = (function (_super) {\r\n __extends(Lazy, _super);\r\n function Lazy(_closure) {\r\n _super.call(this);\r\n this._closure = _closure;\r\n this._disposableObjectName = 'Lazy';\r\n }\r\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\r\n get: function () {\r\n return this._isValueCreated;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Lazy.prototype, \"canReset\", {\r\n get: function () {\r\n return !this.wasDisposed && !!(this._closure);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lazy.prototype.reset = function (throwIfCannotReset) {\r\n var _ = this;\r\n if (throwIfCannotReset)\r\n _.throwIfDisposed();\r\n if (!_._closure) {\r\n if (throwIfCannotReset)\r\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n return false;\r\n }\r\n else {\r\n _._isValueCreated = false;\r\n _._value = null;\r\n return true;\r\n }\r\n };\r\n Object.defineProperty(Lazy.prototype, \"value\", {\r\n get: function () {\r\n return this.getValue();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lazy.prototype.getValue = function (clearClosureReference) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n try {\r\n if (!_._isValueCreated && _._closure) {\r\n var v = _._closure();\r\n _._value = v;\r\n _._isValueCreated = true;\r\n return v;\r\n }\r\n }\r\n finally {\r\n if (clearClosureReference)\r\n _._closure = null;\r\n }\r\n return _._value;\r\n };\r\n Lazy.prototype._onDispose = function () {\r\n this._closure = null;\r\n this._value = null;\r\n };\r\n Lazy.prototype.equals = function (other) {\r\n return this == other;\r\n };\r\n Lazy.prototype.valueEquals = function (other) {\r\n return this.equals(other) || this.value === other.value;\r\n };\r\n return Lazy;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Lazy;\r\n});\r\n//# sourceMappingURL=Lazy.js.map","/*\r\n * @author 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 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","Lazy.constructor","get","Lazy.isValueCreated","enumerable","configurable","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals","defineProperty","value"],"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,+BAAgC,SAAUC,EAASC,EAASC,GCD1F,YAMA,IAAAC,GAAA,SAAAC,GAOCD,QAAAA,GAAoBA,GAEnBE,EAAAA,KAAAA,MAFmBA,KAAAA,SAAAA,EAGnBA,KAAKA,sBAAwBA,OA4E/BF,MArFsBA,WAAAA,EAAAA,GAYrBA,OAAAA,eAAIA,EAAAA,UAAAA,kBDROG,ICQXH,WAECI,MAAOA,MAAKA,iBDPFC,YAAY,EACZC,cAAc,ICUzBN,OAAAA,eAAIA,EAAAA,UAAAA,YDPOG,ICOXH,WAECO,OAAQA,KAAKA,eAAkBA,KAAaA,UDNlCF,YAAY,EACZC,cAAc,ICSzBN,EAAAA,UAAAA,MAAAA,SAAMA,GACLQ,GAAIA,GAAIA,IAKRA,IAHGA,GACFA,EAAEA,kBAECA,EAAEA,SAQLA,MAFAA,GAAEA,iBAAkBA,EACpBA,EAAEA,OAASA,MACJA,CAPPA,IAAGA,EACFA,KAAMA,IAAIA,OAAMA,kEACjBA,QAAOA,GASTR,OAAAA,eAAIA,EAAAA,UAAAA,SDTOG,ICSXH,WAECS,MAAOA,MAAKA,YDRFJ,YAAY,EACZC,cAAc,ICUzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,GAAIA,GAAIA,IAERA,GAAEA,iBAEFA,KACCA,IAAIA,EAAEA,iBAAmBA,EAAEA,SAAUA,CACpCA,GAAIA,GAAIA,EAAEA,UAGVA,OAFAA,GAAEA,OAASA,EACXA,EAAEA,iBAAkBA,EACbA,GDRC,QCYNA,IACFA,EAAEA,SAAWA,MAGfA,MAAOA,GAAEA,QAKAV,EAAAA,UAAAA,WAAVA,WACCW,KAAKA,SAAWA,KAChBA,KAAKA,OAASA,MAGfX,EAAAA,UAAAA,OAAAA,SAAOA,GAENY,MAAOA,OAAMA,GAGdZ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXa,MAAOA,MAAKA,OAAOA,IAAUA,KAAKA,QAAQA,EAAMA,OAElDb,GArFsBD,EAAAA,WADtBL,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDsEIjB,EAAAA,WAAkBE","file":"System/Lazy.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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 diff --git a/dist/amd/System/Observable/ObservableNodeBase.js b/dist/amd/System/Observable/ObservableNodeBase.js index 91502cbd..b26e8040 100644 --- a/dist/amd/System/Observable/ObservableNodeBase.js +++ b/dist/amd/System/Observable/ObservableNodeBase.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -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)};define(["require","exports","./SubscribableBase"],function(e,o,t){function r(e,o,t){void 0===t&&(t=!0);for(var r=null,n=0;n\r\n ///\r\n var SubscribableBase_1 = require('./SubscribableBase');\r\n var ObservableNodeBase = (function (_super) {\r\n __extends(ObservableNodeBase, _super);\r\n function ObservableNodeBase() {\r\n _super.apply(this, arguments);\r\n }\r\n ObservableNodeBase.prototype.onNext = function (value) {\r\n processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\r\n };\r\n ObservableNodeBase.prototype.onError = function (error) {\r\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\r\n };\r\n ObservableNodeBase.prototype.onCompleted = function () {\r\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\r\n };\r\n return ObservableNodeBase;\r\n })(SubscribableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ObservableNodeBase;\r\n var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\r\n function processAction(observers, handler, dispose) {\r\n if (dispose === void 0) { dispose = true; }\r\n var observersErrors = null;\r\n for (var _i = 0; _i < observers.length; _i++) {\r\n var s = observers[_i];\r\n try {\r\n handler(s);\r\n }\r\n catch (ex) {\r\n observersErrors = observersErrors || [];\r\n observersErrors.push({ observer: s, ex: ex });\r\n }\r\n }\r\n if (dispose)\r\n observers.length = 0;\r\n if (observersErrors && observersErrors.length) {\r\n if (console && console.error)\r\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n else\r\n throw {\r\n message: OBSERVER_ERROR_MESSAGE,\r\n errors: observersErrors\r\n };\r\n }\r\n }\r\n});\r\n//# sourceMappingURL=ObservableNodeBase.js.map","/*\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\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\nexport default\r\nclass ObservableNodeBase\r\nextends SubscribableBase> implements IObservable, IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\t(s) => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\t(s) => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\t(s) => { 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\tdispose:boolean = true)\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\tif(dispose)\r\n\t\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"]} \ 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","SubscribableBase_1","processAction","observers","handler","ObservableNodeBase","_super","ObservableNodeBase.constructor","ObservableNodeBase.onNext","ObservableNodeBase.onError","ObservableNodeBase.onCompleted","defineProperty","value","OBSERVER_ERROR_MESSAGE"],"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,sBAAuB,SAAUC,EAASC,EAASC,GCCjF,YAuCA,SAAAC,GACCC,EACAC,GAIAF,IAAaA,GAFTA,GAAmDA,KAE1CA,EAAAA,EAATA,EAAAA,EAAAA,OAAAA,IAAmBA,CAAnBA,GAAIA,GAAKA,EAASA,EAErBA,KAECA,EAAQA,GAETA,MAAMA,GAELA,EAAkBA,MAElBA,EAAgBA,MAAMA,SAAUA,EAAGA,GAAIA,KAMzCA,GAFAA,EAAUA,OAASA,EAEhBA,GAAmBA,EAAgBA,OACtCA,CACCA,IAAGA,UAAWA,QAAQA,MAEjBA,MACJA,QAASA,EACTA,OAAQA,EAHRA,SAAQA,MAAMA,EAAwBA,IAzDzC,GAAAG,GAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WA0BRF,MA1BQA,WAAAA,EAAAA,GAGPA,EAAAA,UAAAA,OAAAA,SAAOA,GAENG,EACCA,KAAKA,kBACLA,SAAAA,GAAOA,EAAEA,QAAUA,EAAEA,OAAOA,MAI9BH,EAAAA,UAAAA,QAAAA,SAAQA,GAEPI,EACCA,KAAKA,kBACLA,SAAAA,GAAOA,EAAEA,SAAWA,EAAEA,QAAQA,MAIhCJ,EAAAA,UAAAA,YAAAA,WAECK,EACCA,KAAKA,iBAAgBA,GACrBA,SAAAA,GAAOA,EAAEA,aAAeA,EAAEA,iBAG7BL,GA1BQJ,EAAAA,WAFRL,QAAAe,eAAAX,EAAA,cAAAY,OAAA,IDWIZ,EAAAA,WAAkBK,CCmBtB,IAAMQ,GAAgC","file":"System/Observable/ObservableNodeBase.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\", './SubscribableBase'], function (require, exports, SubscribableBase_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 processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\n };\n ObservableNodeBase.prototype.onError = function (error) {\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\n };\n return ObservableNodeBase;\n })(SubscribableBase_1.default);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\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; _i < observers.length; _i++) {\n var s = observers[_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});\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\nexport default\r\nclass ObservableNodeBase\r\nextends SubscribableBase> implements IObservable, IObserver\r\n{\r\n\r\n\tonNext(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\tonError(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\tonCompleted():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"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/SubscribableBase.js b/dist/amd/System/Observable/SubscribableBase.js index 58eff5da..bb20e375 100644 --- a/dist/amd/System/Observable/SubscribableBase.js +++ b/dist/amd/System/Observable/SubscribableBase.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -define(["require","exports","../Collections/LinkedList","../Disposable/Utility","./Subscription"],function(r,t,e,i,s){var n=function(){function r(){this.__subscriptions=new e["default"]}return r.prototype._getSubscribers=function(){return this.__subscriptions.toArray().map(function(r){return r.subscriber})},r.prototype._findEntryNode=function(r){for(var t=this.__subscriptions.first;t&&t.value.subscriber!==r;)t=t.next;return t},r.prototype.subscribe=function(r){var t=this,e=t._findEntryNode(r);if(e)return e.value;var i=new s["default"](t,r);return t.__subscriptions.add(i),i},r.prototype.unsubscribe=function(r){var t=this._findEntryNode(r);if(t){var e=t.value;t.remove(),e.dispose()}},r.prototype._unsubscribeAll=function(r){void 0===r&&(r=!1);var t=this,e=t.__subscriptions,s=e.toArray(),n=r?s.map(function(r){return r.subscriber}):null;return e.clear(),i.disposeThese(s),n},r.prototype.unsubscribeAll=function(){this._unsubscribeAll()},r.prototype.dispose=function(){this._unsubscribeAll()},r}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +define(["require","exports","../Collections/LinkedList","../Disposable/Utility","./Subscription"],function(t,r,e,i,s){"use strict";var n=function(){function t(){this.__subscriptions=new e["default"]}return t.prototype._getSubscribers=function(){return this.__subscriptions.toArray().map(function(t){return t.subscriber})},t.prototype._findEntryNode=function(t){for(var r=this.__subscriptions.first;r&&r.value.subscriber!==t;)r=r.next;return r},t.prototype.subscribe=function(t){var r=this,e=r._findEntryNode(t);if(e)return e.value;var i=new s["default"](r,t);return r.__subscriptions.add(i),i},t.prototype.unsubscribe=function(t){var r=this._findEntryNode(t);if(r){var e=r.value;r.remove(),e.dispose()}},t.prototype._unsubscribeAll=function(t){void 0===t&&(t=!1);var r=this,e=r.__subscriptions,s=e.toArray(),n=t?s.map(function(t){return t.subscriber}):null;return e.clear(),i.disposeThese(s),n},t.prototype.unsubscribeAll=function(){this._unsubscribeAll()},t.prototype.dispose=function(){this._unsubscribeAll()},t}();Object.defineProperty(r,"__esModule",{value:!0}),r["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 0adf15f9..17a5f9ff 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","LinkedList_1","DisposeUtility","Subscription_1","SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose","Object","defineProperty","value"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,4BAA6B,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAcC,EAAgBC,GCUjK,GAAAC,GAAA,WAcCA,QAAAA,KAECC,KAAKA,gBAAkBA,GAAIA,GAAAA,WAkE7BD,MA1EWA,GAAAA,UAAAA,gBAAVA,WACCE,MAAOA,MAAKA,gBACVA,UACAA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,cAQJF,EAAAA,UAAAA,eAARA,SACCA,GAGAG,IADAA,GAAIA,GAAOA,KAAKA,gBAAgBA,MAC1BA,GAEFA,EAAKA,MAAMA,aAAaA,GAM1BA,EAAOA,EAAKA,IAIdA,OAAOA,IAIRH,EAAAA,UAAAA,UAAAA,SAAUA,GAETI,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,eAAeA,EACzBA,IAAGA,EACFA,MAAOA,GAAEA,KAEVA,IAAIA,GAAIA,GAAIA,GAAAA,WAAaA,EAAGA,EAG5BA,OAFAA,GAAEA,gBAAgBA,IAAIA,GAEfA,GAGRJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,GAAIA,GAAIA,KAAKA,eAAeA,EAC5BA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,EAAEA,KACVA,GAAEA,SACFA,EAAEA,YAIML,EAAAA,UAAAA,gBAAVA,SAA0BA,GAAAM,SAAAA,IAAAA,GAAAA,EACzBA,IAAIA,GAAIA,KAAMA,EAAKA,EAAEA,gBACjBA,EAAIA,EAAGA,UACPA,EAAIA,EAAoBA,EAAEA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,aAAcA,IAKrDA,OAJAA,GAAGA,QAEHA,EAAeA,aAAaA,GAErBA,GAGRN,EAAAA,UAAAA,eAAAA,WACCO,KAAKA,mBAGNP,EAAAA,UAAAA,QAAAA,WACCQ,KAAKA,mBAGPR,IAlFAS,QAAAC,eAAAd,EAAA,cAAAe,OAAA,ID+CIf,EAAAA,WAAkBI","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Collections/LinkedList', '../Disposable/Utility', './Subscription'], function (require, exports) {\r\n ///\r\n ///\r\n var LinkedList_1 = require('../Collections/LinkedList');\r\n var DisposeUtility = require('../Disposable/Utility');\r\n var Subscription_1 = require('./Subscription');\r\n var SubscribableBase = (function () {\r\n function SubscribableBase() {\r\n this.__subscriptions = new LinkedList_1.default();\r\n }\r\n SubscribableBase.prototype._getSubscribers = function () {\r\n return this.__subscriptions\r\n .toArray()\r\n .map(function (s) { return s.subscriber; });\r\n };\r\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\r\n var node = this.__subscriptions.first;\r\n while (node) {\r\n if (node.value.subscriber === subscriber) {\r\n break;\r\n }\r\n else {\r\n node = node.next;\r\n }\r\n }\r\n return node;\r\n };\r\n SubscribableBase.prototype.subscribe = function (subscriber) {\r\n var _ = this;\r\n var n = _._findEntryNode(subscriber);\r\n if (n)\r\n return n.value;\r\n var s = new Subscription_1.default(_, subscriber);\r\n _.__subscriptions.add(s);\r\n return s;\r\n };\r\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\r\n var n = this._findEntryNode(subscriber);\r\n if (n) {\r\n var s = n.value;\r\n n.remove();\r\n s.dispose();\r\n }\r\n };\r\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\r\n if (returnSubscribers === void 0) { returnSubscribers = false; }\r\n var _ = this, _s = _.__subscriptions;\r\n var s = _s.toArray();\r\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\r\n _s.clear();\r\n DisposeUtility.disposeThese(s);\r\n return u;\r\n };\r\n SubscribableBase.prototype.unsubscribeAll = function () {\r\n this._unsubscribeAll();\r\n };\r\n SubscribableBase.prototype.dispose = function () {\r\n this._unsubscribeAll();\r\n };\r\n return SubscribableBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SubscribableBase;\r\n});\r\n//# sourceMappingURL=SubscribableBase.js.map","/*\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\nimport LinkedList from '../Collections/LinkedList';\r\nimport * as DisposeUtility from '../Disposable/Utility'\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:LinkedList>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[] {\r\n\t\treturn this.__subscriptions\r\n\t\t\t.toArray()\r\n\t\t\t.map(s=>s.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions = new LinkedList>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedListNode>\r\n\t{\r\n\t\tvar node = this.__subscriptions.first;\r\n\t\twhile(node)\r\n\t\t{\r\n\t\t\tif(node.value.subscriber===subscriber)\r\n\t\t\t{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tnode = node.next;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn node;\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.add(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 n = this._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\tn.remove();\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\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.toArray();\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose() {\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","LinkedList_1","DisposeUtility","Subscription_1","SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,4BAA6B,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAcC,EAAgBC,GCMjK,YAWA,IAAAC,GAAA,WAcCA,QAAAA,KAECC,KAAKA,gBAAkBA,GAAIA,GAAAA,WAkE7BD,MA1EWA,GAAAA,UAAAA,gBAAVA,WACCE,MAAOA,MAAKA,gBACVA,UACAA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,cAQJF,EAAAA,UAAAA,eAARA,SACCA,GAGAG,IADAA,GAAIA,GAAOA,KAAKA,gBAAgBA,MAC1BA,GAEFA,EAAKA,MAAMA,aAAaA,GAM1BA,EAAOA,EAAKA,IAIdA,OAAOA,IAIRH,EAAAA,UAAAA,UAAAA,SAAUA,GAETI,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,eAAeA,EACzBA,IAAGA,EACFA,MAAOA,GAAEA,KAEVA,IAAIA,GAAIA,GAAIA,GAAAA,WAAaA,EAAGA,EAG5BA,OAFAA,GAAEA,gBAAgBA,IAAIA,GAEfA,GAGRJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,GAAIA,GAAIA,KAAKA,eAAeA,EAC5BA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,EAAEA,KACVA,GAAEA,SACFA,EAAEA,YAIML,EAAAA,UAAAA,gBAAVA,SAA0BA,GAAAM,SAAAA,IAAAA,GAAAA,EACzBA,IAAIA,GAAIA,KAAMA,EAAKA,EAAEA,gBACjBA,EAAIA,EAAGA,UACPA,EAAIA,EAAoBA,EAAEA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,aAAcA,IAKrDA,OAJAA,GAAGA,QAEHA,EAAeA,aAAaA,GAErBA,GAGRN,EAAAA,UAAAA,eAAAA,WACCO,KAAKA,mBAGNP,EAAAA,UAAAA,QAAAA,WACCQ,KAAKA,mBAGPR,IAlFAS,QAAAC,eAAAd,EAAA,cAAAe,OAAA,IDyCIf,EAAAA,WAAkBI","file":"System/Observable/SubscribableBase.js","sourcesContent":["define([\"require\", \"exports\", '../Collections/LinkedList', '../Disposable/Utility', './Subscription'], function (require, exports, LinkedList_1, DisposeUtility, Subscription_1) {\n 'use strict';\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions = new LinkedList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this.__subscriptions\n .toArray()\n .map(function (s) { return s.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n var node = this.__subscriptions.first;\n while (node) {\n if (node.value.subscriber === subscriber) {\n break;\n }\n else {\n node = node.next;\n }\n }\n return node;\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.add(s);\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var n = this._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n n.remove();\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.toArray();\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n DisposeUtility.disposeThese(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n\r\nimport LinkedList from '../Collections/LinkedList';\r\nimport * as DisposeUtility from '../Disposable/Utility'\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:LinkedList>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[] {\r\n\t\treturn this.__subscriptions\r\n\t\t\t.toArray()\r\n\t\t\t.map(s=>s.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions = new LinkedList>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedListNode>\r\n\t{\r\n\t\tvar node = this.__subscriptions.first;\r\n\t\twhile(node)\r\n\t\t{\r\n\t\t\tif(node.value.subscriber===subscriber)\r\n\t\t\t{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tnode = node.next;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn node;\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.add(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 n = this._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\tn.remove();\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\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.toArray();\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Observable/Subscription.js b/dist/amd/System/Observable/Subscription.js index 9dc729c4..786762cb 100644 --- a/dist/amd/System/Observable/Subscription.js +++ b/dist/amd/System/Observable/Subscription.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -define(["require","exports"],function(e,r){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}();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 4db1e0af..3add784a 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","Subscription.constructor","get","Subscription.subscriber","enumerable","configurable","Subscription.wasDisposed","Subscription.dispose","Object","defineProperty","value"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCSlD,GAAAC,GAAA,WAGCA,QAAAA,GACSA,EACAA,GAERC,GAHQA,KAAAA,cAAAA,EACAA,KAAAA,YAAAA,GAEHA,IAAkBA,EACtBA,KAAMA,8CA0CTD,MAvCCA,QAAAA,eAAIA,EAAAA,UAAAA,cDROE,ICQXF,WACCG,MAAOA,MAAKA,aDNFC,YAAY,EACZC,cAAc,ICuBzBL,OAAAA,eAAIA,EAAAA,UAAAA,eDpBOE,ICoBXF,WAECM,OAAQA,KAAKA,gBAAkBA,KAAKA,aDnB1BF,YAAY,EACZC,cAAc,ICqBzBL,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAaA,KAAKA,WAClBA,EAAeA,KAAKA,aAGxBA,MAAKA,YAAcA,KACnBA,KAAKA,cAAgBA,KAGjBA,GAAcA,GAEjBA,EAAaA,YAAYA,IAG5BP,IAlDAQ,QAAAC,eAAAV,EAAA,cAAAW,OAAA,ID4BIX,EAAAA,WAAkBC","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Subscription = (function () {\r\n function Subscription(_subscribable, _subscriber) {\r\n this._subscribable = _subscribable;\r\n this._subscriber = _subscriber;\r\n if (!_subscribable || !_subscriber)\r\n throw 'Subscribable and subscriber cannot be null.';\r\n }\r\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\r\n get: function () {\r\n return this._subscriber;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return !this._subscribable || !this._subscriber;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Subscription.prototype.dispose = function () {\r\n var subscriber = this.subscriber;\r\n var subscribable = this._subscribable;\r\n this._subscriber = null;\r\n this._subscribable = null;\r\n if (subscriber && subscribable) {\r\n subscribable.unsubscribe(subscriber);\r\n }\r\n };\r\n return Subscription;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Subscription;\r\n});\r\n//# sourceMappingURL=Subscription.js.map","/*\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///\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","Subscription.constructor","get","Subscription.subscriber","enumerable","configurable","Subscription.wasDisposed","Subscription.dispose","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCMlD,YAUA,IAAAC,GAAA,WAGCA,QAAAA,GACSA,EACAA,GAERC,GAHQA,KAAAA,cAAAA,EACAA,KAAAA,YAAAA,GAEHA,IAAkBA,EACtBA,KAAMA,8CA0CTD,MAvCCA,QAAAA,eAAIA,EAAAA,UAAAA,cDjBOE,ICiBXF,WACCG,MAAOA,MAAKA,aDfFC,YAAY,EACZC,cAAc,ICgCzBL,OAAAA,eAAIA,EAAAA,UAAAA,eD7BOE,IC6BXF,WAECM,OAAQA,KAAKA,gBAAkBA,KAAKA,aD5B1BF,YAAY,EACZC,cAAc,IC8BzBL,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAaA,KAAKA,WAClBA,EAAeA,KAAKA,aAGxBA,MAAKA,YAAcA,KACnBA,KAAKA,cAAgBA,KAGjBA,GAAcA,GAEjBA,EAAaA,YAAYA,IAG5BP,IAlDAQ,QAAAC,eAAAV,EAAA,cAAAW,OAAA,IDmBIX,EAAAA,WAAkBC","file":"System/Observable/Subscription.js","sourcesContent":["define([\"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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/amd/System/Serialization/Utility.js b/dist/amd/System/Serialization/Utility.js index 4511a46f..5121dd09 100644 --- a/dist/amd/System/Serialization/Utility.js +++ b/dist/amd/System/Serialization/Utility.js @@ -1,6 +1,2 @@ -/* - * @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){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?s:f;case r["default"].NUMBER:return l+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 void 0;case s:return!0;case f:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,l);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 l="",s="true",f="false";t.toString=i,t.isSerializable=n,t.toPrimitive=u}); +define(["require","exports","../Types","../Exceptions/InvalidOperationException"],function(e,t,r,a){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?s:f;case r["default"].NUMBER:return l+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 s:return!0;case f:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,l);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 l="",s="true",f="false";t.toString=i,t.isSerializable=n,t.toPrimitive=u}); //# sourceMappingURL=Utility.js.map diff --git a/dist/amd/System/Serialization/Utility.js.map b/dist/amd/System/Serialization/Utility.js.map index 699104f5..41104ab0 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","isSerializable","instance","toPrimitive","caseInsensitive","unknownHandler","EMPTY","TRUE","FALSE"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,WAAY,2CAA4C,SAAUC,EAASC,EAASC,EAASC,GCU3H,QAAAC,GACCC,EACAC,GAGAF,GAAIA,GAASA,CACbA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,UACVA,IAAKA,GAAAA,WAAKA,OACTA,MAAOA,EACRA,KAAKA,GAAAA,WAAKA,QACTA,MAAOA,GAAIA,EAAOA,CACnBA,KAAKA,GAAAA,WAAKA,OACTA,MAAOA,GAAQA,CAChBA,SAECA,GAAOA,OAAJA,EACFA,MAAOA,EAERA,IAAGA,EAAeA,GACjBA,MAAOA,GAAEA,WACLA,IAAGA,UAAUA,OAAOA,EACxBA,MAAOA,EAERA,IAAIA,GAAKA,GAAIA,GAAAA,WAA0BA,+CAEvCA,MADAA,GAAGA,KAAYA,MAAIA,EACbA,GAMT,QAAAG,GAA+BC,GAC9BD,MAAOA,GAAAA,WAAKA,gBAA+BA,EAASA,YAAYA,EAAAA,WAAKA,UAGtE,QAAAE,GACCJ,EACAK,EACAC,GAIAF,GAAGA,EAIFA,OAFGA,IAAiBA,EAAQA,EAAMA,eAE3BA,GAENA,IAAKA,OACJA,MAAOA,KACRA,KAAKA,GAAAA,WAAKA,UACTA,MAAOA,OACRA,KAAKA,GACJA,OAAOA,CACRA,KAAKA,GACJA,OAAOA,CACRA,SAECA,GAAIA,GAAUA,EAAMA,QAAQA,eAAeA,EAC3CA,IAAGA,EAEFA,GAAGA,SAASA,KAAKA,GAAUA,CAC1BA,GAAIA,GAAMA,SAASA,EACnBA,KAAIA,MAAMA,GAAMA,MAAOA,OACjBA,CACNA,GAAIA,GAASA,WAAWA,EACxBA,KAAIA,MAAMA,GAASA,MAAOA,GAQzBA,IAAgBA,EAAQA,EAAeA,IAO7CA,MAAOA,GArFR,GAAMG,GAAQ,GAAIC,EAAO,OAAQC,EAAQ,OAEzBb,GAAAG,SAAQA,EAiCRH,EAAAM,eAAcA,EAIdN,EAAAQ,YAAWA","file":"System/Serialization/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', '../Exceptions/InvalidOperationException'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n function toString(value, defaultForUnknown) {\r\n var v = value;\r\n switch (typeof v) {\r\n case Types_1.default.UNDEFINED:\r\n case Types_1.default.STRING:\r\n return v;\r\n case Types_1.default.BOOLEAN:\r\n return v ? TRUE : FALSE;\r\n case Types_1.default.NUMBER:\r\n return EMPTY + v;\r\n default:\r\n if (v === null)\r\n return v;\r\n if (isSerializable(v))\r\n return v.serialize();\r\n else if (arguments.length > 1)\r\n return defaultForUnknown;\r\n var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.');\r\n ex.data['value'] = v;\r\n throw ex;\r\n }\r\n }\r\n exports.toString = toString;\r\n function isSerializable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION);\r\n }\r\n exports.isSerializable = isSerializable;\r\n function toPrimitive(value, caseInsensitive, unknownHandler) {\r\n if (value) {\r\n if (caseInsensitive)\r\n value = value.toLowerCase();\r\n switch (value) {\r\n case 'null':\r\n return null;\r\n case Types_1.default.UNDEFINED:\r\n return undefined;\r\n case TRUE:\r\n return true;\r\n case FALSE:\r\n return false;\r\n default:\r\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\r\n if (cleaned) {\r\n if (/^\\d+$/g.test(cleaned)) {\r\n var int = parseInt(cleaned);\r\n if (!isNaN(int))\r\n return int;\r\n }\r\n else {\r\n var number = parseFloat(value);\r\n if (!isNaN(number))\r\n return number;\r\n }\r\n }\r\n if (unknownHandler)\r\n value = unknownHandler(value);\r\n break;\r\n }\r\n }\r\n return value;\r\n }\r\n exports.toPrimitive = toPrimitive;\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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","isSerializable","instance","toPrimitive","caseInsensitive","unknownHandler","EMPTY","TRUE","FALSE"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,WAAY,2CAA4C,SAAUC,EAASC,EAASC,EAASC,GCc3H,QAAAC,GACCC,EACAC,GAGAF,GAAIA,GAASA,CACbA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,UACVA,IAAKA,GAAAA,WAAKA,OACTA,MAAOA,EACRA,KAAKA,GAAAA,WAAKA,QACTA,MAAOA,GAAIA,EAAOA,CACnBA,KAAKA,GAAAA,WAAKA,OACTA,MAAOA,GAAQA,CAChBA,SAECA,GAAOA,OAAJA,EACFA,MAAOA,EAERA,IAAGA,EAAeA,GACjBA,MAAOA,GAAEA,WACLA,IAAGA,UAAUA,OAAOA,EACxBA,MAAOA,EAERA,IAAIA,GAAKA,GAAIA,GAAAA,WAA0BA,+CAEvCA,MADAA,GAAGA,KAAYA,MAAIA,EACbA,GAMT,QAAAG,GAA+BC,GAC9BD,MAAOA,GAAAA,WAAKA,gBAA+BA,EAASA,YAAYA,EAAAA,WAAKA,UAGtE,QAAAE,GACCJ,EACAK,EACAC,GAIAF,GAAGA,EAIFA,OAFGA,IAAiBA,EAAQA,EAAMA,eAE3BA,GAENA,IAAKA,OACJA,MAAOA,KACRA,KAAKA,GAAAA,WAAKA,UACTA,MACDA,KAAKA,GACJA,OAAOA,CACRA,KAAKA,GACJA,OAAOA,CACRA,SAECA,GAAIA,GAAUA,EAAMA,QAAQA,eAAeA,EAC3CA,IAAGA,EAEFA,GAAGA,SAASA,KAAKA,GAAUA,CAC1BA,GAAIA,GAAMA,SAASA,EACnBA,KAAIA,MAAMA,GAAMA,MAAOA,OACjBA,CACNA,GAAIA,GAASA,WAAWA,EACxBA,KAAIA,MAAMA,GAASA,MAAOA,GAQzBA,IAAgBA,EAAQA,EAAeA,IAO7CA,MAAOA,GArFR,GAAMG,GAAQ,GAAIC,EAAO,OAAQC,EAAQ,OAEzBb,GAAAG,SAAQA,EAiCRH,EAAAM,eAAcA,EAIdN,EAAAQ,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["define([\"require\", \"exports\", '../Types', '../Exceptions/InvalidOperationException'], function (require, exports, Types_1, InvalidOperationException_1) {\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 diff --git a/dist/amd/System/Text/StringBuilder.js b/dist/amd/System/Text/StringBuilder.js index c8aad10e..d7210356 100644 --- a/dist/amd/System/Text/StringBuilder.js +++ b/dist/amd/System/Text/StringBuilder.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports","../Types"],function(t,e,n){var r=function(){function t(){for(var t=[],e=0;e\r\n var Types_1 = require('../Types');\r\n var StringBuilder = (function () {\r\n function StringBuilder() {\r\n var initial = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n initial[_i - 0] = arguments[_i];\r\n }\r\n var _ = this;\r\n _._latest = null;\r\n _._partArray = [];\r\n _.appendThese(initial);\r\n }\r\n StringBuilder.prototype.appendSingle = function (item) {\r\n if (item !== null && item !== undefined) {\r\n var _ = this;\r\n _._latest = null;\r\n switch (typeof item) {\r\n case Types_1.default.OBJECT:\r\n case Types_1.default.FUNCTION:\r\n item = item.toString();\r\n break;\r\n }\r\n _._partArray.push(item);\r\n }\r\n };\r\n StringBuilder.prototype.appendThese = function (items) {\r\n var _ = this;\r\n items.forEach(function (s) { return _.appendSingle(s); });\r\n return _;\r\n };\r\n StringBuilder.prototype.append = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i - 0] = arguments[_i];\r\n }\r\n this.appendThese(items);\r\n return this;\r\n };\r\n StringBuilder.prototype.appendLine = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i - 0] = arguments[_i];\r\n }\r\n this.appendLines(items);\r\n return this;\r\n };\r\n StringBuilder.prototype.appendLines = function (items) {\r\n var _ = this;\r\n items.forEach(function (i) {\r\n if (i !== null && i !== undefined) {\r\n _.appendSingle(i);\r\n _._partArray.push(\"\\r\\n\");\r\n }\r\n });\r\n return _;\r\n };\r\n Object.defineProperty(StringBuilder.prototype, \"isEmpty\", {\r\n get: function () {\r\n return this._partArray.length === 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n StringBuilder.prototype.toString = function () {\r\n var latest = this._latest;\r\n if (!latest === null)\r\n this._latest = latest = this._partArray.join();\r\n return latest;\r\n };\r\n StringBuilder.prototype.join = function (delimiter) {\r\n return this._partArray.join(delimiter);\r\n };\r\n StringBuilder.prototype.clear = function () {\r\n this._partArray.length = 0;\r\n this._latest = null;\r\n };\r\n StringBuilder.prototype.dispose = function () {\r\n this.clear();\r\n };\r\n return StringBuilder;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = StringBuilder;\r\n});\r\n//# sourceMappingURL=StringBuilder.js.map","/*\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\nimport Type from '../Types';\r\nimport LinkedList from '../Collections/LinkedList';\r\n\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!==undefined) {\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!==undefined) {\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","StringBuilder.constructor","StringBuilder.appendSingle","StringBuilder.appendThese","StringBuilder.append","StringBuilder.appendLine","StringBuilder.appendLines","get","StringBuilder.isEmpty","enumerable","configurable","StringBuilder.toString","StringBuilder.join","StringBuilder.clear","StringBuilder.dispose","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCKvE,YAMA,IAAMC,GAAY,OAalBC,EAAA,WASCA,QAAAA,KD3BW,IC2BCC,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAEXA,IAAIA,GAAIA,IACRA,GAAEA,QAAUA,KACZA,EAAEA,cACFA,EAAEA,YAAYA,GA+FhBD,MA5FSA,GAAAA,UAAAA,aAARA,SAAqBA,GAEpBE,GAAUA,OAAPA,GAAeA,IAAOA,EAAOA,CAC/BA,GAAIA,GAAIA,IAERA,QADAA,EAAEA,QAAUA,WACEA,IACbA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,SACTA,EAAOA,EAAKA,WAGdA,EAAEA,WAAWA,KAAKA,KAKpBF,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,GAAIA,GAAIA,IAERA,OADAA,GAAMA,QAAQA,SAAAA,GAAIA,MAAAA,GAAEA,aAAaA,KAC1BA,GAGRH,EAAAA,UAAAA,OAAAA,WD9BW,IC8BJI,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGNA,OADAA,MAAKA,YAAYA,GACVA,MAGRJ,EAAAA,UAAAA,WAAAA,WD5BW,IC4BAK,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGVA,OADAA,MAAKA,YAAYA,GACVA,MAGRL,EAAAA,UAAAA,YAAAA,SAAYA,GAEXM,GAAIA,GAAIA,IAURA,OATAA,GAAMA,QACJA,SAAAA,GAEOA,OAAJA,GAAYA,IAAIA,IAClBA,EAAEA,aAAaA,GACfA,EAAEA,WAAWA,KAAKA,WAIdA,GAeRN,OAAAA,eAAIA,EAAAA,UAAAA,WD5COO,IC4CXP,WAECQ,MAAgCA,KAAzBA,KAAKA,WAAWA,QD3CbC,YAAY,EACZC,cAAc,IC6CzBV,EAAAA,UAAAA,SAAAA,WAECW,GAAIA,GAASA,KAAKA,OAIlBA,OAHaA,SAATA,IACHA,KAAKA,QAAUA,EAASA,KAAKA,WAAWA,QAElCA,GAGRX,EAAAA,UAAAA,KAAAA,SAAKA,GAEJY,MAAOA,MAAKA,WAAWA,KAAKA,IAG7BZ,EAAAA,UAAAA,MAAAA,WAECa,KAAKA,WAAWA,OAASA,EACzBA,KAAKA,QAAUA,MAGhBb,EAAAA,UAAAA,QAAAA,WAECc,KAAKA,SAGPd,IA7GAe,QAAAC,eAAAnB,EAAA,cAAAoB,OAAA,ID4DIpB,EAAAA,WAAkBG","file":"System/Text/StringBuilder.js","sourcesContent":["define([\"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.default.OBJECT:\n case Types_1.default.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 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'use strict'; // For compatibility with (let, const, function, class);\r\n\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 diff --git a/dist/amd/System/Text/Utility.js b/dist/amd/System/Text/Utility.js index 1dbf35ab..b8cf4976 100644 --- a/dist/amd/System/Text/Utility.js +++ b/dist/amd/System/Text/Utility.js @@ -1,6 +1,2 @@ -/* - * @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,a){function n(r){return r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function t(r,a,t){if(a){if(a===e.EMPTY)return r;var u=n(Array.isArray(a)?a.join():a);return r.replace(new RegExp("^["+u+"]+|["+u+"]+$","g"+(t?"i":"")),e.EMPTY)}return r.replace(/^\s+|\s+$/g,e.EMPTY)}function u(r){for(var e=[],a=1;achars);\r\n\t\treturn source.replace(new RegExp('^['+escaped+']+|['+escaped+']+$','g'+(ignoreCase?'i':'')),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 a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Text/Utility.js","System/Text/Utility.ts"],"names":["define","require","exports","Types_1","escapeRegExp","source","trim","chars","ignoreCase","format","supplant","params","EMPTY"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCSvE,QAAAC,GAA6BC,GAC5BD,MAAOA,GAAOA,QAAQA,sCAAuCA,QAW9D,QAAAE,GAAqBD,EAAeE,EAAuBC,GAE1DF,GAAGA,EAAOA,CACTA,GAAGA,IAAQA,EAAAA,MAAOA,MAAOA,EACzBA,IAAIA,GAAUA,EAAaA,MAAMA,QAAQA,GAASA,EAAMA,OAAiBA,EACzEA,OAAOA,GAAOA,QAAQA,GAAIA,QAAOA,KAAKA,EAAQA,OAAOA,EAAQA,MAAMA,KAAKA,EAAWA,IAAIA,KAAKA,EAAAA,OAG7FA,MAAOA,GAAOA,QAAQA,aAAcA,EAAAA,OASrC,QAAAG,GAAuBJ,GDpBf,ICoB8BI,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAErCA,OAAOA,GAASA,EAAQA,GAczB,QAAAC,GAAyBL,EAAeM,GAEvCD,GAAIA,GAAWA,MAAMA,QAAQA,EAC7BA,OAAOA,GAAOA,QAAQA,gBACrBA,SAACA,EAAUA,GAEVA,GAAIA,GAAQA,CACZA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,SAASA,EACbA,OAAMA,KAAIA,EAAIA,GAGnBA,GAAIA,GAAUA,EAAQA,EACtBA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,QACTA,MAAOA,EACRA,SACCA,MAAOA,MApECR,EAAAU,MAAe,GAEZV,EAAAE,aAAYA,EAYZF,EAAAI,KAAIA,EAiBJJ,EAAAO,OAAMA,EAgBNP,EAAAQ,SAAQA","file":"System/Text/Utility.js","sourcesContent":["define([\"require\", \"exports\", '../Types'], function (require, exports, Types_1) {\n exports.EMPTY = '';\n function escapeRegExp(source) {\n return source.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n }\n exports.escapeRegExp = escapeRegExp;\n function trim(source, chars, ignoreCase) {\n if (chars) {\n if (chars === exports.EMPTY)\n return source;\n var escaped = escapeRegExp(Array.isArray(chars) ? chars.join() : chars);\n return source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase ? 'i' : '')), exports.EMPTY);\n }\n return source.replace(/^\\s+|\\s+$/g, exports.EMPTY);\n }\n exports.trim = trim;\n function format(source) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return supplant(source, args);\n }\n exports.format = format;\n function supplant(source, params) {\n var oIsArray = Array.isArray(params);\n return source.replace(/\\{([^{}]*)\\}/g, function (a, b) {\n var n = b;\n if (oIsArray) {\n var 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 a;\n }\n });\n }\n exports.supplant = supplant;\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 const EMPTY:string = '';\r\n\r\nexport function escapeRegExp(source:string):string {\r\n\treturn source.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n}\r\n\r\n/**\r\n * Can trim any character or set of characters from the ends of a string.\r\n * Uses a Regex escapement to replace them with empty.\r\n * @param source\r\n * @param chars A string or array of characters desired to be trimmed.\r\n * @param ignoreCase\r\n * @returns {string}\r\n */\r\nexport function trim(source:string, chars?:string|string[],ignoreCase?:boolean):string\r\n{\r\n\tif(chars) {\r\n\t\tif(chars===EMPTY) return source;\r\n\t\tvar escaped = escapeRegExp(Array.isArray(chars) ? chars.join() : chars);\r\n\t\treturn source.replace(new RegExp('^['+escaped+']+|['+escaped+']+$','g'+(ignoreCase?'i':'')),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 a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Time/Calendars.js b/dist/amd/System/Time/Calendars.js deleted file mode 100644 index e503a8fa..00000000 --- a/dist/amd/System/Time/Calendars.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 - */ -define(["require","exports"],function(e,i){}); -//# sourceMappingURL=Calendars.js.map diff --git a/dist/amd/System/Time/Calendars.js.map b/dist/amd/System/Time/Calendars.js.map deleted file mode 100644 index 4356570e..00000000 --- a/dist/amd/System/Time/Calendars.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Time/Calendars.js"],"names":["define","require","exports"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC","file":"System/Time/Calendars.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=Calendars.js.map"]} \ No newline at end of file diff --git a/dist/amd/System/Time/ClockTime.js b/dist/amd/System/Time/ClockTime.js index c04080f6..679a1b57 100644 --- a/dist/amd/System/Time/ClockTime.js +++ b/dist/amd/System/Time/ClockTime.js @@ -1,7 +1,2 @@ -/* - * @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","./HowMany","./TimeQuantity"],function(e,t,n,o){function r(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 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(r(e.days,"day")),e.hour&&t.push(r(e.hour,"hour")),e.minute&&t.push(r(e.minute,"minute")),e.second&&t.push(r(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}); +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}); //# sourceMappingURL=ClockTime.js.map diff --git a/dist/amd/System/Time/ClockTime.js.map b/dist/amd/System/Time/ClockTime.js.map index cce61845..d4fe815b 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","HowMany","TimeQuantity_1","pluralize","value","label","ClockTime","_super","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","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,YAAa,kBAAmB,SAAUC,EAASC,EAASC,EAASC,GC6GnG,QAAAC,GAAmBC,EAAcC,GAKhCF,MAHqBA,KAAlBA,KAAKA,IAAIA,KACXA,GAASA,KAEHA,EA1GR,GAAAG,GAAA,SAAAC,GAaCD,QAAAA,KDhBW,ICgBCE,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAEXA,GAAAA,KAAAA,KACCA,EAAKA,OAAOA,EACTA,EAAUA,qBACZA,EAAKA,IAAMA,EACXA,EAAKA,IAAMA,EACXA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAC5BA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,GAEzBA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAGjCA,IAAIA,GAAIA,KACJA,EAAKA,KAAKA,IAAIA,EAAEA,wBAChBA,EAAMA,KAAKA,MAAMA,EAErBA,GAAEA,KAAkBA,KAAVA,EAAKA,GAEfA,EAAEA,KAAQA,EAAIA,MAAgCA,EAC9CA,GAAgBA,MAATA,EAAEA,KAETA,EAAEA,KAAQA,EAAIA,KAAiCA,EAC/CA,GAAgBA,KAATA,EAAEA,KAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,YAAcA,EAEhBA,OAAOA,OAAOA,GAmDhBF,MAhGwBA,WAAAA,EAAAA,GAkDhBA,EAAAA,KAAPA,SAAYA,EAAcA,EAAgBA,EAAoBA,GAE7DG,MAFyCA,UAAAA,IAAAA,EAAAA,GAAoBA,SAAAA,IAAAA,EAAAA,GAEtDA,GAAIA,GAAUA,EAAOA,EAASA,EAASA,IAGxCH,EAAAA,qBAAPA,SACCA,EACAA,EACAA,EACAA,GADAI,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,EAEAA,IAAIA,GAAQA,CAOZA,OANAA,IAASA,GACTA,GAASA,EACTA,GAASA,GACTA,GAASA,EACTA,GAASA,IACTA,GAASA,GAIVJ,EAAAA,UAAAA,SAAAA,WAKCK,GAAIA,GAAIA,KAAMA,IAiBdA,OAfGA,GAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,QAEvBA,EAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,SAEvBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,OAAOA,GACXA,EAAEA,OAAOA,EAAEA,OAASA,EAAGA,EAAGA,OAEpBA,EAAEA,KAAKA,MAAMA,QAAQA,UAAWA,UAGzCL,GAhGwBJ,EAAAA,WADxBN,QAAAgB,eAAAZ,EAAA,cAAAI,OAAA,IDqDIJ,EAAAA,WAAkBM","file":"System/Time/ClockTime.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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './HowMany', './TimeQuantity'], function (require, exports) {\r\n var HowMany = require('./HowMany');\r\n var TimeQuantity_1 = require('./TimeQuantity');\r\n var ClockTime = (function (_super) {\r\n __extends(ClockTime, _super);\r\n function ClockTime() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i - 0] = arguments[_i];\r\n }\r\n _super.call(this, args.length > 1\r\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\r\n : (args.length > 0 && args[0] || 0));\r\n var _ = this;\r\n var ms = Math.abs(_.getTotalMilliseconds());\r\n var msi = Math.floor(ms);\r\n _.tick = (ms - msi) * 10000;\r\n _.days = (msi / 86400000) | 0;\r\n msi -= _.days * 86400000;\r\n _.hour = (msi / 3600000) | 0;\r\n msi -= _.hour * 3600000;\r\n _.minute = (msi / 60000) | 0;\r\n msi -= _.minute * 60000;\r\n _.second = (msi / 1000) | 0;\r\n msi -= _.second * 1000;\r\n _.millisecond = msi;\r\n Object.freeze(_);\r\n }\r\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\r\n if (seconds === void 0) { seconds = 0; }\r\n if (milliseconds === void 0) { milliseconds = 0; }\r\n return new ClockTime(hours, minutes, seconds, milliseconds);\r\n };\r\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\r\n if (seconds === void 0) { seconds = 0; }\r\n if (milliseconds === void 0) { milliseconds = 0; }\r\n var value = hours;\r\n value *= 60;\r\n value += minutes;\r\n value *= 60;\r\n value += seconds;\r\n value *= 1000;\r\n value += milliseconds;\r\n return value;\r\n };\r\n ClockTime.prototype.toString = function () {\r\n /* INSERT CUSTOM FORMATTING CODE HERE */\r\n var _ = this, a = [];\r\n if (_.days)\r\n a.push(pluralize(_.days, \"day\"));\r\n if (_.hour)\r\n a.push(pluralize(_.hour, \"hour\"));\r\n if (_.minute)\r\n a.push(pluralize(_.minute, \"minute\"));\r\n if (_.second)\r\n a.push(pluralize(_.second, \"second\"));\r\n if (a.length > 1)\r\n a.splice(a.length - 1, 0, \"and\");\r\n return a.join(\", \").replace(\", and, \", \" and \");\r\n };\r\n return ClockTime;\r\n })(TimeQuantity_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ClockTime;\r\n function pluralize(value, label) {\r\n if (Math.abs(value) !== 1)\r\n label += \"s\";\r\n return label;\r\n }\r\n});\r\n//# sourceMappingURL=ClockTime.js.map","/*\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///\r\n///\r\n///\r\nimport {areEqual,compare} from '../Compare';\r\nimport * as HowMany from './HowMany';\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","ClockTime","_super","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","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,GAKhCF,MAHqBA,KAAlBA,KAAKA,IAAIA,KACXA,GAASA,KAEHA,EA1GR,GAAAG,GAAA,SAAAC,GAaCD,QAAAA,KDrBW,ICqBCE,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAEXA,GAAAA,KAAAA,KACCA,EAAKA,OAAOA,EACTA,EAAUA,qBACZA,EAAKA,IAAMA,EACXA,EAAKA,IAAMA,EACXA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAC5BA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,GAEzBA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAGjCA,IAAIA,GAAIA,KACJA,EAAKA,KAAKA,IAAIA,EAAEA,wBAChBA,EAAMA,KAAKA,MAAMA,EAErBA,GAAEA,KAAkBA,KAAVA,EAAKA,GAEfA,EAAEA,KAAQA,EAAIA,MAAgCA,EAC9CA,GAAgBA,MAATA,EAAEA,KAETA,EAAEA,KAAQA,EAAIA,KAAiCA,EAC/CA,GAAgBA,KAATA,EAAEA,KAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,YAAcA,EAEhBA,OAAOA,OAAOA,GAmDhBF,MAhGwBA,WAAAA,EAAAA,GAkDhBA,EAAAA,KAAPA,SAAYA,EAAcA,EAAgBA,EAAoBA,GAE7DG,MAFyCA,UAAAA,IAAAA,EAAAA,GAAoBA,SAAAA,IAAAA,EAAAA,GAEtDA,GAAIA,GAAUA,EAAOA,EAASA,EAASA,IAGxCH,EAAAA,qBAAPA,SACCA,EACAA,EACAA,EACAA,GADAI,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,EAEAA,IAAIA,GAAQA,CAOZA,OANAA,IAASA,GACTA,GAASA,EACTA,GAASA,GACTA,GAASA,EACTA,GAASA,IACTA,GAASA,GAIVJ,EAAAA,UAAAA,SAAAA,WAKCK,GAAIA,GAAIA,KAAMA,IAiBdA,OAfGA,GAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,QAEvBA,EAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,SAEvBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,OAAOA,GACXA,EAAEA,OAAOA,EAAEA,OAASA,EAAGA,EAAGA,OAEpBA,EAAEA,KAAKA,MAAMA,QAAQA,UAAWA,UAGzCL,GAhGwBJ,EAAAA,WADxBL,QAAAe,eAAAX,EAAA,cAAAG,OAAA,ID+CIH,EAAAA,WAAkBK","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 diff --git a/dist/amd/System/Time/DateTime.js b/dist/amd/System/Time/DateTime.js index 0212b844..1a75eff3 100644 --- a/dist/amd/System/Time/DateTime.js +++ b/dist/amd/System/Time/DateTime.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Based on .NET DateTime's interface. - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","../Types","./HowMany","./ClockTime","./TimeSpan","./TimeStamp"],function(e,t,n,r,i,o,a){var u=function(){function e(t,r){void 0===t&&(t=new Date),void 0===r&&(r=1);var i=this;i._kind=r,n["default"].isInstanceOf(t,e)?i._value=t.toJsDate():n["default"].isInstanceOf(t,Date)?i._setJsDate(t):i._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 i["default"](n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return a["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,r){var i=n["default"].isInstanceOf(t,e)?t._value:t,a=n["default"].isInstanceOf(r,e)?r._value:r;return new o["default"](i.getTime()-a.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(u),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); +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}); //# sourceMappingURL=DateTime.js.map diff --git a/dist/amd/System/Time/DateTime.js.map b/dist/amd/System/Time/DateTime.js.map index a944ce96..1ce2ec23 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","Types_1","HowMany","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","get","DateTime.kind","enumerable","configurable","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*\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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', './HowMany', './ClockTime', './TimeSpan', './TimeStamp'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var HowMany = require('./HowMany');\r\n var ClockTime_1 = require('./ClockTime');\r\n var TimeSpan_1 = require('./TimeSpan');\r\n var TimeStamp_1 = require('./TimeStamp');\r\n var DateTime = (function () {\r\n function DateTime(value, kind) {\r\n if (value === void 0) { value = new Date(); }\r\n if (kind === void 0) { kind = 1; }\r\n var _ = this;\r\n _._kind = kind;\r\n if (Types_1.default.isInstanceOf(value, DateTime))\r\n _._value = value.toJsDate();\r\n else if (Types_1.default.isInstanceOf(value, Date))\r\n _._setJsDate(value);\r\n else\r\n _._value = value == undefined\r\n ? new Date()\r\n : new Date(value);\r\n }\r\n DateTime.prototype.toJsDate = function () {\r\n return new Date(this._value.getTime());\r\n };\r\n DateTime.prototype._setJsDate = function (value) {\r\n this._time = null;\r\n this._value = new Date(value.getTime());\r\n };\r\n Object.defineProperty(DateTime.prototype, \"kind\", {\r\n get: function () {\r\n return this._kind;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"year\", {\r\n get: function () {\r\n return this._value.getFullYear();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"month\", {\r\n get: function () {\r\n return this._value.getMonth();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"day\", {\r\n get: function () {\r\n return this._value.getDate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\r\n get: function () {\r\n return this._value.getDay();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.prototype.addMilliseconds = function (ms) {\r\n ms = ms || 0;\r\n return new DateTime(this._value.getTime() + ms, this._kind);\r\n };\r\n DateTime.prototype.addSeconds = function (seconds) {\r\n seconds = seconds || 0;\r\n return this.addMilliseconds(seconds * 1000);\r\n };\r\n DateTime.prototype.addMinutes = function (minutes) {\r\n minutes = minutes || 0;\r\n return this.addMilliseconds(minutes * 60000);\r\n };\r\n DateTime.prototype.addHours = function (hours) {\r\n hours = hours || 0;\r\n return this.addMilliseconds(hours * 3600000);\r\n };\r\n DateTime.prototype.addDays = function (days) {\r\n days = days || 0;\r\n return this.addMilliseconds(days * 86400000);\r\n };\r\n DateTime.prototype.addMonths = function (months) {\r\n months = months || 0;\r\n var d = this.toJsDate();\r\n d.setMonth(d.getMonth() + months);\r\n return new DateTime(d, this._kind);\r\n };\r\n DateTime.prototype.addYears = function (years) {\r\n years = years || 0;\r\n var d = this.toJsDate();\r\n d.setFullYear(d.getFullYear() + years);\r\n return new DateTime(d, this._kind);\r\n };\r\n DateTime.prototype.add = function (time) {\r\n return this.addMilliseconds(time.getTotalMilliseconds());\r\n };\r\n DateTime.prototype.subtract = function (time) {\r\n return this.addMilliseconds(-time.getTotalMilliseconds());\r\n };\r\n DateTime.prototype.timePassedSince = function (previous) {\r\n return DateTime.between(previous, this);\r\n };\r\n Object.defineProperty(DateTime.prototype, \"date\", {\r\n get: function () {\r\n var _ = this;\r\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\r\n get: function () {\r\n var _ = this, t = _._time;\r\n if (!t) {\r\n var d = this._value;\r\n _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n }\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.prototype.toTimeStamp = function () {\r\n return TimeStamp_1.default.from(this);\r\n };\r\n Object.defineProperty(DateTime, \"now\", {\r\n get: function () {\r\n return new DateTime();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\r\n get: function () {\r\n var _ = this;\r\n if (_._kind != 1)\r\n return new DateTime(_, _._kind);\r\n var d = _._value;\r\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime, \"today\", {\r\n get: function () {\r\n return DateTime.now.date;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime, \"tomorrow\", {\r\n get: function () {\r\n var today = DateTime.today;\r\n return today.addDays(1);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.between = function (first, last) {\r\n var f = Types_1.default.isInstanceOf(first, DateTime) ? first._value : first, l = Types_1.default.isInstanceOf(last, DateTime) ? last._value : last;\r\n return new TimeSpan_1.default(f.getTime() - l.getTime());\r\n };\r\n DateTime.isLeapYear = function (year) {\r\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n };\r\n DateTime.daysInMonth = function (year, month) {\r\n return (new Date(year, month + 1, 0)).getDate();\r\n };\r\n return DateTime;\r\n })();\r\n Object.freeze(DateTime);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DateTime;\r\n});\r\n//# sourceMappingURL=DateTime.js.map","/*\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\n///\r\n///\r\nimport Type from '../Types';\r\nimport * as HowMany from './HowMany';\r\nimport ClockTime from './ClockTime';\r\nimport TimeSpan from './TimeSpan';\r\nimport TimeStamp from './TimeStamp';\r\nimport {Gregorian} from './Calendars';\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(Type.isInstanceOf(value,DateTime))\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(Type.isInstanceOf(value,Date))\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value==undefined\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 = Type.isInstanceOf(first,DateTime) ? first._value : first,\r\n\t\t l:Date = Type.isInstanceOf(last,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","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","get","DateTime.kind","enumerable","configurable","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["define([\"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'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 diff --git a/dist/amd/System/Time/HowMany.js b/dist/amd/System/Time/HowMany.js index 88b7c4ee..4f70ddc7 100644 --- a/dist/amd/System/Time/HowMany.js +++ b/dist/amd/System/Time/HowMany.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports"],function(e,i){}); + //# sourceMappingURL=HowMany.js.map diff --git a/dist/amd/System/Time/HowMany.js.map b/dist/amd/System/Time/HowMany.js.map index 7c4318ee..8967aff6 100644 --- a/dist/amd/System/Time/HowMany.js.map +++ b/dist/amd/System/Time/HowMany.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/HowMany.js"],"names":["define","require","exports"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC","file":"System/Time/HowMany.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=HowMany.js.map"]} \ No newline at end of file +{"version":3,"sources":["System/Time/HowMany.js"],"names":[],"mappings":"","file":"System/Time/HowMany.js","sourcesContent":["\n"]} \ No newline at end of file diff --git a/dist/amd/System/Time/TimeQuantity.js b/dist/amd/System/Time/TimeQuantity.js index 9c091f61..476c08cd 100644 --- a/dist/amd/System/Time/TimeQuantity.js +++ b/dist/amd/System/Time/TimeQuantity.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","../Compare","./HowMany","./TimeUnit"],function(t,e,o,i,n){var r=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 n["default"].fromMilliseconds(this.getTotalMilliseconds(),t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r}); +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}); //# sourceMappingURL=TimeQuantity.js.map diff --git a/dist/amd/System/Time/TimeQuantity.js.map b/dist/amd/System/Time/TimeQuantity.js.map index bd9aba82..0e02a889 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","HowMany","TimeUnit_1","TimeQuantity","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","get","TimeQuantity.direction","enumerable","configurable","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,aAAc,YAAa,cAAe,SAAUC,EAASC,EAASC,EAAWC,EAASC,GCWxH,GAAAC,GAAA,WAICA,QAAAA,GAAsBA,GAAVC,SAAAA,IAAAA,EAAAA,GAAUA,KAAAA,UAAAA,EA2EvBD,MAtECA,GAAAA,UAAAA,qBAAAA,WAECE,MAAOA,MAAKA,WAObF,OAAAA,eAAIA,EAAAA,UAAAA,aDnBOG,ICmBXH,WAECI,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,IDlBlCC,YAAY,EACZC,cAAc,ICyBzBN,EAAAA,UAAAA,OAAAA,SAAOA,GAENO,MAAOA,GAAAA,SAASA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAQlFP,EAAAA,UAAAA,UAAAA,SAAUA,GAETQ,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAWjFR,OAAAA,eAAIA,EAAAA,UAAAA,SDvCOG,ICuCXH,WAECS,GAAIA,GAAIA,KAAKA,MACbA,KAAIA,EACJA,CACCA,GAAIA,GAAKA,KAAKA,sBAEdA,MAAKA,OAASA,EAAsBA,OAAOA,QAC1CA,MAAUA,IAAHA,EACPA,aAAcA,EACdA,QAASA,EAAGA,IACZA,QAASA,EAAGA,IACZA,MAAOA,EAAGA,KACVA,KAAMA,EAAGA,QAGXA,MAAOA,IDxCGJ,YAAY,EACZC,cAAc,IC+CzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,MAAOA,GAAAA,WAASA,iBAAiBA,KAAKA,uBAAwBA,IAEhEV,IA/EAW,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,IDoCIjB,EAAAA,WAAkBI","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Compare', './HowMany', './TimeUnit'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Compare_1 = require('../Compare');\r\n var HowMany = require('./HowMany');\r\n var TimeUnit_1 = require('./TimeUnit');\r\n var TimeQuantity = (function () {\r\n function TimeQuantity(_quantity) {\r\n if (_quantity === void 0) { _quantity = 0; }\r\n this._quantity = _quantity;\r\n }\r\n TimeQuantity.prototype.getTotalMilliseconds = function () {\r\n return this._quantity;\r\n };\r\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\r\n get: function () {\r\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeQuantity.prototype.equals = function (other) {\r\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n };\r\n TimeQuantity.prototype.compareTo = function (other) {\r\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n };\r\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\r\n get: function () {\r\n var t = this._total;\r\n if (!t) {\r\n var ms = this.getTotalMilliseconds();\r\n this._total = t = Object.freeze({\r\n ticks: ms * 10000,\r\n milliseconds: ms,\r\n seconds: ms / 1000,\r\n minutes: ms / 60000,\r\n hours: ms / 3600000,\r\n days: ms / 86400000,\r\n });\r\n }\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeQuantity.prototype.getTotal = function (units) {\r\n return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n };\r\n return TimeQuantity;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeQuantity;\r\n});\r\n//# sourceMappingURL=TimeQuantity.js.map","/*\r\n * @author 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 {areEqual,compare} from '../Compare';\r\nimport * as HowMany from './HowMany';\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 {CompareResult}\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","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","get","TimeQuantity.direction","enumerable","configurable","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,aAAc,cAAe,SAAUC,EAASC,EAASC,EAAWC,GCIlG,YAYA,IAAAC,GAAA,WAICA,QAAAA,GAAsBA,GAAVC,SAAAA,IAAAA,EAAAA,GAAUA,KAAAA,UAAAA,EA2EvBD,MAtECA,GAAAA,UAAAA,qBAAAA,WAECE,MAAOA,MAAKA,WAObF,OAAAA,eAAIA,EAAAA,UAAAA,aDvBOG,ICuBXH,WAECI,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,IDtBlCC,YAAY,EACZC,cAAc,IC6BzBN,EAAAA,UAAAA,OAAAA,SAAOA,GAENO,MAAOA,GAAAA,SAASA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAQlFP,EAAAA,UAAAA,UAAAA,SAAUA,GAETQ,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAWjFR,OAAAA,eAAIA,EAAAA,UAAAA,SD3COG,IC2CXH,WAECS,GAAIA,GAAIA,KAAKA,MACbA,KAAIA,EACJA,CACCA,GAAIA,GAAKA,KAAKA,sBAEdA,MAAKA,OAASA,EAAsBA,OAAOA,QAC1CA,MAAUA,IAAHA,EACPA,aAAcA,EACdA,QAASA,EAAGA,IACZA,QAASA,EAAGA,IACZA,MAAOA,EAAGA,KACVA,KAAMA,EAAGA,QAGXA,MAAOA,ID5CGJ,YAAY,EACZC,cAAc,ICmDzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,MAAOA,GAAAA,WAASA,iBAAiBA,KAAKA,uBAAwBA,IAEhEV,IA/EAW,QAAAC,eAAAf,EAAA,cAAAgB,OAAA,IDgCIhB,EAAAA,WAAkBG","file":"System/Time/TimeQuantity.js","sourcesContent":["define([\"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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/amd/System/Time/TimeSpan.js b/dist/amd/System/Time/TimeSpan.js index 2821fb2b..50db07f4 100644 --- a/dist/amd/System/Time/TimeSpan.js +++ b/dist/amd/System/Time/TimeSpan.js @@ -1,7 +1,2 @@ -/* - * @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 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","./HowMany","./TimeUnit","./ClockTime","./TimeQuantity"],function(e,t,n,i,o,r,u){var l=function(e){function t(t,n){void 0===n&&(n=o["default"].Milliseconds);var i=o["default"].toMilliseconds(t,n);e.call(this,i);var r=this;r.ticks=1e4*i,r.milliseconds=i,r.seconds=i/1e3,r.minutes=i/6e4,r.hours=i/36e5,r.days=i/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 r["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=o["default"].Milliseconds),new t(this.getTotalMilliseconds()+o["default"].toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,o["default"].Days)},t.fromHours=function(e){return new t(e,o["default"].Hours)},t.fromMinutes=function(e){return new t(e,o["default"].Minutes)},t.fromSeconds=function(e){return new t(e,o["default"].Seconds)},t.fromMilliseconds=function(e){return new t(e,o["default"].Milliseconds)},t.fromTicks=function(e){return new t(e,o["default"].Ticks)},Object.defineProperty(t,"zero",{get:function(){return s||(s=new t(0))},enumerable:!0,configurable:!0}),t}(u["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=l;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 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}); //# sourceMappingURL=TimeSpan.js.map diff --git a/dist/amd/System/Time/TimeSpan.js.map b/dist/amd/System/Time/TimeSpan.js.map index 2935b975..c6dfa958 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","HowMany","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","TimeSpan.constructor","get","TimeSpan.total","enumerable","configurable","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero","defineProperty","value","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,YAAa,aAAc,cAAe,kBAAmB,SAAUC,EAASC,EAASC,EAASC,EAASC,EAAYC,EAAaC,GCS9K,GAAAC,GAAA,SAAAC,GAYCD,QAAAA,GAAYA,EAAcA,GAAAE,SAAAA,IAAAA,EAAiBA,EAAAA,WAASA,aAEnDA,IAAIA,GAAKA,EAAAA,WAASA,eAAeA,EAAOA,EACxCA,GAAAA,KAAAA,KAAMA,EAENA,IAAIA,GAAIA,IACRA,GAAEA,MAAWA,IAAHA,EACVA,EAAEA,aAAeA,EACjBA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,MAAQA,EAAGA,KACbA,EAAEA,KAAOA,EAAGA,MA8EdF,MApGuBA,WAAAA,EAAAA,GA6BtBA,OAAAA,eAAIA,EAAAA,UAAAA,SDvBOG,ICuBXH,WAECI,MAAOA,ODtBGC,YAAY,EACZC,cAAc,IC0BzBN,OAAAA,eAAIA,EAAAA,UAAAA,QDvBOG,ICuBXH,WAECO,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,KAEpBA,OADIA,KAAGA,EAAEA,MAAQA,EAAIA,GAAIA,GAAAA,WAAUA,EAAEA,yBAC9BA,GDrBGF,YAAY,EACZC,cAAc,ICuBzBN,EAAAA,UAAAA,IAAAA,SAAIA,GAEHQ,GAAGA,EAAAA,WAAKA,SAASA,GAChBA,KAAMA,IAAIA,OACTA,yKAIFA,OAAOA,IAAIA,GAASA,KAAKA,uBAAyBA,EAAMA,MAAMA,eAG/DR,EAAAA,UAAAA,QAAAA,SAAQA,EAAcA,GAErBS,MAFqBA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAExCA,GAAIA,GAASA,KAAKA,uBAAyBA,EAAAA,WAASA,eAAeA,EAAOA,KAI3ET,EAAAA,KAAPA,SAAYA,EAAcA,GAEzBU,MAAOA,IAAIA,GAASA,EAAOA,IAGrBV,EAAAA,SAAPA,SAAgBA,GAEfW,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,OAG9BX,EAAAA,UAAPA,SAAiBA,GAEhBY,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAG9BZ,EAAAA,YAAPA,SAAmBA,GAElBa,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bb,EAAAA,YAAPA,SAAmBA,GAElBc,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bd,EAAAA,iBAAPA,SAAwBA,GAEvBe,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,eAG9Bf,EAAAA,UAAPA,SAAiBA,GAEhBgB,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAIrChB,OAAAA,eAAWA,EAAAA,QD1CAG,IC0CXH,WAECiB,MAAOA,KAAiBA,EAAeA,GAAIA,GAASA,KDzC1CZ,YAAY,EACZC,cAAc,IC0C1BN,GApGuBD,EAAAA,WADvBT,QAAA4B,eAAAxB,EAAA,cAAAyB,OAAA,IDgEIzB,EAAAA,WAAkBM,CCwCtB,IAAIoB","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', './HowMany', './TimeUnit', './ClockTime', './TimeQuantity'], function (require, exports) {\r\n var Types_1 = require('../Types');\r\n var HowMany = require('./HowMany');\r\n var TimeUnit_1 = require('./TimeUnit');\r\n var ClockTime_1 = require('./ClockTime');\r\n var TimeQuantity_1 = require('./TimeQuantity');\r\n var TimeSpan = (function (_super) {\r\n __extends(TimeSpan, _super);\r\n function TimeSpan(value, units) {\r\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\r\n var ms = TimeUnit_1.default.toMilliseconds(value, units);\r\n _super.call(this, ms);\r\n var _ = this;\r\n _.ticks = ms * 10000;\r\n _.milliseconds = ms;\r\n _.seconds = ms / 1000;\r\n _.minutes = ms / 60000;\r\n _.hours = ms / 3600000;\r\n _.days = ms / 86400000;\r\n }\r\n Object.defineProperty(TimeSpan.prototype, \"total\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TimeSpan.prototype, \"time\", {\r\n get: function () {\r\n var _ = this, t = _._time;\r\n if (!t)\r\n _._time = t = new ClockTime_1.default(_.getTotalMilliseconds());\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeSpan.prototype.add = function (other) {\r\n if (Types_1.default.isNumber(other))\r\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n \".add only supports quantifiable time values (ITimeTotal).\");\r\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n };\r\n TimeSpan.prototype.addUnit = function (value, units) {\r\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\r\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units));\r\n };\r\n TimeSpan.from = function (value, units) {\r\n return new TimeSpan(value, units);\r\n };\r\n TimeSpan.fromDays = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Days);\r\n };\r\n TimeSpan.fromHours = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Hours);\r\n };\r\n TimeSpan.fromMinutes = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Minutes);\r\n };\r\n TimeSpan.fromSeconds = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Seconds);\r\n };\r\n TimeSpan.fromMilliseconds = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Milliseconds);\r\n };\r\n TimeSpan.fromTicks = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Ticks);\r\n };\r\n Object.defineProperty(TimeSpan, \"zero\", {\r\n get: function () {\r\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TimeSpan;\r\n })(TimeQuantity_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeSpan;\r\n var timeSpanZero;\r\n});\r\n//# sourceMappingURL=TimeSpan.js.map","/*\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\nimport {areEqual,compare} from '../Compare';\r\nimport Type from '../Types';\r\nimport * as HowMany from './HowMany';\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","TimeSpan.constructor","get","TimeSpan.total","enumerable","configurable","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero","defineProperty","value","timeSpanZero"],"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,WAAY,aAAc,cAAe,kBAAmB,SAAUC,EAASC,EAASC,EAASC,EAAYC,EAAaC,GCAxJ,YAeA,IAAAC,GAAA,SAAAC,GAYCD,QAAAA,GAAYA,EAAcA,GAAAE,SAAAA,IAAAA,EAAiBA,EAAAA,WAASA,aAEnDA,IAAIA,GAAKA,EAAAA,WAASA,eAAeA,EAAOA,EACxCA,GAAAA,KAAAA,KAAMA,EAENA,IAAIA,GAAIA,IACRA,GAAEA,MAAWA,IAAHA,EACVA,EAAEA,aAAeA,EACjBA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,MAAQA,EAAGA,KACbA,EAAEA,KAAOA,EAAGA,MA8EdF,MApGuBA,WAAAA,EAAAA,GA6BtBA,OAAAA,eAAIA,EAAAA,UAAAA,SD5BOG,IC4BXH,WAECI,MAAOA,OD3BGC,YAAY,EACZC,cAAc,IC+BzBN,OAAAA,eAAIA,EAAAA,UAAAA,QD5BOG,IC4BXH,WAECO,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,KAEpBA,OADIA,KAAGA,EAAEA,MAAQA,EAAIA,GAAIA,GAAAA,WAAUA,EAAEA,yBAC9BA,GD1BGF,YAAY,EACZC,cAAc,IC4BzBN,EAAAA,UAAAA,IAAAA,SAAIA,GAEHQ,GAAGA,EAAAA,WAAKA,SAASA,GAChBA,KAAMA,IAAIA,OACTA,yKAIFA,OAAOA,IAAIA,GAASA,KAAKA,uBAAyBA,EAAMA,MAAMA,eAG/DR,EAAAA,UAAAA,QAAAA,SAAQA,EAAcA,GAErBS,MAFqBA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAExCA,GAAIA,GAASA,KAAKA,uBAAyBA,EAAAA,WAASA,eAAeA,EAAOA,KAI3ET,EAAAA,KAAPA,SAAYA,EAAcA,GAEzBU,MAAOA,IAAIA,GAASA,EAAOA,IAGrBV,EAAAA,SAAPA,SAAgBA,GAEfW,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,OAG9BX,EAAAA,UAAPA,SAAiBA,GAEhBY,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAG9BZ,EAAAA,YAAPA,SAAmBA,GAElBa,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bb,EAAAA,YAAPA,SAAmBA,GAElBc,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bd,EAAAA,iBAAPA,SAAwBA,GAEvBe,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,eAG9Bf,EAAAA,UAAPA,SAAiBA,GAEhBgB,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAIrChB,OAAAA,eAAWA,EAAAA,QD/CAG,IC+CXH,WAECiB,MAAOA,KAAiBA,EAAeA,GAAIA,GAASA,KD9C1CZ,YAAY,EACZC,cAAc,IC+C1BN,GApGuBD,EAAAA,WADvBR,QAAA2B,eAAAvB,EAAA,cAAAwB,OAAA,ID2DIxB,EAAAA,WAAkBK,CC6CtB,IAAIoB","file":"System/Time/TimeSpan.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\", '../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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/amd/System/Time/TimeStamp.js b/dist/amd/System/Time/TimeStamp.js index 11d261bf..16b7399c 100644 --- a/dist/amd/System/Time/TimeStamp.js +++ b/dist/amd/System/Time/TimeStamp.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","./HowMany","../Types"],function(e,t,i,n){var o=function(){function e(e,t,i,n,o,s,r,a){void 0===i&&(i=1),void 0===n&&(n=0),void 0===o&&(o=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=n,this.minute=o,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(!n["default"].isInstanceOf(t,Date)&&n["default"].hasMember(t,"toJsDate")&&(t=t.toJsDate()),n["default"].isInstanceOf(t,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["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}); //# sourceMappingURL=TimeStamp.js.map diff --git a/dist/amd/System/Time/TimeStamp.js.map b/dist/amd/System/Time/TimeStamp.js.map index dec48368..8426b612 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","HowMany","Types_1","TimeStamp","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,YAAa,SAAUC,EAASC,EAASC,EAASC,GCU7F,GAAAC,GAAA,WAICA,QAAAA,GACQA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,GALPC,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GAPOA,KAAAA,KAAAA,EACAA,KAAAA,MAAAA,EACAA,KAAAA,IAAAA,EACAA,KAAAA,KAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,YAAAA,EACAA,KAAAA,KAAAA,EAKPA,OAAOA,OAAOA,MA8BhBD,MA3BCA,GAAAA,UAAAA,SAAAA,WAECE,GAAIA,GAAIA,IACRA,OAAOA,IAAIA,MAAKA,EAAEA,KAAMA,EAAEA,MAAOA,EAAEA,IAAKA,EAAEA,KAAMA,EAAEA,OAAQA,EAAEA,OAAQA,EAAEA,YAAcA,EAAEA,KAAKA,MAGrFF,EAAAA,KAAPA,SAAYA,GAIXG,IAFMA,EAAAA,WAAKA,aAAmBA,EAAEA,OAAUA,EAAAA,WAAKA,UAAUA,EAAEA,cAC1DA,EAAgBA,EAAGA,YACjBA,EAAAA,WAAKA,aAAmBA,EAAEA,MAE5BA,MAAOA,IAAIA,GACVA,EAAEA,cACFA,EAAEA,WACFA,EAAEA,UACFA,EAAEA,WACFA,EAAEA,aACFA,EAAEA,aACFA,EAAEA,kBAKHA,MAAMA,OAAMA,uBAGfH,IA/CAI,QAAAC,eAAAR,EAAA,cAAAS,OAAA,ID2BIT,EAAAA,WAAkBG","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './HowMany', '../Types'], function (require, exports) {\r\n var HowMany = require('./HowMany');\r\n var Types_1 = require('../Types');\r\n var TimeStamp = (function () {\r\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\r\n // TODO: Add validation or properly carry out of range values...\r\n if (day === void 0) { day = 1; }\r\n if (hour === void 0) { hour = 0; }\r\n if (minute === void 0) { minute = 0; }\r\n if (second === void 0) { second = 0; }\r\n if (millisecond === void 0) { millisecond = 0; }\r\n if (tick === void 0) { tick = 0; }\r\n this.year = year;\r\n this.month = month;\r\n this.day = day;\r\n this.hour = hour;\r\n this.minute = minute;\r\n this.second = second;\r\n this.millisecond = millisecond;\r\n this.tick = tick;\r\n Object.freeze(this);\r\n }\r\n TimeStamp.prototype.toJsDate = function () {\r\n var _ = this;\r\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\r\n };\r\n TimeStamp.from = function (d) {\r\n if (!(Types_1.default.isInstanceOf(d, Date)) && Types_1.default.hasMember(d, 'toJsDate'))\r\n d = d.toJsDate();\r\n if (Types_1.default.isInstanceOf(d, Date)) {\r\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n }\r\n else {\r\n throw Error('Invalid date type.');\r\n }\r\n };\r\n return TimeStamp;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeStamp;\r\n});\r\n//# sourceMappingURL=TimeStamp.js.map","/*\r\n * @author 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 {Gregorian} from './Calendars';\r\nimport * as HowMany from './HowMany';\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 (!(Type.isInstanceOf(d,Date)) && Type.hasMember(d,'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(Type.isInstanceOf(d,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","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCIvE,YAWA,IAAAC,GAAA,WAICA,QAAAA,GACQA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,GALPC,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GAPOA,KAAAA,KAAAA,EACAA,KAAAA,MAAAA,EACAA,KAAAA,IAAAA,EACAA,KAAAA,KAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,YAAAA,EACAA,KAAAA,KAAAA,EAKPA,OAAOA,OAAOA,MA8BhBD,MA3BCA,GAAAA,UAAAA,SAAAA,WAECE,GAAIA,GAAIA,IACRA,OAAOA,IAAIA,MAAKA,EAAEA,KAAMA,EAAEA,MAAOA,EAAEA,IAAKA,EAAEA,KAAMA,EAAEA,OAAQA,EAAEA,OAAQA,EAAEA,YAAcA,EAAEA,KAAKA,MAGrFF,EAAAA,KAAPA,SAAYA,GAIXG,GAFMA,YAAaA,QAASA,EAAAA,WAAKA,UAAUA,EAAEA,cAC5CA,EAAgBA,EAAGA,YACjBA,YAAaA,MAEfA,MAAOA,IAAIA,GACVA,EAAEA,cACFA,EAAEA,WACFA,EAAEA,UACFA,EAAEA,WACFA,EAAEA,aACFA,EAAEA,aACFA,EAAEA,kBAKHA,MAAMA,OAAMA,uBAGfH,IA/CAI,QAAAC,eAAAP,EAAA,cAAAQ,OAAA,IDsBIR,EAAAA,WAAkBE","file":"System/Time/TimeStamp.js","sourcesContent":["define([\"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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/amd/System/Time/TimeUnit.js b/dist/amd/System/Time/TimeUnit.js index fb166d3a..8ebcb8ae 100644 --- a/dist/amd/System/Time/TimeUnit.js +++ b/dist/amd/System/Time/TimeUnit.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports","./HowMany"],function(e,s,n){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,n){switch(void 0===n&&(n=e.Milliseconds),n){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 n(s,n){switch(n){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 i(e,s){return e&&n(e.getTotalMilliseconds(),s)}function r(s){if(isNaN(s)||s>e.Days||se.Days||s\r\n var HowMany = require('./HowMany');\r\n var TimeUnit;\r\n (function (TimeUnit) {\r\n TimeUnit[TimeUnit[\"Ticks\"] = 0] = \"Ticks\";\r\n TimeUnit[TimeUnit[\"Milliseconds\"] = 1] = \"Milliseconds\";\r\n TimeUnit[TimeUnit[\"Seconds\"] = 2] = \"Seconds\";\r\n TimeUnit[TimeUnit[\"Minutes\"] = 3] = \"Minutes\";\r\n TimeUnit[TimeUnit[\"Hours\"] = 4] = \"Hours\";\r\n TimeUnit[TimeUnit[\"Days\"] = 5] = \"Days\";\r\n })(TimeUnit || (TimeUnit = {}));\r\n var TimeUnit;\r\n (function (TimeUnit) {\r\n function toMilliseconds(value, units) {\r\n if (units === void 0) { units = TimeUnit.Milliseconds; }\r\n switch (units) {\r\n case TimeUnit.Days:\r\n value *= 24;\r\n case TimeUnit.Hours:\r\n value *= 60;\r\n case TimeUnit.Minutes:\r\n value *= 60;\r\n case TimeUnit.Seconds:\r\n value *= 1000;\r\n case TimeUnit.Milliseconds:\r\n return value;\r\n case TimeUnit.Ticks:\r\n return value / 10000;\r\n default:\r\n throw new Error(\"Invalid TimeUnit.\");\r\n }\r\n }\r\n TimeUnit.toMilliseconds = toMilliseconds;\r\n function fromMilliseconds(ms, units) {\r\n switch (units) {\r\n case TimeUnit.Days:\r\n return ms / 86400000;\r\n case TimeUnit.Hours:\r\n return ms / 3600000;\r\n case TimeUnit.Minutes:\r\n return ms / 60000;\r\n case TimeUnit.Seconds:\r\n return ms / 1000;\r\n case TimeUnit.Milliseconds:\r\n return ms;\r\n case TimeUnit.Ticks:\r\n return ms * 10000;\r\n default:\r\n throw new Error(\"Invalid TimeUnit.\");\r\n }\r\n }\r\n TimeUnit.fromMilliseconds = fromMilliseconds;\r\n function from(quantity, unit) {\r\n return quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\r\n }\r\n TimeUnit.from = from;\r\n function assertValid(unit) {\r\n if (isNaN(unit) || unit > TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\r\n throw new Error(\"Invalid TimeUnit.\");\r\n return true;\r\n }\r\n TimeUnit.assertValid = assertValid;\r\n })(TimeUnit || (TimeUnit = {}));\r\n Object.freeze(TimeUnit);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeUnit;\r\n});\r\n//# sourceMappingURL=TimeUnit.js.map","/*\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\nimport * as HowMany from './HowMany';\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 || (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\r\n///\r\n///\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","TimeUnitValue","_super","TimeUnitValue.constructor","get","TimeUnitValue.value","set","enumerable","configurable","TimeUnitValue.getTotalMilliseconds","TimeUnitValue.units","TimeUnitValue.to","TimeUnitValue.from","defineProperty","value"],"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,aAAc,kBAAmB,SAAUC,EAASC,EAASC,EAAYC,GCDvG,YA2DA,SAAAC,GAA6BC,EAAiBC,GAE7CF,MAAOA,GAAAA,WAASA,iBAAiBA,EAAEA,uBAAwBA,GAhD5D,GAAAG,GAAA,SAAAC,GAICD,QAAAA,GAAYA,EAAoCA,GAE/CE,EAAAA,KAAAA,KAAqBA,gBAATA,GACDA,EACRA,EAAmCA,EAAOA,IAJEA,KAAAA,OAAAA,EAK/CA,EAAAA,WAASA,YAAYA,GAmCvBF,MA3C4BA,WAAAA,EAAAA,GAW3BA,OAAAA,eAAIA,EAAAA,UAAAA,SDZOG,ICYXH,WAECI,MAAOA,MAAKA,WDXFC,ICcXL,SAAUA,GAETI,KAAKA,OAASA,KACdA,KAAKA,UAAYA,GDbPE,YAAY,EACZC,cAAc,ICezBP,EAAAA,UAAAA,qBAAAA,WAECQ,MAAOA,GAAAA,WAASA,eAAeA,KAAKA,UAAWA,KAAKA,SAIrDR,OAAAA,eAAIA,EAAAA,UAAAA,SDfOG,ICeXH,WAECS,MAAOA,MAAKA,QDdFH,YAAY,EACZC,cAAc,ICgBzBP,EAAAA,UAAAA,GAAAA,SAAGA,GAEFU,MAFEA,UAAAA,IAAAA,EAAiBA,KAAKA,OAEjBA,EAAcA,KAAKA,KAAKA,IAGzBV,EAAAA,KAAPA,SAAYA,EAA4BA,GAEvCW,MAFuCA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAE1DA,GAAIA,GAAcA,EAAOA,IAGlCX,GA3C4BJ,EAAAA,WAD5BN,QAAAsB,eAAAlB,EAAA,cAAAmB,OAAA,ID+BInB,EAAAA,WAAkBM","file":"System/Time/TimeUnitValue.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/amd/System/Types.js b/dist/amd/System/Types.js index 4380ec96..8dcbad3c 100644 --- a/dist/amd/System/Types.js +++ b/dist/amd/System/Types.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports"],function(e,i){var n=typeof!0,t="number",r="string",s=typeof{},u="undefined",a="function",o={},f=function(){function e(e){var i=this;switch(i.isBoolean=!1,i.isNumber=!1,i.isString=!1,i.isTrueNaN=!1,i.isObject=!1,i.isFunction=!1,i.isUndefined=!1,i.isNull=!1,i.isPrimitive=!1,i.type=typeof e){case n:i.isBoolean=!0,i.isPrimitive=!0;break;case t:i.isNumber=!0,i.isTrueNaN=isNaN(e),i.isFinite=isFinite(e),i.isValidNumber=!i.isTrueNaN,i.isPrimitive=!0;break;case r:i.isString=!0,i.isPrimitive=!0;break;case s:i.target=e,null===e?(i.isNull=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0):i.isObject=!0;break;case a:i.target=e,i.isString=!0;break;case u:i.isUndefined=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0;break;default:throw"Fatal type failure. Unknown type: "+i.type}Object.freeze(i)}return e.prototype.member=function(i){var n=this.target;return e.getFor(n&&i in n?n[i]:void 0)},e.getFor=function(i){var n=typeof i;switch(n){case s:case a:return new e(i)}var t=o[n];return t||(o[n]=t=new e(i)),t},e}();i.TypeInfo=f;var c;!function(e){function i(e){return typeof e===n}function o(e,i){return void 0===i&&(i=!0),typeof e===t&&(i||!isNaN(e))}function c(e){return typeof e===t&&isNaN(e)}function N(e){return typeof e===r}function l(e){var i=typeof e;switch(i){case n:case r:case t:case u:return!0;case s:return null===e}return!1}function p(e){return typeof e===a}function y(e){return typeof e===s}function b(e){return isNaN(e)?NaN:e}function d(e){return f.getFor(e)}function m(e,i){return e&&!l(e)&&i in e}function v(e,i,n){return m(e,i)&&typeof e[i]===n}function O(e,i){return e instanceof i}function g(e){return e instanceof Array||m(e,"length")}e.BOOLEAN=n,e.NUMBER=t,e.STRING=r,e.OBJECT=s,e.UNDEFINED=u,e.FUNCTION=a,e.isBoolean=i,e.isNumber=o,e.isTrueNaN=c,e.isString=N,e.isPrimitive=l,e.isFunction=p,e.isObject=y,e.numberOrNaN=b,e.of=d,e.hasMember=m,e.hasMemberOfType=v,e.isInstanceOf=O,e.isArrayLike=g}(c||(c={})),Object.freeze(c),Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=c}); +define(["require","exports"],function(e,i){"use strict";var t=void 0,r=typeof!0,n="number",s="string",u=typeof{},o=typeof t,a="function",f={},c=function(){function e(e){var i=this;switch(i.isBoolean=!1,i.isNumber=!1,i.isString=!1,i.isTrueNaN=!1,i.isObject=!1,i.isFunction=!1,i.isUndefined=!1,i.isNull=!1,i.isPrimitive=!1,i.type=typeof e){case r:i.isBoolean=!0,i.isPrimitive=!0;break;case n:i.isNumber=!0,i.isTrueNaN=isNaN(e),i.isFinite=isFinite(e),i.isValidNumber=!i.isTrueNaN,i.isPrimitive=!0;break;case s:i.isString=!0,i.isPrimitive=!0;break;case u:i.target=e,null===e?(i.isNull=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0):i.isObject=!0;break;case a:i.target=e,i.isString=!0;break;case o:i.isUndefined=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0;break;default:throw"Fatal type failure. Unknown type: "+i.type}Object.freeze(i)}return e.prototype.member=function(i){var t=this.target;return e.getFor(t&&i in t?t[i]:void 0)},e.getFor=function(i){var t=typeof i;switch(t){case u:case a:return new e(i)}var r=f[t];return r||(f[t]=r=new e(i)),r},e}();i.TypeInfo=c;var N;!function(e){function i(e){return typeof e===r}function f(e,i){return i===t&&(i=!0),typeof e===n&&(i||!isNaN(e))}function N(e){return typeof e===n&&isNaN(e)}function l(e){return typeof e===s}function p(e){var i=typeof e;switch(i){case r:case s:case n:case o:return!0;case u:return null===e}return!1}function y(e){return typeof e===a}function b(e){return typeof e===u}function m(e){return isNaN(e)?NaN:e}function v(e){return c.getFor(e)}function d(e,i){return e&&!p(e)&&i in e}function O(e,i,t){return d(e,i)&&typeof e[i]===t}function g(e){return e instanceof Array||d(e,"length")}e.BOOLEAN=r,e.NUMBER=n,e.STRING=s,e.OBJECT=u,e.UNDEFINED=o,e.FUNCTION=a,e.isBoolean=i,e.isNumber=f,e.isTrueNaN=N,e.isString=l,e.isPrimitive=p,e.isFunction=y,e.isObject=b,e.numberOrNaN=m,e.of=v,e.hasMember=d,e.hasMemberOfType=O,e.isArrayLike=g}(N||(N={})),Object.freeze(N),Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=N}); //# sourceMappingURL=Types.js.map diff --git a/dist/amd/System/Types.js.map b/dist/amd/System/Types.js.map index 0e52635f..4cef8af8 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","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","typeInfoRegistry","TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isInstanceOf","Type.isArrayLike","Object","freeze","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n var _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof undefined, _FUNCTION = typeof function () { };\r\n var typeInfoRegistry = {};\r\n var TypeInfo = (function () {\r\n function TypeInfo(target) {\r\n var _ = this;\r\n _.isBoolean = false;\r\n _.isNumber = false;\r\n _.isString = false;\r\n _.isTrueNaN = false;\r\n _.isObject = false;\r\n _.isFunction = false;\r\n _.isUndefined = false;\r\n _.isNull = false;\r\n _.isPrimitive = false;\r\n switch (_.type = typeof target) {\r\n case _BOOLEAN:\r\n _.isBoolean = true;\r\n _.isPrimitive = true;\r\n break;\r\n case _NUMBER:\r\n _.isNumber = true;\r\n _.isTrueNaN = isNaN(target);\r\n _.isFinite = isFinite(target);\r\n _.isValidNumber = !_.isTrueNaN;\r\n _.isPrimitive = true;\r\n break;\r\n case _STRING:\r\n _.isString = true;\r\n _.isPrimitive = true;\r\n break;\r\n case _OBJECT:\r\n _.target = target;\r\n if (target === null) {\r\n _.isNull = true;\r\n _.isNullOrUndefined = true;\r\n _.isPrimitive = true;\r\n }\r\n else {\r\n _.isObject = true;\r\n }\r\n break;\r\n case _FUNCTION:\r\n _.target = target;\r\n _.isString = true;\r\n break;\r\n case _UNDEFINED:\r\n _.isUndefined = true;\r\n _.isNullOrUndefined = true;\r\n _.isPrimitive = true;\r\n break;\r\n default:\r\n throw \"Fatal type failure. Unknown type: \" + _.type;\r\n }\r\n Object.freeze(_);\r\n }\r\n TypeInfo.prototype.member = function (name) {\r\n var t = this.target;\r\n return TypeInfo.getFor(t && (name) in (t)\r\n ? t[name]\r\n : undefined);\r\n };\r\n TypeInfo.getFor = function (target) {\r\n var type = typeof target;\r\n switch (type) {\r\n case _OBJECT:\r\n case _FUNCTION:\r\n return new TypeInfo(target);\r\n }\r\n var info = typeInfoRegistry[type];\r\n if (!info)\r\n typeInfoRegistry[type] = info = new TypeInfo(target);\r\n return info;\r\n };\r\n return TypeInfo;\r\n })();\r\n exports.TypeInfo = TypeInfo;\r\n var Type;\r\n (function (Type) {\r\n Type.BOOLEAN = _BOOLEAN;\r\n Type.NUMBER = _NUMBER;\r\n Type.STRING = _STRING;\r\n Type.OBJECT = _OBJECT;\r\n Type.UNDEFINED = _UNDEFINED;\r\n Type.FUNCTION = _FUNCTION;\r\n function isBoolean(value) {\r\n return typeof value === _BOOLEAN;\r\n }\r\n Type.isBoolean = isBoolean;\r\n function isNumber(value, allowNaN) {\r\n if (allowNaN === void 0) { allowNaN = true; }\r\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\r\n }\r\n Type.isNumber = isNumber;\r\n function isTrueNaN(value) {\r\n return typeof value === _NUMBER && isNaN(value);\r\n }\r\n Type.isTrueNaN = isTrueNaN;\r\n function isString(value) {\r\n return typeof value === _STRING;\r\n }\r\n Type.isString = isString;\r\n function isPrimitive(value) {\r\n var t = typeof value;\r\n switch (t) {\r\n case _BOOLEAN:\r\n case _STRING:\r\n case _NUMBER:\r\n case _UNDEFINED:\r\n return true;\r\n case _OBJECT:\r\n return value === null;\r\n }\r\n return false;\r\n }\r\n Type.isPrimitive = isPrimitive;\r\n function isFunction(value) {\r\n return typeof value === _FUNCTION;\r\n }\r\n Type.isFunction = isFunction;\r\n function isObject(value) {\r\n return typeof value === _OBJECT;\r\n }\r\n Type.isObject = isObject;\r\n function numberOrNaN(value) {\r\n return isNaN(value) ? NaN : value;\r\n }\r\n Type.numberOrNaN = numberOrNaN;\r\n function of(target) {\r\n return TypeInfo.getFor(target);\r\n }\r\n Type.of = of;\r\n function hasMember(value, property) {\r\n return value && !isPrimitive(value) && (property) in (value);\r\n }\r\n Type.hasMember = hasMember;\r\n function hasMemberOfType(instance, property, type) {\r\n return hasMember(instance, property) && typeof (instance[property]) === type;\r\n }\r\n Type.hasMemberOfType = hasMemberOfType;\r\n function isInstanceOf(instance, type) {\r\n return (instance) instanceof (type);\r\n }\r\n Type.isInstanceOf = isInstanceOf;\r\n function isArrayLike(instance) {\r\n return (instance) instanceof (Array) || hasMember(instance, \"length\");\r\n }\r\n Type.isArrayLike = isArrayLike;\r\n })(Type || (Type = {}));\r\n Object.freeze(Type);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Type;\r\n});\r\n//# sourceMappingURL=Types.js.map","/*\r\n * @author 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\nconst\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 undefined,\r\n\t_FUNCTION:string = typeof function() {};\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_.isString = 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\nmodule 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\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN:boolean = true):value is number\r\n\t{\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 * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT;\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\t// Substitute 'instanceof' until WebStorm's reformatting is fixed.\r\n\texport function isInstanceOf(instance:any, type:any):instance is T\r\n\t{\r\n\t\treturn (instance)instanceof(type);\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\treturn (instance)instanceof(Array) || hasMember(instance, \"length\");\r\n\t}\r\n\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\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","typeInfoRegistry","TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isArrayLike","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Types.js","sourcesContent":["define([\"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 () { };\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 _.isString = 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) {\n return typeof value === _OBJECT;\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 || hasMember(instance, \"length\");\n }\n Type.isArrayLike = isArrayLike;\n })(Type || (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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\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_.isString = 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\nmodule 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 * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT;\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\treturn instance instanceof Array || hasMember(instance, \"length\");\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/HostNameType.js b/dist/amd/System/Uri/HostNameType.js index 2efd6222..6e1d98f8 100644 --- a/dist/amd/System/Uri/HostNameType.js +++ b/dist/amd/System/Uri/HostNameType.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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){var i;!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"}(i||(i={})),Object.freeze(i),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=i}); //# sourceMappingURL=HostNameType.js.map diff --git a/dist/amd/System/Uri/HostNameType.js.map b/dist/amd/System/Uri/HostNameType.js.map index 479aabce..15103c74 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,GCElD,GAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAJ,EAAA,cAAAK,OAAA,IDpBIL,EAAAA,WCoBWC","file":"System/Uri/HostNameType.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://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var UriHostNameType;\r\n (function (UriHostNameType) {\r\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\r\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\r\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\r\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\r\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\r\n })(UriHostNameType || (UriHostNameType = {}));\r\n Object.freeze(UriHostNameType);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = UriHostNameType;\r\n});\r\n//# sourceMappingURL=HostNameType.js.map","/*\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":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCOlD,GAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAJ,EAAA,cAAAK,OAAA,IDzBIL,EAAAA,WCyBWC","file":"System/Uri/HostNameType.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\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 diff --git a/dist/amd/System/Uri/QueryBuilder.js b/dist/amd/System/Uri/QueryBuilder.js index 9664f713..83885c6a 100644 --- a/dist/amd/System/Uri/QueryBuilder.js +++ b/dist/amd/System/Uri/QueryBuilder.js @@ -1,6 +1,2 @@ -/* - * @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","../Types","./QueryParams","../Collections/Dictionaries/OrderedStringKeyDictionary"],function(t,e,r,n,i){var o="&",s="=",a=function(t){function e(e,n){void 0===n&&(n=!0),t.call(this),r["default"].isString(e)?this.importFromString(e,n):this.importMap(e)}return __extends(e,t),e.prototype.importFromString=function(t,e,r){void 0===e&&(e=!0),void 0===r&&(r=!0);var i=this;return n.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.init=function(t,r){return void 0===r&&(r=!0),new e(t,r)},e.prototype.encode=function(t){for(var e=[],r=this.keys,i=0;i\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var QueryParams = require('./QueryParams');\r\n var OrderedStringKeyDictionary_1 = require('../Collections/Dictionaries/OrderedStringKeyDictionary');\r\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\r\n var QueryBuilder = (function (_super) {\r\n __extends(QueryBuilder, _super);\r\n function QueryBuilder(query, decodeValues) {\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n _super.call(this);\r\n if (Types_1.default.isString(query)) {\r\n this.importFromString(query, decodeValues);\r\n }\r\n else {\r\n this.importMap(query);\r\n }\r\n }\r\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var _ = this;\r\n QueryParams.parse(values, function (key, value) {\r\n if (_.containsKey(key)) {\r\n var prev = _.getValue(key);\r\n if (Array.isArray(prev))\r\n prev.push(value);\r\n else\r\n _.setValue(key, [prev, value]);\r\n }\r\n else\r\n _.setValue(key, value);\r\n }, deserialize, decodeValues);\r\n return this;\r\n };\r\n QueryBuilder.init = function (query, decodeValues) {\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n return new QueryBuilder(query, decodeValues);\r\n };\r\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\r\n var entries = [];\r\n var keys = this.keys;\r\n for (var _i = 0; _i < keys.length; _i++) {\r\n var k = keys[_i];\r\n var value = this.getValue(k);\r\n for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) {\r\n var v = _b[_a];\r\n entries.push(k + KEY_VALUE_SEPARATOR\r\n + QueryParams.encodeValue(v));\r\n }\r\n }\r\n return (entries.length && prefixIfNotEmpty ? '?' : '')\r\n + entries.join(ENTRY_SEPARATOR);\r\n };\r\n QueryBuilder.prototype.toString = function () {\r\n return this.encode();\r\n };\r\n return QueryBuilder;\r\n })(OrderedStringKeyDictionary_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = QueryBuilder;\r\n});\r\n//# sourceMappingURL=QueryBuilder.js.map","/*\r\n * @author 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 * as Serialization from '../Serialization/Utility';\r\nimport * as QueryParams from './QueryParams';\r\nimport OrderedStringKeyDictionary from '../Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nconst\r\nENTRY_SEPARATOR = \"&\",\r\nKEY_VALUE_SEPARATOR = \"=\";\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:string|IUriComponentMap,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\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\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\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\tstatic init(\r\n\t\tquery:string|IUriComponentMap,\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\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\tvar entries:string[] = [];\r\n\t\tvar keys = this.keys;\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tvar value = this.getValue(k);\r\n\t\t\t// Since the values can either be UriComponentValues or an array of UriComponentValues..\r\n\t\t\t// This creates a single code path for both options.\r\n\t\t\tfor(let v of Array.isArray(value) ? value : [value])\r\n\t\t\t{\r\n\t\t\t\tentries.push(\r\n\t\t\t\t\tk + KEY_VALUE_SEPARATOR\r\n\t\t\t\t\t+ QueryParams.encodeValue(v));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t\t+ entries.join(ENTRY_SEPARATOR);\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","QueryParams","OrderedStringKeyDictionary_1","ENTRY_SEPARATOR","KEY_VALUE_SEPARATOR","QueryBuilder","_super","QueryBuilder.constructor","QueryBuilder.importQuery","QueryBuilder.importFromString","QueryBuilder.init","QueryBuilder.encode","QueryBuilder.toString","defineProperty","value"],"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,WAAY,gBAAiB,0DAA2D,SAAUC,EAASC,EAASC,EAASC,EAAaC,GCDxK,YAWA,IACAC,GAAsB,IACtBC,EAAsB,IAOtBC,EAAA,SAAAC,GAICD,QAAAA,GACCA,EACAA,GAAAE,SAAAA,IAAAA,GAAAA,GAEAA,EAAAA,KAAAA,MAEAA,KAAKA,YAAYA,EAAMA,GA4FzBF,MArG2BA,WAAAA,EAAAA,GAY1BA,EAAAA,UAAAA,YAAAA,SACCA,EACAA,GAeAG,MAfAA,UAAAA,IAAAA,GAAAA,GAEGA,EAAAA,WAAKA,SAASA,GAEhBA,KAAKA,iBAAyBA,EAAOA,GAE9BA,MAAMA,QAAQA,GAErBA,KAAKA,YAAYA,GAIjBA,KAAKA,UAA4BA,GAG3BA,MAURH,EAAAA,UAAAA,iBAAAA,SACCA,EACAA,EACAA,GADAI,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,GAAIA,IAkBRA,OAjBAA,GAAYA,MAAMA,EACjBA,SAACA,EAAKA,GAELA,GAAGA,EAAEA,YAAYA,GACjBA,CACCA,GAAIA,GAAOA,EAAEA,SAASA,EACnBA,OAAMA,QAAQA,GAChBA,EAAKA,KAAKA,GAEVA,EAAEA,SAASA,GAAyBA,EAAMA,QAG3CA,GAAEA,SAASA,EAAKA,IAElBA,EACAA,GAEMA,MAGDJ,EAAAA,KAAPA,SACCA,EACAA,GAEAK,MAFAA,UAAAA,IAAAA,GAAAA,GAEOA,GAAIA,GAAaA,EAAOA,IAOhCL,EAAAA,UAAAA,OAAAA,SAAOA,GAINM,IAAaA,GAFTA,MACAA,EAAOA,KAAKA,KACHA,EAAAA,EAATA,EAAAA,EAAAA,OAAAA,IAKHA,IAAaA,GALNA,GAAKA,EAAIA,GAEZA,EAAQA,KAAKA,SAASA,GAGbA,EAAAA,EAAAA,EAAAA,MAAMA,QAAQA,GAASA,GAASA,GAAzCA,EAAAA,EAAAA,OAAAA,IAAgDA,CAAhDA,GAAIA,GAACA,EAAAA,EAERA,GAAQA,KACPA,EAAIA,EACFA,EAAYA,YAA+BA,IAIhDA,OAAQA,EAAQA,QAAUA,EAAmBA,IAAMA,IAChDA,EAAQA,KAAKA,IAGjBN,EAAAA,UAAAA,SAAAA,WAECO,MAAOA,MAAKA,UAEdP,GArG2BH,EAAAA,WAD3BP,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,ID8CIf,EAAAA,WAAkBM","file":"System/Uri/QueryBuilder.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\", '../Types', './QueryParams', '../Collections/Dictionaries/OrderedStringKeyDictionary'], function (require, exports, Types_1, QueryParams, OrderedStringKeyDictionary_1) {\n 'use strict';\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\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.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 (Array.isArray(query)) {\n this.importPairs(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.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n var entries = [];\n var keys = this.keys;\n for (var _i = 0; _i < keys.length; _i++) {\n var k = keys[_i];\n var value = this.getValue(k);\n for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) {\n var v = _b[_a];\n entries.push(k + KEY_VALUE_SEPARATOR\n + QueryParams.encodeValue(v));\n }\n }\n return (entries.length && prefixIfNotEmpty ? '?' : '')\n + entries.join(ENTRY_SEPARATOR);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport Type from '../Types';\r\nimport * as Serialization from '../Serialization/Utility';\r\nimport * as QueryParams from './QueryParams';\r\nimport OrderedStringKeyDictionary from '../Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nconst\r\nENTRY_SEPARATOR = \"&\",\r\nKEY_VALUE_SEPARATOR = \"=\";\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:string|IUriComponentMap|StringKeyValuePair[],\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\timportQuery(\r\n\t\tquery:string|IUriComponentMap|StringKeyValuePair[],\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(Array.isArray(query))\r\n\t\t{\r\n\t\t\tthis.importPairs(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\tstatic init(\r\n\t\tquery:string|IUriComponentMap|StringKeyValuePair[],\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\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\tvar entries:string[] = [];\r\n\t\tvar keys = this.keys;\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tvar value = this.getValue(k);\r\n\t\t\t// Since the values can either be UriComponentValues or an array of UriComponentValues..\r\n\t\t\t// This creates a single code path for both options.\r\n\t\t\tfor(let v of Array.isArray(value) ? value : [value])\r\n\t\t\t{\r\n\t\t\t\tentries.push(\r\n\t\t\t\t\tk + KEY_VALUE_SEPARATOR\r\n\t\t\t\t\t+ QueryParams.encodeValue(v));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t\t+ entries.join(ENTRY_SEPARATOR);\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 diff --git a/dist/amd/System/Uri/QueryParams.js b/dist/amd/System/Uri/QueryParams.js index c7651e9f..04afd6f6 100644 --- a/dist/amd/System/Uri/QueryParams.js +++ b/dist/amd/System/Uri/QueryParams.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports","../Types","../Serialization/Utility"],function(e,r,n,t){function o(e,r){if(!e)return"";var n=[];if(Array.isArray(e))for(var t=0;t\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var Serialization = require('../Serialization/Utility');\r\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\r\n function encode(values, prefixIfNotEmpty) {\r\n if (!values)\r\n return '';\r\n var entries = [];\r\n if (Array.isArray(values)) {\r\n for (var _i = 0; _i < values.length; _i++) {\r\n var kvp = values[_i];\r\n if (kvp)\r\n entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value));\r\n }\r\n }\r\n else {\r\n var keys = Object.keys(values);\r\n for (var _a = 0; _a < keys.length; _a++) {\r\n var k = keys[_a];\r\n entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k]));\r\n }\r\n }\r\n return (entries.length && prefixIfNotEmpty ? '?' : '')\r\n + entries.join(ENTRY_SEPARATOR);\r\n }\r\n exports.encode = encode;\r\n function encodeValue(value) {\r\n var v = null;\r\n if (isUriComponentFormattable(value)) {\r\n v = value.toUriComponent();\r\n if (v && v.indexOf('&') != 1)\r\n throw '.toUriComponent() did not encode the value.';\r\n }\r\n else {\r\n v = encodeURIComponent(Serialization.toString(v));\r\n }\r\n return v;\r\n }\r\n exports.encodeValue = encodeValue;\r\n function isUriComponentFormattable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, \"toUriComponent\", Types_1.default.FUNCTION);\r\n }\r\n exports.isUriComponentFormattable = isUriComponentFormattable;\r\n function parse(query, entryHandler, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n if (query && (query = query.replace(/^\\s*\\?+/, ''))) {\r\n var entries = query.split(ENTRY_SEPARATOR);\r\n for (var _i = 0; _i < entries.length; _i++) {\r\n var entry = entries[_i];\r\n var si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n if (si != -1) {\r\n var key = entry.substring(0, si);\r\n var value = entry.substring(si + 1);\r\n if (decodeValues)\r\n value = decodeURIComponent(value);\r\n if (deserialize)\r\n value = Serialization.toPrimitive(value);\r\n entryHandler(key, value);\r\n }\r\n }\r\n }\r\n }\r\n exports.parse = parse;\r\n function parseToMap(query, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var result = {};\r\n parse(query, function (key, value) {\r\n if ((key) in (result)) {\r\n var prev = result[key];\r\n if (!(Array.isArray(prev)))\r\n result[key] = prev = [prev];\r\n prev.push(value);\r\n }\r\n else\r\n result[key] = value;\r\n }, deserialize, decodeValues);\r\n return result;\r\n }\r\n exports.parseToMap = parseToMap;\r\n function parseToArray(query, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var result = [];\r\n parse(query, function (key, value) { result.push({ key: key, value: value }); }, deserialize, decodeValues);\r\n return result;\r\n }\r\n exports.parseToArray = parseToArray;\r\n var Separator;\r\n (function (Separator) {\r\n Separator.Entry = ENTRY_SEPARATOR;\r\n Separator.KeyValue = KEY_VALUE_SEPARATOR;\r\n })(Separator = exports.Separator || (exports.Separator = {}));\r\n Object.freeze(Separator);\r\n});\r\n//# sourceMappingURL=QueryParams.js.map","/*\r\n * @author 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 * as Serialization from '../Serialization/Utility';\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 * Returns the encoded URI string\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap|IKeyValuePair[],\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[] = [];\r\n\r\n\tif(Array.isArray(values))\r\n\t{\r\n\t\tfor(let kvp of values)\r\n\t\t{\r\n\t\t\tif(kvp) entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value));\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\tvar keys = Object.keys(values);\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tentries.push(k + KEY_VALUE_SEPARATOR + encodeValue((values)[k]));\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\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:Primitive|ISerializable|IUriComponentFormattable):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\r\n * @param decodeValues\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\r\n * @param decodeValues\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\r\n * @param decodeValues\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IKeyValuePair[]\r\n{\r\n\tvar result:IKeyValuePair[] = [];\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\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","Types_1","Serialization","KeyValueExtract_1","encode","values","prefixIfNotEmpty","encodeValue","value","isUriComponentFormattable","instance","parse","query","entryHandler","deserialize","decodeValues","parseToMap","parseToArray","ENTRY_SEPARATOR","KEY_VALUE_SEPARATOR","Separator","Object","freeze"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,WAAY,2BAA4B,sBAAuB,SAAUC,EAASC,EAASC,EAASC,EAAeC,GCOjJ,YAkBA,SAAAC,GACCC,EACAC,GAEAF,IAAIA,EAAQA,MAAOA,EACnBA,IAAIA,EAiBJA,OAbCA,GAFEA,MAAMA,QAAQA,GAENA,EAAOA,IAChBA,SAAAA,GAAKA,MAAAA,GAAAA,WAAgBA,EACpBA,SAACA,EAAKA,GAAQA,MAAAA,GAAMA,EAAsBA,EAAYA,OAM9CA,OAAOA,KAAKA,GAAQA,IAC7BA,SAAAA,GAAMA,MAAAA,GAAMA,EAAsBA,EAAkBA,EAAQA,OAItDA,EAAQA,QAAUA,EAAmBA,IAAMA,IAChDA,EAAQA,KAAKA,GAQjB,QAAAG,GAA4BC,GAE3BD,GAAIA,GAAWA,IACfA,IAAGA,EAA0BA,IAG5BA,GADAA,EAAIA,EAAMA,iBACPA,GAAqBA,GAAhBA,EAAEA,QAAQA,KACjBA,KAAMA,kDAIPA,GAAIA,mBAAmBA,EAAcA,SAASA,GAE/CA,OAAOA,GAQR,QAAAE,GAA0CC,GAEzCD,MAAOA,GAAAA,WAAKA,gBAA0CA,EAAUA,iBAAkBA,EAAAA,WAAKA,UAUxF,QAAAE,GACCC,EACAC,EACAC,EACAC,GAEAJ,GAHAA,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,GAEGA,IAAUA,EAAQA,EAAMA,QAAQA,UAAWA,KAG7CA,IAAiBA,GADbA,GAAUA,EAAMA,MAAMA,GACTA,EAAAA,EAAbA,EAAAA,EAAAA,OAAAA,IAAqBA,CAArBA,GAAIA,GAASA,EAAOA,GAMnBA,EAAKA,EAAMA,QAAQA,EACvBA,IAAQA,IAALA,EACHA,CACCA,GAAIA,GAAMA,EAAMA,UAAUA,EAAGA,GACzBA,EAAaA,EAAMA,UAAUA,EAAKA,EACnCA,KAAcA,EAAQA,mBAAmBA,IACzCA,IAAaA,EAAQA,EAAcA,YAAYA,IAClDA,EAAaA,EAAKA,KAatB,QAAAK,GACCJ,EACAE,EACAC,GADAC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,KAgBJA,OAfAA,GAAMA,EACLA,SAACA,EAAKA,GAELA,GAAGA,IAAOA,GACVA,CACCA,GAAIA,GAAWA,EAAOA,EACjBA,OAAMA,QAAQA,KAClBA,EAAOA,GAAOA,GAAQA,IACvBA,EAAKA,KAAKA,OAGVA,GAAOA,GAAOA,GAEhBA,EACAA,GACMA,EAUR,QAAAC,GACCL,EACAE,EACAC,GADAE,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,KAMJA,OALAA,GAAMA,EACLA,SAACA,EAAKA,GAAUA,EAAOA,MAAMA,IAAKA,EAAKA,MAAOA,KAC9CA,EACAA,GAEMA,EApJR,GACCC,GAAsB,IACtBC,EAAsB,GAKPnB,GAAAI,OAAMA,EA+BNJ,EAAAO,YAAWA,EAqBXP,EAAAS,0BAAyBA,EAYzBT,EAAAW,MAAKA,EAmCLX,EAAAgB,WAAUA,EA+BVhB,EAAAiB,aAAYA,CAe5B,IAAcG,IAAd,SAAcA,GAEAA,EAAAA,MAAeA,EACfA,EAAAA,SAAkBA,GAHlBA,EAAApB,EAAAoB,YAAApB,EAAAoB,eAKdC,OAAOC,OAAOF","file":"System/Uri/QueryParams.js","sourcesContent":["define([\"require\", \"exports\", '../Types', '../Serialization/Utility', '../KeyValueExtract'], function (require, exports, Types_1, Serialization, KeyValueExtract_1) {\n 'use strict';\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\n function encode(values, prefixIfNotEmpty) {\n if (!values)\n return '';\n var entries;\n if (Array.isArray(values)) {\n entries = values.map(function (kvp) { return KeyValueExtract_1.default(kvp, function (key, value) { return key + KEY_VALUE_SEPARATOR + encodeValue(value); }); });\n }\n else {\n entries = Object.keys(values).map(function (key) { return key + KEY_VALUE_SEPARATOR + encodeValue(values[key]); });\n }\n return (entries.length && prefixIfNotEmpty ? '?' : '')\n + entries.join(ENTRY_SEPARATOR);\n }\n exports.encode = encode;\n function encodeValue(value) {\n var v = null;\n if (isUriComponentFormattable(value)) {\n v = value.toUriComponent();\n if (v && v.indexOf('&') != 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.default.hasMemberOfType(instance, \"toUriComponent\", Types_1.default.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; _i < entries.length; _i++) {\n var entry = entries[_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.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\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\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 * Returns the encoded URI string\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap|StringKeyValuePair[],\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[];\r\n\r\n\tif(Array.isArray(values))\r\n\t{\r\n\t\tentries = values.map(\r\n\t\t\tkvp=>extractKeyValue(kvp,\r\n\t\t\t\t(key, value)=>key + KEY_VALUE_SEPARATOR + encodeValue(value)\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tentries = Object.keys(values).map(\r\n\t\t\tkey=> key + KEY_VALUE_SEPARATOR + encodeValue((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\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:Primitive|ISerializable|IUriComponentFormattable):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 diff --git a/dist/amd/System/Uri/Scheme.js b/dist/amd/System/Uri/Scheme.js index 70380b6a..28411aae 100644 --- a/dist/amd/System/Uri/Scheme.js +++ b/dist/amd/System/Uri/Scheme.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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){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}); //# sourceMappingURL=Scheme.js.map diff --git a/dist/amd/System/Uri/Scheme.js.map b/dist/amd/System/Uri/Scheme.js.map index 31d0be7f..7b1b6cfa 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","UriScheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":";;;;;AAKAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCElD,GAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,MAAAA,GAAAA,QAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,KAAAA,IAAAA,OAMAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,KAAAA,IAAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAUA,EAAUG,MAAQF,EAC5BD,EAAUA,EAAUI,KAAOF,EAErBF,EAAWC,GAAQD,EAAUG,KAC7BH,EAAWE,GAAOF,EAAUI,IAElCC,OAAOC,OAAON,GAEdK,OAAAE,eAAAR,EAAA,cAAAS,OAAA,IDnEIT,EAAAA,WCmEWC","file":"System/Uri/Scheme.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://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var UriScheme;\r\n (function (UriScheme) {\r\n UriScheme[UriScheme[\"file\"] = 0] = \"file\";\r\n UriScheme[UriScheme[\"ftp\"] = 1] = \"ftp\";\r\n UriScheme[UriScheme[\"gopher\"] = 2] = \"gopher\";\r\n UriScheme[UriScheme[\"http\"] = 3] = \"http\";\r\n UriScheme[UriScheme[\"https\"] = 4] = \"https\";\r\n UriScheme[UriScheme[\"ldap\"] = 5] = \"ldap\";\r\n UriScheme[UriScheme[\"mailto\"] = 6] = \"mailto\";\r\n UriScheme[UriScheme[\"pipe\"] = 7] = \"pipe\";\r\n UriScheme[UriScheme[\"tcp\"] = 8] = \"tcp\";\r\n UriScheme[UriScheme[\"news\"] = 9] = \"news\";\r\n UriScheme[UriScheme[\"nntp\"] = 10] = \"nntp\";\r\n UriScheme[UriScheme[\"telnet\"] = 11] = \"telnet\";\r\n UriScheme[UriScheme[\"uuid\"] = 12] = \"uuid\";\r\n })(UriScheme || (UriScheme = {}));\r\n var PIPE = 'net.pipe';\r\n var TCP = 'net.tcp';\r\n UriScheme[UriScheme.pipe] = PIPE;\r\n UriScheme[UriScheme.tcp] = TCP;\r\n UriScheme[PIPE] = UriScheme.pipe;\r\n UriScheme[TCP] = UriScheme.tcp;\r\n Object.freeze(UriScheme);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = UriScheme;\r\n});\r\n//# sourceMappingURL=Scheme.js.map","/*\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\r\nenum UriScheme {\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\nUriScheme[UriScheme.pipe] = PIPE;\r\nUriScheme[UriScheme.tcp] = TCP;\r\n\r\n(UriScheme)[PIPE] = UriScheme.pipe;\r\n(UriScheme)[TCP] = UriScheme.tcp;\r\n\r\nObject.freeze(UriScheme);\r\n\r\nexport default UriScheme;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Uri/Scheme.js","System/Uri/Scheme.ts"],"names":["define","require","exports","UriScheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCMlD,GAAKC,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,MAAAA,GAAAA,QAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,KAAAA,IAAAA,OAMAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,KAAAA,IAAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAUA,EAAUG,MAAQF,EAC5BD,EAAUA,EAAUI,KAAOF,EAErBF,EAAWC,GAAQD,EAAUG,KAC7BH,EAAWE,GAAOF,EAAUI,IAElCC,OAAOC,OAAON,GAEdK,OAAAE,eAAAR,EAAA,cAAAS,OAAA,IDvEIT,EAAAA,WCuEWC","file":"System/Uri/Scheme.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\n var UriScheme;\n (function (UriScheme) {\n UriScheme[UriScheme[\"file\"] = 0] = \"file\";\n UriScheme[UriScheme[\"ftp\"] = 1] = \"ftp\";\n UriScheme[UriScheme[\"gopher\"] = 2] = \"gopher\";\n UriScheme[UriScheme[\"http\"] = 3] = \"http\";\n UriScheme[UriScheme[\"https\"] = 4] = \"https\";\n UriScheme[UriScheme[\"ldap\"] = 5] = \"ldap\";\n UriScheme[UriScheme[\"mailto\"] = 6] = \"mailto\";\n UriScheme[UriScheme[\"pipe\"] = 7] = \"pipe\";\n UriScheme[UriScheme[\"tcp\"] = 8] = \"tcp\";\n UriScheme[UriScheme[\"news\"] = 9] = \"news\";\n UriScheme[UriScheme[\"nntp\"] = 10] = \"nntp\";\n UriScheme[UriScheme[\"telnet\"] = 11] = \"telnet\";\n UriScheme[UriScheme[\"uuid\"] = 12] = \"uuid\";\n })(UriScheme || (UriScheme = {}));\n var PIPE = 'net.pipe';\n var TCP = 'net.tcp';\n UriScheme[UriScheme.pipe] = PIPE;\n UriScheme[UriScheme.tcp] = TCP;\n UriScheme[PIPE] = UriScheme.pipe;\n UriScheme[TCP] = UriScheme.tcp;\n Object.freeze(UriScheme);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriScheme;\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\nenum UriScheme {\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\nUriScheme[UriScheme.pipe] = PIPE;\r\nUriScheme[UriScheme.tcp] = TCP;\r\n\r\n(UriScheme)[PIPE] = UriScheme.pipe;\r\n(UriScheme)[TCP] = UriScheme.tcp;\r\n\r\nObject.freeze(UriScheme);\r\n\r\nexport default UriScheme;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Uri/Uri.js b/dist/amd/System/Uri/Uri.js index ceae9028..9b683c50 100644 --- a/dist/amd/System/Uri/Uri.js +++ b/dist/amd/System/Uri/Uri.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -define(["require","exports","../Types","../Uri/QueryParams","../Text/Utility","../Uri/Scheme","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],function(t,e,r,n,u,i,o,s){function f(t,e){void 0===e&&(e={});for(var r,n=0;r=m.Fields[n++];){var u=t[r];u&&(e[r]=u)}return e}function a(t){var e=t;if(r["default"].isString(e)){if(!e)return void 0;if(e=i["default"][u.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,O)],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 void 0}function l(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||O;return e&&(t.userInfo&&(e=t.userInfo+x+e),isNaN(t.port)||(e+=":"+t.port),e=b+e),e}function c(t){return t&&(-1==t.indexOf(v)?v:O)+t}function h(t){return t&&(-1==t.indexOf(w)?w:O)+t}function p(t){var e=t.path,r=t.query;return O+(e&&(-1==e.indexOf(y)?y:O)+e||O)+(c(r)||O)}function d(t){var e=a(t.scheme),r=l(t),n=p(t),u=h(t.fragment);return O+(e&&e+":"||O)+(r||O)+(n||O)+(u||O)}function g(t,e){if(!t)return new o["default"]("url","Nothing to parse.");var r,n={};if(r=t.indexOf(w),-1!=r&&(n.fragment=t.substring(r),t=t.substring(0,r)),r=t.indexOf(v),-1!=r&&(n.query=t.substring(r),t=t.substring(0,r)),r=t.indexOf(b),-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,O)),n.scheme=i||void 0,t=t.substring(r+2)}if(r=t.indexOf(y),-1!=r&&(n.path=t.substring(r)||void 0,t=t.substring(0,r)),r=t.indexOf(x),-1!=r&&(n.userInfo=t.substring(0,r)||void 0,t=t.substring(r+1)),r=t.indexOf(":"),-1!=r){var a=parseInt(u.trim(t.substring(r+1)));if(isNaN(a))return new o["default"]("url","Port was invalid.");n.port=a,t=t.substring(0,r)}return t=u.trim(t),t&&(n.host=t),e(f(n)),null}var m,m=function(){function t(t,e,u,i,o,s,f){var l=this;l.scheme=a(t)||null,l.userInfo=e||null,l.host=u||null,l.port=i||null,l.authority=l.getAuthority()||null,l.path=o||null,r["default"].isString(s)||(s=n.encode(s)),l.query=c(s)||null,Object.freeze(l.queryParams=l.query?n.parseToMap(l.query):{}),l.pathAndQuery=l.getPathAndQuery()||null,l.fragment=h(f)||null,l.absoluteUri=l.getAbsoluteUri(),Object.freeze(l)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e){var n=!e||r["default"].isString(e)?t.parse(e):e;return new t(n.scheme,n.userInfo,n.host,n.port,n.path,n.query,n.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=g(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!g(t,e)},t.copyOf=function(t){return f(t)},t.prototype.copyTo=function(t){return f(this,t)},t.prototype.getAbsoluteUri=function(){return d(this)},t.prototype.getAuthority=function(){return l(this)},t.prototype.getPathAndQuery=function(){return p(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 r["default"].isInstanceOf(e,t)?e.absoluteUri:d(e)},t.getAuthority=function(t){return l(t)},t}();!function(t){!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"}(t.Fields||(t.Fields={}));var e=t.Fields;Object.freeze(e)}(m||(m={}));var y="/",b="//",v="?",w="#",O="",x="@";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=m}); +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 f(t,e){var r,n=0;for(e||(e={});r=m[n++];){var u=t[r];u&&(e[r]=u)}return e}function a(t){var e=t;if(r["default"].isString(e)){if(!e)return;if(e=i["default"][u.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,x)],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}}function l(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||x;return e&&(t.userInfo&&(e=t.userInfo+q+e),isNaN(t.port)||(e+=":"+t.port),e=v+e),e}function c(t){return t&&(-1==t.indexOf(w)?w:x)+t}function h(t){return t&&(-1==t.indexOf(O)?O:x)+t}function p(t){var e=t.path,r=t.query;return x+(e&&(-1==e.indexOf(b)?b:x)+e||x)+(c(r)||x)}function d(t){var e=a(t.scheme),r=l(t),n=p(t),u=h(t.fragment);return x+(e&&e+":"||x)+(r||x)+(n||x)+(u||x)}function g(t,e){if(!t)return new o["default"]("url","Nothing to parse.");var r,n={};if(r=t.indexOf(O),-1!=r&&(n.fragment=t.substring(r),t=t.substring(0,r)),r=t.indexOf(w),-1!=r&&(n.query=t.substring(r),t=t.substring(0,r)),r=t.indexOf(v),-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,x)),n.scheme=i||void 0,t=t.substring(r+2)}if(r=t.indexOf(b),-1!=r&&(n.path=t.substring(r)||void 0,t=t.substring(0,r)),r=t.indexOf(q),-1!=r&&(n.userInfo=t.substring(0,r)||void 0,t=t.substring(r+1)),r=t.indexOf(":"),-1!=r){var a=parseInt(u.trim(t.substring(r+1)));if(isNaN(a))return new o["default"]("url","Port was invalid.");n.port=a,t=t.substring(0,r)}return t=u.trim(t),t&&(n.host=t),e(f(n)),null}var y=function(){function t(t,e,u,i,o,s,f){var l=this;l.scheme=a(t)||null,l.userInfo=e||null,l.host=u||null,l.port=i||null,l.authority=l.getAuthority()||null,l.path=o||null,r["default"].isString(s)||(s=n.encode(s)),l.query=c(s)||null,Object.freeze(l.queryParams=l.query?n.parseToMap(l.query):{}),l.pathAndQuery=l.getPathAndQuery()||null,l.fragment=h(f)||null,l.absoluteUri=l.getAbsoluteUri(),Object.freeze(l)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e){var n=!e||r["default"].isString(e)?t.parse(e):e;return new t(n.scheme,n.userInfo,n.host,n.port,n.path,n.query,n.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=g(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!g(t,e)},t.copyOf=function(t){return f(t)},t.prototype.copyTo=function(t){return f(this,t)},t.prototype.updateQuery=function(e){var r=this.toMap();return r.query=e,t.from(r)},t.prototype.getAbsoluteUri=function(){return d(this)},t.prototype.getAuthority=function(){return l(this)},t.prototype.getPathAndQuery=function(){return p(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:d(e)},t.getAuthority=function(t){return l(t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=y,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 m=e.Fields;Object.freeze(m);var b="/",v="//",w="?",O="#",x="",q="@"}); //# sourceMappingURL=Uri.js.map diff --git a/dist/amd/System/Uri/Uri.js.map b/dist/amd/System/Uri/Uri.js.map index 819ce498..7d96081b 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","getScheme","scheme","getAuthority","uri","formatQuery","query","formatFragment","fragment","getPathAndQuery","uriToString","tryParse","url","out","Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","get","Uri.pathSegments","enumerable","configurable","Uri.toMap","Uri.toString","Uri.Fields","SLASH","SLASH2","QM","HASH","EMPTY","AT","Object","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Scheme', '../Exceptions/ArgumentException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var QueryParams = require('../Uri/QueryParams');\r\n var Utility_1 = require('../Text/Utility');\r\n var Scheme_1 = require('../Uri/Scheme');\r\n var ArgumentException_1 = require('../Exceptions/ArgumentException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var Uri = (function () {\r\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\r\n var _ = this;\r\n _.scheme = getScheme(scheme) || null;\r\n _.userInfo = userInfo || null;\r\n _.host = host || null;\r\n _.port = port || null;\r\n _.authority = _.getAuthority() || null;\r\n _.path = path || null;\r\n if (!Types_1.default.isString(query))\r\n query = QueryParams.encode(query);\r\n _.query = formatQuery(query) || null;\r\n Object.freeze(_.queryParams\r\n = _.query\r\n ? QueryParams.parseToMap(_.query)\r\n : {});\r\n _.pathAndQuery = _.getPathAndQuery() || null;\r\n _.fragment = formatFragment(fragment) || null;\r\n _.absoluteUri = _.getAbsoluteUri();\r\n Object.freeze(_);\r\n }\r\n Uri.prototype.equals = function (other) {\r\n return this === other || this.absoluteUri == Uri.toString(other);\r\n };\r\n Uri.from = function (url) {\r\n var uri = (!url || Types_1.default.isString(url))\r\n ? Uri.parse(url) : url;\r\n return new Uri(uri.scheme, uri.userInfo, uri.host, uri.port, uri.path, uri.query, uri.fragment);\r\n };\r\n Uri.parse = function (url, throwIfInvalid) {\r\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\r\n var result = null;\r\n var ex = tryParse(url, function (out) { result = out; });\r\n if (throwIfInvalid && ex)\r\n throw ex;\r\n return result;\r\n };\r\n Uri.tryParse = function (url, out) {\r\n return !tryParse(url, out);\r\n };\r\n Uri.copyOf = function (map) {\r\n return copyUri(map);\r\n };\r\n Uri.prototype.copyTo = function (map) {\r\n return copyUri(this, map);\r\n };\r\n Uri.prototype.getAbsoluteUri = function () {\r\n return uriToString(this);\r\n };\r\n Uri.prototype.getAuthority = function () {\r\n return getAuthority(this);\r\n };\r\n Uri.prototype.getPathAndQuery = function () {\r\n return getPathAndQuery(this);\r\n };\r\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\r\n get: function () {\r\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Uri.prototype.toMap = function () {\r\n return this.copyTo({});\r\n };\r\n Uri.prototype.toString = function () {\r\n return this.absoluteUri;\r\n };\r\n Uri.toString = function (uri) {\r\n return Types_1.default.isInstanceOf(uri, Uri)\r\n ? uri.absoluteUri\r\n : uriToString(uri);\r\n };\r\n Uri.getAuthority = function (uri) {\r\n return getAuthority(uri);\r\n };\r\n return Uri;\r\n })();\r\n var Uri;\r\n (function (Uri) {\r\n (function (Fields) {\r\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\r\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\r\n Fields[Fields[\"host\"] = 2] = \"host\";\r\n Fields[Fields[\"port\"] = 3] = \"port\";\r\n Fields[Fields[\"path\"] = 4] = \"path\";\r\n Fields[Fields[\"query\"] = 5] = \"query\";\r\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\r\n })(Uri.Fields || (Uri.Fields = {}));\r\n var Fields = Uri.Fields;\r\n Object.freeze(Fields);\r\n })(Uri || (Uri = {}));\r\n function copyUri(from, to) {\r\n if (to === void 0) { to = {}; }\r\n var i = 0, field;\r\n while (field = Uri.Fields[i++]) {\r\n var value = from[field];\r\n if (value)\r\n to[field] = value;\r\n }\r\n return to;\r\n }\r\n var SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\r\n function getScheme(scheme) {\r\n var s = scheme;\r\n if (Types_1.default.isString(s)) {\r\n if (!s)\r\n return undefined;\r\n s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\r\n if (isNaN(s))\r\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\r\n }\r\n if (Types_1.default.isNumber(s, false)) {\r\n s = Scheme_1.default[s];\r\n if (!s)\r\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\r\n return s;\r\n }\r\n return undefined;\r\n }\r\n function getAuthority(uri) {\r\n if (!uri.host) {\r\n if (uri.userInfo)\r\n throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.');\r\n if (Types_1.default.isNumber(uri.port, false))\r\n throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.');\r\n }\r\n var result = uri.host || EMPTY;\r\n if (result) {\r\n if (uri.userInfo)\r\n result = uri.userInfo + AT + result;\r\n if (!isNaN(uri.port))\r\n result += ':' + uri.port;\r\n result = SLASH2 + result;\r\n }\r\n return result;\r\n }\r\n function formatQuery(query) {\r\n return query && ((query.indexOf(QM) == -1 ? QM : EMPTY) + query);\r\n }\r\n function formatFragment(fragment) {\r\n return fragment && ((fragment.indexOf(HASH) == -1 ? HASH : EMPTY) + fragment);\r\n }\r\n function getPathAndQuery(uri) {\r\n var path = uri.path, query = uri.query;\r\n return EMPTY\r\n + (path && ((path.indexOf(SLASH) == -1 ? SLASH : EMPTY) + path) || EMPTY)\r\n + (formatQuery(query) || EMPTY);\r\n }\r\n function uriToString(uri) {\r\n // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n // {scheme}{authority}{path}{query}{fragment}\r\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\r\n return EMPTY\r\n + ((scheme && (scheme + ':')) || EMPTY)\r\n + (authority || EMPTY)\r\n + (pathAndQuery || EMPTY)\r\n + (fragment || EMPTY);\r\n }\r\n function tryParse(url, out) {\r\n if (!url)\r\n return new ArgumentException_1.default('url', 'Nothing to parse.');\r\n var i, result = {};\r\n i = url.indexOf(HASH);\r\n if (i != -1) {\r\n result.fragment = url.substring(i);\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(QM);\r\n if (i != -1) {\r\n result.query = url.substring(i);\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(SLASH2);\r\n if (i != -1) {\r\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\r\n if (!c.test(scheme))\r\n return new ArgumentException_1.default('url', 'Scheme was improperly formatted');\r\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\r\n result.scheme = scheme || undefined;\r\n url = url.substring(i + 2);\r\n }\r\n i = url.indexOf(SLASH);\r\n if (i != -1) {\r\n result.path = url.substring(i) || undefined;\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(AT);\r\n if (i != -1) {\r\n result.userInfo = url.substring(0, i) || undefined;\r\n url = url.substring(i + 1);\r\n }\r\n i = url.indexOf(':');\r\n if (i != -1) {\r\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\r\n if (isNaN(port))\r\n return new ArgumentException_1.default('url', 'Port was invalid.');\r\n result.port = port;\r\n url = url.substring(0, i);\r\n }\r\n url = Utility_1.trim(url);\r\n if (url)\r\n result.host = url;\r\n out(copyUri(result));\r\n return null;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Uri;\r\n});\r\n//# sourceMappingURL=Uri.js.map","/*\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\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 ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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 */\r\nclass Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:string;\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|string,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery:string|IUriComponentMap|IKeyValuePair[],\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\t\t_.port = port || null;\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// 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 url\r\n\t * @returns {Uri} An validated Uri object with the values.\r\n\t */\r\n\tstatic from(url:string|IUri):Uri\r\n\t{\r\n\t\tvar uri = (!url || Type.isString(url))\r\n\t\t\t? Uri.parse(url) : url;\r\n\r\n\t\treturn new Uri(\r\n\t\t\turi.scheme,\r\n\t\t\turi.userInfo,\r\n\t\t\turi.host,\r\n\t\t\turi.port,\r\n\t\t\turi.path,\r\n\t\t\turi.query,\r\n\t\t\turi.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\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\treturn !tryParse(url,out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri {\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\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 * 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 Type.isInstanceOf(uri,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\nmodule Uri {\r\n\texport enum Fields {\r\n\t\tscheme,\r\n\t\tuserInfo,\r\n\t\thost,\r\n\t\tport,\r\n\t\tpath,\r\n\t\tquery,\r\n\t\tfragment\r\n\t}\r\n\tObject.freeze(Fields);\r\n}\r\n\r\nfunction copyUri(from:IUri, to:IUri = {}) {\r\n\tvar i = 0, field:string;\r\n\twhile(field = Uri.Fields[i++]) {\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):string\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return undefined;\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 undefined;\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)== -1 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)== -1 ? 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 && ((path.indexOf(SLASH)== -1 ? SLASH : EMPTY) + 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\treturn EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY)\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY)\r\n\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);\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);\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\tresult.scheme = scheme || undefined;\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) || undefined;\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) || undefined;\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;\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","Utility_1","Scheme_1","ArgumentException_1","ArgumentOutOfRangeException_1","copyUri","from","to","getScheme","scheme","getAuthority","uri","formatQuery","query","formatFragment","fragment","getPathAndQuery","uriToString","tryParse","url","out","Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.updateQuery","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","get","Uri.pathSegments","enumerable","configurable","Uri.toMap","Uri.toString","Object","defineProperty","value","Fields","freeze","SLASH","SLASH2","QM","HASH","EMPTY","AT"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["define([\"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 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 = port || null;\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 Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (url) {\n var uri = (!url || Types_1.default.isString(url))\n ? Uri.parse(url) : url;\n return new Uri(uri.scheme, uri.userInfo, uri.host, uri.port, uri.path, uri.query, uri.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 undefined;\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 undefined;\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) == -1 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) == -1 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path && ((path.indexOf(SLASH) == -1 ? SLASH : EMPTY) + 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 return EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY)\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\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);\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i);\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 result.scheme = scheme || undefined;\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i) || undefined;\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || undefined;\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///\r\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 * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\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 ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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:string;\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|string,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:string|IUriComponentMap|StringKeyValuePair[],\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\t\t_.port = port || null;\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// 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 url\r\n\t * @returns {Uri} An validated Uri object with the values.\r\n\t */\r\n\tstatic from(url:string|IUri):Uri\r\n\t{\r\n\t\tvar uri = (!url || Type.isString(url))\r\n\t\t\t? Uri.parse(url) : url;\r\n\r\n\t\treturn new Uri(\r\n\t\t\turi.scheme,\r\n\t\t\turi.userInfo,\r\n\t\t\turi.host,\r\n\t\t\turi.port,\r\n\t\t\turi.path,\r\n\t\t\turi.query,\r\n\t\t\turi.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\treturn !tryParse(url,out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri {\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:string|IUriComponentMap|StringKeyValuePair[]):Uri {\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 * 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\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++]) {\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):string\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return undefined;\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 undefined;\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)== -1 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)== -1 ? 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 && ((path.indexOf(SLASH)== -1 ? SLASH : EMPTY) + 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\treturn EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY)\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY)\r\n\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);\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);\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\tresult.scheme = scheme || undefined;\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) || undefined;\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) || undefined;\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 diff --git a/dist/amd/System/Utility/applyMixins.js b/dist/amd/System/Utility/applyMixins.js index 5f2d9362..6a381ba4 100644 --- a/dist/amd/System/Utility/applyMixins.js +++ b/dist/amd/System/Utility/applyMixins.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ define(["require","exports"],function(e,t){function o(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(o){e.prototype[o]=t.prototype[o]})})}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# sourceMappingURL=applyMixins.js.map diff --git a/dist/amd/System/Utility/applyMixins.js.map b/dist/amd/System/Utility/applyMixins.js.map index cbafcd3f..60bf5f70 100644 --- a/dist/amd/System/Utility/applyMixins.js.map +++ b/dist/amd/System/Utility/applyMixins.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/applyMixins.js","System/Utility/applyMixins.ts"],"names":["define","require","exports","applyMixins","derivedConstructor","baseConstructors","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCClD,QAAAC,GAAoCC,EAAwBC,GAE3DF,EACEA,QAAQA,SAAAA,GAERA,OAAOA,oBAAoBA,EAAGA,WAAWA,QACvCA,SAAAA,GAEAA,EAAmBA,UAAUA,GAAQA,EAAGA,UAAUA,OARvDG,OAAAC,eAAAL,EAAA,cAAAM,OAAA,IDSIN,EAAAA,WAAkBC","file":"System/Utility/applyMixins.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function applyMixins(derivedConstructor, baseConstructors) {\r\n baseConstructors\r\n .forEach(function (bc) {\r\n Object.getOwnPropertyNames(bc.prototype).forEach(function (name) {\r\n derivedConstructor.prototype[name] = bc.prototype[name];\r\n });\r\n });\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = applyMixins;\r\n});\r\n//# sourceMappingURL=applyMixins.js.map","/*\r\n * @author 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 applyMixins(derivedConstructor:any, baseConstructors:any[]):void\r\n{\r\n\tbaseConstructors\r\n\t\t.forEach(bc =>\r\n\t\t{\r\n\t\t\tObject.getOwnPropertyNames(bc.prototype).forEach(\r\n\t\t\t\t\tname =>\r\n\t\t\t\t{\r\n\t\t\t\t\tderivedConstructor.prototype[name] = bc.prototype[name];\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/applyMixins.js","System/Utility/applyMixins.ts"],"names":["define","require","exports","applyMixins","derivedConstructor","baseConstructors","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCKlD,QAAAC,GAAoCC,EAAwBC,GAE3DF,EACEA,QAAQA,SAAAA,GAERA,OAAOA,oBAAoBA,EAAGA,WAAWA,QACvCA,SAAAA,GAEAA,EAAmBA,UAAUA,GAAQA,EAAGA,UAAUA,OARvDG,OAAAC,eAAAL,EAAA,cAAAM,OAAA,IDKIN,EAAAA,WAAkBC","file":"System/Utility/applyMixins.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\n function applyMixins(derivedConstructor, baseConstructors) {\n baseConstructors\n .forEach(function (bc) {\n Object.getOwnPropertyNames(bc.prototype).forEach(function (name) {\n derivedConstructor.prototype[name] = bc.prototype[name];\n });\n });\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = applyMixins;\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 applyMixins(derivedConstructor:any, baseConstructors:any[]):void\r\n{\r\n\tbaseConstructors\r\n\t\t.forEach(bc =>\r\n\t\t{\r\n\t\t\tObject.getOwnPropertyNames(bc.prototype).forEach(\r\n\t\t\t\t\tname =>\r\n\t\t\t\t{\r\n\t\t\t\t\tderivedConstructor.prototype[name] = bc.prototype[name];\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Utility/clone.js b/dist/amd/System/Utility/clone.js index e167a1e0..0e666a8c 100644 --- a/dist/amd/System/Utility/clone.js +++ b/dist/amd/System/Utility/clone.js @@ -1,6 +1,2 @@ -/* - * @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){function f(e,r){if(void 0===r&&(r=0),0>r)return e;if(!i["default"].isObject(e))return e;var t;if(Array.isArray(e)){if(t=e.slice(),r>0)for(var n=0;n0)for(var u in e)t[u]=f(e[u],r-1);return t}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=f}); //# sourceMappingURL=clone.js.map diff --git a/dist/amd/System/Utility/clone.js.map b/dist/amd/System/Utility/clone.js.map index 30443893..fe2a0ae5 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","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCGvE,QAAAC,GAA8BC,EAAYC,GAEzCF,GAFyCA,SAAAA,IAAAA,EAAAA,GAEhCA,EAANA,EACFA,MAAOA,EAGRA,KAAIA,EAAAA,WAAKA,SAASA,GAASA,MAAOA,EAElCA,IAAIA,EACJA,IAAGA,MAAMA,QAAQA,IAGhBA,GADAA,EAAeA,EAAQA,QACpBA,EAAMA,EAERA,IAAIA,GAAIA,GAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE/BA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,OAOvCA,IADAA,KACGA,EAAMA,EAAGA,IAAIA,GAAIA,KAAKA,GAGxBA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,EAIvCA,OAAOA,GA9BRG,OAAAC,eAAAN,EAAA,cAAAO,OAAA,IDuBIP,EAAAA,WAAkBE","file":"System/Utility/clone.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types'], function (require, exports) {\r\n var Types_1 = require('../Types');\r\n function clone(source, depth) {\r\n if (depth === void 0) { depth = 0; }\r\n if (depth < 0)\r\n return source;\r\n if (!Types_1.default.isObject(source))\r\n return source;\r\n var result;\r\n if (Array.isArray(source)) {\r\n result = source.slice();\r\n if (depth > 0) {\r\n for (var i = 0; i < result.length; i++) {\r\n result[i] = clone(result[i], depth - 1);\r\n }\r\n }\r\n }\r\n else {\r\n result = {};\r\n if (depth > 0)\r\n for (var k in source) {\r\n result[k] = clone(source[k], depth - 1);\r\n }\r\n }\r\n return result;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = clone;\r\n});\r\n//# sourceMappingURL=clone.js.map","/*\r\n * @author 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","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,GCOvE,QAAAC,GAA8BC,EAAYC,GAEzCF,GAFyCA,SAAAA,IAAAA,EAAAA,GAEhCA,EAANA,EACFA,MAAOA,EAGRA,KAAIA,EAAAA,WAAKA,SAASA,GAASA,MAAOA,EAElCA,IAAIA,EACJA,IAAGA,MAAMA,QAAQA,IAGhBA,GADAA,EAAeA,EAAQA,QACpBA,EAAMA,EAERA,IAAIA,GAAIA,GAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE/BA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,OAOvCA,IADAA,KACGA,EAAMA,EAAGA,IAAIA,GAAIA,KAAKA,GAGxBA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,EAIvCA,OAAOA,GA9BRG,OAAAC,eAAAN,EAAA,cAAAO,OAAA,IDmBIP,EAAAA,WAAkBE","file":"System/Utility/clone.js","sourcesContent":["define([\"require\", \"exports\", '../Types'], function (require, exports, Types_1) {\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 diff --git a/dist/amd/System/Utility/shallowCopy.js b/dist/amd/System/Utility/shallowCopy.js index ce451aaf..5913349b 100644 --- a/dist/amd/System/Utility/shallowCopy.js +++ b/dist/amd/System/Utility/shallowCopy.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ define(["require","exports"],function(e,r){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}); //# sourceMappingURL=shallowCopy.js.map diff --git a/dist/amd/System/Utility/shallowCopy.js.map b/dist/amd/System/Utility/shallowCopy.js.map index 65009d5d..93362f08 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","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCClD,QAAAC,GAAoCC,EAAYC,GAE/CF,GAF+CA,SAAAA,IAAAA,MAE5CA,EAEFA,IAAIA,GAAIA,KAAKA,GAGZA,EAAOA,GAAKA,EAAOA,EAIrBA,OAAOA,GAXRG,OAAAC,eAAAL,EAAA,cAAAM,OAAA,IDUIN,EAAAA,WAAkBC","file":"System/Utility/shallowCopy.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function shallowCopy(source, target) {\r\n if (target === void 0) { target = {}; }\r\n if (target) {\r\n for (var k in source) {\r\n target[k] = source[k];\r\n }\r\n }\r\n return target;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = shallowCopy;\r\n});\r\n//# sourceMappingURL=shallowCopy.js.map","/*\r\n * @author 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","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCKlD,QAAAC,GAAoCC,EAAYC,GAE/CF,GAF+CA,SAAAA,IAAAA,MAE5CA,EAEFA,IAAIA,GAAIA,KAAKA,GAGZA,EAAOA,GAAKA,EAAOA,EAIrBA,OAAOA,GAXRG,OAAAC,eAAAL,EAAA,cAAAM,OAAA,IDMIN,EAAAA,WAAkBC","file":"System/Utility/shallowCopy.js","sourcesContent":["define([\"require\", \"exports\"], function (require, exports) {\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 diff --git a/dist/amd/System/Validation/ValidationResult.js b/dist/amd/System/Validation/ValidationResult.js index 8ec291a8..ca60dcd0 100644 --- a/dist/amd/System/Validation/ValidationResult.js +++ b/dist/amd/System/Validation/ValidationResult.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -define(["require","exports"],function(e,i){var t=new n(!0),n=function(){function e(e,i,t){void 0===e&&(e=!1),void 0===i&&(i=null),void 0===t&&(t=null),this.isValid=e,this.message=i,this.data=t,Object.freeze(this)}return e.prototype.equals=function(e){var i=this;return i.isValid===e.isValid&&i.message==i.message&&i.data==i.data},Object.defineProperty(e,"valid",{get:function(){return t},enumerable:!0,configurable:!0}),e.invalid=function(i,t){return void 0===t&&(t=null),new e(!1,i,t)},e}();Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=n}); +define(["require","exports"],function(e,i){"use strict";var t=new n(!0),n=function(){function e(e,i,t){void 0===e&&(e=!1),void 0===i&&(i=null),void 0===t&&(t=null),this.isValid=e,this.message=i,this.data=t,Object.freeze(this)}return e.prototype.equals=function(e){var i=this;return i.isValid===e.isValid&&i.message==i.message&&i.data==i.data},Object.defineProperty(e,"valid",{get:function(){return t},enumerable:!0,configurable:!0}),e.invalid=function(i,t){return void 0===t&&(t=null),new e(!1,i,t)},e}();Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=n}); //# sourceMappingURL=ValidationResult.js.map diff --git a/dist/amd/System/Validation/ValidationResult.js.map b/dist/amd/System/Validation/ValidationResult.js.map index 01c52f39..4cb1866a 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","ValidationResult.constructor","ValidationResult.equals","get","ValidationResult.valid","enumerable","configurable","ValidationResult.invalid","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCIlD,GAAMC,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOCA,QAAAA,GACQA,EACAA,EACAA,GAFPC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAFOA,KAAAA,QAAAA,EACAA,KAAAA,QAAAA,EACAA,KAAAA,KAAAA,EAIPA,OAAOA,OAAOA,MAgChBD,MA1BCA,GAAAA,UAAAA,OAAAA,SAAOA,GAENE,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,UAAUA,EAAMA,SACrBA,EAAEA,SAASA,EAAEA,SACbA,EAAEA,MAAMA,EAAEA,MAQfF,OAAAA,eAAWA,EAAAA,SDrBAG,ICqBXH,WACCI,MAAOA,IDnBGC,YAAY,EACZC,cAAc,ICwBlBN,EAAAA,QAAPA,SACCA,EACAA,GAEAO,MAFAA,UAAAA,IAAAA,EAAAA,MAEOA,GAAIA,IAAiBA,EAAOA,EAASA,IAE9CP,IA9CAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDyBIZ,EAAAA,WAAkBE","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n /// \r\n ///\r\n var valid = new ValidationResult(true);\r\n var ValidationResult = (function () {\r\n function ValidationResult(isValid, message, data) {\r\n if (isValid === void 0) { isValid = false; }\r\n if (message === void 0) { message = null; }\r\n if (data === void 0) { data = null; }\r\n this.isValid = isValid;\r\n this.message = message;\r\n this.data = data;\r\n Object.freeze(this);\r\n }\r\n ValidationResult.prototype.equals = function (other) {\r\n var _ = this;\r\n return _.isValid === other.isValid\r\n && _.message == _.message\r\n && _.data == _.data;\r\n };\r\n Object.defineProperty(ValidationResult, \"valid\", {\r\n get: function () {\r\n return valid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ValidationResult.invalid = function (message, data) {\r\n if (data === void 0) { data = null; }\r\n return new ValidationResult(false, message, data);\r\n };\r\n return ValidationResult;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ValidationResult;\r\n});\r\n//# sourceMappingURL=ValidationResult.js.map","/*\r\n * @author 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\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","ValidationResult.constructor","ValidationResult.equals","get","ValidationResult.valid","enumerable","configurable","ValidationResult.invalid","Object","defineProperty","value"],"mappings":"AAAAA,QAAQ,UAAW,WAAY,SAAUC,EAASC,GCIlD,YAKA,IAAMC,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOCA,QAAAA,GACQA,EACAA,EACAA,GAFPC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAFOA,KAAAA,QAAAA,EACAA,KAAAA,QAAAA,EACAA,KAAAA,KAAAA,EAIPA,OAAOA,OAAOA,MAgChBD,MA1BCA,GAAAA,UAAAA,OAAAA,SAAOA,GAENE,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,UAAUA,EAAMA,SACrBA,EAAEA,SAASA,EAAEA,SACbA,EAAEA,MAAMA,EAAEA,MAQfF,OAAAA,eAAWA,EAAAA,SD3BAG,IC2BXH,WACCI,MAAOA,IDzBGC,YAAY,EACZC,cAAc,IC8BlBN,EAAAA,QAAPA,SACCA,EACAA,GAEAO,MAFAA,UAAAA,IAAAA,EAAAA,MAEOA,GAAIA,IAAiBA,EAAOA,EAASA,IAE9CP,IA9CAQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,IDmBIZ,EAAAA,WAAkBE","file":"System/Validation/ValidationResult.js","sourcesContent":["define([\"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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/// \r\n///\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/Collections/Dictionaries/DictionaryBase.js b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js index 9b0377c6..743335e1 100644 --- a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js @@ -1,10 +1,10 @@ 'use strict'; var Compare_1 = require('../../Compare'); var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase'); -var ArgumentException_1 = require('../../Exceptions/ArgumentException'); var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException'); var InvalidOperationException_1 = require('../../Exceptions/InvalidOperationException'); -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.'; +var KeyValueExtract_1 = require('../../KeyValueExtract'); +var VOID0 = void (0); var DictionaryBase = (function () { function DictionaryBase() { this._updateRecursion = 0; @@ -58,8 +58,8 @@ var DictionaryBase = (function () { DictionaryBase.prototype.add = 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.'); - extractKeyValue(item, function (key, value) { return _this.addByKeyValue(key, value); }); + throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); }); }; DictionaryBase.prototype.clear = function () { var _ = this, keys = _.keys, count = keys.length; @@ -76,7 +76,7 @@ var DictionaryBase = (function () { var _this = this; if (!item) return false; - return extractKeyValue(item, function (key, value) { + return KeyValueExtract_1.default(item, function (key, value) { var v = _this.getValue(key); return Compare_1.areEqual(value, v); }); @@ -98,7 +98,7 @@ var DictionaryBase = (function () { var _this = this; if (!item) return 0; - return extractKeyValue(item, function (key, value) { + return KeyValueExtract_1.default(item, function (key, value) { var v = _this.getValue(key); return (Compare_1.areEqual(value, v) && _this.removeByKey(key)) ? 1 : 0; @@ -155,7 +155,7 @@ var DictionaryBase = (function () { var _ = this; return _.handleUpdate(function () { var changed = false; - pairs.forEach(function (pair) { return extractKeyValue(pair, function (key, value) { + pairs.forEach(function (pair) { return KeyValueExtract_1.default(pair, function (key, value) { _.setValue(key, value); changed = true; }); }); @@ -179,43 +179,6 @@ var DictionaryBase = (function () { }; return DictionaryBase; }()); -function isKVP(kvp) { - return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); -} -function assertKey(key, name) { - if (name === void 0) { name = ITEM; } - assertNotUndefined(key, name + DOT + KEY); - if (key === null) - throw new ArgumentNullException_1.default(name + DOT + KEY); - return key; -} -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.'); - assertKey(tuple[0], name); -} -function assertNotUndefined(value, name) { - if (value === VOID0) - throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED); - return value; -} -function extractKeyValue(item, to) { - var _ = this, key, value; - if (item instanceof Array) { - assertTuple(item); - key = item[0]; - value = assertNotUndefined(item[1], ITEM_1); - } - else if (isKVP(item)) { - key = assertKey(item.key); - value = assertNotUndefined(item.value, ITEM_VALUE); - } - else { - throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE); - } - return to(key, value); -} Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DictionaryBase; //# sourceMappingURL=DictionaryBase.js.map \ No newline at end of file diff --git a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map index dd203bff..6a22741f 100644 --- a/dist/commonjs/System/Collections/Dictionaries/DictionaryBase.js.map +++ b/dist/commonjs/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/commonjs/System/Uri/QueryBuilder.js b/dist/commonjs/System/Uri/QueryBuilder.js index a06db9cf..43fd54d9 100644 --- a/dist/commonjs/System/Uri/QueryBuilder.js +++ b/dist/commonjs/System/Uri/QueryBuilder.js @@ -13,13 +13,21 @@ var QueryBuilder = (function (_super) { function QueryBuilder(query, decodeValues) { if (decodeValues === void 0) { decodeValues = true; } _super.call(this); + this.importQuery(query, decodeValues); + } + QueryBuilder.prototype.importQuery = function (query, decodeValues) { + if (decodeValues === void 0) { decodeValues = true; } if (Types_1.default.isString(query)) { this.importFromString(query, decodeValues); } + else if (Array.isArray(query)) { + this.importPairs(query); + } else { this.importMap(query); } - } + return this; + }; QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } diff --git a/dist/commonjs/System/Uri/QueryBuilder.js.map b/dist/commonjs/System/Uri/QueryBuilder.js.map index fb890636..c0208c61 100644 --- a/dist/commonjs/System/Uri/QueryBuilder.js.map +++ b/dist/commonjs/System/Uri/QueryBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;;;;;;AAMb,sBAAiB,UAAU,CAAC,CAAA;AAE5B,IAAY,WAAW,WAAM,eAAe,CAAC,CAAA;AAC7C,2CAAuC,wDAAwD,CAAC,CAAA;AAEhG,IACA,eAAe,GAAO,GAAG,EACzB,mBAAmB,GAAG,GAAG,CAAC;AAO1B;IAC2B,gCAAiE;IAG3F,sBACC,KAA6B,EAC7B,YAA2B;QAA3B,4BAA2B,GAA3B,mBAA2B;QAE3B,iBAAO,CAAC;QAER,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAS,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,SAAS,CAAmB,KAAK,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IASD,uCAAgB,GAAhB,UACC,MAAa,EACb,WAA0B,EAC1B,YAA2B;QAD3B,2BAA0B,GAA1B,kBAA0B;QAC1B,4BAA2B,GAA3B,mBAA2B;QAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,WAAW,CAAC,KAAK,CAAC,MAAM,EACvB,UAAC,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;IAEM,iBAAI,GAAX,UACC,KAA6B,EAC7B,YAA2B;QAA3B,4BAA2B,GAA3B,mBAA2B;QAE3B,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAKD,6BAAM,GAAN,UAAO,gBAAyB;QAE/B,IAAI,OAAO,GAAY,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,GAAG,CAAA,CAAU,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,CAAC;YAAd,IAAI,CAAC,aAAA;YAER,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAG7B,GAAG,CAAA,CAAU,UAAsC,EAAtC,KAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,CAAC;gBAAhD,IAAI,CAAC,SAAA;gBAER,OAAO,CAAC,IAAI,CACX,CAAC,GAAG,mBAAmB;sBACrB,WAAW,CAAC,WAAW,CAAoB,CAAC,CAAC,CAAC,CAAC;aAClD;SACD;QAED,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,gBAAgB,GAAG,GAAG,GAAG,EAAE,CAAC;cACnD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,+BAAQ,GAAR;QAEC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IACF,mBAAC;AAAD,CAAC,AAxFD,CAC2B,oCAA0B,GAuFpD;AAxFD;8BAwFC,CAAA"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/commonjs/System/Uri/QueryParams.js b/dist/commonjs/System/Uri/QueryParams.js index cae74c83..cf13d04f 100644 --- a/dist/commonjs/System/Uri/QueryParams.js +++ b/dist/commonjs/System/Uri/QueryParams.js @@ -1,24 +1,17 @@ 'use strict'; var Types_1 = require('../Types'); var Serialization = require('../Serialization/Utility'); +var KeyValueExtract_1 = require('../KeyValueExtract'); var ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; function encode(values, prefixIfNotEmpty) { if (!values) return ''; - var entries = []; + var entries; if (Array.isArray(values)) { - for (var _i = 0, values_1 = values; _i < values_1.length; _i++) { - var kvp = values_1[_i]; - if (kvp) - entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value)); - } + entries = values.map(function (kvp) { return KeyValueExtract_1.default(kvp, function (key, value) { return key + KEY_VALUE_SEPARATOR + encodeValue(value); }); }); } else { - var keys = Object.keys(values); - for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { - var k = keys_1[_a]; - entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k])); - } + entries = Object.keys(values).map(function (key) { return key + KEY_VALUE_SEPARATOR + encodeValue(values[key]); }); } return (entries.length && prefixIfNotEmpty ? '?' : '') + entries.join(ENTRY_SEPARATOR); diff --git a/dist/commonjs/System/Uri/QueryParams.js.map b/dist/commonjs/System/Uri/QueryParams.js.map index 0dbc4a22..71ebf40b 100644 --- a/dist/commonjs/System/Uri/QueryParams.js.map +++ b/dist/commonjs/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/commonjs/System/Uri/Uri.js b/dist/commonjs/System/Uri/Uri.js index 53a3605a..0cc97079 100644 --- a/dist/commonjs/System/Uri/Uri.js +++ b/dist/commonjs/System/Uri/Uri.js @@ -51,6 +51,11 @@ var Uri = (function () { Uri.prototype.copyTo = function (map) { return copyUri(this, map); }; + Uri.prototype.updateQuery = function (query) { + var map = this.toMap(); + map.query = query; + return Uri.from(map); + }; Uri.prototype.getAbsoluteUri = function () { return uriToString(this); }; diff --git a/dist/commonjs/System/Uri/Uri.js.map b/dist/commonjs/System/Uri/Uri.js.map index a4100eeb..1d4c1031 100644 --- a/dist/commonjs/System/Uri/Uri.js.map +++ b/dist/commonjs/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":"AAQA,YAAY,CAAC;AAEb,sBAAiB,UAAU,CAAC,CAAA;AAC5B,IAAY,WAAW,WAAM,oBAAoB,CAAC,CAAA;AAClD,wBAAmB,iBAAiB,CAAC,CAAA;AACrC,uBAAsB,eAAe,CAAC,CAAA;AAEtC,kCAA8B,iCAAiC,CAAC,CAAA;AAEhE,4CAAwC,2CAA2C,CAAC,CAAA;AAQpF;IAsBC,aACC,MAAuB,EACvB,QAAe,EACf,IAAW,EACX,IAAW,EACX,IAAW,EACX,KAA8D,EAC9D,QAAgB;QAEhB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACrC,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QAEtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC;QAEvC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QAGtB,EAAE,CAAA,CAAC,CAAC,eAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,GAAG,WAAW,CAAC,MAAM,CAAmD,KAAK,CAAC,CAAC;QAErF,CAAC,CAAC,KAAK,GAAG,WAAW,CAAS,KAAK,CAAC,IAAI,IAAI,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;cACxB,CAAC,CAAC,KAAK;kBACP,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;kBAC/B,EAAE,CAAC,CAAC;QAEP,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC;QAE7C,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QAG9C,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;QAGnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAOD,oBAAM,GAAN,UAAO,KAAU;QAEhB,MAAM,CAAC,IAAI,KAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAQM,QAAI,GAAX,UAAY,GAAe;QAE1B,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,eAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;cACnC,GAAG,CAAC,KAAK,CAAS,GAAG,CAAC,GAAS,GAAG,CAAC;QAEtC,MAAM,CAAC,IAAI,GAAG,CACb,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,QAAQ,CACZ,CAAC;IACH,CAAC;IAQM,SAAK,GAAZ,UAAa,GAAU,EAAE,cAA6B;QAA7B,8BAA6B,GAA7B,qBAA6B;QAErD,IAAI,MAAM,GAAQ,IAAI,CAAC;QACvB,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAC,UAAC,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC;QAC9C,EAAE,CAAA,CAAC,cAAc,IAAI,EAAE,CAAC;YAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IAQM,YAAQ,GAAf,UAAgB,GAAU,EAAC,GAAuB;QACjD,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,UAAM,GAAb,UAAc,GAAQ;QACrB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,oBAAM,GAAN,UAAO,GAAQ;QAEd,MAAM,CAAC,OAAO,CAAC,IAAI,EAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,yBAAW,GAAX,UAAY,KAA6D;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,GAAQ,KAAK,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAMS,4BAAc,GAAxB;QAEC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAKS,0BAAY,GAAtB;QAEC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAKS,6BAAe,GAAzB;QAEC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IA0BD,sBAAI,6BAAY;aAAhB;YAEC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjD,CAAC;;;OAAA;IAMD,mBAAK,GAAL;QAEC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAKD,sBAAQ,GAAR;QAEC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAOM,YAAQ,GAAf,UAAgB,GAAQ;QAEvB,MAAM,CAAC,GAAG,YAAY,GAAG;cAChB,GAAI,CAAC,WAAW;cACtB,WAAW,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAOM,gBAAY,GAAnB,UAAoB,GAAQ;QAE3B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAGF,UAAC;AAAD,CAAC,AAnOD,IAmOC;AAnOD;qBAmOC,CAAA;AAED,WAAY,MAAM;IACjB,uCAAM,CAAA;IACN,2CAAQ,CAAA;IACR,mCAAI,CAAA;IACJ,mCAAI,CAAA;IACJ,mCAAI,CAAA;IACJ,qCAAK,CAAA;IACL,2CAAQ,CAAA;AACT,CAAC,EARW,cAAM,KAAN,cAAM,QAQjB;AARD,IAAY,MAAM,GAAN,cAQX,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,iBAAiB,IAAS,EAAE,EAAQ;IACnC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAY,CAAC;IACxB,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;QAAC,EAAE,GAAG,EAAE,CAAC;IAChB,OAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAS,IAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,EAAE,CAAA,CAAC,KAAK,CAAC;YAAO,EAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,MAAM,CAAC,EAAE,CAAC;AACX,CAAC;AAED,IAAM,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;AAE7E,mBAAmB,MAAuB;IAEzC,IAAI,CAAC,GAAO,MAAM,CAAC;IACnB,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;QACA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,SAAS,CAAC;QAExB,CAAC,GAAG,gBAAS,CAAM,cAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;QAE5E,EAAE,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACX,MAAM,IAAI,qCAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7E,CAAC;IAED,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAC3B,CAAC;QACA,CAAC,GAAG,gBAAS,CAAS,CAAC,CAAC,CAAC;QACzB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YACL,MAAM,IAAI,qCAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAE5E,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,SAAS,CAAC;AAClB,CAAC;AAED,sBAAsB,GAAQ;IAG7B,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CACb,CAAC;QACA,EAAE,CAAA,CAAC,GAAG,CAAC,QAAQ,CAAC;YACf,MAAM,IAAI,2BAAiB,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC;QAExF,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YAChC,MAAM,IAAI,2BAAiB,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;IACtF,CAAC;IAMD,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;IAE/B,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;QACA,EAAE,CAAA,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;QACrD,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;QAC9C,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AACf,CAAC;AAED,qBAAqB,KAAY;IAEhC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,wBAAwB,QAAe;IAEtC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAG,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED,yBAAyB,GAAQ;IAGhC,IAAI,IAAI,GAAI,GAAG,CAAC,IAAI,EAChB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAEtB,MAAM,CAAC,KAAK;UACT,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAG,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC;UACtE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AAElC,CAAC;AAED,qBAAqB,GAAQ;IAK5B,IAAI,MAAM,GAAS,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EACpC,SAAS,GAAM,YAAY,CAAC,GAAG,CAAC,EAChC,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,EACnC,QAAQ,GAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,CAAC,KAAK;UACT,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;UACrC,CAAC,SAAS,IAAI,KAAK,CAAC;UACpB,CAAC,YAAY,IAAI,KAAK,CAAC;UACvB,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAA;AAEvB,CAAC;AAID,kBAAkB,GAAU,EAAE,GAAuB;IAEpD,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;QACP,MAAM,CAAC,IAAI,2BAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAO1D,IAAI,CAAQ,EAAE,MAAM,GAAQ,EAAE,CAAC;IAG/B,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAGD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAGD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,IAAI,MAAM,GAAG,cAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACjD,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,2BAAiB,CAAC,KAAK,EAAC,iCAAiC,CAAC,CAAC;QAEvE,MAAM,GAAG,cAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC;QAEpC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAGD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QAC5C,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAGD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;QACnD,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAGD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CACV,CAAC;QACA,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,EAAE,CAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,2BAAiB,CAAC,KAAK,EAAC,mBAAmB,CAAC,CAAC;QAEzD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,GAAG,cAAI,CAAC,GAAG,CAAC,CAAC;IAChB,EAAE,CAAA,CAAC,GAAG,CAAC;QACN,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAEnB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAGrB,MAAM,CAAC,IAAI,CAAC;AAEb,CAAC"} \ No newline at end of file diff --git a/dist/es6/System.Linq/Linq.js b/dist/es6/System.Linq/Linq.js index a2089d19..1661c0a1 100644 --- a/dist/es6/System.Linq/Linq.js +++ b/dist/es6/System.Linq/Linq.js @@ -1,8 +1,4 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Original: http://linqjs.codeplex.com/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ +'use strict'; import * as Values from '../System/Compare'; import * as Arrays from '../System/Collections/Array/Compare'; import * as ArrayUtility from '../System/Collections/Array/Utility'; @@ -19,7 +15,7 @@ import DisposableBase from '../System/Disposable/DisposableBase'; import Exception from "../System/Exception"; import ObjectDisposedException from '../System/Disposable/ObjectDisposedException'; import KeySortedContext from "../System/Collections/Sorting/KeySortedContext"; -'use strict'; +const VOID0 = void 0; class LinqFunctions extends BaseFunctions { Greater(a, b) { return a > b ? a : b; @@ -45,7 +41,7 @@ export class Enumerable extends DisposableBase { } static from(source) { if (Type.isObject(source)) { - if (Type.isInstanceOf(source, Enumerable)) + if (source instanceof Enumerable) return source; if (Array.isArray(source)) return new ArrayEnumerable(source); @@ -62,7 +58,7 @@ export class Enumerable extends DisposableBase { return source.slice(); if (Type.isArrayLike(source)) source = new ArrayEnumerable(source); - if (Type.isInstanceOf(source, Enumerable)) + if (source instanceof Enumerable) return source.toArray(); if (isEnumerable(source)) { var result = []; @@ -205,7 +201,7 @@ export class Enumerable extends DisposableBase { var type = typeof input; if (type != Type.STRING) throw new Error("Cannot exec RegExp matches of type '" + type + "'."); - if (Type.isInstanceOf(pattern, RegExp)) { + if (pattern instanceof RegExp) { flags += (pattern.ignoreCase) ? "i" : ""; flags += (pattern.multiline) ? "m" : ""; pattern = pattern.source; @@ -328,7 +324,7 @@ export class Enumerable extends DisposableBase { var key = keySelector(x); var element = elementSelector(x); var array = dict.getValue(key); - if (array !== undefined) + if (array !== VOID0) array.push(element); else dict.addByKeyValue(key, [element]); @@ -597,7 +593,7 @@ export class Enumerable extends DisposableBase { }); } scan(func, seed) { - var isUseSeed = seed !== undefined; + var isUseSeed = seed !== VOID0; var _ = this; return new Enumerable(() => { var enumerator; @@ -658,7 +654,7 @@ export class Enumerable extends DisposableBase { middleEnumerator = undefined; index = 0; }, (yielder) => { - if (middleEnumerator === undefined && !enumerator.moveNext()) + if (middleEnumerator === VOID0 && !enumerator.moveNext()) return false; do { if (!middleEnumerator) { @@ -693,7 +689,7 @@ export class Enumerable extends DisposableBase { throwIfDisposed(disposed); while (enumerator.moveNext()) { var result = selector(enumerator.current, index++); - if (result !== null && result !== undefined) + if (result !== null && result !== VOID0) return yielder.yieldReturn(result); } return false; @@ -746,7 +742,7 @@ export class Enumerable extends DisposableBase { break; default: return this - .where(x => Type.isInstanceOf(x, type)); + .where(x => x instanceof type); } return this .where(x => typeof x === typeName); @@ -1041,7 +1037,7 @@ export class Enumerable extends DisposableBase { while (true) { if (innerElements != null) { var innerElement = innerElements[innerCount++]; - if (innerElement !== undefined) + if (innerElement !== VOID0) return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement)); innerElement = null; innerCount = 0; @@ -1262,7 +1258,7 @@ export class Enumerable extends DisposableBase { keys = new Dictionary(compareSelector); }, (yielder) => { var current; - if (secondEnumerator === undefined) { + if (secondEnumerator === VOID0) { while (firstEnumerator.moveNext()) { current = firstEnumerator.current; if (!keys.containsKey(current)) { @@ -1571,7 +1567,6 @@ export class Enumerable extends DisposableBase { var sharedEnumerator; return new Enumerable(() => { return new EnumeratorBase(() => { - // assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator. if (!sharedEnumerator) sharedEnumerator = _.getEnumerator(); }, (yielder) => sharedEnumerator.moveNext() @@ -1797,7 +1792,7 @@ class ArrayEnumerable extends Enumerable { sequenceEqual(second, equalityComparer = Values.areEqual) { if (Array.isArray(second)) return Arrays.areEqual(this.source, second, true, equalityComparer); - if (Type.isInstanceOf(second, ArrayEnumerable)) + if (second instanceof ArrayEnumerable) return second.sequenceEqual(this.source, equalityComparer); return super.sequenceEqual(second, equalityComparer); } diff --git a/dist/es6/System.Linq/Linq.js.map b/dist/es6/System.Linq/Linq.js.map index ee7fc3a2..ea40451d 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":["LinqFunctions","LinqFunctions.Greater","LinqFunctions.Lesser","UnsupportedEnumerableException","UnsupportedEnumerableException.constructor","Enumerable","Enumerable.constructor","Enumerable.fromArray","Enumerable.from","Enumerable.toArray","Enumerable.getEnumerator","Enumerable._onDispose","Enumerable.choice","Enumerable.cycle","Enumerable.empty","Enumerable.repeat","Enumerable.repeatWithFinalize","Enumerable.make","Enumerable.range","Enumerable.rangeDown","Enumerable.toInfinity","Enumerable.toNegativeInfinity","Enumerable.rangeTo","Enumerable.matches","Enumerable.generate","Enumerable.unfold","Enumerable.defer","Enumerable.forEach","Enumerable.map","Enumerable.max","Enumerable.min","Enumerable.asEnumerable","Enumerable.toLookup","Enumerable.toMap","Enumerable.toDictionary","Enumerable.toJoinedString","Enumerable.doAction","Enumerable.force","Enumerable.skip","Enumerable.skipWhile","Enumerable.take","Enumerable.takeWhile","Enumerable.takeUntil","Enumerable.takeExceptLast","Enumerable.takeFromLast","Enumerable.traverseBreadthFirst","Enumerable.traverseDepthFirst","Enumerable.flatten","Enumerable.pairwise","Enumerable.scan","Enumerable.select","Enumerable.selectMany","Enumerable.choose","Enumerable.where","Enumerable.ofType","Enumerable.except","Enumerable.distinct","Enumerable.distinctUntilChanged","Enumerable.reverse","Enumerable.shuffle","Enumerable.count","Enumerable.all","Enumerable.every","Enumerable.any","Enumerable.some","Enumerable.isEmpty","Enumerable.contains","Enumerable.indexOf","Enumerable.lastIndexOf","Enumerable.defaultIfEmpty","Enumerable.zip","Enumerable.zipMultiple","Enumerable.join","Enumerable.groupJoin","Enumerable.concatWith","Enumerable.merge","Enumerable.concat","Enumerable.insertAt","Enumerable.alternateMultiple","Enumerable.alternateSingle","Enumerable.alternate","Enumerable.intersect","Enumerable.sequenceEqual","Enumerable.union","Enumerable.orderBy","Enumerable.orderUsing","Enumerable.orderUsingReversed","Enumerable.orderByDescending","Enumerable.groupBy","Enumerable.partitionBy","Enumerable.buffer","Enumerable.aggregate","Enumerable.average","Enumerable.maxBy","Enumerable.minBy","Enumerable.sum","Enumerable.product","Enumerable.elementAt","Enumerable.elementAtOrDefault","Enumerable.first","Enumerable.firstOrDefault","Enumerable.last","Enumerable.lastOrDefault","Enumerable.single","Enumerable.singleOrDefault","Enumerable.share","Enumerable.memoize","Enumerable.catchError","Enumerable.finallyAction","ArrayEnumerable","ArrayEnumerable.constructor","ArrayEnumerable._onDispose","ArrayEnumerable.source","ArrayEnumerable.toArray","ArrayEnumerable.asEnumerable","ArrayEnumerable.forEach","ArrayEnumerable.any","ArrayEnumerable.count","ArrayEnumerable.elementAt","ArrayEnumerable.elementAtOrDefault","ArrayEnumerable.first","ArrayEnumerable.firstOrDefault","ArrayEnumerable.last","ArrayEnumerable.lastOrDefault","ArrayEnumerable.skip","ArrayEnumerable.takeExceptLast","ArrayEnumerable.takeFromLast","ArrayEnumerable.reverse","ArrayEnumerable.memoize","ArrayEnumerable.sequenceEqual","ArrayEnumerable.toJoinedString","Grouping","Grouping.constructor","Grouping.key","Lookup","Lookup.constructor","Lookup.count","Lookup.get","Lookup.contains","Lookup.getEnumerator","WhereEnumerable","WhereEnumerable.constructor","WhereEnumerable.where","WhereEnumerable.select","WhereEnumerable.getEnumerator","WhereEnumerable._onDispose","WhereSelectEnumerable","WhereSelectEnumerable.constructor","WhereSelectEnumerable.where","WhereSelectEnumerable.select","WhereSelectEnumerable.getEnumerator","WhereSelectEnumerable._onDispose","OrderedEnumerable","OrderedEnumerable.constructor","OrderedEnumerable.createOrderedEnumerable","OrderedEnumerable.thenBy","OrderedEnumerable.thenUsing","OrderedEnumerable.thenByDescending","OrderedEnumerable.thenUsingReversed","OrderedEnumerable.getEnumerator","OrderedEnumerable._onDispose","createSortContext","throwIfDisposed"],"mappings":"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ACJA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,CAACA,CAACA,OAAOA,CAACA;gBAETA,EAAEA,KAAKA,CAACA;YACTA,CAACA,CAACA,CAACA;QACJA,CAACA;QAEDA,MAAMA,CAACA,KAAKA,CAACA;IACdA,CAACA;IAGDvD,GAAGA,CAACA,SAAsBA;QAEzBwD,IAAIA,MAAMA,GAAGA,IAAIA,CAACA;QAClBA,IAAIA,CAACA,OAAOA,CAACA,CAACA;YAEbA,EAAEA,CAAAA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,CACjBA,CAACA;gBACAA,MAAMA,GAAGA,KAAKA,CAACA;gBACfA,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA;QACFA,CAACA,CAACA,CAACA;QACHA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAGDxD,KAAKA,CAACA,SAAsBA;QAE3ByD,MAAMA,CAACA,IAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA;IAC5BA,CAACA;IAGDzD,GAAGA,CAACA,SAAuBA;QAE1B0D,IAAIA,MAAMA,GAAGA,KAAKA,CAACA;QAInBA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;YACAA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBAEbA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,CAACA,MAAMA,CAACA;YAChBA,CAACA,CAACA,CAACA;QACJA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,IAAIA,CAACA,OAAOA,CAACA;gBAEZA,MAAMA,GAAGA,IAAIA,CAACA;gBACdA,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA,CAACA,CAACA;QACJA,CAACA;QACDA,MAAMA,CAACA,MAAMA,CAACA;IAEfA,CAACA;IAGD1D,IAAIA,CAACA,SAAsBA;QAE1B2D,MAAMA,CAACA,IAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA;IAC5BA,CAACA;IAED3D,OAAOA;QAEN4D,MAAMA,CAACA,CAACA,IAAIA,CAACA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A,CAACA,aAAaA,EAAEA,CAACA;gBAChCA,CACAA;gBAAAA,KAAKA,CAAAA,CAACA,CAACA,CAACA,CACRA,CAACA;gBAEDA,CAACA;YACFA,CAACA,EAEDA,CAACA,OAAOA;gBAEPA,IACAA,CAACA;oBACAA,eAAeA,CAACA,QAAQA,CAACA,CAACA;oBAC1BA,EAAEA,CAAAA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;wBACxBA,MAAMA,CAACA,OAAOA,CAACA,WAAWA,CAACA,UAAUA,CAACA,OAAOA,CAACA,CAACA;gBACjDA,CACAA;gBAAAA,KAAKA,CAAAA,CAACA,CAACA,CAACA,CACRA,CAACA;oBACAA,OAAOA,CAACA,CAACA,CAACA,CAACA;gBACZA,CAACA;gBACDA,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA,EAEDA;gBAECA,OAAOA,CAACA,UAAUA,CAACA,CAACA;YACrBA,CAACA,CACDA,CAACA;QACHA,CAACA,CACDA,CAACA;IACHA,CAACA;IAEDtG,aAAaA,CAACA,MAAiBA;QAE9BuG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,QAAQA,GAAGA,CAACA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAE9CA,MAAMA,CAACA,IAAIA,UAAUA,CACpBA;YAECA,IAAIA,UAAyBA,CAACA;YAE9BA,MAAMA,CAACA,IAAIA,cAAcA,CACxBA;gBAECA,eAAeA,CAACA,QAAQA,CAACA,CAACA;gBAC1BA,UAAUA,GAAGA,CAACA,CAACA,aAAaA,EAAEA,CAACA;YAChCA,CAACA,EAEDA,CAACA,OAAOA;gBAEPA,eAAeA,CAACA,QAAQA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;sBAC3BA,OAAOA,CAACA,WAAWA,CAACA,UAAUA,CAACA,OAAOA,CAACA;sBACvCA,KAAKA,CAACA;YACVA,CAACA,EAEDA;gBAECA,IACAA,CAACA;oBACAA,OAAOA,CAACA,UAAUA,CAACA,CAACA;gBACrBA,CAACA;wBAEDA,CAACA;oBACAA,MAAMA,EAAEA,CAACA;gBACVA,CAACA;YACFA,CAACA,CACDA,CAACA;QACHA,CAACA,CACDA,CAACA;IACHA,CAACA;AAEFvG,CAACA;AAGD,8BACQ,UAAU;IAIjBwG,YAAYA,MAAgBA;QAE3BC,MAAMA;YAELA,CAACA,CAACA,eAAeA,EAAEA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,eAAeA,CAAIA;gBAE7BA,CAACA,CAACA,eAAeA,CAACA,8CAA8CA,EAAEA,iBAAiBA,CAACA,CAACA;gBAErFA,MAAMA,CAACA,CAACA,CAACA,OAAOA,CAACA;YAClBA,CAACA,CAACA,CAACA;QACJA,CAACA,CAACA,CAACA;QAEHA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,qBAAqBA,GAAGA,iBAAiBA,CAACA;QAC5CA,CAACA,CAACA,OAAOA,GAAGA,MAAMA,CAACA;IAEpBA,CAACA;IAESD,UAAUA;QAEnBE,KAAKA,CAACA,UAAUA,EAAEA,CAACA;QACnBA,IAAIA,CAACA,OAAOA,GAAQA,IAAIA,CAACA;IAC1BA,CAACA;IAEDF,IAAIA,MAAMA;QAETG,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA;IACrBA,CAACA;IAEDH,OAAOA;QAENI,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;QACpBA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA;YACLA,MAAMA,CAACA,EAAEA,CAACA;QAEXA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YACnBA,MAAMA,CAAOA,CAAEA,CAACA,KAAKA,EAAEA,CAACA;QAEzBA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,MAAMA,EAAEA,MAAMA,GAAOA,YAAYA,CAACA,UAAUA,CAAIA,GAAGA,CAACA,CAACA;QACjEA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,EAAEA,CAACA,EACzBA,CAACA;YACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QAClBA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAEDJ,YAAYA;QAEXK,MAAMA,CAACA,IAAIA,eAAeA,CAAIA,IAAIA,CAACA,OAAOA,CAACA,CAACA;IAC7CA,CAACA;IAGDL,OAAOA,CAACA,MAA+BA;QAEtCM,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QACvBA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;YAGAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,MAAMA,CAACA,MAAMA,EAAEA,EAAEA,CAACA,EACnCA,CAACA;gBAEAA,EAAEA,CAAAA,CAAMA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAGA,KAAKA,CAACA;oBACpCA,KAAKA,CAACA;YACRA,CAACA;QACFA,CAACA;IACFA,CAACA;IAIDN,GAAGA,CAACA,SAAuBA;QAE1BO,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;QACzDA,MAAMA,CAACA,GAAGA,IAAIA,CAACA,CAACA,SAASA,IAAIA,KAAKA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA;IACpDA,CAACA;IAEDP,KAAKA,CAACA,SAAuBA;QAE5BQ,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;QACzDA,MAAMA,CAACA,GAAGA,IAAIA,CAACA,SAASA,GAAGA,KAAKA,CAACA,KAAKA,CAACA,SAASA,CAACA,GAAGA,GAAGA,CAACA,CAACA;IAC1DA,CAACA;IAEDR,SAASA,CAACA,KAAYA;QAErBS,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QACvBA,MAAMA,CAACA,CAACA,KAAKA,GAACA,MAAMA,CAACA,MAAMA,IAAIA,KAAKA,IAAEA,CAACA,CAACA;cACrCA,MAAMA,CAACA,KAAKA,CAACA;cACbA,KAAKA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA;IAC3BA,CAACA;IAEDT,kBAAkBA,CAACA,KAAYA,EAAEA,YAAYA,GAAKA,IAAIA;QAErDU,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QACvBA,MAAMA,CAACA,CAACA,KAAKA,GAACA,MAAMA,CAACA,MAAMA,IAAIA,KAAKA,IAAEA,CAACA,CAACA;cACrCA,MAAMA,CAACA,KAAKA,CAACA;cACbA,YAAYA,CAACA;IACjBA,CAACA;IAEDV,KAAKA;QAEJW,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QACvBA,MAAMA,CAACA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA;cAC7BA,MAAMA,CAACA,CAACA,CAACA;cACTA,KAAKA,CAACA,KAAKA,EAAEA,CAACA;IAClBA,CAACA;IAEDX,cAAcA,CAACA,YAAYA,GAAKA,IAAIA;QAEnCY,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QACvBA,MAAMA,CAACA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA;cAC7BA,MAAMA,CAACA,CAACA,CAACA;cACTA,YAAYA,CAACA;IACjBA,CAACA;IAEDZ,IAAIA;QAEHa,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;QAC5CA,MAAMA,CAACA,CAACA,GAAGA,CAACA;cACTA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA;cACfA,KAAKA,CAACA,IAAIA,EAAEA,CAACA;IACjBA,CAACA;IAEDb,aAAaA,CAACA,YAAYA,GAAKA,IAAIA;QAElCc,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;QAC5CA,MAAMA,CAACA,GAAGA;cACPA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA;cACfA,YAAYA,CAACA;IACjBA,CAACA;IAEDd,IAAIA,CAACA,KAAYA;QAGhBe,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QAEbA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,IAAIA,KAAKA,GAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,CAACA,CAACA,YAAYA,EAAEA,CAACA;QAEzBA,MAAMA,CAACA,IAAIA,UAAUA,CACpBA,MAAMA,IAAIA,eAAeA,CAAIA,MAAMA,CAACA,CAACA,OAAOA,EAAEA,KAAKA,CAACA,CACpDA,CAACA;IACHA,CAACA;IAEDf,cAAcA,CAACA,KAAKA,GAAUA,CAACA;QAE9BgB,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,CAACA,CAACA,OAAOA,CAACA,MAAMA,GAAGA,CAACA,CAACA;QACrDA,MAAMA,CAACA,CAACA,CAACA,IAAIA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,CAACA;IAC5BA,CAACA;IAEDhB,YAAYA,CAACA,KAAYA;QAExBiB,EAAEA,CAAAA,CAACA,CAACA,KAAKA,IAAIA,KAAKA,GAACA,CAACA,CAACA;YAACA,MAAMA,CAACA,UAAUA,CAACA,KAAKA,EAAKA,CAACA;QAEnDA,IAAIA,CAACA,GAAKA,IAAIA,EACVA,GAAGA,GAAGA,CAACA,CAACA,OAAOA;cACZA,CAACA,CAACA,OAAOA,CAACA,MAAMA;cAChBA,CAACA,CAACA;QAETA,MAAMA,CAACA,CAACA,CAACA,IAAIA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,CAACA;IAC5BA,CAACA;IAEDjB,OAAOA;QAENkB,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QAEbA,MAAMA,CAACA,IAAIA,UAAUA,CACpBA,MAAMA,IAAIA,eAAeA,CACxBA,MAAMA,CAACA,CAACA,OAAOA,EAAEA,CAACA,CAACA,OAAOA;cACvBA,CAACA,CAACA,CAACA,OAAOA,CAACA,MAAMA,GAAGA,CAACA,CAACA;cACtBA,CAACA,EAAEA,CAACA,CAACA,CACRA,CACDA,CAACA;IACHA,CAACA;IAEDlB,OAAOA;QAENmB,MAAMA,CAACA,IAAIA,eAAeA,CAAIA,IAAIA,CAACA,OAAOA,CAACA,CAACA;IAC7CA,CAACA;IAEDnB,aAAaA,CACZA,MAAiCA,EACjCA,gBAAgBA,GAAyBA,MAAMA,CAACA,QAAQA;QAExDoB,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;YACxBA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,IAAIA,CAACA,MAAMA,EAAaA,MAAMA,EAAEA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;QAEhFA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,YAAYA,CAACA,MAAMA,EAAEA,eAAeA,CAACA,CAACA;YAC7CA,MAAMA,CAAsBA,MAAOA,CAACA,aAAaA,CAACA,IAAIA,CAACA,MAAMA,EAAEA,gBAAgBA,CAACA,CAACA;QAElFA,MAAMA,CAACA,KAAKA,CAACA,aAAaA,CAACA,MAAMA,EAAEA,gBAAgBA,CAACA,CAACA;IACtDA,CAACA;IAGDpB,cAAcA,CAACA,SAASA,GAAUA,EAAEA,EAAEA,QAAQA,GAAuBA,SAASA,CAACA,QAAQA;QAEtFqB,IAAIA,CAACA,GAAGA,IAAIA,CAACA,OAAOA,CAACA;QACrBA,MAAMA,CAACA,CAACA,QAAQA,IAAIA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;cACtBA,CAAEA,CAACA,IAAIA,CAACA,SAASA,CAACA;cAC7BA,KAAKA,CAACA,cAAcA,CAACA,SAASA,EAAEA,QAAQA,CAACA,CAACA;IAC9CA,CAACA;AAEFrB,CAACA;AASD,uBACQ,eAAe;IAGtBsB,YAAoBA,SAAcA,EAAEA,QAAmBA;QAEtDC,MAAMA,QAAQA,CAACA,CAACA;QAFGA,cAASA,GAATA,SAASA,CAAKA;IAGlCA,CAACA;IAEDD,IAAIA,GAAGA;QAENE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;IACvBA,CAACA;AACFF,CAACA;AAWD;IAICG,YAAoBA,WAAwCA;QAAxCC,gBAAWA,GAAXA,WAAWA,CAA6BA;IAE5DA,CAACA;IAEDD,IAAIA,KAAKA;QAERE,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA,KAAKA,CAACA;IAC/BA,CAACA;IAEDF,GAAGA,CAACA,GAAQA;QAEXG,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA;IACvCA,CAACA;IAEDH,QAAQA,CAACA,GAAQA;QAEhBI,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA,WAAWA,CAACA,GAAGA,CAACA,CAACA;IAC1CA,CAACA;IAEDJ,aAAaA;QAGZK,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,IAAIA,UAAuDA,CAACA;QAE5DA,MAAMA,CAACA,IAAIA,cAAcA,CACxBA;YAECA,UAAUA,GAAGA,CAACA,CAACA,WAAWA,CAACA,aAAaA,EAAEA,CAACA;QAC5CA,CAACA,EACDA,CAACA,OAAOA;YAGPA,EAAEA,CAAAA,CAACA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;gBACzBA,MAAMA,CAACA,KAAKA,CAACA;YAEdA,IAAIA,OAAOA,GAAGA,UAAUA,CAACA,OAAOA,CAACA;YAEjCA,MAAMA,CAACA,OAAOA,CAACA,WAAWA,CAACA,IAAIA,QAAQA,CAAiBA,OAAOA,CAACA,GAAGA,EAAEA,OAAOA,CAACA,KAAKA,CAACA,CAACA,CAACA;QACtFA,CAACA,EACDA;YAECA,OAAOA,CAACA,UAAUA,CAACA,CAACA;QACrBA,CAACA,CACDA,CAACA;IACHA,CAACA;AAEFL,CAACA;AAGD,8BACQ,UAAU;IAEjBM,YACSA,UAAyBA,EACzBA,aAA0BA;QAGlCC,MAAMA,IAAIA,CAACA,CAACA;QAJJA,eAAUA,GAAVA,UAAUA,CAAeA;QACzBA,kBAAaA,GAAbA,aAAaA,CAAaA;IAInCA,CAACA;IAEDD,KAAKA,CAACA,SAAsBA;QAG3BE,EAAEA,CAAAA,CAACA,SAASA,CAACA,MAAMA,GAACA,CAACA,CAACA;YACrBA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,SAASA,CAACA,CAACA;QAE/BA,IAAIA,aAAaA,GAAGA,IAAIA,CAACA,aAAaA,CAACA;QACvCA,IAAIA,iBAAiBA,GAAGA,CAACA,CAAGA,KAAKA,aAAaA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA;QAClEA,MAAMA,CAACA,IAAIA,eAAeA,CAAIA,IAAIA,CAACA,UAAUA,EAAEA,iBAAiBA,CAACA,CAACA;IACnEA,CAACA;IAEDF,MAAMA,CAAUA,QAA6BA;QAG5CG,EAAEA,CAAAA,CAACA,QAAQA,CAACA,MAAMA,GAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,QAAQA,CAACA,CAACA;QAE/BA,MAAMA,CAACA,IAAIA,qBAAqBA,CAC/BA,IAAIA,CAACA,UAAUA,EACfA,IAAIA,CAACA,aAAaA,EAClBA,QAAQA,CACRA,CAACA;IACHA,CAACA;IAEDH,aAAaA;QAEZI,IAAIA,SAASA,GAAGA,IAAIA,CAACA,aAAaA,CAACA;QACnCA,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;QAC7BA,IAAIA,UAAyBA,CAACA;QAE9BA,MAAMA,CAACA,IAAIA,cAAcA,CACxBA;YAECA,UAAUA,GAAGA,MAAMA,CAACA,aAAaA,EAAEA,CAACA;QACrCA,CAACA,EAEDA,CAACA,OAAOA;YAEPA,OAAMA,UAAUA,CAACA,QAAQA,EAAEA,EAC3BA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,SAASA,CAACA,UAAUA,CAACA,OAAOA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,OAAOA,CAACA,WAAWA,CAACA,UAAUA,CAACA,OAAOA,CAACA,CAACA;YACjDA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA,EAEDA;YAECA,OAAOA,CAACA,UAAUA,CAACA,CAACA;QACrBA,CAACA,CACDA,CAACA;IACHA,CAACA;IAESJ,UAAUA;QAEnBK,KAAKA,CAACA,UAAUA,EAAEA,CAACA;QACnBA,IAAIA,CAACA,aAAaA,GAAGA,IAAIA,CAACA;QAC1BA,IAAIA,CAACA,UAAUA,GAAGA,IAAIA,CAACA;IACxBA,CAACA;AACFL,CAACA;AAED,oCACQ,UAAU;IAEjBM,YACSA,UAA+BA,EAC/BA,aAAgCA,EAChCA,YAAiCA;QAGzCC,MAAMA,IAAIA,CAACA,CAACA;QALJA,eAAUA,GAAVA,UAAUA,CAAqBA;QAC/BA,kBAAaA,GAAbA,aAAaA,CAAmBA;QAChCA,iBAAYA,GAAZA,YAAYA,CAAqBA;IAI1CA,CAACA;IAEDD,KAAKA,CAACA,SAA6CA;QAElDE,EAAEA,CAAAA,CAACA,SAASA,CAACA,MAAMA,GAACA,CAACA,CAACA;YACrBA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,SAASA,CAACA,CAACA;QAE/BA,MAAMA,CAACA,IAAIA,eAAeA,CAAIA,IAAIA,EAAEA,SAASA,CAACA,CAACA;IAChDA,CAACA;IAEDF,MAAMA,CAAUA,QAA6BA;QAG5CG,EAAEA,CAAAA,CAACA,QAAQA,CAACA,MAAMA,GAACA,CAACA,CAACA;YAEpBA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,QAAQA,CAACA,CAACA;QAE/BA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,IAAIA,YAAYA,GAAGA,CAACA,CAACA,YAAYA,CAACA;QAClCA,IAAIA,gBAAgBA,GAAGA,CAACA,CAASA,KAAKA,QAAQA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,CAACA;QAChEA,MAAMA,CAACA,IAAIA,qBAAqBA,CAACA,CAACA,CAACA,UAAUA,EAAEA,CAACA,CAACA,aAAaA,EAAEA,gBAAgBA,CAACA,CAACA;IACnFA,CAACA;IAEDH,aAAaA;QAEZI,IAAIA,CAACA,GAA+BA,IAAIA,EACpCA,SAASA,GAAuBA,CAACA,CAACA,aAAaA,EAC/CA,MAAMA,GAA0BA,CAACA,CAACA,UAAUA,EAC5CA,QAAQA,GAAwBA,CAACA,CAACA,YAAYA,EAC9CA,UAA+BA,CAACA;QAEpCA,MAAMA,CAACA,IAAIA,cAAcA,CACxBA;YAECA,UAAUA,GAAGA,MAAMA,CAACA,aAAaA,EAAEA,CAACA;QACrCA,CAACA,EAEDA,CAACA,OAAOA;YAEPA,OAAMA,UAAUA,CAACA,QAAQA,EAAEA,EAC3BA,CAACA;gBACAA,IAAIA,CAACA,GAAGA,UAAUA,CAACA,OAAOA,CAACA;gBAC3BA,EAAEA,CAAAA,CAACA,SAASA,IAAEA,IAAIA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,CACnCA,CAACA;oBACAA,MAAMA,CAACA,OAAOA,CAACA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACzCA,CAACA;YACFA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA,EAEDA;YAECA,OAAOA,CAACA,UAAUA,CAACA,CAACA;QACrBA,CAACA,CACDA,CAACA;IACHA,CAACA;IAESJ,UAAUA;QAEnBK,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,KAAKA,CAACA,UAAUA,EAAEA,CAACA;QACnBA,CAACA,CAACA,aAAaA,GAAGA,IAAIA,CAACA;QACvBA,CAACA,CAACA,UAAUA,GAAGA,IAAIA,CAACA;QACpBA,CAACA,CAACA,YAAYA,GAAGA,IAAIA,CAACA;IACvBA,CAACA;AACFL,CAACA;AAWD,gCACQ,UAAU;IAGjBM,YACSA,MAAqBA,EACtBA,WAAiCA,EACjCA,KAAWA,EACXA,MAAgCA,EAChCA,QAAQA,GAAiBA,MAAMA,CAACA,OAAOA;QAE9CC,MAAMA,IAAIA,CAACA,CAACA;QANJA,WAAMA,GAANA,MAAMA,CAAeA;QACtBA,gBAAWA,GAAXA,WAAWA,CAAsBA;QACjCA,UAAKA,GAALA,KAAKA,CAAMA;QACXA,WAAMA,GAANA,MAAMA,CAA0BA;QAChCA,aAAQA,GAARA,QAAQA,CAA+BA;IAG/CA,CAACA;IAEOD,uBAAuBA,CAC9BA,WAAiCA,EACjCA,KAAWA;QAEXE,MAAMA,CAACA,IAAIA,iBAAiBA,CAAaA,IAAIA,CAACA,MAAMA,EAAEA,WAAWA,EAAEA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;IACjFA,CAACA;IAEDF,MAAMA,CAACA,WAAiCA;QAEvCG,MAAMA,CAACA,IAAIA,CAACA,uBAAuBA,CAACA,WAAWA,EAAEA,CAAeA,CAACA,CAACA;IACnEA,CAACA;IAEDH,SAASA,CAACA,UAAwBA;QAEjCI,MAAMA,CAACA,IAAIA,iBAAiBA,CAAQA,IAAIA,CAACA,MAAMA,EAAEA,IAAIA,EAAEA,CAAeA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;IAC3FA,CAACA;IAEDJ,gBAAgBA,CAACA,WAAiCA;QAEjDK,MAAMA,CAACA,IAAIA,CAACA,uBAAuBA,CAACA,WAAWA,EAAEA,EAAgBA,CAACA,CAACA;IACpEA,CAACA;IAEDL,iBAAiBA,CAACA,UAAwBA;QAEzCM,MAAMA,CAACA,IAAIA,iBAAiBA,CAAQA,IAAIA,CAACA,MAAMA,EAAEA,IAAIA,EAAEA,EAAgBA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;IAC5FA,CAACA;IAEDN,aAAaA;QAEZO,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,IAAIA,MAAUA,CAACA;QACfA,IAAIA,OAAgBA,CAACA;QACrBA,IAAIA,KAAKA,GAAUA,CAACA,CAACA;QAErBA,MAAMA,CAACA,IAAIA,cAAcA,CACxBA;YAECA,KAAKA,GAAGA,CAACA,CAACA;YACVA,MAAMA,GAAGA,UAAUA,CAACA,OAAOA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA;YACtCA,OAAOA,GAAGA,iBAAiBA,CAACA,CAACA,CAACA,CAACA,qBAAqBA,CAACA,MAAMA,CAACA,CAACA;QAC9DA,CAACA,EAEDA,CAACA,OAAOA;YAEPA,MAAMA,CAACA,CAACA,KAAKA,GAACA,OAAOA,CAACA,MAAMA,CAACA;kBAC1BA,OAAOA,CAACA,WAAWA,CAACA,MAAMA,CAACA,OAAOA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA;kBAC7CA,KAAKA,CAACA;QACVA,CAACA,EAEDA;YAECA,EAAEA,CAAAA,CAACA,MAAMA,CAACA;gBACTA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YACnBA,MAAMA,GAAGA,IAAIA,CAACA;YACdA,EAAEA,CAAAA,CAACA,OAAOA,CAACA;gBACVA,OAAOA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YACpBA,OAAOA,GAAGA,IAAIA,CAACA;QAChBA,CAACA,CACDA,CAACA;IACHA,CAACA;IAESP,UAAUA;QAEnBQ,KAAKA,CAACA,UAAUA,EAAEA,CAACA;QACnBA,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;QACnBA,IAAIA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;QACxBA,IAAIA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;QAClBA,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;IACpBA,CAACA;AAEFR,CAACA;AAQD,2BACC,iBAA+C,EAC/C,cAAc,GAAgB,IAAI;IAGlCS,IAAIA,OAAOA,GAAGA,IAAIA,gBAAgBA,CACjCA,cAAcA,EACdA,iBAAiBA,CAACA,WAAWA,EAC7BA,iBAAiBA,CAACA,KAAKA,EACvBA,iBAAiBA,CAACA,QAAQA,CAACA,CAACA;IAE7BA,EAAEA,CAAAA,CAACA,iBAAiBA,CAACA,MAAMA,CAACA;QAC3BA,MAAMA,CAACA,iBAAiBA,CAACA,iBAAiBA,CAACA,MAAMA,EAAEA,OAAOA,CAACA,CAACA;IAE7DA,MAAMA,CAACA,OAAOA,CAACA;AAChBA,CAACA;AAKD,yBAAyB,QAAgB,EAAE,SAAS,GAAU,YAAY;IAEzEC,EAAEA,CAAAA,CAACA,QAAQA,CAACA;QAACA,MAAMA,IAAIA,uBAAuBA,CAACA,SAASA,CAACA,CAACA;AAC3DA,CAACA;AAGD,eAAe,UAAU,CAAC"} \ 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.js b/dist/es6/System/Collections/Array/Compare.js index 99a88b0d..d79e76eb 100644 --- a/dist/es6/System/Collections/Array/Compare.js +++ b/dist/es6/System/Collections/Array/Compare.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ import * as Values from '../../Compare'; import Type from '../../Types'; function validateSize(a, b) { diff --git a/dist/es6/System/Collections/Array/Compare.js.map b/dist/es6/System/Collections/Array/Compare.js.map index 80ed6839..5fc6b336 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":["validateSize","areAllEqual","areEqual","copyAndSort","areEquivalent"],"mappings":"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CA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;IACvCA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;IACjBA,MAAMA,CAACA,CAACA,CAACA;AACVA,CAACA;AAKD,8BACC,CAAW,EAAE,CAAW,EACxB,QAAQ,GAAiB,MAAM,CAAC,OAAO;IAEvCC,IAAIA,GAAGA,GAAGA,YAAYA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;IAC7BA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,SAASA,CAACA,GAAGA,CAACA,CAACA;QAACA,MAAMA,CAAUA,GAAGA,CAACA;IAI5CA,CAACA,GAAGA,WAAWA,CAACA,CAACA,EAAEA,QAAQA,CAACA,CAACA;IAC7BA,CAACA,GAAGA,WAAWA,CAACA,CAACA,EAAEA,QAAQA,CAACA,CAACA;IAE7BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,EAAEA,CAACA,EACzBA,CAACA;QACAA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,KAAGA,CAACA,CAACA;YAC3BA,MAAMA,CAACA,KAAKA,CAACA;IACfA,CAACA;IAEDA,MAAMA,CAACA,IAAIA,CAACA;AAEbA,CAACA"} \ 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/Procedure.js b/dist/es6/System/Collections/Array/Procedure.js index 9261657d..4aed640f 100644 --- a/dist/es6/System/Collections/Array/Procedure.js +++ b/dist/es6/System/Collections/Array/Procedure.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ export function sum(source, ignoreNaN = false) { if (!source || !source.length) return 0; diff --git a/dist/es6/System/Collections/Array/Procedure.js.map b/dist/es6/System/Collections/Array/Procedure.js.map index e71729be..3952e2b9 100644 --- a/dist/es6/System/Collections/Array/Procedure.js.map +++ b/dist/es6/System/Collections/Array/Procedure.js.map @@ -1 +1 @@ -{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Procedure.ts"],"names":["sum","average","product","ifSet","min","max"],"mappings":"AAAA;;;GAGG;AAGH,oBAAoB,MAAe,EAAE,SAAS,GAAW,KAAK;IAE7DA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;QAC5BA,MAAMA,CAACA,CAACA,CAACA;IAEVA,IAAIA,MAAMA,GAAGA,CAACA,CAACA;IACfA,EAAEA,CAAAA,CAACA,SAASA,CAACA;QACZA,MAAMA,CAACA,OAAOA,CAACA,CAACA;YAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAACA,MAAMA,IAAIA,CAACA,CAACA;QAC3BA,CAACA,CAACA,CAACA;IACJA,IAAIA;QACHA,MAAMA,CAACA,KAAKA,CAACA,CAACA;YAEbA,MAAMA,IAAIA,CAACA,CAACA;YACZA,MAAMA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;QACvBA,CAACA,CAACA,CAACA;IAEJA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA;AAED,wBAAwB,MAAe,EAAE,SAAS,GAAW,KAAK;IAEjEC,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;QAC5BA,MAAMA,CAACA,GAAGA,CAACA;IAEZA,IAAIA,MAAMA,GAAGA,CAACA,EAAEA,KAAYA,CAACA;IAC7BA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;QACAA,KAAKA,GAAGA,CAACA,CAACA;QACVA,MAAMA,CAACA,OAAOA,CAACA,CAACA;YAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;gBACAA,MAAMA,IAAIA,CAACA,CAACA;gBACZA,KAAKA,EAAEA,CAACA;YACTA,CAACA;QACFA,CAACA,CAACA,CAACA;IAEJA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,KAAKA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;QACtBA,MAAMA,CAACA,KAAKA,CAACA,CAACA;YAEbA,MAAMA,IAAIA,CAACA,CAACA;YACZA,MAAMA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;QACvBA,CAACA,CAACA,CAACA;IAEJA,CAACA;IAEDA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,MAAMA,CAACA,CAACA,GAAGA,GAAGA,GAAGA,CAACA,MAAMA,GAACA,KAAKA,CAACA,CAACA;AACzDA,CAACA;AAED,wBAAwB,MAAe,EAAE,SAAS,GAAW,KAAK;IAEjEC,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;QAC5BA,MAAMA,CAACA,GAAGA,CAACA;IAEZA,IAAIA,MAAMA,GAAGA,CAACA,CAACA;IACfA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;QACAA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;QAClBA,MAAMA,CAACA,OAAOA,CAACA,CAACA;YAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;gBACAA,MAAMA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;oBAACA,KAAKA,GAAGA,IAAIA,CAACA;YACzBA,CAACA;QACFA,CAACA,CAACA,CAACA;QAEHA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;YACTA,MAAMA,GAAGA,GAAGA,CAACA;IACfA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,MAAMA,CAACA,KAAKA,CAACA,CAACA;YAEbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACZA,CAACA;gBACAA,MAAMA,GAAGA,GAAGA,CAACA;gBACbA,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA;YAEDA,MAAMA,IAAIA,CAACA,CAACA;YAEZA,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA,CAACA,CAACA;IACJA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA;AAED,eACC,MAAe,EACf,KAAY,EACZ,SAAiB,EACjB,SAA8C;IAE9CC,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;QAC5BA,MAAMA,CAACA,GAAGA,CAACA;IAEZA,IAAIA,MAAMA,GAAGA,KAAKA,CAACA;IACnBA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;QACAA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;QAClBA,MAAMA,CAACA,OAAOA,CAACA,CAACA;YAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;oBACvBA,MAAMA,GAAGA,CAACA,CAACA;gBACZA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;oBAACA,KAAKA,GAAGA,IAAIA,CAACA;YACzBA,CAACA;QACFA,CAACA,CAACA,CAACA;QAEHA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;YACTA,MAAMA,GAAGA,GAAGA,CAACA;IACfA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,MAAMA,CAACA,KAAKA,CAACA,CAACA;YAEbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACZA,CAACA;gBACAA,MAAMA,GAAGA,GAAGA,CAACA;gBACbA,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA;YAEDA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;gBACvBA,MAAMA,GAAGA,CAACA,CAACA;YAEZA,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA,CAACA,CAACA;IACJA,CAACA;IACDA,MAAMA,CAACA,MAAMA,CAACA;AAEfA,CAACA;AAED,oBAAoB,MAAe,EAAE,SAAS,GAAW,KAAK;IAE7DC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,QAAQA,EAAEA,SAASA,EAAEA,CAACA,CAACA,EAAEA,MAAMA,KAAKA,CAACA,GAACA,MAAMA,CAACA,CAACA;AACrEA,CAACA;AAED,oBAAoB,MAAe,EAAE,SAAS,GAAW,KAAK;IAE7DC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,QAAQA,EAAEA,SAASA,EAAEA,CAACA,CAACA,EAAEA,MAAMA,KAAKA,CAACA,GAACA,MAAMA,CAACA,CAACA;AACrEA,CAACA"} \ No newline at end of file +{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Procedure.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sort.js b/dist/es6/System/Collections/Array/Sort.js index 223657c8..26310da9 100644 --- a/dist/es6/System/Collections/Array/Sort.js +++ b/dist/es6/System/Collections/Array/Sort.js @@ -1,7 +1,3 @@ -/* - * @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'; function ensureArray(value) { diff --git a/dist/es6/System/Collections/Array/Sort.js.map b/dist/es6/System/Collections/Array/Sort.js.map index 8b76f9f0..c4ed8f94 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":["ensureArray","createComparer"],"mappings":"AAAA;;;GAGG;OAII,IAAI,MAAM,aAAa;OACvB,EAAC,OAAO,EAAe,MAAM,eAAe;AAGnD,qBAAwB,KAAW;IAElCA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA;UACnBA,KAAKA;UACVA,CAAIA,KAAKA,CAACA,CAACA;AACfA,CAACA;AAyBD,+BACC,QAA4C,EAC5C,KAAK,GAAmB,CAAe,EACvC,eAAe,GAAO,GAAG;IAEzBC,IAAIA,gBAAgBA,GAAGA,CAACA,IAAIA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA;IAExDA,MAAMA,CAACA,CAACA,CAAmBA,EAAEA,CAAmBA;QAG/CA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;QACtCA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;QACtCA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,MAAMA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,CAACA;QAEjDA,IAAIA,MAAMA,GAAWA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA;QACzDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,CAACA,EAAEA,EACzBA,CAACA;YACAA,IAAIA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAAEA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAC9BA,CAACA,GAAIA,MAAMA;kBACRA,CAACA,CAACA,GAACA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAAeA,CAACA;kBACxCA,KAAKA,CAACA;YAEpBA,EAAEA,CAAAA,CAACA,gBAAgBA,CAACA,CACpBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;oBACrBA,EAAEA,GAAGA,eAAeA,CAACA;gBACtBA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;oBACrBA,EAAEA,GAAGA,eAAeA,CAACA;YAEvBA,CAACA;YAEDA,IAAIA,CAACA,GAAGA,OAAOA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,CAACA;YACxBA,EAAEA,CAAAA,CAACA,CAACA,KAAGA,CAAmBA,CAACA;gBAC1BA,MAAMA,CAACA,CAACA,GAACA,CAACA,CAACA;QAEbA,CAACA;QAEDA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA,CAACA;AACHA,CAACA;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":"OASO,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 diff --git a/dist/es6/System/Collections/Array/Utility.js b/dist/es6/System/Collections/Array/Utility.js index 0cb9d9e5..500adb9b 100644 --- a/dist/es6/System/Collections/Array/Utility.js +++ b/dist/es6/System/Collections/Array/Utility.js @@ -1,7 +1,3 @@ -/* - * @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 { areEqual } from '../../Compare'; @@ -184,4 +180,48 @@ export function flatten(a, recurseDepth = 0) { } return result; } +export function dispatchUnsafe(listeners, payload, trap) { + if (listeners && listeners.length) { + for (let i = 0, len = listeners.length; i < len; i++) { + let fn = listeners[i]; + if (!fn) + continue; + try { + fn(payload); + } + catch (ex) { + if (!trap) + throw ex; + else if (Type.isFunction(trap)) + trap(ex, i); + } + } + } +} +export function dispatch(listeners, payload, trap) { + dispatchUnsafe(copy(listeners), payload, trap); +} +export function dispatchMapped(listeners, payload, trap) { + if (!listeners) + return null; + var result = copy(listeners); + if (listeners.length) { + for (let i = 0, len = result.length; i < len; i++) { + let fn = result[i]; + try { + result[i] = fn + ? fn(payload) + : undefined; + } + catch (ex) { + result[i] = undefined; + if (!trap) + throw ex; + else if (Type.isFunction(trap)) + trap(ex, i); + } + } + } + return result; +} //# sourceMappingURL=Utility.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Utility.js.map b/dist/es6/System/Collections/Array/Utility.js.map index baa1f911..a986c4e9 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":["initialize","copy","copyTo","contains","replace","updateRange","clear","register","findIndex","forEach","applyTo","removeIndex","remove","repeat","flatten"],"mappings":"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CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,EAAEA,CAACA,IAAEA,CAACA,EAAEA,EAAEA,CAACA,EACzCA,CAACA;YACAA,EAAEA,CAAAA,CAACA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA,CACrCA,CAACA;gBACAA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACnBA,EAAEA,KAAKA,CAACA;gBACRA,EAAEA,CAAAA,CAACA,CAACA,EAAEA,GAAGA,CAACA;oBACTA,KAAKA,CAACA;YACRA,CAACA;QACFA,CAACA;IACFA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA;AACdA,CAACA;AAQD,uBAA0B,OAAS,EAAE,KAAY;IAEhDC,OAAOA,CAACA,MAAMA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;IAC/BA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;QAACA,MAAMA,IAAIA,2BAA2BA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;IAExEA,IAAIA,MAAMA,GAAOA,EAAEA,CAACA;IACpBA,OAAMA,KAAKA,EAAEA,EACbA,CAACA;QACAA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA;AASD,wBAAwB,CAAO,EAAE,YAAY,GAAU,CAAC;IAEvDC,IAAIA,MAAMA,GAASA,EAAEA,CAACA;IACtBA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAC9BA,CAACA;QACAA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,CACpBA,CAACA;YACAA,EAAEA,CAAAA,CAACA,YAAYA,GAACA,CAACA,CAACA;gBAACA,CAACA,GAAGA,OAAOA,CAACA,CAACA,EAAEA,YAAYA,GAAGA,CAACA,CAACA,CAACA;YACpDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA;gBAAEA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;QACnDA,CAACA;QACDA,IAAIA;YAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;IACrBA,CAACA;IACDA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA"} \ 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/Dictionaries/Dictionary.js b/dist/es6/System/Collections/Dictionaries/Dictionary.js index 56f5d9ee..477b41c2 100644 --- a/dist/es6/System/Collections/Dictionaries/Dictionary.js +++ b/dist/es6/System/Collections/Dictionaries/Dictionary.js @@ -1,13 +1,10 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Original: http://linqjs.codeplex.com/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ +'use strict'; import { areEqual } from '../../Compare'; import Type from '../../Types'; import Functions from '../../Functions'; import DictionaryAbstractBase from './DictionaryBase'; import EnumeratorBase from '../Enumeration/EnumeratorBase'; +const VOID0 = void 0; class HashEntry { constructor(key, value, prev, next) { this.key = key; @@ -77,7 +74,7 @@ function callHasOwnProperty(target, key) { function computeHashCode(obj) { if (obj === null) return "null"; - if (obj === undefined) + if (obj === VOID0) return "undefined"; return (typeof obj.toString === Type.FUNCTION) ? obj.toString() @@ -105,7 +102,7 @@ export default class Dictionary extends DictionaryAbstractBase { throw new Error("Key already exists."); var changed = !equal(old.value, value); if (changed) { - if (value === undefined) { + if (value === VOID0) { entries.remove(old); array.splice(i, 1); if (!array.length) @@ -125,7 +122,7 @@ export default class Dictionary extends DictionaryAbstractBase { array.push(entry = entry || new HashEntry(key, value)); } else { - if (value === undefined) { + if (value === VOID0) { if (allowOverwrite) return false; else diff --git a/dist/es6/System/Collections/Dictionaries/Dictionary.js.map b/dist/es6/System/Collections/Dictionaries/Dictionary.js.map index 05f7f1b6..4cc19c23 100644 --- a/dist/es6/System/Collections/Dictionaries/Dictionary.js.map +++ b/dist/es6/System/Collections/Dictionaries/Dictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/Dictionary.ts"],"names":["HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","callHasOwnProperty","computeHashCode","Dictionary","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/Dictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js index ea5f30b3..30f89f2e 100644 --- a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js @@ -1,12 +1,10 @@ -/* - * @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 EnumeratorBase from '../Enumeration/EnumeratorBase'; -import ArgumentException from '../../Exceptions/ArgumentException'; import ArgumentNullException from '../../Exceptions/ArgumentNullException'; import InvalidOperationException from '../../Exceptions/InvalidOperationException'; +import extractKeyValue from '../../KeyValueExtract'; +const VOID0 = void (0); class DictionaryBase { constructor() { this._updateRecursion = 0; @@ -47,8 +45,8 @@ class DictionaryBase { get count() { return this.getCount(); } add(item) { if (!item) - throw new ArgumentException('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); - this.addByKeyValue(item.key, item.value); + throw new ArgumentNullException('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + extractKeyValue(item, (key, value) => this.addByKeyValue(key, value)); } clear() { var _ = this, keys = _.keys, count = keys.length; @@ -64,8 +62,10 @@ class DictionaryBase { contains(item) { if (!item) return false; - var value = this.getValue(item.key); - return areEqual(value, item.value); + return extractKeyValue(item, (key, value) => { + let v = this.getValue(key); + return areEqual(value, v); + }); } copyTo(array, index = 0) { if (!array) @@ -82,9 +82,11 @@ class DictionaryBase { remove(item) { if (!item) return 0; - var key = item.key, value = this.getValue(key); - return (areEqual(value, item.value) && this.removeByKey(key)) - ? 1 : 0; + return extractKeyValue(item, (key, value) => { + let v = this.getValue(key); + return (areEqual(value, v) && this.removeByKey(key)) + ? 1 : 0; + }); } get keys() { return this.getKeys(); } get values() { return this.getValues(); } @@ -100,7 +102,7 @@ class DictionaryBase { } containsKey(key) { var value = this.getValue(key); - return value !== undefined; + return value !== VOID0; } containsValue(value) { var e = this.getEnumerator(), equal = areEqual; @@ -129,10 +131,10 @@ class DictionaryBase { var _ = this; return _.handleUpdate(() => { var changed = false; - pairs.forEach(pair => { - _.setValue(pair.key, pair.value); + pairs.forEach(pair => extractKeyValue(pair, (key, value) => { + _.setValue(key, value); changed = true; - }); + })); return changed; }); } @@ -145,7 +147,7 @@ class DictionaryBase { }, (yielder) => { while (i < len) { var key = keys[i++], value = _.getValue(key); - if (value !== undefined) + if (value !== VOID0) return yielder.yieldReturn({ key: key, value: value }); } return yielder.yieldBreak(); diff --git a/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map b/dist/es6/System/Collections/Dictionaries/DictionaryBase.js.map index 4a1f593d..e8b4c6bd 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":["DictionaryBase","DictionaryBase.constructor","DictionaryBase.isUpdating","DictionaryBase._onValueUpdate","DictionaryBase._onUpdated","DictionaryBase.handleUpdate","DictionaryBase.isReadOnly","DictionaryBase.count","DictionaryBase.add","DictionaryBase.clear","DictionaryBase.contains","DictionaryBase.copyTo","DictionaryBase.toArray","DictionaryBase.remove","DictionaryBase.keys","DictionaryBase.values","DictionaryBase.addByKeyValue","DictionaryBase.containsKey","DictionaryBase.containsValue","DictionaryBase.removeByKey","DictionaryBase.removeByValue","DictionaryBase.importPairs","DictionaryBase.getEnumerator"],"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.js b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 88180390..1ab84abe 100644 --- a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -1,10 +1,8 @@ -/* - * @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'; +const VOID0 = void 0; export default class OrderedStringKeyDictionary extends StringKeyDictionary { constructor() { super(); @@ -18,9 +16,9 @@ export default class OrderedStringKeyDictionary extends StringKeyDictionary { } setValue(key, value, keepIndex) { var _ = this, exists = _.indexOfKey(key) != -1; - if (!exists && (value !== undefined || keepIndex)) + if (!exists && (value !== VOID0 || keepIndex)) _._order.push(key); - else if (exists && value === undefined && !keepIndex) + else if (exists && value === VOID0 && !keepIndex) ArrayUtility.remove(_._order, key); return super.setValue(key, value); } diff --git a/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map b/dist/es6/System/Collections/Dictionaries/OrderedStringKeyDictionary.js.map index fbb11f23..b383fcdc 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":["OrderedStringKeyDictionary","OrderedStringKeyDictionary.constructor","OrderedStringKeyDictionary.indexOfKey","OrderedStringKeyDictionary.getValueByIndex","OrderedStringKeyDictionary.setValue","OrderedStringKeyDictionary.setByIndex","OrderedStringKeyDictionary.importValues","OrderedStringKeyDictionary.setValues","OrderedStringKeyDictionary.removeByIndex","OrderedStringKeyDictionary.getKeys"],"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.js b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js index 371003a5..fe1cd37d 100644 --- a/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js +++ b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js @@ -1,10 +1,7 @@ -/// -/* - * @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 DictionaryBase from './DictionaryBase'; +const VOID0 = void 0; export default class StringKeyDictionary extends DictionaryBase { constructor(...args) { super(...args); @@ -28,7 +25,7 @@ export default class StringKeyDictionary extends DictionaryBase { setValue(key, value) { var _ = this, map = _._map, old = map[key]; if (old !== value) { - if (value === undefined) { + if (value === VOID0) { if ((key) in (map)) { delete map[key]; --_._count; @@ -62,7 +59,7 @@ export default class StringKeyDictionary extends DictionaryBase { var value = _._map[key]; if (selector) value = selector(key, value); - if (value !== undefined) + if (value !== VOID0) result[key] = value; } } diff --git a/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js.map b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js.map index 87c3882d..932d5def 100644 --- a/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js.map +++ b/dist/es6/System/Collections/Dictionaries/StringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":["StringKeyDictionary","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js index 84c52c6a..bb03d46a 100644 --- a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js @@ -1,7 +1,4 @@ -/* - * @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 { diff --git a/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map b/dist/es6/System/Collections/Enumeration/ArrayEnumerator.js.map index 7ed1bb10..a7082608 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":["ArrayEnumerator","ArrayEnumerator.constructor"],"mappings":"AAAA;;;GAGG;OAGI,eAAe,MAAM,mBAAmB;OACxC,IAAI,MAAM,aAAa;AAE9B,6CACiC,eAAe;IAI/CA,YAAYA,cAAkBA,EAAEA,KAAKA,GAAUA,CAACA,EAAEA,IAAIA,GAAUA,CAACA;QAEhEC,MACCA;YAECA,IAAIA,KAAKA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,cAAcA,CAACA,GAAGA,cAAcA,EAAEA,GAAGA,cAAcA,CAACA;YAChFA,MAAMA,CAACA,EAACA,MAAMA,EAAEA,KAAKA,EAAEA,OAAOA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,CAACA,KAAKA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAIA,EAACA,CAACA;QACxFA,CAACA,CACDA,CAACA;IACHA,CAACA;AACFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/ArrayEnumerator.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAGN,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,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;QACxF,CAAC,CACD,CAAC;IACH,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js b/dist/es6/System/Collections/Enumeration/Enumerator.js index 2503902a..3fada89b 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.js +++ b/dist/es6/System/Collections/Enumeration/Enumerator.js @@ -1,7 +1,4 @@ -/* - * @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 ArrayEnumerator from './ArrayEnumerator'; import IndexEnumerator from './IndexEnumerator'; diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js.map b/dist/es6/System/Collections/Enumeration/Enumerator.js.map index d89457fd..879a3dc2 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":["EmptyEnumerator","EmptyEnumerator.current","EmptyEnumerator.moveNext","EmptyEnumerator.reset","EmptyEnumerator.dispose","from","isEnumerable","forEach"],"mappings":"AAAA;;;GAGG;OAMI,IAAI,MAAM,aAAa;OAEvB,eAAe,MAAM,mBAAmB;OACxC,eAAe,MAAM,mBAAmB;AAG/C;IAECA,IAAIA,OAAOA;QAEVC,MAAMA,CAACA,SAASA,CAACA;IAClBA,CAACA;IAEDD,QAAQA;QAEPE,MAAMA,CAACA,KAAKA,CAACA;IACdA,CAACA;IAEDF,KAAKA,KAAUG,CAACA;IAEhBH,OAAOA,KAAUI,CAACA;AACnBJ,CAACA;AAED,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;AAGpC,qBAAwB,MAAiC;IAGxDK,EAAEA,CAAAA,CAACA,CAACA,MAAMA,CAACA;QACVA,MAAMA,CAACA,KAAKA,CAACA;IAEdA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QACxBA,MAAMA,CAACA,IAAIA,eAAeA,CAASA,MAAMA,CAACA,CAACA;IAG5CA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA,CAC7BA,CAACA;QACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,WAAWA,CAAIA,MAAMA,CAACA,CAACA,CAC/BA,CAACA;YACAA,MAAMA,CAACA,IAAIA,eAAeA,CACzBA;gBAECA,MAAMA,CAACA;oBACNA,MAAMA,EAAEA,MAAMA;oBACdA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA;oBACrBA,OAAOA,EAAEA,CAACA;oBACVA,IAAIA,EAAEA,CAACA;iBACPA,CAAAA;YACFA,CAACA,CACDA,CAACA;QACHA,CAACA;QACDA,EAAEA,CAAAA,CAACA,YAAYA,CAAIA,MAAMA,CAACA,CAACA;YAC1BA,MAAMA,CAACA,MAAMA,CAACA,aAAaA,EAAEA,CAACA;IAEhCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,CAACA,qBAAqBA,CAACA,CAACA;AACxCA,CAACA;AAED,6BAAgC,QAAY;IAE3CC,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAAiBA,QAAQA,EAAEA,eAAeA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,CAACA;AACvFA,CAACA;AAED,wBACC,CAAgB,EAChB,MAAwC;IAExCC,EAAEA,CAAAA,CAACA,CAACA,CAACA,CACLA,CAACA;QACAA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;QAEdA,OAAMA,CAACA,CAACA,QAAQA,EAAEA,EAClBA,CAACA;YACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CAACA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,CAACA,KAAGA,KAAKA,CAACA;gBACrCA,KAAKA,CAACA;QACRA,CAACA;IACFA,CAACA;AACFA,CAACA"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAMN,IAAI,MAAM,aAAa;OAEvB,eAAe,MAAM,mBAAmB;OACxC,eAAe,MAAM,mBAAmB;AAG/C;IAEC,IAAI,OAAO;QAEV,MAAM,CAAC,SAAS,CAAC;IAClB,CAAC;IAED,QAAQ;QAEP,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,KAAK,KAAU,CAAC;IAEhB,OAAO,KAAU,CAAC;AACnB,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;AAGpC,qBAAwB,MAAiC;IAGxD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;QACV,MAAM,CAAC,KAAK,CAAC;IAEd,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,eAAe,CAAS,MAAM,CAAC,CAAC;IAG5C,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAC7B,CAAC;QACA,EAAE,CAAA,CAAC,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC,CAC/B,CAAC;YACA,MAAM,CAAC,IAAI,eAAe,CACzB;gBAEC,MAAM,CAAC;oBACN,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,CAAC;iBACP,CAAA;YACF,CAAC,CACD,CAAC;QACH,CAAC;QACD,EAAE,CAAA,CAAC,YAAY,CAAI,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAEhC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACxC,CAAC;AAED,6BAAgC,QAAY;IAE3C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvF,CAAC;AAED,wBACC,CAAgB,EAChB,MAAwC;IAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;QACA,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;YACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;gBACrC,KAAK,CAAC;QACR,CAAC;IACF,CAAC;AACF,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js index 075dadef..cd15709e 100644 --- a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js @@ -1,7 +1,4 @@ -/* - * @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'; class Yielder { get current() { return this._current; } diff --git a/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map b/dist/es6/System/Collections/Enumeration/EnumeratorBase.js.map index bca6acaa..3a5711f2 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":["Yielder","Yielder.current","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorState","EnumeratorBase","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._onDispose"],"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":"AAOA,YAAY,CAAC;OAGN,cAAc,MAAM,iCAAiC;AAI5D;IAGC,IAAI,OAAO,KAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzC,WAAW,CAAC,KAAO;QAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAGD,IAAK,eAA0C;AAA/C,WAAK,eAAe;IAAG,yDAAM,CAAA;IAAE,2DAAO,CAAA;IAAE,uDAAK,CAAA;AAAC,CAAC,EAA1C,eAAe,KAAf,eAAe,QAA2B;AAG/C,4CACgC,cAAc;IAW7C,YACS,WAAsB,EACtB,UAAyC,EACzC,QAAoB;QAE5B,OAAO,CAAC;QAJA,gBAAW,GAAX,WAAW,CAAW;QACtB,eAAU,GAAV,UAAU,CAA+B;QACzC,aAAQ,GAAR,QAAQ,CAAY;QAG5B,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAZD,IAAI,OAAO;QACV,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC9B,CAAC;IAaD,KAAK;QACJ,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAK,CAAC;QAC9B,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC;YACJ,MAAM,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,KAAK,eAAe,CAAC,MAAM;oBAC1B,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;oBACnC,IAAI,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;oBAChC,EAAE,CAAA,CAAC,WAAW,CAAC;wBACd,WAAW,EAAE,CAAC;gBAEhB,KAAK,eAAe,CAAC,OAAO;oBAC3B,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,CAAC,CAAC;wBACL,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;gBACF,KAAK,eAAe,CAAC,KAAK;oBACzB,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CACA;QAAA,KAAK,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAEpC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAElB,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;QACzB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClB,EAAE,CAAA,CAAC,OAAO,CAAC;YACV,OAAO,CAAC,UAAU,EAAE,CAAC;QAEtB,IAAI,CAAC;YAEJ,EAAE,CAAA,CAAC,QAAQ,CAAC;gBACX,QAAQ,EAAE,CAAC;QAEb,CAAC;gBACO,CAAC;YAER,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js index 71bba074..875b6b51 100644 --- a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js @@ -1,3 +1,4 @@ +'use strict'; import EnumeratorBase from './EnumeratorBase'; export default class IndexEnumerator extends EnumeratorBase { constructor(sourceFactory) { diff --git a/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map b/dist/es6/System/Collections/Enumeration/IndexEnumerator.js.map index 0beadfe1..16ca02a4 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":["IndexEnumerator","IndexEnumerator.constructor"],"mappings":"OAAO,cAAc,MAAM,kBAAkB;AAE7C,6CACiC,cAAc;IAG9CA,YACCA,aAAqGA;QAGrGC,IAAIA,MAAwFA,CAACA;QAC7FA,MACCA;YAECA,MAAMA,GAAGA,aAAaA,EAAEA,CAACA;YACzBA,EAAEA,CAAAA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,CAC3BA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,IAAIA,KAAGA,CAACA,CAACA;oBACnCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,CAACA,CAACA;gBAE5DA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;gBAC7BA,EAAEA,CAAAA,CAACA,CAACA,OAAOA,CAACA;oBACXA,MAAMA,CAACA,OAAOA,GAAGA,CAACA,CAACA;gBACpBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,OAAOA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA;oBACpCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,GAAGA,OAAOA,GAAGA,gBAAgBA,CAACA,CAACA;gBACzFA,MAAMA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAEzBA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA;oBACRA,MAAMA,CAACA,IAAIA,GAAGA,CAACA,CAACA;gBACjBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,IAAIA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAC9BA,MAAMA,IAAIA,KAAKA,CAACA,sCAAsCA,GAAGA,IAAIA,GAAGA,gBAAgBA,CAACA,CAACA;gBACnFA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACpBA,CAACA;QACFA,CAACA,EAEDA,CAACA,OAAOA;YAEPA,IAAIA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YACxDA,EAAEA,CAAAA,CAACA,CAACA,GAAGA,CAACA;gBACPA,MAAMA,CAACA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;YAC7BA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;YAC7BA,MAAMA,CAACA,OAAOA,IAAIA,MAAMA,CAACA,IAAIA,CAACA;YAC9BA,MAAMA,CAACA,CAACA,OAAOA,GAACA,GAAGA,IAAIA,OAAOA,IAAEA,CAACA,CAACA;kBAC/BA,OAAOA,CAACA,WAAWA,CAACA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA;kBAC3CA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;QACzBA,CAACA,EAEDA;YAECA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;gBACAA,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;YACtBA,CAACA;QACFA,CAACA,CACDA,CAACA;IACHA,CAACA;AACFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAEN,cAAc,MAAM,kBAAkB;AAE7C,6CACiC,cAAc;IAG9C,YACC,aAAqG;QAGrG,IAAI,MAAwF,CAAC;QAC7F,MACC;YAEC,MAAM,GAAG,aAAa,EAAE,CAAC;YACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAE5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;oBACX,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;gBACpB,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,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;gBACjB,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,CAAC;gBACP,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;IACH,CAAC;AACF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Enumeration/forEach.js b/dist/es6/System/Collections/Enumeration/forEach.js index 36c0b37d..c0fc9afd 100644 --- a/dist/es6/System/Collections/Enumeration/forEach.js +++ b/dist/es6/System/Collections/Enumeration/forEach.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ import { using } from '../../Disposable/Utility'; import * as Enumerator from '../../Collections/Enumeration/Enumerator'; export default function forEach(enumerable, action) { diff --git a/dist/es6/System/Collections/Enumeration/forEach.js.map b/dist/es6/System/Collections/Enumeration/forEach.js.map index f440283f..15453e6b 100644 --- a/dist/es6/System/Collections/Enumeration/forEach.js.map +++ b/dist/es6/System/Collections/Enumeration/forEach.js.map @@ -1 +1 @@ -{"version":3,"file":"forEach.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/forEach.ts"],"names":["forEach"],"mappings":"AAAA;;;GAGG;OAII,EAAC,KAAK,EAAC,MAAM,0BAA0B;OACvC,KAAK,UAAU,MAAM,0CAA0C;AAEtE,gCACI,UAAqC,EACrC,MAAwC;IAExCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACbA,KAAKA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,EAAEA,CAACA;YAEhCA,UAAUA,CAACA,OAAOA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;QAClCA,CAACA,CAACA,CAACA;IACPA,CAACA;AACLA,CAACA"} \ No newline at end of file +{"version":3,"file":"forEach.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/forEach.ts"],"names":[],"mappings":"OAOO,EAAC,KAAK,EAAC,MAAM,0BAA0B;OACvC,KAAK,UAAU,MAAM,0CAA0C;AAEtE,gCACI,UAAqC,EACrC,MAAwC;IAExC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACb,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAEhC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedList.js b/dist/es6/System/Collections/LinkedList.js index 4690e503..5678df9f 100644 --- a/dist/es6/System/Collections/LinkedList.js +++ b/dist/es6/System/Collections/LinkedList.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import * as Values from '../Compare'; import * as TextUtility from '../Text/Utility'; import * as ArrayUtility from '../Collections/Array/Utility'; diff --git a/dist/es6/System/Collections/LinkedList.js.map b/dist/es6/System/Collections/LinkedList.js.map index 45bf3dd6..32a6158d 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":["Node","Node.constructor","Node.assertDetached","ensureExternal","getInternal","LinkedList","LinkedList.constructor","LinkedList._addFirst","LinkedList._addLast","LinkedList._addNodeBefore","LinkedList._addNodeAfter","LinkedList._findFirst","LinkedList._findLast","LinkedList.forEach","LinkedList.getEnumerator","LinkedList.count","LinkedList.isReadOnly","LinkedList.add","LinkedList.clear","LinkedList.contains","LinkedList.copyTo","LinkedList.toArray","LinkedList.removeOnce","LinkedList.remove","LinkedList.first","LinkedList.last","LinkedList._getNodeAt","LinkedList.getValueAt","LinkedList.getNodeAt","LinkedList.find","LinkedList.findLast","LinkedList.addFirst","LinkedList.addLast","LinkedList.removeFirst","LinkedList.removeLast","LinkedList.removeNode","LinkedList.addBefore","LinkedList.addAfter","LinkedList.addNodeBefore","LinkedList.addNodeAfter","LinkedListNode","LinkedListNode.constructor","LinkedListNode.list","LinkedListNode.previous","LinkedListNode.next","LinkedListNode.value","LinkedListNode.addBefore","LinkedListNode.addAfter","LinkedListNode.addNodeBefore","LinkedListNode.addNodeAfter","LinkedListNode.remove"],"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/Queue.js b/dist/es6/System/Collections/Queue.js index 3e777f87..fd2b4e1d 100644 --- a/dist/es6/System/Collections/Queue.js +++ b/dist/es6/System/Collections/Queue.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import * as Values from '../Compare'; import * as AU from './Array/Utility'; import Type from '../Types'; @@ -13,6 +9,7 @@ import NotImplementedException from '../Exceptions/NotImplementedException'; import InvalidOperationException from '../Exceptions/InvalidOperationException'; import ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException'; const MINIMUM_GROW = 4; +const SHRINK_THRESHOLD = 32; const GROW_FACTOR_HALF = 100; const DEFAULT_CAPACITY = MINIMUM_GROW; var emptyArray = []; @@ -65,8 +62,27 @@ export default class Queue { _._tail = 0; _._size = 0; _._version++; + _.trimExcess(); return size; } + dump(max = Infinity) { + if (Type.isNumber(max, false) && max < 0) + throw new ArgumentOutOfRangeException('max', max, 'must be greater than or equal to 0.'); + var _ = this, result = []; + if (isFinite(max)) { + Integer.assert(max, 'max'); + while (max-- && _._size) { + result.push(_.dequeue()); + } + } + else { + while (_._size) { + result.push(_.dequeue()); + } + } + _.trimExcess(); + return result; + } contains(item) { var _ = this; var array = _._array, index = _._head, count = _._size, len = _._capacity; @@ -161,18 +177,32 @@ export default class Queue { _._size = size + 1; _._version++; } - dequeue() { + dequeue(throwIfEmpty = false) { var _ = this; - if (_._size == 0) - throw new InvalidOperationException("Cannot dequeue an empty queue."); + if (_._size == 0) { + if (throwIfEmpty) + throw new InvalidOperationException("Cannot dequeue an empty queue."); + return void 0; + } var array = _._array, head = _._head; var removed = _._array[head]; array[head] = null; _._head = (head + 1) % _._capacity; _._size--; + if (_._size < _._capacity / 2) { + _.trimExcess(SHRINK_THRESHOLD); + } _._version++; return removed; } + tryDequeue(out) { + if (!this._size) + return false; + var d = this.dequeue(); + if (out) + out(d); + return true; + } _getElement(index) { assertIntegerZeroOrGreater(index, "index"); var _ = this; @@ -183,10 +213,10 @@ export default class Queue { throw new InvalidOperationException("Cannot call peek on an empty queue."); return this._array[this._head]; } - trimExcess() { + trimExcess(threshold) { var _ = this; var size = _._size; - if (size < Math.floor(_._capacity * 0.9)) + if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size)) _.setCapacity(size); } getEnumerator() { diff --git a/dist/es6/System/Collections/Queue.js.map b/dist/es6/System/Collections/Queue.js.map index ada17e93..0d0b4128 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":["Queue","Queue.constructor","Queue.count","Queue.isReadOnly","Queue.add","Queue.clear","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","assertZeroOrGreater","assertIntegerZeroOrGreater"],"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/Sorting/KeySortedContext.js b/dist/es6/System/Collections/Sorting/KeySortedContext.js index 1e375240..51e29833 100644 --- a/dist/es6/System/Collections/Sorting/KeySortedContext.js +++ b/dist/es6/System/Collections/Sorting/KeySortedContext.js @@ -1,7 +1,4 @@ -/* - * @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"; diff --git a/dist/es6/System/Collections/Sorting/KeySortedContext.js.map b/dist/es6/System/Collections/Sorting/KeySortedContext.js.map index d9bb7328..1ffc37b8 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":["KeySortedContext","KeySortedContext.constructor","KeySortedContext.compare"],"mappings":"AAAA;;;GAGG;OAMI,KAAK,MAAM,MAAM,eAAe;OAEhC,WAAW,MAAM,eAAe;OAChC,SAAS,MAAM,iBAAiB;AAIvC,8CAC2D,WAAW;IAErEA,YACCA,IAAiBA,EACPA,YAA6BA,EACvCA,KAAKA,GAASA,CAAeA,EAC7BA,QAAQA,GAAiBA,MAAMA,CAACA,OAAOA;QAEvCC,MAAMA,IAAIA,EAAEA,QAAQA,EAAEA,KAAKA,CAACA,CAACA;QAJnBA,iBAAYA,GAAZA,YAAYA,CAAiBA;IAKxCA,CAACA;IAEDD,OAAOA,CAACA,CAAGA,EAAEA,CAAGA;QAEfE,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,EAAEA,GAAGA,CAACA,CAACA,YAAYA,CAACA;QAClCA,EAAEA,CAAAA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAEA,SAASA,CAACA,QAAQA,CAACA;YAACA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAE7DA,IAAIA,CAACA,GAAGA,MAAMA,CAACA,OAAOA,CAAMA,EAAEA,CAACA,CAACA,CAACA,EAAOA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC/CA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;YAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;IACnBA,CAACA;AACFF,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAON,KAAK,MAAM,MAAM,eAAe;OAChC,WAAW,MAAM,eAAe;OAChC,SAAS,MAAM,iBAAiB;AAIvC,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 diff --git a/dist/es6/System/Collections/Sorting/Order.js b/dist/es6/System/Collections/Sorting/Order.js deleted file mode 100644 index d73c4c12..00000000 --- a/dist/es6/System/Collections/Sorting/Order.js +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=Order.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/Order.js.map b/dist/es6/System/Collections/Sorting/Order.js.map deleted file mode 100644 index 3e519cba..00000000 --- a/dist/es6/System/Collections/Sorting/Order.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Order.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/Order.ts"],"names":[],"mappings":"AAOC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/Sorting/SortContext.js b/dist/es6/System/Collections/Sorting/SortContext.js index d3547213..75cabab6 100644 --- a/dist/es6/System/Collections/Sorting/SortContext.js +++ b/dist/es6/System/Collections/Sorting/SortContext.js @@ -1,7 +1,4 @@ -/* - * @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 { constructor(_next, _comparer = Values.compare, _order = 1) { diff --git a/dist/es6/System/Collections/Sorting/SortContext.js.map b/dist/es6/System/Collections/Sorting/SortContext.js.map index 55c36349..abe509df 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":["SortContext","SortContext.constructor","SortContext.order","SortContext.generateSortedIndexes","SortContext.compare"],"mappings":"AAAA;;;GAGG;OAKI,KAAK,MAAM,MAAM,eAAe;AAKvC;IAWCA,YACWA,KAAkBA,EAClBA,SAASA,GAAiBA,MAAMA,CAACA,OAAOA,EACxCA,MAAMA,GAASA,CAAeA;QAF9BC,UAAKA,GAALA,KAAKA,CAAaA;QAClBA,cAASA,GAATA,SAASA,CAA+BA;QACxCA,WAAMA,GAANA,MAAMA,CAAwBA;IAEzCA,CAACA;IARDD,IAAIA,KAAKA,KACPE,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;IAevBF,qBAAqBA,CAACA,MAAUA;QAE/BG,EAAEA,CAAAA,CAACA,MAAMA,IAAEA,IAAIA,CAACA;YAACA,MAAMA,CAACA,EAAEA,CAACA;QAC3BA,IAAIA,MAAMA,GAAYA,MAAMA,CAACA,GAAGA,CAACA,CAACA,CAACA,EAAEA,CAACA,KAAGA,CAACA,CAACA,CAACA;QAC5CA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,EAAEA,CAACA,KAAKA,IAAIA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1DA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAQDH,OAAOA,CAACA,CAAGA,EAAEA,CAAGA;QAEfI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,IAAIA,CAACA,GAAGA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;YAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;IACnBA,CAACA;AACFJ,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/SortContext.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAMN,KAAK,MAAM,MAAM,eAAe;AAIvC;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 diff --git a/dist/es6/System/Compare.js b/dist/es6/System/Compare.js index 38bb4db3..ff1c6d2d 100644 --- a/dist/es6/System/Compare.js +++ b/dist/es6/System/Compare.js @@ -1,11 +1,6 @@ -/// -/// -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ import Type from './Types'; var isTrueNaN = Type.isTrueNaN; +const VOID0 = void 0; export function areEqual(a, b, strict = true) { return a === b || !strict && a == b || isTrueNaN(a) && isTrueNaN(b); } @@ -17,9 +12,9 @@ export function compare(a, b, strict = true) { return a.compareTo(b); else if (b && Type.hasMember(b, COMPARE_TO)) return -b.compareTo(a); - if (a > b || strict && (a === 0 && b == 0 || a === null && b === undefined)) + 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 === undefined)) + if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0)) return -1; return NaN; } diff --git a/dist/es6/System/Compare.js.map b/dist/es6/System/Compare.js.map index eb1cf88a..b65e3d52 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":["areEqual","compare"],"mappings":"AAAA,uCAAuC;AACvC,qCAAqC;AACrC;;;GAGG;OAEI,IAAI,MAAM,SAAS;AAC1B,IAAO,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAUlC,yBAAyB,CAAK,EAAE,CAAK,EAAE,MAAM,GAAW,IAAI;IAE3DA,MAAMA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA;AACjEA,CAACA;AAED,MAAM,UAAU,GAAG,WAAW,CAAC;AAI/B,wBAAwB,CAAK,EAAE,CAAK,EAAE,MAAM,GAAW,IAAI;IAG1DC,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,EAAEA,MAAMA,CAACA,CAACA;QACzBA,MAAMA,CAACA,CAAmBA,CAACA;IAE5BA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,IAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;QACrCA,MAAMA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;IACvBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,IAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;QAC1CA,MAAMA,CAACA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;IAIxBA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,SAASA,CAACA,CAACA;QAChEA,MAAMA,CAACA,CAAqBA,CAACA;IAE9BA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,SAASA,CAACA,CAACA;QAChEA,MAAMA,CAACA,EAAkBA,CAACA;IAE3BA,MAAMA,CAACA,GAAGA,CAACA;AACZA,CAACA"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"OAQO,IAAI,MAAM,SAAS;AAC1B,IAAO,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAElC,MAAM,KAAK,GAAO,KAAK,CAAC,CAAC;AAIzB,yBAAyB,CAAK,EAAE,CAAK,EAAE,MAAM,GAAW,IAAI;IAE3D,MAAM,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,GAAG,WAAW,CAAC;AAI/B,wBAAwB,CAAK,EAAE,CAAK,EAAE,MAAM,GAAW,IAAI;IAG1D,EAAE,CAAA,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,CAAmB,CAAC;IAE5B,EAAE,CAAA,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE,CAAA,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAIxB,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAqB,CAAC;IAE9B,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAkB,CAAC;IAE3B,MAAM,CAAC,GAAG,CAAC;AACZ,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Diagnostics/Stopwatch.js b/dist/es6/System/Diagnostics/Stopwatch.js index 9204a77c..dc696731 100644 --- a/dist/es6/System/Diagnostics/Stopwatch.js +++ b/dist/es6/System/Diagnostics/Stopwatch.js @@ -1,7 +1,4 @@ -/* - * @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'; export default class Stopwatch { constructor() { diff --git a/dist/es6/System/Diagnostics/Stopwatch.js.map b/dist/es6/System/Diagnostics/Stopwatch.js.map index a11201e0..13cfd104 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":["Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","Stopwatch.isRunning","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed"],"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.js b/dist/es6/System/Disposable/DisposableBase.js index b948164e..8dae0808 100644 --- a/dist/es6/System/Disposable/DisposableBase.js +++ b/dist/es6/System/Disposable/DisposableBase.js @@ -1,7 +1,4 @@ -/* - * @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 { constructor(_finalizer) { diff --git a/dist/es6/System/Disposable/DisposableBase.js.map b/dist/es6/System/Disposable/DisposableBase.js.map index bb46c463..464dfcd8 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":["DisposableBase","DisposableBase.constructor","DisposableBase.wasDisposed","DisposableBase.throwIfDisposed","DisposableBase.dispose","DisposableBase._onDispose"],"mappings":"AAAA;;;GAGG;OAKI,uBAAuB,MAAM,2BAA2B;AAE/D;IAGCA,YAAoBA,UAAsBA;QAAtBC,eAAUA,GAAVA,UAAUA,CAAYA;QAIlCA,iBAAYA,GAAWA,KAAKA,CAACA;IAFrCA,CAACA;IAGDD,IAAIA,WAAWA;QAEdE,MAAMA,CAACA,IAAIA,CAACA,YAAYA,CAACA;IAC1BA,CAACA;IAKSF,eAAeA,CACxBA,OAAeA,EACfA,UAAUA,GAAUA,IAAIA,CAACA,qBAAqBA;QAE9CG,EAAEA,CAAAA,CAACA,IAAIA,CAACA,YAAYA,CAACA;YACpBA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;QACxDA,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;IAGDH,OAAOA;QAENI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,YAAYA,CAACA,CACnBA,CAACA;YAGAA,CAACA,CAACA,YAAYA,GAAGA,IAAIA,CAACA;YACtBA,IACAA,CAACA;gBACAA,CAACA,CAACA,UAAUA,EAAEA,CAACA;YAChBA,CAACA;oBAEDA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,UAAUA,CAACA;oBACfA,CAACA,CAACA,UAAUA,EAAEA,CAACA;YACjBA,CAACA;QACFA,CAACA;IACFA,CAACA;IAGSJ,UAAUA,KAAUK,CAACA;AAEhCL,CAACA;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["../../../../source/System/Disposable/DisposableBase.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Disposable/ObjectDisposedException.js b/dist/es6/System/Disposable/ObjectDisposedException.js index 984a6dae..454f2d73 100644 --- a/dist/es6/System/Disposable/ObjectDisposedException.js +++ b/dist/es6/System/Disposable/ObjectDisposedException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import InvalidOperationException from '../Exceptions/InvalidOperationException'; const NAME = 'ObjectDisposedException'; export default class ObjectDisposedException extends InvalidOperationException { diff --git a/dist/es6/System/Disposable/ObjectDisposedException.js.map b/dist/es6/System/Disposable/ObjectDisposedException.js.map index 6e6cfed3..719a4f44 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":["ObjectDisposedException","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed"],"mappings":"AAAA;;;;GAIG;OAII,yBAAyB,MAAM,yCAAyC;AAG/E,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,qDAEQ,yBAAyB;IAMhCA,YACCA,UAAiBA,EACjBA,OAAOA,GAAUA,IAAIA,EACrBA,cAAcA,GAAaA,IAAIA;QAE/BC,MAAMA,OAAOA,EAAEA,cAAcA,EAAEA,CAACA,CAACA;YAChCA,CAACA,CAACA,UAAUA,GAAGA,UAAUA,CAACA;QAC3BA,CAACA,CAACA,CAACA;IACJA,CAACA;IAGSD,OAAOA;QAEhBE,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;IAEDF,QAAQA;QAEPG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,UAAUA,CAACA;QACnCA,KAAKA,GAAGA,KAAKA,GAAGA,CAACA,GAAGA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;QAE1CA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,KAAKA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;IACtDA,CAACA;IAEDH,OAAOA,eAAeA,CACrBA,UAA2BA,EAC3BA,UAAkBA,EAClBA,OAAeA;QAEfI,EAAEA,CAAAA,CAACA,UAAUA,CAACA,WAAWA,CAACA;YACzBA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;IACzDA,CAACA;AAEFJ,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":"AAMA,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 diff --git a/dist/es6/System/Disposable/Utility.js b/dist/es6/System/Disposable/Utility.js index e5f0e3dd..69d97347 100644 --- a/dist/es6/System/Disposable/Utility.js +++ b/dist/es6/System/Disposable/Utility.js @@ -1,9 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -import Type from '../Types'; 'use strict'; +import Type from '../Types'; export function dispose(...disposables) { disposeTheseInternal(disposables, false); } diff --git a/dist/es6/System/Disposable/Utility.js.map b/dist/es6/System/Disposable/Utility.js.map index 10ffded9..c7d5d802 100644 --- a/dist/es6/System/Disposable/Utility.js.map +++ b/dist/es6/System/Disposable/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Disposable/Utility.ts"],"names":["dispose","disposeWithoutException","disposeThese","using","disposeSingle","disposeTheseInternal"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Disposable/Utility.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAIN,IAAI,MAAM,UAAU;AAQ3B,wBAAwB,GAAG,WAAyB;IAGnD,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AASD,wCAAwC,GAAG,WAAyB;IAGnE,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAQD,6BAA6B,WAAyB,EAAE,cAAuB;IAE9E,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM;UACrC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC;UACzD,IAAI,CAAC;AACT,CAAC;AAiBD,sBACC,UAAsB,EACtB,OAA2C;IAE3C,IACA,CAAC;QACA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;YAED,CAAC;QACA,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAOD,uBACC,UAAsB,EACtB,cAAsB;IAEtB,EAAE,CAAA,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CACpD,CAAC;QACA,EAAE,CAAA,CAAC,cAAc,CAAC,CAClB,CAAC;YACA,IACA,CAAC;gBACA,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,MAAM,CAAC,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QACD,IAAI;YACH,UAAU,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;AACb,CAAC;AAKD,8BACC,WAAyB,EACzB,cAAsB,EACtB,KAAK,GAAU,CAAC;IAEhB,IAAI,UAAgB,CAAC;IACrB,IAAI,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;IAE7B,GAAG,CAAA,CAAC,EAAE,KAAK,GAAC,GAAG,EAAE,KAAK,EAAE,EACxB,CAAC;QACA,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YAAC,QAAQ,CAAC;QACnB,EAAE,CAAA,CAAC,cAAc,CAAC,CAClB,CAAC;YACA,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,EAAE,CAAA,CAAC,EAAE,CAAC,CACN,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC;oBAAC,UAAU,GAAG,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IACA,CAAC;gBACA,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;oBAGD,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,GAAC,GAAG,CAAC,CAC7B,CAAC;oBAGA,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC;YAED,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;gBAAC,KAAK,CAAC;QACpB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,UAAU,CAAC;AACnB,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcher.js b/dist/es6/System/Events/EventDispatcher.js index 1926caea..d18fa88f 100644 --- a/dist/es6/System/Events/EventDispatcher.js +++ b/dist/es6/System/Events/EventDispatcher.js @@ -1,7 +1,4 @@ -/* - * @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'; diff --git a/dist/es6/System/Events/EventDispatcher.js.map b/dist/es6/System/Events/EventDispatcher.js.map index f488cde0..90237431 100644 --- a/dist/es6/System/Events/EventDispatcher.js.map +++ b/dist/es6/System/Events/EventDispatcher.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcher.ts"],"names":["EventDispatcherEntry","EventDispatcherEntry.constructor","EventDispatcherEntry.dispose","EventDispatcherEntry.wasDisposed","EventDispatcherEntry.matches","EventDispatcherEntry.equals","EventDispatcher","EventDispatcher.constructor","EventDispatcher.addEventListener","EventDispatcher.registerEventListener","EventDispatcher.hasEventListener","EventDispatcher.removeEventListener","EventDispatcher.dispatchEvent","EventDispatcher.DISPOSING","EventDispatcher.DISPOSED","EventDispatcher.isDisposing","EventDispatcher.dispose"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcher.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Exception.js b/dist/es6/System/Exception.js index f3e0d111..c5fb18fa 100644 --- a/dist/es6/System/Exception.js +++ b/dist/es6/System/Exception.js @@ -1,10 +1,4 @@ -/* - * @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 - */ -/// -/// +'use strict'; const NAME = 'Exception'; export default class Exception { constructor(message = null, innerException = null, beforeSealing) { diff --git a/dist/es6/System/Exception.js.map b/dist/es6/System/Exception.js.map index eef4f245..3cad2d71 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":["Exception","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose"],"mappings":"AAAA;;;;GAIG;AAEH,gEAAgE;AAChE,kDAAkD;AAGlD,MAAM,IAAI,GAAU,WAAW,CAAC;AAKhC;IAeCA,YACQA,OAAOA,GAAUA,IAAIA,EAC5BA,cAAcA,GAASA,IAAIA,EAC3BA,aAA6BA;QAFtBC,YAAOA,GAAPA,OAAOA,CAAcA;QAI5BA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,CAACA;QACrBA,CAACA,CAACA,IAAIA,GAAGA,EAAEA,CAACA;QACZA,EAAEA,CAAAA,CAACA,cAAcA,CAACA;YACjBA,CAACA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,GAAGA,cAAcA,CAACA;QAO3CA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;YAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;IAClBA,CAACA;IASSD,OAAOA,KACfE,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;IAKhBF,QAAQA;QAEPG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAGA,CAACA,CAACA,OAAOA,CAACA;QAC5BA,CAACA,GAAGA,CAACA,GAAGA,CAACA,IAAIA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;QAExBA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;IAC/BA,CAACA;IAKDH,OAAOA;QAENI,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;QACrBA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAClBA,CAACA;YACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA;gBACzBA,OAAOA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,CAACA;IACFA,CAACA;AACFJ,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":"AAKA,YAAY,CAAC;AAMb,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;QACb,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;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IASS,OAAO,KACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAKhB,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAExB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;IAC/B,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 diff --git a/dist/es6/System/ExceptionType.js b/dist/es6/System/ExceptionType.js index 7b5e34c4..8508482d 100644 --- a/dist/es6/System/ExceptionType.js +++ b/dist/es6/System/ExceptionType.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ export const Error = 'Error'; export const EvalError = 'EvalError'; export const RangeError = 'RangeError'; diff --git a/dist/es6/System/ExceptionType.js.map b/dist/es6/System/ExceptionType.js.map index febf86b8..137b621a 100644 --- a/dist/es6/System/ExceptionType.js.map +++ b/dist/es6/System/ExceptionType.js.map @@ -1 +1 @@ -{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["../../../source/System/ExceptionType.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,aACA,KAAK,GAAG,OAAO,CAAC;AAKhB,aACA,SAAS,GAAG,WAAW,CAAC;AAKxB,aACA,UAAU,GAAG,YAAY,CAAC;AAM1B,aACA,cAAc,GAAG,gBAAgB,CAAC;AAKlC,aACA,WAAW,GAAG,aAAa,CAAC;AAK5B,aACA,SAAS,GAAG,WAAW,CAAC;AAKxB,aACA,QAAQ,GAAG,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["../../../source/System/ExceptionType.ts"],"names":[],"mappings":"AAgBA,OAAO,MACP,KAAK,GAAG,OAAO,CAAC;AAKhB,OAAO,MACP,SAAS,GAAG,WAAW,CAAC;AAKxB,OAAO,MACP,UAAU,GAAG,YAAY,CAAC;AAM1B,OAAO,MACP,cAAc,GAAG,gBAAgB,CAAC;AAKlC,OAAO,MACP,WAAW,GAAG,aAAa,CAAC;AAK5B,OAAO,MACP,SAAS,GAAG,WAAW,CAAC;AAKxB,OAAO,MACP,QAAQ,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentException.js b/dist/es6/System/Exceptions/ArgumentException.js index 94c6ee19..74ade374 100644 --- a/dist/es6/System/Exceptions/ArgumentException.js +++ b/dist/es6/System/Exceptions/ArgumentException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import SystemException from './SystemException'; import { trim } from '../Text/Utility'; const NAME = 'ArgumentException'; diff --git a/dist/es6/System/Exceptions/ArgumentException.js.map b/dist/es6/System/Exceptions/ArgumentException.js.map index 5aab7133..bbc7ecdd 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":["ArgumentException","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString"],"mappings":"AAAA;;;;GAIG;OAII,eAAe,MAAM,mBAAmB;OACxC,EAAC,IAAI,EAAC,MAAM,iBAAiB;AAGpC,MAAM,IAAI,GAAU,mBAAmB,CAAC;AAExC,+CACgC,eAAe;IAM9CA,YACCA,SAAgBA,EAChBA,OAAOA,GAAUA,IAAIA,EACrBA,cAAcA,GAASA,IAAIA,EAC3BA,aAA6BA;QAE7BC,IAAIA,EAAEA,GAAGA,SAASA,GAAGA,CAACA,GAAGA,GAAGA,SAASA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;QAEnDA,MAAMA,IAAIA,CAACA,EAAEA,GAAGA,OAAOA,CAACA,EAAEA,cAAcA,EAAEA,CAACA,CAACA;YAC3CA,CAACA,CAACA,SAASA,GAAGA,SAASA,CAACA;YACxBA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;gBAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;QACpCA,CAACA,CAACA,CAACA;IACJA,CAACA;IAGSD,OAAOA;QAEhBE,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;IAEDF,QAAQA;QAEPG,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;IAC9CA,CAACA;AAEFH,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":"AAKA,YAAY,CAAC;OAIN,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;QAEnD,MAAM,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3C,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;IAED,QAAQ;QAEP,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;IAC9C,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Exceptions/ArgumentNullException.js b/dist/es6/System/Exceptions/ArgumentNullException.js index b4430b51..4948736d 100644 --- a/dist/es6/System/Exceptions/ArgumentNullException.js +++ b/dist/es6/System/Exceptions/ArgumentNullException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import ArgumentException from './ArgumentException'; const NAME = 'ArgumentNullException'; export default class ArgumentNullException extends ArgumentException { diff --git a/dist/es6/System/Exceptions/ArgumentNullException.js.map b/dist/es6/System/Exceptions/ArgumentNullException.js.map index 910367d7..cd125351 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":["ArgumentNullException","ArgumentNullException.constructor","ArgumentNullException.getName"],"mappings":"AAAA;;;;GAIG;OAEI,iBAAiB,MAAM,qBAAqB;AAGnD,MAAM,IAAI,GAAU,uBAAuB,CAAC;AAE5C,mDACoC,iBAAiB;IAEpDA,YACCA,SAAgBA,EAChBA,OAAOA,GAAUA,EAAEA,EACnBA,cAAcA,GAASA,IAAIA;QAE3BC,MAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,CAACA,CAACA;IAC3CA,CAACA;IAESD,OAAOA;QAEhBE,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AAEFF,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js index a6e24bb4..d2007849 100644 --- a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js @@ -1,9 +1,5 @@ -/* - * @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 ArgumentException from './ArgumentException'; +'use strict'; const NAME = 'ArgumentOutOfRangeException'; export default class ArgumentOutOfRangeException extends ArgumentException { constructor(paramName, actualValue, message = ' ', innerException = null) { diff --git a/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/es6/System/Exceptions/ArgumentOutOfRangeException.js.map index 8ff58993..c18c4d50 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":["ArgumentOutOfRangeException","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.getName"],"mappings":"AAAA;;;;GAIG;OAII,iBAAiB,MAAM,qBAAqB;AAGnD,MAAM,IAAI,GAAU,6BAA6B,CAAC;AAElD,yDAC0C,iBAAiB;IAI1DA,YACCA,SAAgBA,EAChBA,WAAiCA,EACjCA,OAAOA,GAAUA,GAAGA,EACpBA,cAAcA,GAAaA,IAAIA;QAE/BC,MAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,EAAEA,CAACA,CAACA;YAC3CA,CAACA,CAACA,WAAWA,GAAGA,WAAWA,CAACA;QAC7BA,CAACA,CAACA,CAACA;IACJA,CAACA;IAGSD,OAAOA;QAEhBE,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AAEFF,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":"OAQO,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,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3C,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 diff --git a/dist/es6/System/Exceptions/InvalidOperationException.js b/dist/es6/System/Exceptions/InvalidOperationException.js index 86f00f2b..558a8d52 100644 --- a/dist/es6/System/Exceptions/InvalidOperationException.js +++ b/dist/es6/System/Exceptions/InvalidOperationException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import SystemException from './SystemException'; const NAME = 'InvalidOperationException'; export default class InvalidOperationException extends SystemException { diff --git a/dist/es6/System/Exceptions/InvalidOperationException.js.map b/dist/es6/System/Exceptions/InvalidOperationException.js.map index 902f4a4c..aeabf081 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":["InvalidOperationException","InvalidOperationException.getName"],"mappings":"AAAA;;;;GAIG;OAEI,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,2BAA2B,CAAC;AAEhD,uDACwC,eAAe;IAE5CA,OAAOA;QAEhBC,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AAEFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Exceptions/NotImplementedException.js b/dist/es6/System/Exceptions/NotImplementedException.js index 9bcf4182..8b539491 100644 --- a/dist/es6/System/Exceptions/NotImplementedException.js +++ b/dist/es6/System/Exceptions/NotImplementedException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import SystemException from './SystemException'; const NAME = 'NotImplementedException'; export default class NotImplementedException extends SystemException { diff --git a/dist/es6/System/Exceptions/NotImplementedException.js.map b/dist/es6/System/Exceptions/NotImplementedException.js.map index 72174623..63670577 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":["NotImplementedException","NotImplementedException.getName"],"mappings":"AAAA;;;;GAIG;OAEI,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,yBAAyB,CAAC;AAE9C,qDACsC,eAAe;IAE1CA,OAAOA;QAEhBC,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AAEFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Exceptions/NullReferenceException.js b/dist/es6/System/Exceptions/NullReferenceException.js index c7f7791f..32b2dfcd 100644 --- a/dist/es6/System/Exceptions/NullReferenceException.js +++ b/dist/es6/System/Exceptions/NullReferenceException.js @@ -1,8 +1,4 @@ -/* - * @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 - */ +'use strict'; import SystemException from './SystemException'; const NAME = 'NullReferenceException'; export default class NullReferenceException extends SystemException { diff --git a/dist/es6/System/Exceptions/NullReferenceException.js.map b/dist/es6/System/Exceptions/NullReferenceException.js.map index e8000cb7..43b9e1e6 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":["NullReferenceException","NullReferenceException.getName"],"mappings":"AAAA;;;;GAIG;OAEI,eAAe,MAAM,mBAAmB;AAG/C,MAAM,IAAI,GAAU,wBAAwB,CAAC;AAE7C,oDACqC,eAAe;IAEzCA,OAAOA;QAEhBC,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AAEFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Exceptions/SystemException.js b/dist/es6/System/Exceptions/SystemException.js index 286281b4..a4974120 100644 --- a/dist/es6/System/Exceptions/SystemException.js +++ b/dist/es6/System/Exceptions/SystemException.js @@ -1,8 +1,4 @@ -/* - * @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.systemexception%28v=vs.110%29.aspx - */ +'use strict'; import Exception from '../Exception'; const NAME = 'SystemException'; export default class SystemException extends Exception { diff --git a/dist/es6/System/Exceptions/SystemException.js.map b/dist/es6/System/Exceptions/SystemException.js.map index aa6c1f6e..52212573 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":["SystemException","SystemException.getName"],"mappings":"AAAA;;;;GAIG;OAEI,SAAS,MAAM,cAAc;AAGpC,MAAM,IAAI,GAAU,iBAAiB,CAAC;AAEtC,6CAC8B,SAAS;IAE5BA,OAAOA;QAEhBC,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;AACFD,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Functions.js b/dist/es6/System/Functions.js index 82977db5..36c0fd87 100644 --- a/dist/es6/System/Functions.js +++ b/dist/es6/System/Functions.js @@ -1,7 +1,4 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ +'use strict'; class Functions { Identity(x) { return x; } True() { return true; } diff --git a/dist/es6/System/Functions.js.map b/dist/es6/System/Functions.js.map index 720abec1..6c3a7d82 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":["Functions","Functions.Identity","Functions.True","Functions.False","Functions.Blank"],"mappings":"AAAA;;;GAGG;AAMH;IAOCA,QAAQA,CAAIA,CAAGA,IACbC,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;IAMbD,IAAIA,KACFE,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;IAMhBF,KAAKA,KACHG,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA;IAKjBH,KAAKA,KACHI,CAACA;AACJJ,CAACA;AAED,MAAM,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;AAIhD,WAAO,SAAS,EAChB,CAAC;IAKWA,kBAAQA,GAChBA,aAAaA,CAACA,QAAQA,CAACA;IAMfA,cAAIA,GACZA,aAAaA,CAACA,IAAIA,CAACA;IAMXA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;IAKZA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;AACxBA,CAACA,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":"AAIA,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 diff --git a/dist/es6/System/Integer.js b/dist/es6/System/Integer.js index 395657a8..019150d4 100644 --- a/dist/es6/System/Integer.js +++ b/dist/es6/System/Integer.js @@ -1,7 +1,3 @@ -/* - * @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'; function Integer(n) { diff --git a/dist/es6/System/Integer.js.map b/dist/es6/System/Integer.js.map index d0232f1f..e0498dfe 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":["Integer","Integer.r","Integer.random","Integer.random.under","Integer.is","Integer.assert"],"mappings":"AAAA;;;GAGG;OAEI,IAAI,MAAM,SAAS;OACnB,iBAAiB,MAAM,gCAAgC;AAE9D,iBAAiB,CAAQ;IAExBA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA;AACdA,CAACA;AAED,IAAO,OAAO,CA8Db;AA9DD,WAAO,OAAO,EACd,CAAC;IAEAA,WAAWA,GAAUA;QACpBC,MAAMA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAEA,GAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IAChCA,CAACA;IAaDD,gBAAuBA,GAAUA;QAEhCE,MAAMA,CAACA,GAAGA,EAACA,KAAKA,CAACA,CAACA;QAClBA,EAAEA,CAAAA,CAACA,GAAGA,IAAEA,CAACA,CAACA;YAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,GAAGA,IAAIA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;QACxBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA;IACfA,CAACA;IANeF,cAAMA,SAMrBA,CAAAA;IAEDA,IAAcA,MAAMA,CAmBnBA;IAnBDA,WAAcA,MAAMA,EAACA,CAACA;QAarBE,eAAsBA,QAAeA;YAEpCC,MAAMA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAAAA;QACnBA,CAACA;QAHeD,YAAKA,QAGpBA,CAAAA;IAGFA,CAACA,EAnBaF,MAAMA,GAANA,cAAMA,KAANA,cAAMA,QAmBnBA;IAEDA,YAAmBA,CAAQA;QAE1BI,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,IAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;IAC9CA,CAACA;IAHeJ,UAAEA,KAGjBA,CAAAA;IAEDA,gBAAuBA,CAAQA,EAAEA,YAAoBA;QAEpDK,IAAIA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA,CAACA;QACdA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;YACAA,MAAMA,IAAIA,iBAAiBA,CAACA,YAAYA,IAAIA,GAAGA,EAAEA,qBAAqBA,CAACA,CAACA;QACzEA,CAACA;QACDA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA;IAReL,cAAMA,SAQrBA,CAAAA;AAEFA,CAACA,EA9DM,OAAO,KAAP,OAAO,QA8Db;AAED,eAAe,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":"OAKO,IAAI,MAAM,SAAS;OACnB,iBAAiB,MAAM,gCAAgC;AAE9D,iBAAiB,CAAQ;IAExB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,IAAO,OAAO,CA8Db;AA9DD,WAAO,OAAO,EACd,CAAC;IAEA,WAAW,GAAU;QACpB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAaD,gBAAuB,GAAU;QAEhC,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;QAClB,EAAE,CAAA,CAAC,GAAG,IAAE,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACpB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IANe,cAAM,SAMrB,CAAA;IAED,IAAc,MAAM,CAmBnB;IAnBD,WAAc,MAAM,EAAC,CAAC;QAarB,eAAsB,QAAe;YAEpC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QACnB,CAAC;QAHe,YAAK,QAGpB,CAAA;IAGF,CAAC,EAnBa,MAAM,GAAN,cAAM,KAAN,cAAM,QAmBnB;IAED,YAAmB,CAAQ;QAE1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAHe,UAAE,KAGjB,CAAA;IAED,gBAAuB,CAAQ,EAAE,YAAoB;QAEpD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACd,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;YACA,MAAM,IAAI,iBAAiB,CAAC,YAAY,IAAI,GAAG,EAAE,qBAAqB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IARe,cAAM,SAQrB,CAAA;AAEF,CAAC,EA9DM,OAAO,KAAP,OAAO,QA8Db;AAED,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Lazy.js b/dist/es6/System/Lazy.js index fe4dc5b6..2e0ee75d 100644 --- a/dist/es6/System/Lazy.js +++ b/dist/es6/System/Lazy.js @@ -1,7 +1,4 @@ -/* - * @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 { constructor(_closure) { diff --git a/dist/es6/System/Lazy.js.map b/dist/es6/System/Lazy.js.map index e528adf2..b2af365b 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":["Lazy","Lazy.constructor","Lazy.isValueCreated","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals"],"mappings":"AAAA;;;GAGG;OAII,cAAc,MAAM,6BAA6B;AAExD,kCACsB,cAAc;IAMnCA,YAAoBA,QAAgBA;QAEnCC,OAAOA,CAACA;QAFWA,aAAQA,GAARA,QAAQA,CAAQA;QAGnCA,IAAIA,CAACA,qBAAqBA,GAAGA,MAAMA,CAACA;IACrCA,CAACA;IAEDD,IAAIA,cAAcA;QAEjBE,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA;IAC7BA,CAACA;IAGDF,IAAIA,QAAQA;QAEXG,MAAMA,CAACA,CAACA,IAAIA,CAACA,WAAWA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;IAC/CA,CAACA;IAGDH,KAAKA,CAACA,kBAA2BA;QAChCI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QAEbA,EAAEA,CAAAA,CAACA,kBAAkBA,CAACA;YACrBA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAErBA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;YAChBA,EAAEA,CAAAA,CAACA,kBAAkBA,CAACA;gBACrBA,MAAMA,IAAIA,KAAKA,CAACA,iEAAiEA,CAACA,CAACA;YACpFA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACLA,CAACA,CAACA,eAAeA,GAAGA,KAAKA,CAACA;YAC1BA,CAACA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;YAChBA,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;IACFA,CAACA;IAEDJ,IAAIA,KAAKA;QAERK,MAAMA,CAACA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;IACxBA,CAACA;IAEDL,QAAQA,CAACA,qBAA8BA;QAEtCM,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QAEbA,CAACA,CAACA,eAAeA,EAAEA,CAACA;QAEpBA,IAAIA,CAACA;YACJA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,eAAeA,IAAIA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACrCA,IAAIA,CAACA,GAAGA,CAACA,CAACA,QAAQA,EAAEA,CAACA;gBACrBA,CAACA,CAACA,MAAMA,GAAGA,CAACA,CAACA;gBACbA,CAACA,CAACA,eAAeA,GAAGA,IAAIA,CAACA;gBACzBA,MAAMA,CAACA,CAACA,CAACA;YACVA,CAACA;QACFA,CAACA;gBACOA,CAACA;YACRA,EAAEA,CAAAA,CAACA,qBAAqBA,CAACA;gBACxBA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;QACpBA,CAACA;QAEDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,CAACA;IAEjBA,CAACA;IAGSN,UAAUA;QACnBO,IAAIA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;QACrBA,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;IACpBA,CAACA;IAEDP,MAAMA,CAACA,KAAaA;QAEnBQ,MAAMA,CAACA,IAAIA,IAAEA,KAAKA,CAACA;IACpBA,CAACA;IAEDR,WAAWA,CAACA,KAAaA;QAExBS,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,IAAIA,CAACA,KAAKA,KAAGA,KAAKA,CAACA,KAAKA,CAACA;IACvDA,CAACA;AACFT,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAIN,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 diff --git a/dist/es6/System/Observable/ObservableNodeBase.js b/dist/es6/System/Observable/ObservableNodeBase.js index 3e852f5e..65e833ec 100644 --- a/dist/es6/System/Observable/ObservableNodeBase.js +++ b/dist/es6/System/Observable/ObservableNodeBase.js @@ -1,23 +1,18 @@ -/* - * @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 - */ +'use strict'; import SubscribableBase from './SubscribableBase'; export default class ObservableNodeBase extends SubscribableBase { onNext(value) { - processAction(this._getSubscribers(), (s) => { s.onNext && s.onNext(value); }); + processAction(this._getSubscribers(), s => { s.onNext && s.onNext(value); }); } onError(error) { - processAction(this._getSubscribers(), (s) => { s.onError && s.onError(error); }); + processAction(this._getSubscribers(), s => { s.onError && s.onError(error); }); } onCompleted() { - processAction(this._unsubscribeAll(true), (s) => { s.onCompleted && s.onCompleted(); }); + processAction(this._unsubscribeAll(true), s => { s.onCompleted && s.onCompleted(); }); } } const OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; -function processAction(observers, handler, dispose = true) { +function processAction(observers, handler) { var observersErrors = null; for (let s of observers) { try { @@ -28,8 +23,7 @@ function processAction(observers, handler, dispose = true) { observersErrors.push({ observer: s, ex: ex }); } } - if (dispose) - observers.length = 0; + observers.length = 0; if (observersErrors && observersErrors.length) { if (console && console.error) console.error(OBSERVER_ERROR_MESSAGE, observersErrors); diff --git a/dist/es6/System/Observable/ObservableNodeBase.js.map b/dist/es6/System/Observable/ObservableNodeBase.js.map index e8a5ee6e..ef958242 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":["ObservableNodeBase","ObservableNodeBase.onNext","ObservableNodeBase.onError","ObservableNodeBase.onCompleted","processAction"],"mappings":"AAAA;;;;;GAKG;OAII,gBAAgB,MAAM,oBAAoB;AAGjD,gDAEQ,gBAAgB;IAGvBA,MAAMA,CAACA,KAAOA;QAEbC,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,CAACA,CAACA,OAAOA,CAACA,CAACA,MAAMA,IAAIA,CAACA,CAACA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACvCA,CAACA;IACHA,CAACA;IAEDD,OAAOA,CAACA,KAAWA;QAElBE,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,CAACA,CAACA,OAAOA,CAACA,CAACA,OAAOA,IAAIA,CAACA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACzCA,CAACA;IACHA,CAACA;IAEDF,WAAWA;QAEVG,aAAaA,CACZA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,EAC1BA,CAACA,CAACA,OAAOA,CAACA,CAACA,WAAWA,IAAIA,CAACA,CAACA,WAAWA,EAAEA,CAACA,CAACA,CAACA,CAC5CA,CAACA;IACHA,CAACA;AACFH,CAACA;AAED,MAAM,sBAAsB,GAAU,uEAAuE,CAAC;AAE9G,uBACC,SAAwB,EACxB,OAA8B,EAC9B,OAAO,GAAW,IAAI;IAEtBI,IAAIA,eAAeA,GAAoCA,IAAIA,CAACA;IAE5DA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,SAASA,CAACA,CACvBA,CAACA;QACAA,IACAA,CAACA;YACAA,OAAOA,CAACA,CAACA,CAACA,CAACA;QACZA,CACAA;QAAAA,KAAKA,CAAAA,CAACA,EAAEA,CAACA,CACTA,CAACA;YACAA,eAAeA,GAAGA,eAAeA,IAAIA,EAAEA,CAACA;YAExCA,eAAeA,CAACA,IAAIA,CAACA,EAACA,QAAQA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,EAAEA,EAACA,CAACA,CAACA;QAC7CA,CAACA;IACFA,CAACA;IAEDA,EAAEA,CAAAA,CAACA,OAAOA,CAACA;QACVA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA;IAEtBA,EAAEA,CAAAA,CAACA,eAAeA,IAAIA,eAAeA,CAACA,MAAMA,CAACA,CAC7CA,CAACA;QACAA,EAAEA,CAAAA,CAACA,OAAOA,IAAIA,OAAOA,CAACA,KAAKA,CAACA;YAC3BA,OAAOA,CAACA,KAAKA,CAACA,sBAAsBA,EAAEA,eAAeA,CAACA,CAACA;QACxDA,IAAIA;YAACA,MAAMA;gBACVA,OAAOA,EAAEA,sBAAsBA;gBAC/BA,MAAMA,EAAEA,eAAeA;aACvBA,CAACA;IACHA,CAACA;AAEFA,CAACA"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":"AAMA,YAAY,CAAC;OAIN,gBAAgB,MAAM,oBAAoB;AAGjD,gDAEQ,gBAAgB;IAGvB,MAAM,CAAC,KAAO;QAEb,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;IAED,OAAO,CAAC,KAAW;QAElB,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;IAED,WAAW;QAEV,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"} \ No newline at end of file diff --git a/dist/es6/System/Observable/SubscribableBase.js b/dist/es6/System/Observable/SubscribableBase.js index 083cff05..1f8c986d 100644 --- a/dist/es6/System/Observable/SubscribableBase.js +++ b/dist/es6/System/Observable/SubscribableBase.js @@ -1,9 +1,4 @@ -/* - * @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 - */ +'use strict'; import LinkedList from '../Collections/LinkedList'; import * as DisposeUtility from '../Disposable/Utility'; import Subscription from './Subscription'; diff --git a/dist/es6/System/Observable/SubscribableBase.js.map b/dist/es6/System/Observable/SubscribableBase.js.map index 35786d93..5db6b6bb 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":["SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose"],"mappings":"AAAA;;;;;GAKG;OAKI,UAAU,MAAM,2BAA2B;OAC3C,KAAK,cAAc,MAAM,uBAAuB;OAChD,YAAY,MAAM,gBAAgB;AAIzC;IAcCA;QAECC,IAAIA,CAACA,eAAeA,GAAGA,IAAIA,UAAUA,EAA6BA,CAACA;IACpEA,CAACA;IATSD,eAAeA;QACxBE,MAAMA,CAACA,IAAIA,CAACA,eAAeA;aACzBA,OAAOA,EAAEA;aACTA,GAAGA,CAACA,CAACA,IAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA;IACxBA,CAACA;IAOOF,cAAcA,CACrBA,UAAsBA;QAEtBG,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,eAAeA,CAACA,KAAKA,CAACA;QACtCA,OAAMA,IAAIA,EACVA,CAACA;YACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,KAAKA,CAACA,UAAUA,KAAGA,UAAUA,CAACA,CACtCA,CAACA;gBACAA,KAAKA,CAACA;YACPA,CAACA;YACDA,IAAIA,CACJA,CAACA;gBACAA,IAAIA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;YAClBA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,IAAIA,CAACA;IACbA,CAACA;IAGDH,SAASA,CAACA,UAAsBA;QAE/BI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,IAAIA,CAACA,GAAGA,CAACA,CAACA,cAAcA,CAACA,UAAUA,CAACA,CAACA;QACrCA,EAAEA,CAAAA,CAACA,CAACA,CAACA;YACJA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA;QAEhBA,IAAIA,CAACA,GAAGA,IAAIA,YAAYA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;QACxCA,CAACA,CAACA,eAAeA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;QAEzBA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA;IAEDJ,WAAWA,CAACA,UAAsBA;QAEjCK,IAAIA,CAACA,GAAGA,IAAIA,CAACA,cAAcA,CAACA,UAAUA,CAACA,CAACA;QACxCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CACLA,CAACA;YACAA,IAAIA,CAACA,GAAGA,CAACA,CAACA,KAAKA,CAACA;YAChBA,CAACA,CAACA,MAAMA,EAAEA,CAACA;YACXA,CAACA,CAACA,OAAOA,EAAEA,CAACA;QACbA,CAACA;IACFA,CAACA;IAESL,eAAeA,CAACA,iBAAiBA,GAAWA,KAAKA;QAC1DM,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,EAAEA,GAAGA,CAACA,CAACA,eAAeA,CAACA;QACrCA,IAAIA,CAACA,GAAGA,EAAEA,CAACA,OAAOA,EAAEA,CAACA;QACrBA,IAAIA,CAACA,GAAGA,iBAAiBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAEA,CAACA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QAC1DA,EAAEA,CAACA,KAAKA,EAAEA,CAACA;QAEXA,cAAcA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;QAE/BA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA;IAEDN,cAAcA;QACbO,IAAIA,CAACA,eAAeA,EAAEA,CAACA;IACxBA,CAACA;IAEDP,OAAOA;QACNQ,IAAIA,CAACA,eAAeA,EAAEA,CAACA;IACxBA,CAACA;AAEFR,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAMA,YAAY,CAAC;OAKN,UAAU,MAAM,2BAA2B;OAC3C,KAAK,cAAc,MAAM,uBAAuB;OAChD,YAAY,MAAM,gBAAgB;AAIzC;IAcC;QAEC,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,EAA6B,CAAC;IACpE,CAAC;IATS,eAAe;QACxB,MAAM,CAAC,IAAI,CAAC,eAAe;aACzB,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAOO,cAAc,CACrB,UAAsB;QAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QACtC,OAAM,IAAI,EACV,CAAC;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CACtC,CAAC;gBACA,KAAK,CAAC;YACP,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;QACF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACb,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,GAAG,CAAC,CAAC,CAAC,CAAC;QAEzB,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,WAAW,CAAC,UAAsB;QAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACxC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAES,eAAe,CAAC,iBAAiB,GAAW,KAAK;QAC1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACrB,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,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,cAAc;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Observable/Subscription.js b/dist/es6/System/Observable/Subscription.js index ba6984b3..6d46669c 100644 --- a/dist/es6/System/Observable/Subscription.js +++ b/dist/es6/System/Observable/Subscription.js @@ -1,12 +1,4 @@ -/* - * @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 - */ -/// -/// -/// +'use strict'; export default class Subscription { constructor(_subscribable, _subscriber) { this._subscribable = _subscribable; diff --git a/dist/es6/System/Observable/Subscription.js.map b/dist/es6/System/Observable/Subscription.js.map index be41b535..a242e14d 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":["Subscription","Subscription.constructor","Subscription.subscriber","Subscription.wasDisposed","Subscription.dispose"],"mappings":"AAAA;;;;;GAKG;AAGH,yCAAyC;AACzC,uCAAuC;AACvC,0DAA0D;AAK1D;IAGCA,YACSA,aAA+BA,EAC/BA,WAAcA;QADdC,kBAAaA,GAAbA,aAAaA,CAAkBA;QAC/BA,gBAAWA,GAAXA,WAAWA,CAAGA;QAEtBA,EAAEA,CAACA,CAACA,CAACA,aAAaA,IAAIA,CAACA,WAAWA,CAACA;YAClCA,MAAMA,6CAA6CA,CAACA;IACtDA,CAACA;IAEDD,IAAIA,UAAUA;QACbE,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA;IACzBA,CAACA;IAiBDF,IAAIA,WAAWA;QAEdG,MAAMA,CAACA,CAACA,IAAIA,CAACA,aAAaA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA;IACjDA,CAACA;IAEDH,OAAOA;QAENI,IAAIA,UAAUA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;QACjCA,IAAIA,YAAYA,GAAGA,IAAIA,CAACA,aAAaA,CAACA;QAGtCA,IAAIA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;QACxBA,IAAIA,CAACA,aAAaA,GAAGA,IAAIA,CAACA;QAG1BA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,YAAYA,CAACA,CAC/BA,CAACA;YACAA,YAAYA,CAACA,WAAWA,CAACA,UAAUA,CAACA,CAACA;QACtCA,CAACA;IACFA,CAACA;AACFJ,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../source/System/Observable/Subscription.ts"],"names":[],"mappings":"AAMA,YAAY,CAAC;AAUb;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 diff --git a/dist/es6/System/Serialization/Utility.js b/dist/es6/System/Serialization/Utility.js index 00f9818e..377ae42e 100644 --- a/dist/es6/System/Serialization/Utility.js +++ b/dist/es6/System/Serialization/Utility.js @@ -1,7 +1,3 @@ -/* - * @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'; const EMPTY = '', TRUE = 'true', FALSE = 'false'; diff --git a/dist/es6/System/Serialization/Utility.js.map b/dist/es6/System/Serialization/Utility.js.map index 4aa53087..e586973a 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":["toString","isSerializable","toPrimitive"],"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":"OAQO,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 diff --git a/dist/es6/System/Text/StringBuilder.js b/dist/es6/System/Text/StringBuilder.js index e4b767c3..dc4397e2 100644 --- a/dist/es6/System/Text/StringBuilder.js +++ b/dist/es6/System/Text/StringBuilder.js @@ -1,9 +1,6 @@ -/* - * @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 - */ +'use strict'; import Type from '../Types'; +const VOID0 = void 0; export default class StringBuilder { constructor(...initial) { var _ = this; @@ -12,7 +9,7 @@ export default class StringBuilder { _.appendThese(initial); } appendSingle(item) { - if (item !== null && item !== undefined) { + if (item !== null && item !== VOID0) { var _ = this; _._latest = null; switch (typeof item) { @@ -40,7 +37,7 @@ export default class StringBuilder { appendLines(items) { var _ = this; items.forEach(i => { - if (i !== null && i !== undefined) { + if (i !== null && i !== VOID0) { _.appendSingle(i); _._partArray.push("\r\n"); } diff --git a/dist/es6/System/Text/StringBuilder.js.map b/dist/es6/System/Text/StringBuilder.js.map index ddbfab8f..f6d19276 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":["StringBuilder","StringBuilder.constructor","StringBuilder.appendSingle","StringBuilder.appendThese","StringBuilder.append","StringBuilder.appendLine","StringBuilder.appendLines","StringBuilder.isEmpty","StringBuilder.toString","StringBuilder.join","StringBuilder.clear","StringBuilder.dispose"],"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":"AAKA,YAAY,CAAC;OAGN,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 diff --git a/dist/es6/System/Text/Utility.js b/dist/es6/System/Text/Utility.js index 93240c36..0b03454b 100644 --- a/dist/es6/System/Text/Utility.js +++ b/dist/es6/System/Text/Utility.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ import Type from '../Types'; export const EMPTY = ''; export function escapeRegExp(source) { diff --git a/dist/es6/System/Text/Utility.js.map b/dist/es6/System/Text/Utility.js.map index dd5b4c73..b152faa1 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":["escapeRegExp","trim","format","supplant"],"mappings":"AAAA;;;GAGG;OAEI,IAAI,MAAM,UAAU;AAE3B,aAAa,KAAK,GAAU,EAAE,CAAC;AAE/B,6BAA6B,MAAa;IACzCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,qCAAqCA,EAAEA,MAAMA,CAACA,CAACA;AACtEA,CAACA;AAUD,qBAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;IAE7EC,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA;QACVA,EAAEA,CAAAA,CAACA,KAAKA,KAAGA,KAAKA,CAACA;YAACA,MAAMA,CAACA,MAAMA,CAACA;QAChCA,IAAIA,OAAOA,GAAGA,YAAYA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,CAACA,IAAIA,EAAEA,GAAWA,KAAKA,CAACA,CAACA;QAChFA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,IAAIA,MAAMA,CAACA,IAAIA,GAACA,OAAOA,GAACA,MAAMA,GAACA,OAAOA,GAACA,KAAKA,EAACA,GAAGA,GAACA,CAACA,UAAUA,GAACA,GAAGA,GAACA,EAAEA,CAACA,CAACA,EAACA,KAAKA,CAACA,CAACA;IACpGA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,YAAYA,EAAEA,KAAKA,CAACA,CAACA;AAC5CA,CAACA;AAQD,uBAAuB,MAAa,EAAE,GAAG,IAAU;IAElDC,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,CAACA;AAC/BA,CAACA;AAaD,yBAAyB,MAAa,EAAE,MAA+B;IAEtEC,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;IACrCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,eAAeA,EACpCA,CAACA,CAAQA,EAAEA,CAAQA;QAElBA,IAAIA,CAACA,GAAOA,CAACA,CAACA;QACdA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CACZA,CAACA;YACAA,IAAIA,CAACA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACpBA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAACA,CAACA,GAAGA,CAACA,CAACA;QACrBA,CAACA;QAEDA,IAAIA,CAACA,GAASA,MAAOA,CAACA,CAACA,CAACA,CAACA;QACzBA,MAAMA,CAAAA,CAACA,OAAOA,CAACA,CAACA,CAChBA,CAACA;YACAA,KAAKA,IAAIA,CAACA,MAAMA,CAACA;YACjBA,KAAKA,IAAIA,CAACA,MAAMA,CAACA;YACjBA,KAAKA,IAAIA,CAACA,OAAOA;gBAChBA,MAAMA,CAACA,CAACA,CAACA;YACVA;gBACCA,MAAMA,CAACA,CAACA,CAACA;QACXA,CAACA;IACFA,CAACA,CACDA,CAACA;AACHA,CAACA"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":"OAKO,IAAI,MAAM,UAAU;AAE3B,OAAO,MAAM,KAAK,GAAU,EAAE,CAAC;AAE/B,6BAA6B,MAAa;IACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAUD,qBAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;IAE7E,EAAE,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC;QACV,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAW,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAC,OAAO,GAAC,MAAM,GAAC,OAAO,GAAC,KAAK,EAAC,GAAG,GAAC,CAAC,UAAU,GAAC,GAAG,GAAC,EAAE,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAQD,uBAAuB,MAAa,EAAE,GAAG,IAAU;IAElD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAaD,yBAAyB,MAAa,EAAE,MAA+B;IAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EACpC,CAAC,CAAQ,EAAE,CAAQ;QAElB,IAAI,CAAC,GAAO,CAAC,CAAC;QACd,EAAE,CAAA,CAAC,QAAQ,CAAC,CACZ,CAAC;YACA,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpB,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAS,MAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAA,CAAC,OAAO,CAAC,CAAC,CAChB,CAAC;YACA,KAAK,IAAI,CAAC,MAAM,CAAC;YACjB,KAAK,IAAI,CAAC,MAAM,CAAC;YACjB,KAAK,IAAI,CAAC,OAAO;gBAChB,MAAM,CAAC,CAAC,CAAC;YACV;gBACC,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;IACF,CAAC,CACD,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Time/Calendars.js b/dist/es6/System/Time/Calendars.js deleted file mode 100644 index 090930f7..00000000 --- a/dist/es6/System/Time/Calendars.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=Calendars.js.map \ No newline at end of file diff --git a/dist/es6/System/Time/Calendars.js.map b/dist/es6/System/Time/Calendars.js.map deleted file mode 100644 index 0d0cc24f..00000000 --- a/dist/es6/System/Time/Calendars.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Calendars.js","sourceRoot":"","sources":["../../../../source/System/Time/Calendars.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BF"} \ No newline at end of file diff --git a/dist/es6/System/Time/ClockTime.js b/dist/es6/System/Time/ClockTime.js index aa9be00e..e9fbbe4e 100644 --- a/dist/es6/System/Time/ClockTime.js +++ b/dist/es6/System/Time/ClockTime.js @@ -1,9 +1,4 @@ -/* - * @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 * as HowMany from './HowMany'; +'use strict'; import TimeQuantity from './TimeQuantity'; export default class ClockTime extends TimeQuantity { constructor(...args) { @@ -39,7 +34,6 @@ export default class ClockTime extends TimeQuantity { return value; } toString() { - /* INSERT CUSTOM FORMATTING CODE HERE */ var _ = this, a = []; if (_.days) a.push(pluralize(_.days, "day")); diff --git a/dist/es6/System/Time/ClockTime.js.map b/dist/es6/System/Time/ClockTime.js.map index f01b9b8e..63d31ea7 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":["ClockTime","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","pluralize"],"mappings":"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A,MAAMA,CAACA;YACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;QAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA;YACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;QAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;YACbA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,KAAKA,CAACA,CAACA;QAElCA,MAAMA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,OAAOA,CAACA,SAASA,EAAEA,OAAOA,CAACA,CAACA;IACjDA,CAACA;AAEFJ,CAACA;AAID,mBAAmB,KAAY,EAAE,KAAY;IAE5CK,EAAEA,CAAAA,CAACA,IAAIA,CAACA,GAAGA,CAACA,KAAKA,CAACA,KAAGA,CAACA,CAACA;QACtBA,KAAKA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,KAAKA,CAACA;AACdA,CAACA"} \ 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.js b/dist/es6/System/Time/DateTime.js index 35af0c17..2e7e75ee 100644 --- a/dist/es6/System/Time/DateTime.js +++ b/dist/es6/System/Time/DateTime.js @@ -1,10 +1,4 @@ -/* - * @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 Type from '../Types'; -import * as HowMany from './HowMany'; +'use strict'; import ClockTime from './ClockTime'; import TimeSpan from './TimeSpan'; import TimeStamp from './TimeStamp'; @@ -12,12 +6,12 @@ class DateTime { constructor(value = new Date(), kind = 1) { var _ = this; _._kind = kind; - if (Type.isInstanceOf(value, DateTime)) + if (value instanceof DateTime) _._value = value.toJsDate(); - else if (Type.isInstanceOf(value, Date)) + else if (value instanceof Date) _._setJsDate(value); else - _._value = value == undefined + _._value = value === void (0) ? new Date() : new Date(value); } @@ -117,7 +111,7 @@ class DateTime { return today.addDays(1); } static between(first, last) { - var f = Type.isInstanceOf(first, DateTime) ? first._value : first, l = Type.isInstanceOf(last, DateTime) ? last._value : last; + var f = first instanceof DateTime ? first._value : first, l = last instanceof DateTime ? last._value : last; return new TimeSpan(f.getTime() - l.getTime()); } static isLeapYear(year) { diff --git a/dist/es6/System/Time/DateTime.js.map b/dist/es6/System/Time/DateTime.js.map index 5ef9c359..5bcbfdab 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":["DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","DateTime.kind","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../source/System/Time/DateTime.ts"],"names":[],"mappings":"AAUA,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 diff --git a/dist/es6/System/Time/HowMany.js b/dist/es6/System/Time/HowMany.js index f432e483..0397f166 100644 --- a/dist/es6/System/Time/HowMany.js +++ b/dist/es6/System/Time/HowMany.js @@ -1,5 +1 @@ -/* - * @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 index 10c38653..2de162e5 100644 --- a/dist/es6/System/Time/HowMany.js.map +++ b/dist/es6/System/Time/HowMany.js.map @@ -1 +1 @@ -{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsDF"} \ No newline at end of file +{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/System/Time/TimeQuantity.js b/dist/es6/System/Time/TimeQuantity.js index 82698a55..d181e308 100644 --- a/dist/es6/System/Time/TimeQuantity.js +++ b/dist/es6/System/Time/TimeQuantity.js @@ -1,9 +1,5 @@ -/* - * @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 * as HowMany from './HowMany'; import TimeUnit from './TimeUnit'; export default class TimeQuantity { constructor(_quantity = 0) { diff --git a/dist/es6/System/Time/TimeQuantity.js.map b/dist/es6/System/Time/TimeQuantity.js.map index 2b8d0501..7fe6a2e6 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":["TimeQuantity","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","TimeQuantity.direction","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal"],"mappings":"AAAA;;;GAGG;OAKI,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,YAAY;OACpC,KAAK,OAAO,MAAM,WAAW;OAC7B,QAAQ,MAAM,YAAY;AAKjC;IAICA,YAAsBA,SAASA,GAAUA,CAACA;QAApBC,cAASA,GAATA,SAASA,CAAWA;IAE1CA,CAACA;IAGDD,oBAAoBA;QAEnBE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;IACvBA,CAACA;IAMDF,IAAIA,SAASA;QAEZG,MAAMA,CAACA,OAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,CAACA,CAACA,CAACA;IAChDA,CAACA;IAODH,MAAMA,CAACA,KAAmBA;QAEzBI,MAAMA,CAACA,QAAQA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;IAChGA,CAACA;IAODJ,SAASA,CAACA,KAAmBA;QAE5BK,MAAMA,CAACA,OAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;IAC/FA,CAACA;IAUDL,IAAIA,KAAKA;QAERM,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;QACpBA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;YACAA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA;YAErCA,IAAIA,CAACA,MAAMA,GAAGA,CAACA,GAAqBA,MAAMA,CAACA,MAAMA,CAACA;gBACjDA,KAAKA,EAAEA,EAAEA,GAACA,KAA6BA;gBACvCA,YAAYA,EAAEA,EAAEA;gBAChBA,OAAOA,EAAEA,EAAEA,GAACA,IAA+BA;gBAC3CA,OAAOA,EAAEA,EAAEA,GAACA,KAA+BA;gBAC3CA,KAAKA,EAAEA,EAAEA,GAACA,OAA6BA;gBACvCA,IAAIA,EAAEA,EAAEA,GAACA,QAA4BA;aACrCA,CAACA,CAACA;QACJA,CAACA;QACDA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA;IAODN,QAAQA,CAACA,KAAcA;QAEtBO,MAAMA,CAACA,QAAQA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;IACtEA,CAACA;AACFP,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeQuantity.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAMN,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 diff --git a/dist/es6/System/Time/TimeSpan.js b/dist/es6/System/Time/TimeSpan.js index 1ea01777..7499f479 100644 --- a/dist/es6/System/Time/TimeSpan.js +++ b/dist/es6/System/Time/TimeSpan.js @@ -1,10 +1,5 @@ -/* - * @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'; import Type from '../Types'; -import * as HowMany from './HowMany'; import TimeUnit from './TimeUnit'; import ClockTime from './ClockTime'; import TimeQuantity from './TimeQuantity'; diff --git a/dist/es6/System/Time/TimeSpan.js.map b/dist/es6/System/Time/TimeSpan.js.map index c04a6df1..6417ee7f 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":["TimeSpan","TimeSpan.constructor","TimeSpan.total","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero"],"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.js b/dist/es6/System/Time/TimeStamp.js index c3a1f814..da8aee16 100644 --- a/dist/es6/System/Time/TimeStamp.js +++ b/dist/es6/System/Time/TimeStamp.js @@ -1,12 +1,7 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -import * as HowMany from './HowMany'; +'use strict'; import Type from '../Types'; export default class TimeStamp { constructor(year, month, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, tick = 0) { - // TODO: Add validation or properly carry out of range values... this.year = year; this.month = month; this.day = day; @@ -22,9 +17,9 @@ export default class TimeStamp { return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000); } static from(d) { - if (!(Type.isInstanceOf(d, Date)) && Type.hasMember(d, 'toJsDate')) + if (!(d instanceof Date) && Type.hasMember(d, 'toJsDate')) d = d.toJsDate(); - if (Type.isInstanceOf(d, Date)) { + if (d instanceof Date) { return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); } else { diff --git a/dist/es6/System/Time/TimeStamp.js.map b/dist/es6/System/Time/TimeStamp.js.map index cd3a5b8d..a2df6c4f 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":["TimeStamp","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from"],"mappings":"AAAA;;;GAGG;OAKI,KAAK,OAAO,MAAM,WAAW;OAC7B,IAAI,MAAM,UAAU;AAK3B;IAICA,YACQA,IAAWA,EACXA,KAAqBA,EACrBA,GAAGA,GAAUA,CAACA,EACdA,IAAIA,GAAUA,CAACA,EACfA,MAAMA,GAAUA,CAACA,EACjBA,MAAMA,GAAUA,CAACA,EACjBA,WAAWA,GAAUA,CAACA,EACtBA,IAAIA,GAAUA,CAACA;QAGtBC,gEAAgEA;QAVzDA,SAAIA,GAAJA,IAAIA,CAAOA;QACXA,UAAKA,GAALA,KAAKA,CAAgBA;QACrBA,QAAGA,GAAHA,GAAGA,CAAWA;QACdA,SAAIA,GAAJA,IAAIA,CAAWA;QACfA,WAAMA,GAANA,MAAMA,CAAWA;QACjBA,WAAMA,GAANA,MAAMA,CAAWA;QACjBA,gBAAWA,GAAXA,WAAWA,CAAWA;QACtBA,SAAIA,GAAJA,IAAIA,CAAWA;QAKtBA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;IACrBA,CAACA;IAEDD,QAAQA;QAEPE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,MAAMA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,CAACA,CAACA,IAAIA,GAACA,KAA6BA,CAACA,CAACA;IAC3HA,CAACA;IAEDF,OAAOA,IAAIA,CAACA,CAAgBA;QAE3BG,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAAOA,CAACA,EAACA,IAAIA,CAACA,CAACA,IAAIA,IAAIA,CAACA,SAASA,CAACA,CAACA,EAACA,UAAUA,CAACA,CAACA;YACtEA,CAACA,GAAeA,CAAEA,CAACA,QAAQA,EAAEA,CAACA;QAC/BA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,YAAYA,CAAOA,CAACA,EAACA,IAAIA,CAACA,CAACA,CACnCA,CAACA;YACAA,MAAMA,CAACA,IAAIA,SAASA,CACnBA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,OAAOA,EAAEA,EACXA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,eAAeA,EAAEA,CACnBA,CAACA;QACHA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,MAAMA,KAAKA,CAACA,oBAAoBA,CAACA,CAACA;QACnCA,CAACA;IACFA,CAACA;AACFH,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeStamp.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAMN,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 diff --git a/dist/es6/System/Time/TimeUnit.js b/dist/es6/System/Time/TimeUnit.js index fbb9fe57..d2abdf6c 100644 --- a/dist/es6/System/Time/TimeUnit.js +++ b/dist/es6/System/Time/TimeUnit.js @@ -1,9 +1,3 @@ -/* - * @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 * as HowMany from './HowMany'; var TimeUnit; (function (TimeUnit) { TimeUnit[TimeUnit["Ticks"] = 0] = "Ticks"; diff --git a/dist/es6/System/Time/TimeUnit.js.map b/dist/es6/System/Time/TimeUnit.js.map index 60f3ae44..0c821fdc 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":["TimeUnit","TimeUnit.toMilliseconds","TimeUnit.fromMilliseconds","TimeUnit.from","TimeUnit.assertValid"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":"AAUA,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 diff --git a/dist/es6/System/Time/TimeUnitValue.js b/dist/es6/System/Time/TimeUnitValue.js index b5a72ee0..1e37354b 100644 --- a/dist/es6/System/Time/TimeUnitValue.js +++ b/dist/es6/System/Time/TimeUnitValue.js @@ -1,7 +1,4 @@ -/* - * @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'; export default class TimeUnitValue extends TimeQuantity { diff --git a/dist/es6/System/Time/TimeUnitValue.js.map b/dist/es6/System/Time/TimeUnitValue.js.map index 2b56d4cb..e18a1a1b 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":["TimeUnitValue","TimeUnitValue.constructor","TimeUnitValue.value","TimeUnitValue.getTotalMilliseconds","TimeUnitValue.units","TimeUnitValue.to","TimeUnitValue.from","getUnitQuantityFrom"],"mappings":"AAAA;;;GAGG;OAOI,QAAQ,MAAM,YAAY;OAC1B,YAAY,MAAM,gBAAgB;AAKzC,2CAC4B,YAAY;IAGvCA,YAAYA,KAA0BA,EAAUA,MAAeA;QAE9DC,MAAMA,OAAMA,CAACA,KAAKA,CAACA,IAAEA,QAAQA;cAClBA,KAAKA;cACbA,mBAAmBA,CAAgBA,KAAKA,EAAEA,MAAMA,CAACA,CAACA,CAACA;QAJPA,WAAMA,GAANA,MAAMA,CAASA;QAK9DA,QAAQA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA;IAC9BA,CAACA;IAEDD,IAAIA,KAAKA;QAERE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;IACvBA,CAACA;IAEDF,IAAIA,KAAKA,CAACA,CAAQA;QAEjBE,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;QACnBA,IAAIA,CAACA,SAASA,GAAGA,CAACA,CAACA;IACpBA,CAACA;IAEDF,oBAAoBA;QAEnBG,MAAMA,CAACA,QAAQA,CAACA,cAAcA,CAACA,IAAIA,CAACA,SAASA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;IAC7DA,CAACA;IAGDH,IAAIA,KAAKA;QAERI,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IACpBA,CAACA;IAEDJ,EAAEA,CAACA,KAAKA,GAAYA,IAAIA,CAACA,KAAKA;QAE7BK,MAAMA,CAACA,aAAaA,CAACA,IAAIA,CAACA,IAAIA,EAACA,KAAKA,CAACA,CAACA;IACvCA,CAACA;IAEDL,OAAOA,IAAIA,CAACA,KAA0BA,EAAEA,KAAKA,GAAYA,QAAQA,CAACA,YAAYA;QAE7EM,MAAMA,CAACA,IAAIA,aAAaA,CAACA,KAAKA,EAAEA,KAAKA,CAACA,CAACA;IACxCA,CAACA;AAEFN,CAACA;AAED,6BAA6B,CAAe,EAAE,KAAc;IAE3DO,MAAMA,CAACA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;AACnEA,CAACA"} \ No newline at end of file +{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;OAON,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 diff --git a/dist/es6/System/Types.js b/dist/es6/System/Types.js index 8279cb6f..b2b0bb0c 100644 --- a/dist/es6/System/Types.js +++ b/dist/es6/System/Types.js @@ -1,10 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -/// -/// -const _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof undefined, _FUNCTION = typeof function () { }; +'use strict'; +const VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }; var typeInfoRegistry = {}; export class TypeInfo { constructor(target) { @@ -90,7 +85,9 @@ var Type; return typeof value === _BOOLEAN; } Type.isBoolean = isBoolean; - function isNumber(value, allowNaN = true) { + function isNumber(value, allowNaN) { + if (allowNaN === VOID0) + allowNaN = true; return typeof value === _NUMBER && (allowNaN || !isNaN(value)); } Type.isNumber = isNumber; @@ -140,12 +137,8 @@ var Type; return hasMember(instance, property) && typeof (instance[property]) === type; } Type.hasMemberOfType = hasMemberOfType; - function isInstanceOf(instance, type) { - return (instance) instanceof (type); - } - Type.isInstanceOf = isInstanceOf; function isArrayLike(instance) { - return (instance) instanceof (Array) || hasMember(instance, "length"); + return instance instanceof Array || hasMember(instance, "length"); } Type.isArrayLike = isArrayLike; })(Type || (Type = {})); diff --git a/dist/es6/System/Types.js.map b/dist/es6/System/Types.js.map index 0e4ac566..b3f75d9a 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":["TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isInstanceOf","Type.isArrayLike"],"mappings":"AAAA;;;GAGG;AAEH,qCAAqC;AACrC,oDAAoD;AAEpD,MACC,QAAQ,GAAU,OAAO,IAAI,EAC7B,OAAO,GAAW,OAAO,CAAC,EAC1B,OAAO,GAAW,OAAO,EAAE,EAC3B,OAAO,GAAW,OAAO,EAAE,EAC3B,UAAU,GAAU,OAAO,SAAS,EACpC,SAAS,GAAU,OAAO,cAAY,CAAC,CAAC;AAGzC,IAAI,gBAAgB,GAA2B,EAAE,CAAC;AAKlD;IAoBCA,YAAYA,MAAUA;QAErBC,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,CAACA,CAACA,SAASA,GAAGA,KAAKA,CAACA;QACpBA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA;QACnBA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA;QACnBA,CAACA,CAACA,SAASA,GAAGA,KAAKA,CAACA;QACpBA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA;QACnBA,CAACA,CAACA,UAAUA,GAAGA,KAAKA,CAACA;QACrBA,CAACA,CAACA,WAAWA,GAAGA,KAAKA,CAACA;QACtBA,CAACA,CAACA,MAAMA,GAAGA,KAAKA,CAACA;QACjBA,CAACA,CAACA,WAAWA,GAAGA,KAAKA,CAACA;QAEtBA,MAAMA,CAAAA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,MAAMA,CAACA,CAC9BA,CAACA;YACAA,KAAKA,QAAQA;gBACZA,CAACA,CAACA,SAASA,GAAGA,IAAIA,CAACA;gBACnBA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACrBA,KAAKA,CAACA;YACPA,KAAKA,OAAOA;gBACXA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;gBAClBA,CAACA,CAACA,SAASA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAC5BA,CAACA,CAACA,QAAQA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;gBAC9BA,CAACA,CAACA,aAAaA,GAAGA,CAACA,CAACA,CAACA,SAASA,CAACA;gBAC/BA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACrBA,KAAKA,CAACA;YACPA,KAAKA,OAAOA;gBACXA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;gBAClBA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACrBA,KAAKA,CAACA;YACPA,KAAKA,OAAOA;gBACXA,CAACA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;gBAClBA,EAAEA,CAAAA,CAACA,MAAMA,KAAGA,IAAIA,CAACA,CACjBA,CAACA;oBACAA,CAACA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;oBAChBA,CAACA,CAACA,iBAAiBA,GAAGA,IAAIA,CAACA;oBAC3BA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CACJA,CAACA;oBACAA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;gBACnBA,CAACA;gBACDA,KAAKA,CAACA;YACPA,KAAKA,SAASA;gBACbA,CAACA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;gBAClBA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;gBAClBA,KAAKA,CAACA;YACPA,KAAKA,UAAUA;gBACdA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACrBA,CAACA,CAACA,iBAAiBA,GAAGA,IAAIA,CAACA;gBAC3BA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACrBA,KAAKA,CAACA;YACPA;gBACCA,MAAMA,qCAAqCA,GAAGA,CAACA,CAACA,IAAIA,CAACA;QACvDA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;IAElBA,CAACA;IAQDD,MAAMA,CAACA,IAAWA;QAEjBE,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;QACpBA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CACrBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAEA,CAACA,CAACA,CAACA;cACbA,CAACA,CAACA,IAAIA,CAACA;cACPA,SAASA,CAACA,CAACA;IAChBA,CAACA;IAQDF,OAAOA,MAAMA,CAACA,MAAUA;QA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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;AAKb,MACC,KAAK,GAAO,KAAI,CAAC,CAAC,CAAC,EACnB,QAAQ,GAAU,OAAO,IAAI,EAC7B,OAAO,GAAW,OAAO,CAAC,EAC1B,OAAO,GAAW,OAAO,EAAE,EAC3B,OAAO,GAAW,OAAO,EAAE,EAC3B,UAAU,GAAU,OAAO,KAAK,EAChC,SAAS,GAAU,OAAO,cAAY,CAAC,CAAC;AAGzC,IAAI,gBAAgB,GAA2B,EAAE,CAAC;AAKlD;IAoBC,YAAY,MAAU;QAErB,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;QAEtB,MAAM,CAAA,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,MAAM,CAAC,CAC9B,CAAC;YACA,KAAK,QAAQ;gBACZ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,KAAK,CAAC;YACP,KAAK,OAAO;gBACX,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/B,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,KAAK,CAAC;YACP,KAAK,OAAO;gBACX,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,KAAK,CAAC;YACP,KAAK,OAAO;gBACX,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;gBAClB,EAAE,CAAA,CAAC,MAAM,KAAG,IAAI,CAAC,CACjB,CAAC;oBACA,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,IAAI,CACJ,CAAC;oBACA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACnB,CAAC;gBACD,KAAK,CAAC;YACP,KAAK,SAAS;gBACb,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;gBAClB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAClB,KAAK,CAAC;YACP,KAAK,UAAU;gBACd,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,KAAK,CAAC;YACP;gBACC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC;QACvD,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElB,CAAC;IAQD,MAAM,CAAC,IAAW;QAEjB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACpB,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC;cACb,CAAC,CAAC,IAAI,CAAC;cACP,SAAS,CAAC,CAAC;IAChB,CAAC;IAQD,OAAO,MAAM,CAAC,MAAU;QAEvB,IAAI,IAAI,GAAU,OAAO,MAAM,CAAC;QAChC,MAAM,CAAA,CAAC,IAAI,CAAC,CACZ,CAAC;YACA,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACb,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClC,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;YAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;AAEF,CAAC;AAED,IAAO,IAAI,CAwJV;AAxJD,WAAO,IAAI,EACX,CAAC;IAKa,YAAO,GAAU,QAAQ,CAAC;IAM1B,WAAM,GAAU,OAAO,CAAC;IAMxB,WAAM,GAAU,OAAO,CAAC;IAMxB,WAAM,GAAU,OAAO,CAAC;IAOxB,cAAS,GAAU,UAAU,CAAC;IAM9B,aAAQ,GAAU,SAAS,CAAC;IAOzC,mBAA0B,KAAS;QAElC,MAAM,CAAC,OAAO,KAAK,KAAG,QAAQ,CAAC;IAChC,CAAC;IAHe,cAAS,YAGxB,CAAA;IAQD,kBAAyB,KAAS,EAAE,QAAiB;QAEpD,EAAE,CAAA,CAAC,QAAQ,KAAG,KAAK,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;QACrC,MAAM,CAAC,OAAO,KAAK,KAAG,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAJe,aAAQ,WAIvB,CAAA;IAOD,mBAA0B,KAAS;QAElC,MAAM,CAAC,OAAO,KAAK,KAAG,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAHe,cAAS,YAGxB,CAAA;IAOD,kBAAyB,KAAS;QAEjC,MAAM,CAAC,OAAO,KAAK,KAAG,OAAO,CAAC;IAC/B,CAAC;IAHe,aAAQ,WAGvB,CAAA;IAOD,qBAA4B,KAAS;QAEpC,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC;QACrB,MAAM,CAAA,CAAC,CAAC,CAAC,CACT,CAAC;YACA,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,CAAC;YACb,KAAK,OAAO,CAAC;YACb,KAAK,UAAU;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,OAAO;gBACX,MAAM,CAAC,KAAK,KAAG,IAAI,CAAC;QAEtB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAfe,gBAAW,cAe1B,CAAA;IAOD,oBAA2B,KAAS;QAEnC,MAAM,CAAC,OAAO,KAAK,KAAG,SAAS,CAAC;IACjC,CAAC;IAHe,eAAU,aAGzB,CAAA;IAOD,kBAAyB,KAAS;QAEjC,MAAM,CAAC,OAAO,KAAK,KAAG,OAAO,CAAC;IAC/B,CAAC;IAHe,aAAQ,WAGvB,CAAA;IAOD,qBAA4B,KAAS;QAEpC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACnC,CAAC;IAHe,gBAAW,cAG1B,CAAA;IAED,YAAmB,MAAU;QAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAHe,OAAE,KAGjB,CAAA;IAED,mBAA0B,KAAS,EAAE,QAAe;QAEnD,MAAM,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAHe,cAAS,YAGxB,CAAA;IAED,yBAAmC,QAAY,EAAE,QAAe,EAAE,IAAW;QAE5E,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,OAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAG,IAAI,CAAC;IAC3E,CAAC;IAHe,oBAAe,kBAG9B,CAAA;IAED,qBAA+B,QAAY;QAE1C,MAAM,CAAC,QAAQ,YAAY,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAHe,gBAAW,cAG1B,CAAA;AACF,CAAC,EAxJM,IAAI,KAAJ,IAAI,QAwJV;AAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEpB,eAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Uri/HostNameType.js b/dist/es6/System/Uri/HostNameType.js index 364554fc..94df40a9 100644 --- a/dist/es6/System/Uri/HostNameType.js +++ b/dist/es6/System/Uri/HostNameType.js @@ -1,8 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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; (function (UriHostNameType) { UriHostNameType[UriHostNameType["Basic"] = 0] = "Basic"; diff --git a/dist/es6/System/Uri/HostNameType.js.map b/dist/es6/System/Uri/HostNameType.js.map index 58494506..21912465 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":["UriHostNameType"],"mappings":"AAAA;;;;GAIG;AAGH,IAAK,eAyBJ;AAzBD,WAAK,eAAe;IAInBA,uDAAKA,CAAAA;IAKLA,mDAAGA,CAAAA;IAKHA,qDAAIA,CAAAA;IAKJA,qDAAIA,CAAAA;IAKJA,2DAAOA,CAAAA;AACRA,CAACA,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":"AAOA,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 diff --git a/dist/es6/System/Uri/QueryBuilder.js b/dist/es6/System/Uri/QueryBuilder.js index 6dde5013..9275f3bc 100644 --- a/dist/es6/System/Uri/QueryBuilder.js +++ b/dist/es6/System/Uri/QueryBuilder.js @@ -1,7 +1,4 @@ -/* - * @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'; @@ -9,12 +6,19 @@ const ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; export default class QueryBuilder extends OrderedStringKeyDictionary { constructor(query, decodeValues = true) { super(); + this.importQuery(query, decodeValues); + } + importQuery(query, decodeValues = true) { if (Type.isString(query)) { this.importFromString(query, decodeValues); } + else if (Array.isArray(query)) { + this.importPairs(query); + } else { this.importMap(query); } + return this; } importFromString(values, deserialize = true, decodeValues = true) { var _ = this; diff --git a/dist/es6/System/Uri/QueryBuilder.js.map b/dist/es6/System/Uri/QueryBuilder.js.map index 4745bc82..39a1a0bb 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":["QueryBuilder","QueryBuilder.constructor","QueryBuilder.importFromString","QueryBuilder.init","QueryBuilder.encode","QueryBuilder.toString"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Uri/QueryParams.js b/dist/es6/System/Uri/QueryParams.js index 468750c9..fc309abd 100644 --- a/dist/es6/System/Uri/QueryParams.js +++ b/dist/es6/System/Uri/QueryParams.js @@ -1,25 +1,17 @@ -/* - * @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'; const ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; export function encode(values, prefixIfNotEmpty) { if (!values) return ''; - var entries = []; + var entries; if (Array.isArray(values)) { - for (let kvp of values) { - if (kvp) - entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value)); - } + entries = values.map(kvp => extractKeyValue(kvp, (key, value) => key + KEY_VALUE_SEPARATOR + encodeValue(value))); } else { - var keys = Object.keys(values); - for (let k of keys) { - entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k])); - } + entries = Object.keys(values).map(key => key + KEY_VALUE_SEPARATOR + encodeValue(values[key])); } return (entries.length && prefixIfNotEmpty ? '?' : '') + entries.join(ENTRY_SEPARATOR); diff --git a/dist/es6/System/Uri/QueryParams.js.map b/dist/es6/System/Uri/QueryParams.js.map index 7ccd2d04..ae215e73 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":["encode","encodeValue","isUriComponentFormattable","parse","parseToMap","parseToArray","Separator"],"mappings":"AAAA;;;GAGG;OAKI,IAAI,MAAM,UAAU;OACpB,KAAK,aAAa,MAAM,0BAA0B;AAOzD,MACC,eAAe,GAAG,GAAG,EACrB,mBAAmB,GAAG,GAAG,CAAC;AAK3B,uBACC,MAAyD,EACzD,gBAAyB;IAEzBA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,CAACA;QAACA,MAAMA,CAACA,EAAEA,CAACA;IACtBA,IAAIA,OAAOA,GAAYA,EAAEA,CAACA;IAE1BA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CACzBA,CAACA;QACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,MAAMA,CAACA,CACtBA,CAACA;YACAA,EAAEA,CAAAA,CAACA,GAAGA,CAACA;gBAACA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,mBAAmBA,GAAGA,WAAWA,CAACA,GAAGA,CAACA,KAAKA,CAACA,CAACA,CAACA;QAC9EA,CAACA;IACFA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;QAC/BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAClBA,CAACA;YACAA,OAAOA,CAACA,IAAIA,CAACA,CAACA,GAAGA,mBAAmBA,GAAGA,WAAWA,CAAOA,MAAOA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;QACvEA,CAACA;IACFA,CAACA;IAEDA,MAAMA,CAACA,CAACA,OAAOA,CAACA,MAAMA,IAAIA,gBAAgBA,GAAGA,GAAGA,GAAGA,EAAEA,CAACA;UACnDA,OAAOA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;AAClCA,CAACA;AAOD,4BAA4B,KAAsD;IAEjFC,IAAIA,CAACA,GAAUA,IAAIA,CAACA;IACpBA,EAAEA,CAAAA,CAACA,yBAAyBA,CAACA,KAAKA,CAACA,CAACA,CACpCA,CAACA;QACAA,CAACA,GAAGA,KAAKA,CAACA,cAAcA,EAAEA,CAACA;QAC3BA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA,CAACA,OAAOA,CAACA,GAAGA,CAACA,IAAEA,CAACA,CAACA;YACzBA,MAAMA,6CAA6CA,CAACA;IACtDA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,CAACA,GAAGA,kBAAkBA,CAACA,aAAaA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;IACnDA,CAACA;IACDA,MAAMA,CAACA,CAACA,CAACA;AACVA,CAACA;AAOD,0CAA0C,QAAY;IAErDC,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAA2BA,QAAQA,EAAEA,gBAAgBA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,CAACA;AAClGA,CAACA;AASD,sBACC,KAAY,EACZ,YAAgD,EAChD,WAAW,GAAW,IAAI,EAC1B,YAAY,GAAW,IAAI;IAE3BC,EAAEA,CAAAA,CAACA,KAAKA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA,OAAOA,CAACA,SAASA,EAAEA,EAAEA,CAACA,CAACA,CAACA,CACnDA,CAACA;QACAA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA;QAC3CA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,KAAKA,IAAIA,OAAOA,CAACA,CACzBA,CAACA;YAKAA,IAAIA,EAAEA,GAAGA,KAAKA,CAACA,OAAOA,CAACA,mBAAmBA,CAACA,CAACA;YAC5CA,EAAEA,CAAAA,CAACA,EAAEA,IAAGA,CAACA,CAACA,CAACA,CACXA,CAACA;gBACAA,IAAIA,GAAGA,GAAGA,KAAKA,CAACA,SAASA,CAACA,CAACA,EAAEA,EAAEA,CAACA,CAACA;gBACjCA,IAAIA,KAAKA,GAAQA,KAAKA,CAACA,SAASA,CAACA,EAAEA,GAAGA,CAACA,CAACA,CAACA;gBACzCA,EAAEA,CAAAA,CAACA,YAAYA,CAACA;oBAACA,KAAKA,GAAGA,kBAAkBA,CAACA,KAAKA,CAACA,CAACA;gBACnDA,EAAEA,CAAAA,CAACA,WAAWA,CAACA;oBAACA,KAAKA,GAAGA,aAAaA,CAACA,WAAWA,CAACA,KAAKA,CAACA,CAACA;gBACzDA,YAAYA,CAACA,GAAGA,EAAEA,KAAKA,CAACA,CAACA;YAC1BA,CAACA;QACFA,CAACA;IACFA,CAACA;AACFA,CAACA;AASD,2BACC,KAAY,EACZ,WAAW,GAAW,IAAI,EAC1B,YAAY,GAAW,IAAI;IAE3BC,IAAIA,MAAMA,GAA+BA,EAAEA,CAACA;IAC5CA,KAAKA,CAACA,KAAKA,EACVA,CAACA,GAAGA,EAAEA,KAAKA;QAEVA,EAAEA,CAAAA,CAACA,CAACA,GAAGA,CAACA,IAAEA,CAACA,MAAMA,CAACA,CAACA,CACnBA,CAACA;YACAA,IAAIA,IAAIA,GAAOA,MAAMA,CAACA,GAAGA,CAACA,CAACA;YAC3BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACzBA,MAAMA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,GAAGA,CAACA,IAAIA,CAACA,CAACA;YAC7BA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QAClBA,CAACA;QACDA,IAAIA;YACHA,MAAMA,CAACA,GAAGA,CAACA,GAAGA,KAAKA,CAACA;IACtBA,CAACA,EACDA,WAAWA,EACXA,YAAYA,CAACA,CAACA;IACfA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA;AASD,6BACC,KAAY,EACZ,WAAW,GAAW,IAAI,EAC1B,YAAY,GAAW,IAAI;IAE3BC,IAAIA,MAAMA,GAAqCA,EAAEA,CAACA;IAClDA,KAAKA,CAACA,KAAKA,EACVA,CAACA,GAAGA,EAAEA,KAAKA,OAAKA,MAAMA,CAACA,IAAIA,CAACA,EAACA,GAAGA,EAAEA,GAAGA,EAAEA,KAAKA,EAAEA,KAAKA,EAACA,CAACA,CAACA,CAAAA,CAACA,EACvDA,WAAWA,EACXA,YAAYA,CACZA,CAACA;IACFA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA;AAED,WAAc,SAAS,CAItB;AAJD,WAAc,SAAS,EACvB,CAAC;IACaC,eAAKA,GAAUA,eAAeA,CAACA;IAC/BA,kBAAQA,GAAUA,mBAAmBA,CAACA;AACpDA,CAACA,EAJa,SAAS,KAAT,SAAS,QAItB;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"} \ 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.js b/dist/es6/System/Uri/Scheme.js index 60c15c22..9994d19e 100644 --- a/dist/es6/System/Uri/Scheme.js +++ b/dist/es6/System/Uri/Scheme.js @@ -1,8 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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 UriScheme; (function (UriScheme) { UriScheme[UriScheme["file"] = 0] = "file"; diff --git a/dist/es6/System/Uri/Scheme.js.map b/dist/es6/System/Uri/Scheme.js.map index cbd9ee56..0d14e96c 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":["UriScheme"],"mappings":"AAAA;;;;GAIG;AAGH,IAAK,SA4EJ;AA5ED,WAAK,SAAS;IAIbA,yCAAIA,CAAAA;IAMJA,uCAAGA,CAAAA;IAMHA,6CAAMA,CAAAA;IAMNA,yCAAIA,CAAAA;IAMJA,2CAAKA,CAAAA;IAMLA,yCAAIA,CAAAA;IAMJA,6CAAMA,CAAAA;IAMNA,yCAAIA,CAAAA;IAMJA,uCAAGA,CAAAA;IAMHA,yCAAIA,CAAAA;IAMJA,0CAAIA,CAAAA;IAMJA,8CAAMA,CAAAA;IAKNA,0CAAIA,CAAAA;AACLA,CAACA,EA5EI,SAAS,KAAT,SAAS,QA4Eb;AAGD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEzB,eAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":"AAMA,IAAK,SA4EJ;AA5ED,WAAK,SAAS;IAIb,yCAAI,CAAA;IAMJ,uCAAG,CAAA;IAMH,6CAAM,CAAA;IAMN,yCAAI,CAAA;IAMJ,2CAAK,CAAA;IAML,yCAAI,CAAA;IAMJ,6CAAM,CAAA;IAMN,yCAAI,CAAA;IAMJ,uCAAG,CAAA;IAMH,yCAAI,CAAA;IAMJ,0CAAI,CAAA;IAMJ,8CAAM,CAAA;IAKN,0CAAI,CAAA;AACL,CAAC,EA5EI,SAAS,KAAT,SAAS,QA4Eb;AAGD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEzB,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Uri/Uri.js b/dist/es6/System/Uri/Uri.js index 9ddb0386..3a5e0063 100644 --- a/dist/es6/System/Uri/Uri.js +++ b/dist/es6/System/Uri/Uri.js @@ -1,15 +1,11 @@ -/* - * @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 - */ +'use strict'; import Type from '../Types'; import * as QueryParams from '../Uri/QueryParams'; import { trim } from '../Text/Utility'; import UriScheme from '../Uri/Scheme'; import ArgumentException from '../Exceptions/ArgumentException'; import ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException'; -class Uri { +export default class Uri { constructor(scheme, userInfo, host, port, path, query, fragment) { var _ = this; _.scheme = getScheme(scheme) || null; @@ -54,6 +50,11 @@ class Uri { copyTo(map) { return copyUri(this, map); } + updateQuery(query) { + var map = this.toMap(); + map.query = query; + return Uri.from(map); + } getAbsoluteUri() { return uriToString(this); } @@ -73,7 +74,7 @@ class Uri { return this.absoluteUri; } static toString(uri) { - return Type.isInstanceOf(uri, Uri) + return uri instanceof Uri ? uri.absoluteUri : uriToString(uri); } @@ -81,22 +82,22 @@ class Uri { return getAuthority(uri); } } -(function (Uri) { - (function (Fields) { - Fields[Fields["scheme"] = 0] = "scheme"; - Fields[Fields["userInfo"] = 1] = "userInfo"; - Fields[Fields["host"] = 2] = "host"; - Fields[Fields["port"] = 3] = "port"; - Fields[Fields["path"] = 4] = "path"; - Fields[Fields["query"] = 5] = "query"; - Fields[Fields["fragment"] = 6] = "fragment"; - })(Uri.Fields || (Uri.Fields = {})); - var Fields = Uri.Fields; - Object.freeze(Fields); -})(Uri || (Uri = {})); -function copyUri(from, to = {}) { +export var Fields; +(function (Fields) { + Fields[Fields["scheme"] = 0] = "scheme"; + Fields[Fields["userInfo"] = 1] = "userInfo"; + Fields[Fields["host"] = 2] = "host"; + Fields[Fields["port"] = 3] = "port"; + Fields[Fields["path"] = 4] = "path"; + Fields[Fields["query"] = 5] = "query"; + Fields[Fields["fragment"] = 6] = "fragment"; +})(Fields || (Fields = {})); +Object.freeze(Fields); +function copyUri(from, to) { var i = 0, field; - while (field = Uri.Fields[i++]) { + if (!to) + to = {}; + while (field = Fields[i++]) { var value = from[field]; if (value) to[field] = value; @@ -151,8 +152,6 @@ function getPathAndQuery(uri) { + (formatQuery(query) || EMPTY); } function uriToString(uri) { - // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment] - // {scheme}{authority}{path}{query}{fragment} var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment); return EMPTY + ((scheme && (scheme + ':')) || EMPTY) @@ -207,5 +206,4 @@ 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 8d99ab43..600d0601 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":["Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","Uri.pathSegments","Uri.toMap","Uri.toString","Uri.Fields","copyUri","getScheme","getAuthority","formatQuery","formatFragment","getPathAndQuery","uriToString","tryParse"],"mappings":"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AACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,MAAMA,CAACA,QAAQA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QACnCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;IAC3BA,CAACA;IAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,EAAEA,CAACA,CAACA;IACpBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,MAAMA,CAACA,KAAKA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QAChCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;IAC3BA,CAACA;IAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;IACxBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA;QACjDA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YAClBA,MAAMA,CAACA,IAAIA,iBAAiBA,CAACA,KAAKA,EAACA,iCAAiCA,CAACA,CAACA;QAEvEA,MAAMA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,EAACA,KAAKA,CAACA,CAACA,CAACA;QACvCA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,IAAIA,SAASA,CAACA;QAEpCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;IAC5BA,CAACA;IAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA;QAC5CA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;IAC3BA,CAACA;IAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,EAAEA,CAACA,CAACA;IACpBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,MAAMA,CAACA,QAAQA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,IAAIA,SAASA,CAACA;QACnDA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;IAC5BA,CAACA;IAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;IACrBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;QACAA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA,IAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QAChDA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YACdA,MAAMA,CAACA,IAAIA,iBAAiBA,CAACA,KAAKA,EAACA,mBAAmBA,CAACA,CAACA;QAEzDA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;QACnBA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;IAC3BA,CAACA;IAEDA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IAChBA,EAAEA,CAAAA,CAACA,GAAGA,CAACA;QACNA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA;IAEnBA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA;IAGrBA,MAAMA,CAACA,IAAIA,CAACA;AAEbA,CAACA;AAED,eAAe,GAAG,CAAC"} \ 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/applyMixins.js b/dist/es6/System/Utility/applyMixins.js index 26eca849..bd977159 100644 --- a/dist/es6/System/Utility/applyMixins.js +++ b/dist/es6/System/Utility/applyMixins.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ export default function applyMixins(derivedConstructor, baseConstructors) { baseConstructors .forEach(bc => { diff --git a/dist/es6/System/Utility/applyMixins.js.map b/dist/es6/System/Utility/applyMixins.js.map index 6dc43782..d4364d20 100644 --- a/dist/es6/System/Utility/applyMixins.js.map +++ b/dist/es6/System/Utility/applyMixins.js.map @@ -1 +1 @@ -{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["../../../../source/System/Utility/applyMixins.ts"],"names":["applyMixins"],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC,kBAAsB,EAAE,gBAAsB;IAEjFA,gBAAgBA;SACdA,OAAOA,CAACA,EAAEA;QAEVA,MAAMA,CAACA,mBAAmBA,CAACA,EAAEA,CAACA,SAASA,CAACA,CAACA,OAAOA,CAC9CA,IAAIA;YAEJA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,CAACA,GAAGA,EAAEA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;QACzDA,CAACA,CACDA,CAACA;IACHA,CAACA,CACDA,CAACA;AACHA,CAACA"} \ No newline at end of file +{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["../../../../source/System/Utility/applyMixins.ts"],"names":[],"mappings":"AAKA,oCAAoC,kBAAsB,EAAE,gBAAsB;IAEjF,gBAAgB;SACd,OAAO,CAAC,EAAE;QAEV,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAC9C,IAAI;YAEJ,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CACD,CAAC;IACH,CAAC,CACD,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Utility/clone.js b/dist/es6/System/Utility/clone.js index 805d92d5..7ac09572 100644 --- a/dist/es6/System/Utility/clone.js +++ b/dist/es6/System/Utility/clone.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ import Type from '../Types'; export default function clone(source, depth = 0) { if (depth < 0) diff --git a/dist/es6/System/Utility/clone.js.map b/dist/es6/System/Utility/clone.js.map index a496ac82..e3fa5884 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":["clone"],"mappings":"AAAA;;;GAGG;OAEI,IAAI,MAAM,UAAU;AAE3B,8BAA8B,MAAU,EAAE,KAAK,GAAU,CAAC;IAEzDA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;QACVA,MAAMA,CAACA,MAAMA,CAACA;IAGfA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QAACA,MAAMA,CAACA,MAAMA,CAACA;IAEzCA,IAAIA,MAAUA,CAACA;IACfA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CACzBA,CAACA;QACAA,MAAMA,GAASA,MAAOA,CAACA,KAAKA,EAAEA,CAACA;QAC/BA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA,CACXA,CAACA;YACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EACnCA,CAACA;gBACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;YACzCA,CAACA;QACFA,CAACA;IACFA,CAACA;IACDA,IAAIA,CACJA,CAACA;QACAA,MAAMA,GAAGA,EAAEA,CAACA;QACZA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;YAACA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CAChCA,CAACA;gBAEAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;YACzCA,CAACA;IACFA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAEfA,CAACA"} \ No newline at end of file +{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":"OAKO,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 diff --git a/dist/es6/System/Utility/shallowCopy.js b/dist/es6/System/Utility/shallowCopy.js index d18ecd3d..1bda84dd 100644 --- a/dist/es6/System/Utility/shallowCopy.js +++ b/dist/es6/System/Utility/shallowCopy.js @@ -1,7 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ export default function shallowCopy(source, target = {}) { if (target) { for (let k in source) { diff --git a/dist/es6/System/Utility/shallowCopy.js.map b/dist/es6/System/Utility/shallowCopy.js.map index cbba7016..fdde800c 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":["shallowCopy"],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC,MAAU,EAAE,MAAM,GAAO,EAAE;IAE9DA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;QACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CACpBA,CAACA;YAEAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACvBA,CAACA;IACFA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AACfA,CAACA"} \ No newline at end of file +{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":"AAKA,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 diff --git a/dist/es6/System/Validation/ValidationResult.js b/dist/es6/System/Validation/ValidationResult.js index 63da1429..8d85923c 100644 --- a/dist/es6/System/Validation/ValidationResult.js +++ b/dist/es6/System/Validation/ValidationResult.js @@ -1,9 +1,4 @@ -/* - * @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 68ca201d..5b215ac3 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":["ValidationResult","ValidationResult.constructor","ValidationResult.equals","ValidationResult.valid","ValidationResult.invalid"],"mappings":"AAAA;;;GAGG;AAEH,8CAA8C;AAC9C,yCAAyC;AAEzC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAKzC;IAOCA,YACQA,OAAOA,GAAWA,KAAKA,EACvBA,OAAOA,GAAUA,IAAIA,EACrBA,IAAIA,GAAOA,IAAIA;QAFfC,YAAOA,GAAPA,OAAOA,CAAgBA;QACvBA,YAAOA,GAAPA,OAAOA,CAAcA;QACrBA,SAAIA,GAAJA,IAAIA,CAAWA;QAItBA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;IACrBA,CAACA;IAKDD,MAAMA,CAACA,KAAuBA;QAE7BE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,OAAOA,KAAGA,KAAKA,CAACA,OAAOA;eAC5BA,CAACA,CAACA,OAAOA,IAAEA,CAACA,CAACA,OAAOA;eACpBA,CAACA,CAACA,IAAIA,IAAEA,CAACA,CAACA,IAAIA,CAACA;IACpBA,CAACA;IAODF,WAAWA,KAAKA;QACfG,MAAMA,CAACA,KAAKA,CAACA;IACdA,CAACA;IAKDH,OAAOA,OAAOA,CACbA,OAAcA,EACdA,IAAIA,GAAOA,IAAIA;QAEfI,MAAMA,CAACA,IAAIA,gBAAgBA,CAACA,KAAKA,EAAEA,OAAOA,EAAEA,IAAIA,CAACA,CAACA;IACnDA,CAACA;AACFJ,CAACA;AAAA"} \ No newline at end of file +{"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../source/System/Validation/ValidationResult.ts"],"names":[],"mappings":"AAIA,YAAY,CAAC;AAKb,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.js b/dist/system/System.Linq/Linq.js index 8a52e1c3..2b119b1b 100644 --- a/dist/system/System.Linq/Linq.js +++ b/dist/system/System.Linq/Linq.js @@ -1,16 +1,12 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Original: http://linqjs.codeplex.com/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../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/Utility', '../System/Disposable/DisposableBase', "../System/Exception", '../System/Disposable/ObjectDisposedException', "../System/Collections/Sorting/KeySortedContext"], function(exports_1) { + 'use strict'; 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 Values, Arrays, ArrayUtility, Enumerator_1, Types_1, Integer_1, Functions_1, ArrayEnumerator_1, EnumeratorBase_1, Dictionary_1, Queue_1, Utility_1, DisposableBase_1, Exception_1, ObjectDisposedException_1, KeySortedContext_1; - var LinqFunctions, Functions, UnsupportedEnumerableException, Enumerable, ArrayEnumerable, Grouping, Lookup, WhereEnumerable, WhereSelectEnumerable, OrderedEnumerable; + var VOID0, LinqFunctions, Functions, UnsupportedEnumerableException, Enumerable, ArrayEnumerable, Grouping, Lookup, WhereEnumerable, WhereSelectEnumerable, OrderedEnumerable; function createSortContext(orderedEnumerable, currentContext) { if (currentContext === void 0) { currentContext = null; } var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); @@ -74,7 +70,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. KeySortedContext_1 = KeySortedContext_1_1; }], execute: function() { - 'use strict'; + VOID0 = void 0; LinqFunctions = (function (_super) { __extends(LinqFunctions, _super); function LinqFunctions() { @@ -87,7 +83,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. return a < b ? a : b; }; return LinqFunctions; - })(Functions_1.default); + }(Functions_1.default)); Functions = new LinqFunctions(); Object.freeze(Functions); UnsupportedEnumerableException = (function (_super) { @@ -96,7 +92,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. _super.call(this, "Unsupported enumerable."); } return UnsupportedEnumerableException; - })(Exception_1.default); + }(Exception_1.default)); Enumerable = (function (_super) { __extends(Enumerable, _super); function Enumerable(_enumeratorFactory, finalizer) { @@ -108,7 +104,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. }; Enumerable.from = function (source) { if (Types_1.default.isObject(source)) { - if (Types_1.default.isInstanceOf(source, Enumerable)) + if (source instanceof Enumerable) return source; if (Array.isArray(source)) return new ArrayEnumerable(source); @@ -125,7 +121,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. return source.slice(); if (Types_1.default.isArrayLike(source)) source = new ArrayEnumerable(source); - if (Types_1.default.isInstanceOf(source, Enumerable)) + if (source instanceof Enumerable) return source.toArray(); if (Enumerator_1.isEnumerable(source)) { var result = []; @@ -287,7 +283,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. var type = typeof input; if (type != Types_1.default.STRING) throw new Error("Cannot exec RegExp matches of type '" + type + "'."); - if (Types_1.default.isInstanceOf(pattern, RegExp)) { + if (pattern instanceof RegExp) { flags += (pattern.ignoreCase) ? "i" : ""; flags += (pattern.multiline) ? "m" : ""; pattern = pattern.source; @@ -414,7 +410,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. var key = keySelector(x); var element = elementSelector(x); var array = dict.getValue(key); - if (array !== undefined) + if (array !== VOID0) array.push(element); else dict.addByKeyValue(key, [element]); @@ -694,7 +690,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. }); }; Enumerable.prototype.scan = function (func, seed) { - var isUseSeed = seed !== undefined; + var isUseSeed = seed !== VOID0; var _ = this; return new Enumerable(function () { var enumerator; @@ -755,7 +751,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. middleEnumerator = undefined; index = 0; }, function (yielder) { - if (middleEnumerator === undefined && !enumerator.moveNext()) + if (middleEnumerator === VOID0 && !enumerator.moveNext()) return false; do { if (!middleEnumerator) { @@ -790,7 +786,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. throwIfDisposed(disposed); while (enumerator.moveNext()) { var result = selector(enumerator.current, index++); - if (result !== null && result !== undefined) + if (result !== null && result !== VOID0) return yielder.yieldReturn(result); } return false; @@ -843,7 +839,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. break; default: return this - .where(function (x) { return Types_1.default.isInstanceOf(x, type); }); + .where(function (x) { return x instanceof type; }); } return this .where(function (x) { return typeof x === typeName; }); @@ -1144,7 +1140,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. while (true) { if (innerElements != null) { var innerElement = innerElements[innerCount++]; - if (innerElement !== undefined) + if (innerElement !== VOID0) return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement)); innerElement = null; innerCount = 0; @@ -1378,7 +1374,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. keys = new Dictionary_1.default(compareSelector); }, function (yielder) { var current; - if (secondEnumerator === undefined) { + if (secondEnumerator === VOID0) { while (firstEnumerator.moveNext()) { current = firstEnumerator.current; if (!keys.containsKey(current)) { @@ -1700,7 +1696,6 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. var sharedEnumerator; return new Enumerable(function () { return new EnumeratorBase_1.default(function () { - // assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator. if (!sharedEnumerator) sharedEnumerator = _.getEnumerator(); }, function (yielder) { @@ -1792,7 +1787,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. }); }; return Enumerable; - })(DisposableBase_1.default); + }(DisposableBase_1.default)); exports_1("Enumerable", Enumerable); ArrayEnumerable = (function (_super) { __extends(ArrayEnumerable, _super); @@ -1940,7 +1935,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. if (equalityComparer === void 0) { equalityComparer = Values.areEqual; } if (Array.isArray(second)) return Arrays.areEqual(this.source, second, true, equalityComparer); - if (Types_1.default.isInstanceOf(second, ArrayEnumerable)) + if (second instanceof ArrayEnumerable) return second.sequenceEqual(this.source, equalityComparer); return _super.prototype.sequenceEqual.call(this, second, equalityComparer); }; @@ -1953,7 +1948,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. : _super.prototype.toJoinedString.call(this, separator, selector); }; return ArrayEnumerable; - })(Enumerable); + }(Enumerable)); Grouping = (function (_super) { __extends(Grouping, _super); function Grouping(_groupKey, elements) { @@ -1968,7 +1963,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. configurable: true }); return Grouping; - })(ArrayEnumerable); + }(ArrayEnumerable)); Lookup = (function () { function Lookup(_dictionary) { this._dictionary = _dictionary; @@ -2001,7 +1996,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. }); }; return Lookup; - })(); + }()); WhereEnumerable = (function (_super) { __extends(WhereEnumerable, _super); function WhereEnumerable(prevSource, prevPredicate) { @@ -2043,7 +2038,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. this.prevSource = null; }; return WhereEnumerable; - })(Enumerable); + }(Enumerable)); WhereSelectEnumerable = (function (_super) { __extends(WhereSelectEnumerable, _super); function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) { @@ -2089,7 +2084,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. _.prevSelector = null; }; return WhereSelectEnumerable; - })(Enumerable); + }(Enumerable)); OrderedEnumerable = (function (_super) { __extends(OrderedEnumerable, _super); function OrderedEnumerable(source, keySelector, order, parent, comparer) { @@ -2146,7 +2141,7 @@ System.register(['../System/Compare', '../System/Collections/Array/Compare', '.. this.parent = null; }; return OrderedEnumerable; - })(Enumerable); + }(Enumerable)); exports_1("default",Enumerable); } } diff --git a/dist/system/System.Linq/Linq.js.map b/dist/system/System.Linq/Linq.js.map index 746304ca..50c358e9 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":["createSortContext","throwIfDisposed","LinqFunctions","LinqFunctions.constructor","LinqFunctions.Greater","LinqFunctions.Lesser","UnsupportedEnumerableException","UnsupportedEnumerableException.constructor","Enumerable","Enumerable.constructor","Enumerable.fromArray","Enumerable.from","Enumerable.toArray","Enumerable.getEnumerator","Enumerable._onDispose","Enumerable.choice","Enumerable.cycle","Enumerable.empty","Enumerable.repeat","Enumerable.repeatWithFinalize","Enumerable.make","Enumerable.range","Enumerable.rangeDown","Enumerable.toInfinity","Enumerable.toNegativeInfinity","Enumerable.rangeTo","Enumerable.matches","Enumerable.generate","Enumerable.unfold","Enumerable.defer","Enumerable.forEach","Enumerable.map","Enumerable.max","Enumerable.min","Enumerable.asEnumerable","Enumerable.toLookup","Enumerable.toMap","Enumerable.toDictionary","Enumerable.toJoinedString","Enumerable.doAction","Enumerable.force","Enumerable.skip","Enumerable.skipWhile","Enumerable.take","Enumerable.takeWhile","Enumerable.takeUntil","Enumerable.takeExceptLast","Enumerable.takeFromLast","Enumerable.traverseBreadthFirst","Enumerable.traverseDepthFirst","Enumerable.flatten","Enumerable.pairwise","Enumerable.scan","Enumerable.select","Enumerable.selectMany","Enumerable.choose","Enumerable.where","Enumerable.ofType","Enumerable.except","Enumerable.distinct","Enumerable.distinctUntilChanged","Enumerable.reverse","Enumerable.shuffle","Enumerable.count","Enumerable.all","Enumerable.every","Enumerable.any","Enumerable.some","Enumerable.isEmpty","Enumerable.contains","Enumerable.indexOf","Enumerable.lastIndexOf","Enumerable.defaultIfEmpty","Enumerable.zip","Enumerable.zipMultiple","Enumerable.join","Enumerable.groupJoin","Enumerable.concatWith","Enumerable.merge","Enumerable.concat","Enumerable.insertAt","Enumerable.alternateMultiple","Enumerable.alternateSingle","Enumerable.alternate","Enumerable.intersect","Enumerable.sequenceEqual","Enumerable.union","Enumerable.orderBy","Enumerable.orderUsing","Enumerable.orderUsingReversed","Enumerable.orderByDescending","Enumerable.groupBy","Enumerable.partitionBy","Enumerable.buffer","Enumerable.aggregate","Enumerable.average","Enumerable.maxBy","Enumerable.minBy","Enumerable.sum","Enumerable.product","Enumerable.elementAt","Enumerable.elementAtOrDefault","Enumerable.first","Enumerable.firstOrDefault","Enumerable.last","Enumerable.lastOrDefault","Enumerable.single","Enumerable.singleOrDefault","Enumerable.share","Enumerable.memoize","Enumerable.catchError","Enumerable.finallyAction","ArrayEnumerable","ArrayEnumerable.constructor","ArrayEnumerable._onDispose","ArrayEnumerable.source","ArrayEnumerable.toArray","ArrayEnumerable.asEnumerable","ArrayEnumerable.forEach","ArrayEnumerable.any","ArrayEnumerable.count","ArrayEnumerable.elementAt","ArrayEnumerable.elementAtOrDefault","ArrayEnumerable.first","ArrayEnumerable.firstOrDefault","ArrayEnumerable.last","ArrayEnumerable.lastOrDefault","ArrayEnumerable.skip","ArrayEnumerable.takeExceptLast","ArrayEnumerable.takeFromLast","ArrayEnumerable.reverse","ArrayEnumerable.memoize","ArrayEnumerable.sequenceEqual","ArrayEnumerable.toJoinedString","Grouping","Grouping.constructor","Grouping.key","Lookup","Lookup.constructor","Lookup.count","Lookup.get","Lookup.contains","Lookup.getEnumerator","WhereEnumerable","WhereEnumerable.constructor","WhereEnumerable.where","WhereEnumerable.select","WhereEnumerable.getEnumerator","WhereEnumerable._onDispose","WhereSelectEnumerable","WhereSelectEnumerable.constructor","WhereSelectEnumerable.where","WhereSelectEnumerable.select","WhereSelectEnumerable.getEnumerator","WhereSelectEnumerable._onDispose","OrderedEnumerable","OrderedEnumerable.constructor","OrderedEnumerable.createOrderedEnumerable","OrderedEnumerable.thenBy","OrderedEnumerable.thenUsing","OrderedEnumerable.thenByDescending","OrderedEnumerable.thenUsingReversed","OrderedEnumerable.getEnumerator","OrderedEnumerable._onDispose"],"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/system/System/Collections/Array/Compare.js b/dist/system/System/Collections/Array/Compare.js index 38852480..732e1308 100644 --- a/dist/system/System/Collections/Array/Compare.js +++ b/dist/system/System/Collections/Array/Compare.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Compare', '../../Types'], function(exports_1) { + "use strict"; var Values, Types_1; function validateSize(a, b) { if (a && b && a === b || !a && !b) diff --git a/dist/system/System/Collections/Array/Compare.js.map b/dist/system/System/Collections/Array/Compare.js.map index fb657f79..6a5a22a2 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":["validateSize","areAllEqual","areEqual","copyAndSort","areEquivalent"],"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/Procedure.js b/dist/system/System/Collections/Array/Procedure.js index c3768f05..01cf8ecd 100644 --- a/dist/system/System/Collections/Array/Procedure.js +++ b/dist/system/System/Collections/Array/Procedure.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + "use strict"; function sum(source, ignoreNaN) { if (ignoreNaN === void 0) { ignoreNaN = false; } if (!source || !source.length) diff --git a/dist/system/System/Collections/Array/Procedure.js.map b/dist/system/System/Collections/Array/Procedure.js.map index f9dd732e..16cfbec0 100644 --- a/dist/system/System/Collections/Array/Procedure.js.map +++ b/dist/system/System/Collections/Array/Procedure.js.map @@ -1 +1 @@ -{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Procedure.ts"],"names":["sum","average","product","ifSet","min","max"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Array/Procedure.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sort.js b/dist/system/System/Collections/Array/Sort.js index 3ad8a6ca..803bf141 100644 --- a/dist/system/System/Collections/Array/Sort.js +++ b/dist/system/System/Collections/Array/Sort.js @@ -1,8 +1,5 @@ -/* - * @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) { + "use strict"; var Types_1, Compare_1; function ensureArray(value) { return Array.isArray(value) diff --git a/dist/system/System/Collections/Array/Sort.js.map b/dist/system/System/Collections/Array/Sort.js.map index 6154fc37..6939112f 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":["ensureArray","createComparer"],"mappings":"AAAA;;;GAGG;;;IAQH,qBAAwB,KAAW;QAElCA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA;cACnBA,KAAKA;cACVA,CAAIA,KAAKA,CAACA,CAACA;IACfA,CAACA;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzBC,qBAAuCA,GAAvCA,SAAuCA;QACvCA,+BAAyBA,GAAzBA,qBAAyBA;QAEzBA,IAAIA,gBAAgBA,GAAGA,CAACA,eAAIA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA;QAExDA,MAAMA,CAACA,UAACA,CAAmBA,EAAEA,CAAmBA;YAG/CA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;YACtCA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;YACtCA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,MAAMA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAEjDA,IAAIA,MAAMA,GAAWA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA;YACzDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,CAACA,EAAEA,EACzBA,CAACA;gBACAA,IAAIA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAAEA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAC9BA,CAACA,GAAIA,MAAMA;sBACRA,CAACA,CAACA,GAACA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAAeA,CAACA;sBACxCA,KAAKA,CAACA;gBAEpBA,EAAEA,CAAAA,CAACA,gBAAgBA,CAACA,CACpBA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;wBACrBA,EAAEA,GAAGA,eAAeA,CAACA;oBACtBA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;wBACrBA,EAAEA,GAAGA,eAAeA,CAACA;gBAEvBA,CAACA;gBAEDA,IAAIA,CAACA,GAAGA,iBAAOA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,CAACA;gBACxBA,EAAEA,CAAAA,CAACA,CAACA,KAAGA,CAAmBA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAACA,CAACA,CAACA;YAEbA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA;QACVA,CAACA,CAACA;IACHA,CAACA;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":";;;IAYA,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 diff --git a/dist/system/System/Collections/Array/Utility.js b/dist/system/System/Collections/Array/Utility.js index e3d5acb9..79da48b8 100644 --- a/dist/system/System/Collections/Array/Utility.js +++ b/dist/system/System/Collections/Array/Utility.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function(exports_1) { + "use strict"; var Types_1, Integer_1, Compare_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1; var CBN, CBL0; function initialize(length) { @@ -204,6 +201,53 @@ System.register(['../../Types', '../../Integer', '../../Compare', '../../Excepti return result; } exports_1("flatten", flatten); + function dispatchUnsafe(listeners, payload, trap) { + if (listeners && listeners.length) { + for (var i = 0, len = listeners.length; i < len; i++) { + var fn = listeners[i]; + if (!fn) + continue; + try { + fn(payload); + } + catch (ex) { + if (!trap) + throw ex; + else if (Types_1.default.isFunction(trap)) + trap(ex, i); + } + } + } + } + exports_1("dispatchUnsafe", dispatchUnsafe); + function dispatch(listeners, payload, trap) { + dispatchUnsafe(copy(listeners), payload, trap); + } + exports_1("dispatch", dispatch); + function dispatchMapped(listeners, payload, trap) { + if (!listeners) + return null; + var result = copy(listeners); + if (listeners.length) { + for (var i = 0, len = result.length; i < len; i++) { + var fn = result[i]; + try { + result[i] = fn + ? fn(payload) + : undefined; + } + catch (ex) { + result[i] = undefined; + if (!trap) + throw ex; + else if (Types_1.default.isFunction(trap)) + trap(ex, i); + } + } + } + return result; + } + exports_1("dispatchMapped", dispatchMapped); return { setters:[ function (Types_1_1) { diff --git a/dist/system/System/Collections/Array/Utility.js.map b/dist/system/System/Collections/Array/Utility.js.map index de4f8652..14ca65b6 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":["initialize","copy","copyTo","contains","replace","updateRange","clear","register","findIndex","forEach","applyTo","removeIndex","remove","repeat","flatten"],"mappings":"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A,CAACA,GAACA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAC9BA,CAACA;YACAA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;YACbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,CACpBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,YAAYA,GAACA,CAACA,CAACA;oBAACA,CAACA,GAAGA,OAAOA,CAACA,CAACA,EAAEA,YAAYA,GAAGA,CAACA,CAACA,CAACA;gBACpDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA;oBAAEA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACnDA,CAACA;YACDA,IAAIA;gBAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACrBA,CAACA;QACDA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAdD,6BAcC,CAAA;;;;;;;;;;;;;;;;;;;;;;YAxVA,GAAG,GAAG,iBAAiB,EACvB,IAAI,GAAG,2BAA2B,CAAC"} \ 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/Dictionaries/Dictionary.js b/dist/system/System/Collections/Dictionaries/Dictionary.js index 09521770..d3f34c0b 100644 --- a/dist/system/System/Collections/Dictionaries/Dictionary.js +++ b/dist/system/System/Collections/Dictionaries/Dictionary.js @@ -1,23 +1,19 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Original: http://linqjs.codeplex.com/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], function(exports_1) { + 'use strict'; 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 Compare_1, Types_1, Functions_1, DictionaryBase_1, EnumeratorBase_1; - var HashEntry, EntryList, Dictionary; + var VOID0, HashEntry, EntryList, Dictionary; function callHasOwnProperty(target, key) { return Object.prototype.hasOwnProperty.call(target, key); } function computeHashCode(obj) { if (obj === null) return "null"; - if (obj === undefined) + if (obj === VOID0) return "undefined"; return (typeof obj.toString === Types_1.default.FUNCTION) ? obj.toString() @@ -41,6 +37,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar EnumeratorBase_1 = EnumeratorBase_1_1; }], execute: function() { + VOID0 = void 0; HashEntry = (function () { function HashEntry(key, value, prev, next) { this.key = key; @@ -49,7 +46,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar this.next = next; } return HashEntry; - })(); + }()); EntryList = (function () { function EntryList(first, last) { this.first = first; @@ -105,7 +102,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar } }; return EntryList; - })(); + }()); Dictionary = (function (_super) { __extends(Dictionary, _super); function Dictionary(compareSelector) { @@ -130,7 +127,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar throw new Error("Key already exists."); var changed = !equal(old.value, value); if (changed) { - if (value === undefined) { + if (value === VOID0) { entries.remove(old); array.splice(i, 1); if (!array.length) @@ -150,7 +147,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar array.push(entry = entry || new HashEntry(key, value)); } else { - if (value === undefined) { + if (value === VOID0) { if (allowOverwrite) return false; else @@ -173,8 +170,8 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar if (!callHasOwnProperty(buckets, hash)) return undefined; var array = buckets[hash]; - for (var _i = 0; _i < array.length; _i++) { - var entry = array[_i]; + for (var _i = 0, array_1 = array; _i < array_1.length; _i++) { + var entry = array_1[_i]; if (comparer(entry.key) === compareKey) return entry.value; } @@ -231,7 +228,7 @@ System.register(['../../Compare', '../../Types', '../../Functions', './Dictionar return result; }; return Dictionary; - })(DictionaryBase_1.default); + }(DictionaryBase_1.default)); exports_1("default", Dictionary); } } diff --git a/dist/system/System/Collections/Dictionaries/Dictionary.js.map b/dist/system/System/Collections/Dictionaries/Dictionary.js.map index e211310c..5e2d9f53 100644 --- a/dist/system/System/Collections/Dictionaries/Dictionary.js.map +++ b/dist/system/System/Collections/Dictionaries/Dictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/Dictionary.ts"],"names":["callHasOwnProperty","computeHashCode","HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","Dictionary","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/Dictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Dictionaries/DictionaryBase.js b/dist/system/System/Collections/Dictionaries/DictionaryBase.js index 50aa11be..5d75ea11 100644 --- a/dist/system/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/system/System/Collections/Dictionaries/DictionaryBase.js @@ -1,10 +1,7 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException'], function(exports_1) { - var Compare_1, EnumeratorBase_1, ArgumentException_1, ArgumentNullException_1, InvalidOperationException_1; - var DictionaryBase; +System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException', '../../KeyValueExtract'], function(exports_1) { + 'use strict'; + var Compare_1, EnumeratorBase_1, ArgumentNullException_1, InvalidOperationException_1, KeyValueExtract_1; + var VOID0, DictionaryBase; return { setters:[ function (Compare_1_1) { @@ -13,16 +10,17 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except function (EnumeratorBase_1_1) { EnumeratorBase_1 = EnumeratorBase_1_1; }, - function (ArgumentException_1_1) { - ArgumentException_1 = ArgumentException_1_1; - }, function (ArgumentNullException_1_1) { ArgumentNullException_1 = ArgumentNullException_1_1; }, function (InvalidOperationException_1_1) { InvalidOperationException_1 = InvalidOperationException_1_1; + }, + function (KeyValueExtract_1_1) { + KeyValueExtract_1 = KeyValueExtract_1_1; }], execute: function() { + VOID0 = void (0); DictionaryBase = (function () { function DictionaryBase() { this._updateRecursion = 0; @@ -74,9 +72,10 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except configurable: true }); DictionaryBase.prototype.add = function (item) { + var _this = this; if (!item) - throw new ArgumentException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); - this.addByKeyValue(item.key, item.value); + throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); }); }; DictionaryBase.prototype.clear = function () { var _ = this, keys = _.keys, count = keys.length; @@ -90,10 +89,13 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except return count; }; DictionaryBase.prototype.contains = function (item) { + var _this = this; if (!item) return false; - var value = this.getValue(item.key); - return Compare_1.areEqual(value, item.value); + return KeyValueExtract_1.default(item, function (key, value) { + var v = _this.getValue(key); + return Compare_1.areEqual(value, v); + }); }; DictionaryBase.prototype.copyTo = function (array, index) { if (index === void 0) { index = 0; } @@ -109,11 +111,14 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except return this.copyTo([], 0); }; DictionaryBase.prototype.remove = function (item) { + var _this = this; if (!item) return 0; - var key = item.key, value = this.getValue(key); - return (Compare_1.areEqual(value, item.value) && this.removeByKey(key)) - ? 1 : 0; + return KeyValueExtract_1.default(item, function (key, value) { + var v = _this.getValue(key); + return (Compare_1.areEqual(value, v) && _this.removeByKey(key)) + ? 1 : 0; + }); }; Object.defineProperty(DictionaryBase.prototype, "keys", { get: function () { return this.getKeys(); }, @@ -137,7 +142,7 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except }; DictionaryBase.prototype.containsKey = function (key) { var value = this.getValue(key); - return value !== undefined; + return value !== VOID0; }; DictionaryBase.prototype.containsValue = function (value) { var e = this.getEnumerator(), equal = Compare_1.areEqual; @@ -166,10 +171,10 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except var _ = this; return _.handleUpdate(function () { var changed = false; - pairs.forEach(function (pair) { - _.setValue(pair.key, pair.value); + pairs.forEach(function (pair) { return KeyValueExtract_1.default(pair, function (key, value) { + _.setValue(key, value); changed = true; - }); + }); }); return changed; }); }; @@ -182,14 +187,14 @@ System.register(['../../Compare', '../Enumeration/EnumeratorBase', '../../Except }, function (yielder) { while (i < len) { var key = keys[i++], value = _.getValue(key); - if (value !== undefined) + if (value !== VOID0) return yielder.yieldReturn({ key: key, value: value }); } return yielder.yieldBreak(); }); }; return 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 c51895de..581d49d7 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":["DictionaryBase","DictionaryBase.constructor","DictionaryBase.isUpdating","DictionaryBase._onValueUpdate","DictionaryBase._onUpdated","DictionaryBase.handleUpdate","DictionaryBase.isReadOnly","DictionaryBase.count","DictionaryBase.add","DictionaryBase.clear","DictionaryBase.contains","DictionaryBase.copyTo","DictionaryBase.toArray","DictionaryBase.remove","DictionaryBase.keys","DictionaryBase.values","DictionaryBase.addByKeyValue","DictionaryBase.containsKey","DictionaryBase.containsValue","DictionaryBase.removeByKey","DictionaryBase.removeByValue","DictionaryBase.importPairs","DictionaryBase.getEnumerator"],"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.js b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 94c2816b..6227bca2 100644 --- a/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/dist/system/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -1,15 +1,12 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../Array/Utility', './StringKeyDictionary', '../../Exceptions/ArgumentOutOfRangeException'], function(exports_1) { + 'use strict'; 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 ArrayUtility, StringKeyDictionary_1, ArgumentOutOfRangeException_1; - var OrderedStringKeyDictionary; + var VOID0, OrderedStringKeyDictionary; return { setters:[ function (ArrayUtility_1) { @@ -22,6 +19,7 @@ System.register(['../Array/Utility', './StringKeyDictionary', '../../Exceptions/ ArgumentOutOfRangeException_1 = ArgumentOutOfRangeException_1_1; }], execute: function() { + VOID0 = void 0; OrderedStringKeyDictionary = (function (_super) { __extends(OrderedStringKeyDictionary, _super); function OrderedStringKeyDictionary() { @@ -36,9 +34,9 @@ System.register(['../Array/Utility', './StringKeyDictionary', '../../Exceptions/ }; OrderedStringKeyDictionary.prototype.setValue = function (key, value, keepIndex) { var _ = this, exists = _.indexOfKey(key) != -1; - if (!exists && (value !== undefined || keepIndex)) + if (!exists && (value !== VOID0 || keepIndex)) _._order.push(key); - else if (exists && value === undefined && !keepIndex) + else if (exists && value === VOID0 && !keepIndex) ArrayUtility.remove(_._order, key); return _super.prototype.setValue.call(this, key, value); }; @@ -76,7 +74,7 @@ System.register(['../Array/Utility', './StringKeyDictionary', '../../Exceptions/ return _._order.filter(function (key) { return _.containsKey(key); }); }; return OrderedStringKeyDictionary; - })(StringKeyDictionary_1.default); + }(StringKeyDictionary_1.default)); 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 8c8a1fbc..48519717 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":["OrderedStringKeyDictionary","OrderedStringKeyDictionary.constructor","OrderedStringKeyDictionary.indexOfKey","OrderedStringKeyDictionary.getValueByIndex","OrderedStringKeyDictionary.setValue","OrderedStringKeyDictionary.setByIndex","OrderedStringKeyDictionary.importValues","OrderedStringKeyDictionary.setValues","OrderedStringKeyDictionary.removeByIndex","OrderedStringKeyDictionary.getKeys"],"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.js b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js index c8c66cd3..aa22c7cc 100644 --- a/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js +++ b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js @@ -1,16 +1,12 @@ -/// -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Compare', './DictionaryBase'], function(exports_1) { + 'use strict'; 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 Compare_1, DictionaryBase_1; - var StringKeyDictionary; + var VOID0, StringKeyDictionary; return { setters:[ function (Compare_1_1) { @@ -20,6 +16,7 @@ System.register(['../../Compare', './DictionaryBase'], function(exports_1) { DictionaryBase_1 = DictionaryBase_1_1; }], execute: function() { + VOID0 = void 0; StringKeyDictionary = (function (_super) { __extends(StringKeyDictionary, _super); function StringKeyDictionary() { @@ -44,7 +41,7 @@ System.register(['../../Compare', './DictionaryBase'], function(exports_1) { StringKeyDictionary.prototype.setValue = function (key, value) { var _ = this, map = _._map, old = map[key]; if (old !== value) { - if (value === undefined) { + if (value === VOID0) { if ((key) in (map)) { delete map[key]; --_._count; @@ -78,7 +75,7 @@ System.register(['../../Compare', './DictionaryBase'], function(exports_1) { var value = _._map[key]; if (selector) value = selector(key, value); - if (value !== undefined) + if (value !== VOID0) result[key] = value; } } @@ -104,7 +101,7 @@ System.register(['../../Compare', './DictionaryBase'], function(exports_1) { return this._count; }; return StringKeyDictionary; - })(DictionaryBase_1.default); + }(DictionaryBase_1.default)); exports_1("default", StringKeyDictionary); } } diff --git a/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js.map b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js.map index 0454b12c..815d837f 100644 --- a/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js.map +++ b/dist/system/System/Collections/Dictionaries/StringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":["StringKeyDictionary","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Dictionaries/StringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js index 9fd64cd4..222f4aa8 100644 --- a/dist/system/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/system/System/Collections/Enumeration/ArrayEnumerator.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['./IndexEnumerator', '../../Types'], function(exports_1) { + 'use strict'; 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; } @@ -30,7 +27,7 @@ System.register(['./IndexEnumerator', '../../Types'], function(exports_1) { }); } return ArrayEnumerator; - })(IndexEnumerator_1.default); + }(IndexEnumerator_1.default)); 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 1706d208..7a2d930d 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":["ArrayEnumerator","ArrayEnumerator.constructor"],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;YAMH;gBACiCA,mCAAkBA;gBAIlDA,yBAAYA,cAAkBA,EAAEA,KAAgBA,EAAEA,IAAeA;oBAAjCC,qBAAgBA,GAAhBA,SAAgBA;oBAAEA,oBAAeA,GAAfA,QAAeA;oBAEhEA,kBACCA;wBAECA,IAAIA,KAAKA,GAAGA,eAAIA,CAACA,UAAUA,CAACA,cAAcA,CAACA,GAAGA,cAAcA,EAAEA,GAAGA,cAAcA,CAACA;wBAChFA,MAAMA,CAACA,EAACA,MAAMA,EAAEA,KAAKA,EAAEA,OAAOA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,CAACA,KAAKA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAIA,EAACA,CAACA;oBACxFA,CAACA,CACDA,CAACA;gBACHA,CAACA;gBACFD,sBAACA;YAADA,CAACA,AAfD,EACiC,yBAAe,EAc/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":";IAIA,YAAY,CAAC;;;;;;;;;;;;;;;;;YAMb;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,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;oBACxF,CAAC,CACD,CAAC;gBACH,CAAC;gBACF,sBAAC;YAAD,CAAC,AAfD,CACiC,yBAAe,GAc/C;YAfD,qCAeC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js b/dist/system/System/Collections/Enumeration/Enumerator.js index 668b6540..effd1877 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.js +++ b/dist/system/System/Collections/Enumeration/Enumerator.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Types', './ArrayEnumerator', './IndexEnumerator'], function(exports_1) { + 'use strict'; var Types_1, ArrayEnumerator_1, IndexEnumerator_1; var EmptyEnumerator, Empty; function from(source) { @@ -69,7 +66,7 @@ System.register(['../../Types', './ArrayEnumerator', './IndexEnumerator'], funct EmptyEnumerator.prototype.reset = function () { }; EmptyEnumerator.prototype.dispose = function () { }; return EmptyEnumerator; - })(); + }()); Empty = new EmptyEnumerator(); } } diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js.map b/dist/system/System/Collections/Enumeration/Enumerator.js.map index c5755395..f65fe9ee 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":["from","isEnumerable","forEach","EmptyEnumerator","EmptyEnumerator.constructor","EmptyEnumerator.current","EmptyEnumerator.moveNext","EmptyEnumerator.reset","EmptyEnumerator.dispose"],"mappings":"AAAA;;;GAGG;;;yBA6BG,KAAK;IAGX,cAAwB,MAAiC;QAGxDA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,CAACA;YACVA,MAAMA,CAACA,KAAKA,CAACA;QAEdA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;YACxBA,MAAMA,CAACA,IAAIA,yBAAeA,CAASA,MAAMA,CAACA,CAACA;QAG5CA,EAAEA,CAAAA,CAACA,CAACA,eAAIA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA,CAC7BA,CAACA;YACAA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,WAAWA,CAAIA,MAAMA,CAACA,CAACA,CAC/BA,CAACA;gBACAA,MAAMA,CAACA,IAAIA,yBAAeA,CACzBA;oBAECA,MAAMA,CAACA;wBACNA,MAAMA,EAAEA,MAAMA;wBACdA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA;wBACrBA,OAAOA,EAAEA,CAACA;wBACVA,IAAIA,EAAEA,CAACA;qBACPA,CAAAA;gBACFA,CAACA,CACDA,CAACA;YACHA,CAACA;YACDA,EAAEA,CAAAA,CAACA,YAAYA,CAAIA,MAAMA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,MAAMA,CAACA,aAAaA,EAAEA,CAACA;QAEhCA,CAACA;QAEDA,MAAMA,IAAIA,KAAKA,CAACA,qBAAqBA,CAACA,CAACA;IACxCA,CAACA;IAhCD,uBAgCC,CAAA;IAED,sBAAgC,QAAY;QAE3CC,MAAMA,CAACA,eAAIA,CAACA,eAAeA,CAAiBA,QAAQA,EAAEA,eAAeA,EAAEA,eAAIA,CAACA,QAAQA,CAACA,CAACA;IACvFA,CAACA;IAHD,uCAGC,CAAA;IAED,iBACC,CAAgB,EAChB,MAAwC;QAExCC,EAAEA,CAAAA,CAACA,CAACA,CAACA,CACLA,CAACA;YACAA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YAEdA,OAAMA,CAACA,CAACA,QAAQA,EAAEA,EAClBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CAACA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,CAACA,KAAGA,KAAKA,CAACA;oBACrCA,KAAKA,CAACA;YACRA,CAACA;QACFA,CAACA;IACFA,CAACA;IAdD,6BAcC,CAAA;;;;;;;;;;;;;YAzED;gBAAAC;gBAeAC,CAACA;gBAbAD,sBAAIA,oCAAOA;yBAAXA;wBAECE,MAAMA,CAACA,SAASA,CAACA;oBAClBA,CAACA;;;mBAAAF;gBAEDA,kCAAQA,GAARA;oBAECG,MAAMA,CAACA,KAAKA,CAACA;gBACdA,CAACA;gBAEDH,+BAAKA,GAALA,cAAeI,CAACA;gBAEhBJ,iCAAOA,GAAPA,cAAiBK,CAACA;gBACnBL,sBAACA;YAADA,CAACA,AAfD,IAeC;YAEK,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":";IAIA,YAAY,CAAC;;yBA6BP,KAAK;IAGX,cAAwB,MAAiC;QAGxD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YACV,MAAM,CAAC,KAAK,CAAC;QAEd,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,yBAAe,CAAS,MAAM,CAAC,CAAC;QAG5C,EAAE,CAAA,CAAC,CAAC,eAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAC7B,CAAC;YACA,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC,CAC/B,CAAC;gBACA,MAAM,CAAC,IAAI,yBAAe,CACzB;oBAEC,MAAM,CAAC;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,CAAC;qBACP,CAAA;gBACF,CAAC,CACD,CAAC;YACH,CAAC;YACD,EAAE,CAAA,CAAC,YAAY,CAAI,MAAM,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAEhC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IAhCD,uBAgCC,CAAA;IAED,sBAAgC,QAAY;QAE3C,MAAM,CAAC,eAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,eAAe,EAAE,eAAI,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAHD,uCAGC,CAAA;IAED,iBACC,CAAgB,EAChB,MAAwC;QAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;oBACrC,KAAK,CAAC;YACR,CAAC;QACF,CAAC;IACF,CAAC;IAdD,6BAcC,CAAA;;;;;;;;;;;;;YAzED;gBAAA;gBAeA,CAAC;gBAbA,sBAAI,oCAAO;yBAAX;wBAEC,MAAM,CAAC,SAAS,CAAC;oBAClB,CAAC;;;mBAAA;gBAED,kCAAQ,GAAR;oBAEC,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBAED,+BAAK,GAAL,cAAe,CAAC;gBAEhB,iCAAO,GAAP,cAAiB,CAAC;gBACnB,sBAAC;YAAD,CAAC,AAfD,IAeC;YAEK,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/EnumeratorBase.js b/dist/system/System/Collections/Enumeration/EnumeratorBase.js index 93dbfea2..269d7914 100644 --- a/dist/system/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/system/System/Collections/Enumeration/EnumeratorBase.js @@ -1,8 +1,5 @@ -/* - * @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) { + 'use strict'; 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; } @@ -33,7 +30,7 @@ System.register(['../../Disposable/DisposableBase'], function(exports_1) { return false; }; return Yielder; - })(); + }()); (function (EnumeratorState) { EnumeratorState[EnumeratorState["Before"] = 0] = "Before"; EnumeratorState[EnumeratorState["Running"] = 1] = "Running"; @@ -103,7 +100,7 @@ System.register(['../../Disposable/DisposableBase'], function(exports_1) { } }; return EnumeratorBase; - })(DisposableBase_1.default); + }(DisposableBase_1.default)); 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 2f933d5f..cfadd3d0 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":["Yielder","Yielder.constructor","Yielder.current","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorState","EnumeratorBase","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._onDispose"],"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.js b/dist/system/System/Collections/Enumeration/IndexEnumerator.js index 6a71628d..0654b0a6 100644 --- a/dist/system/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/system/System/Collections/Enumeration/IndexEnumerator.js @@ -1,4 +1,5 @@ System.register(['./EnumeratorBase'], function(exports_1) { + 'use strict'; 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; } @@ -50,7 +51,7 @@ System.register(['./EnumeratorBase'], function(exports_1) { }); } return IndexEnumerator; - })(EnumeratorBase_1.default); + }(EnumeratorBase_1.default)); 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 d711fcd4..f7122682 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":["IndexEnumerator","IndexEnumerator.constructor"],"mappings":";;;;;;;;;;;;;;YAEA;gBACiCA,mCAAiBA;gBAGjDA,yBACCA,aAAqGA;oBAGrGC,IAAIA,MAAwFA,CAACA;oBAC7FA,kBACCA;wBAECA,MAAMA,GAAGA,aAAaA,EAAEA,CAACA;wBACzBA,EAAEA,CAAAA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,CAC3BA,CAACA;4BACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,IAAIA,KAAGA,CAACA,CAACA;gCACnCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,CAACA,CAACA;4BAE5DA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;4BAC7BA,EAAEA,CAAAA,CAACA,CAACA,OAAOA,CAACA;gCACXA,MAAMA,CAACA,OAAOA,GAAGA,CAACA,CAACA;4BACpBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,OAAOA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gCACpCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,GAAGA,OAAOA,GAAGA,gBAAgBA,CAACA,CAACA;4BACzFA,MAAMA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;4BAEzBA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;4BACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA;gCACRA,MAAMA,CAACA,IAAIA,GAAGA,CAACA,CAACA;4BACjBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,IAAIA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gCAC9BA,MAAMA,IAAIA,KAAKA,CAACA,sCAAsCA,GAAGA,IAAIA,GAAGA,gBAAgBA,CAACA,CAACA;4BACnFA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;wBACpBA,CAACA;oBACFA,CAACA,EAEDA,UAACA,OAAOA;wBAEPA,IAAIA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;wBACxDA,EAAEA,CAAAA,CAACA,CAACA,GAAGA,CAACA;4BACPA,MAAMA,CAACA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;wBAC7BA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;wBAC7BA,MAAMA,CAACA,OAAOA,IAAIA,MAAMA,CAACA,IAAIA,CAACA;wBAC9BA,MAAMA,CAACA,CAACA,OAAOA,GAACA,GAAGA,IAAIA,OAAOA,IAAEA,CAACA,CAACA;8BAC/BA,OAAOA,CAACA,WAAWA,CAACA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA;8BAC3CA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;oBACzBA,CAACA,EAEDA;wBAECA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;4BACAA,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;wBACtBA,CAACA;oBACFA,CAACA,CACDA,CAACA;gBACHA,CAACA;gBACFD,sBAACA;YAADA,CAACA,AAvDD,EACiC,wBAAc,EAsD9C;YAvDD,qCAuDC,CAAA"} \ No newline at end of file +{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/IndexEnumerator.ts"],"names":[],"mappings":";IAIA,YAAY,CAAC;;;;;;;;;;;;;;YAIb;gBACiC,mCAAiB;gBAGjD,yBACC,aAAqG;oBAGrG,IAAI,MAAwF,CAAC;oBAC7F,kBACC;wBAEC,MAAM,GAAG,aAAa,EAAE,CAAC;wBACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;4BACA,EAAE,CAAA,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;gCACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;4BAE5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;4BAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;gCACX,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;4BACpB,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,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;4BACjB,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,CAAC;4BACP,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;gBACH,CAAC;gBACF,sBAAC;YAAD,CAAC,AAvDD,CACiC,wBAAc,GAsD9C;YAvDD,qCAuDC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Collections/Enumeration/forEach.js b/dist/system/System/Collections/Enumeration/forEach.js index 28770595..d6c725dc 100644 --- a/dist/system/System/Collections/Enumeration/forEach.js +++ b/dist/system/System/Collections/Enumeration/forEach.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], function(exports_1) { + "use strict"; var Utility_1, Enumerator; function forEach(enumerable, action) { if (enumerable) { diff --git a/dist/system/System/Collections/Enumeration/forEach.js.map b/dist/system/System/Collections/Enumeration/forEach.js.map index 4b8ff2f6..973ceca1 100644 --- a/dist/system/System/Collections/Enumeration/forEach.js.map +++ b/dist/system/System/Collections/Enumeration/forEach.js.map @@ -1 +1 @@ -{"version":3,"file":"forEach.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/forEach.ts"],"names":["forEach"],"mappings":"AAAA;;;GAGG;;;IAOH,iBACI,UAAqC,EACrC,MAAwC;QAExCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;YACbA,eAAKA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,EAAEA,UAAAA,CAACA;gBAEhCA,UAAUA,CAACA,OAAOA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YAClCA,CAACA,CAACA,CAACA;QACPA,CAACA;IACLA,CAACA;IAVD,6BAUC,CAAA"} \ No newline at end of file +{"version":3,"file":"forEach.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/forEach.ts"],"names":[],"mappings":";;;IAUA,iBACI,UAAqC,EACrC,MAAwC;QAExC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACb,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,UAAA,CAAC;gBAEhC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAVD,6BAUC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Collections/LinkedList.js b/dist/system/System/Collections/LinkedList.js index 85731c9c..7e75ff99 100644 --- a/dist/system/System/Collections/LinkedList.js +++ b/dist/system/System/Collections/LinkedList.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['../Compare', '../Text/Utility', '../Collections/Array/Utility', './Enumeration/Enumerator', './Enumeration/EnumeratorBase', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentException', '../Exceptions/ArgumentNullException', '../Exceptions/ArgumentOutOfRangeException'], function(exports_1) { + 'use strict'; var Values, TextUtility, ArrayUtility, Enumerator, EnumeratorBase_1, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1; var Node, LinkedList, LinkedListNode; function ensureExternal(node, list) { @@ -65,7 +61,7 @@ System.register(['../Compare', '../Text/Utility', '../Collections/Array/Utility' throw new InvalidOperationException_1.default("Adding a node that is already placed."); }; return Node; - })(); + }()); LinkedList = (function () { function LinkedList(source) { var _ = this, c = 0, first = null, last = null; @@ -324,7 +320,7 @@ System.register(['../Compare', '../Text/Utility', '../Collections/Array/Utility' this._addNodeAfter(getInternal(node, this), getInternal(after, this)); }; return LinkedList; - })(); + }()); exports_1("default", LinkedList); LinkedListNode = (function () { function LinkedListNode(_list, _node) { @@ -378,7 +374,7 @@ System.register(['../Compare', '../Text/Utility', '../Collections/Array/Utility' this._list.removeNode(this); }; return LinkedListNode; - })(); + }()); } } }); diff --git a/dist/system/System/Collections/LinkedList.js.map b/dist/system/System/Collections/LinkedList.js.map index 81b3811a..505c0634 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":["ensureExternal","getInternal","Node","Node.constructor","Node.assertDetached","LinkedList","LinkedList.constructor","LinkedList._addFirst","LinkedList._addLast","LinkedList._addNodeBefore","LinkedList._addNodeAfter","LinkedList._findFirst","LinkedList._findLast","LinkedList.forEach","LinkedList.getEnumerator","LinkedList.count","LinkedList.isReadOnly","LinkedList.add","LinkedList.clear","LinkedList.contains","LinkedList.copyTo","LinkedList.toArray","LinkedList.removeOnce","LinkedList.remove","LinkedList.first","LinkedList.last","LinkedList._getNodeAt","LinkedList.getValueAt","LinkedList.getNodeAt","LinkedList.find","LinkedList.findLast","LinkedList.addFirst","LinkedList.addLast","LinkedList.removeFirst","LinkedList.removeLast","LinkedList.removeNode","LinkedList.addBefore","LinkedList.addAfter","LinkedList.addNodeBefore","LinkedList.addNodeAfter","LinkedListNode","LinkedListNode.constructor","LinkedListNode.list","LinkedListNode.previous","LinkedListNode.next","LinkedListNode.value","LinkedListNode.addBefore","LinkedListNode.addAfter","LinkedListNode.addNodeBefore","LinkedListNode.addNodeAfter","LinkedListNode.remove"],"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/system/System/Collections/Queue.js b/dist/system/System/Collections/Queue.js index f4cc30f1..cd0edbba 100644 --- a/dist/system/System/Collections/Queue.js +++ b/dist/system/System/Collections/Queue.js @@ -1,11 +1,7 @@ -/* - * @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 - */ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], function(exports_1) { + 'use strict'; var Values, AU, Types_1, Integer_1, EnumeratorBase_1, forEach_1, NotImplementedException_1, InvalidOperationException_1, ArgumentOutOfRangeException_1; - var MINIMUM_GROW, GROW_FACTOR_HALF, DEFAULT_CAPACITY, emptyArray, Queue; + 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"); @@ -45,6 +41,7 @@ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './E }], execute: function() { MINIMUM_GROW = 4; + SHRINK_THRESHOLD = 32; GROW_FACTOR_HALF = 100; DEFAULT_CAPACITY = MINIMUM_GROW; emptyArray = []; @@ -105,8 +102,28 @@ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './E _._tail = 0; _._size = 0; _._version++; + _.trimExcess(); return size; }; + Queue.prototype.dump = function (max) { + if (max === void 0) { max = Infinity; } + if (Types_1.default.isNumber(max, false) && max < 0) + throw new ArgumentOutOfRangeException_1.default('max', max, 'must be greater than or equal to 0.'); + var _ = this, result = []; + if (isFinite(max)) { + Integer_1.default.assert(max, 'max'); + while (max-- && _._size) { + result.push(_.dequeue()); + } + } + else { + while (_._size) { + result.push(_.dequeue()); + } + } + _.trimExcess(); + return result; + }; Queue.prototype.contains = function (item) { var _ = this; var array = _._array, index = _._head, count = _._size, len = _._capacity; @@ -202,18 +219,33 @@ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './E _._size = size + 1; _._version++; }; - Queue.prototype.dequeue = function () { + Queue.prototype.dequeue = function (throwIfEmpty) { + if (throwIfEmpty === void 0) { throwIfEmpty = false; } var _ = this; - if (_._size == 0) - throw new InvalidOperationException_1.default("Cannot dequeue an empty queue."); + if (_._size == 0) { + if (throwIfEmpty) + throw new InvalidOperationException_1.default("Cannot dequeue an empty queue."); + return void 0; + } var array = _._array, head = _._head; var removed = _._array[head]; array[head] = null; _._head = (head + 1) % _._capacity; _._size--; + if (_._size < _._capacity / 2) { + _.trimExcess(SHRINK_THRESHOLD); + } _._version++; return removed; }; + Queue.prototype.tryDequeue = function (out) { + if (!this._size) + return false; + var d = this.dequeue(); + if (out) + out(d); + return true; + }; Queue.prototype._getElement = function (index) { assertIntegerZeroOrGreater(index, "index"); var _ = this; @@ -224,10 +256,10 @@ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './E throw new InvalidOperationException_1.default("Cannot call peek on an empty queue."); return this._array[this._head]; }; - Queue.prototype.trimExcess = function () { + Queue.prototype.trimExcess = function (threshold) { var _ = this; var size = _._size; - if (size < Math.floor(_._capacity * 0.9)) + if (size < Math.floor(_._capacity * 0.9) && (isNaN(threshold) || threshold < size)) _.setCapacity(size); }; Queue.prototype.getEnumerator = function () { @@ -246,7 +278,7 @@ System.register(['../Compare', './Array/Utility', '../Types', '../Integer', './E }); }; return Queue; - })(); + }()); exports_1("default", Queue); } } diff --git a/dist/system/System/Collections/Queue.js.map b/dist/system/System/Collections/Queue.js.map index ac214b3d..6ab8e41b 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":["assertZeroOrGreater","assertIntegerZeroOrGreater","Queue","Queue.constructor","Queue.count","Queue.isReadOnly","Queue.add","Queue.clear","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator"],"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/system/System/Collections/Sorting/KeySortedContext.js b/dist/system/System/Collections/Sorting/KeySortedContext.js index 89c93d52..b6a781fb 100644 --- a/dist/system/System/Collections/Sorting/KeySortedContext.js +++ b/dist/system/System/Collections/Sorting/KeySortedContext.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Compare', "./SortContext", "../../Functions"], function(exports_1) { + 'use strict'; 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; } @@ -40,7 +37,7 @@ System.register(['../../Compare', "./SortContext", "../../Functions"], function( return _._order * d; }; return KeySortedContext; - })(SortContext_1.default); + }(SortContext_1.default)); 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 4b26ac3d..d8637797 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":["KeySortedContext","KeySortedContext.constructor","KeySortedContext.compare"],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;YAaH;gBAC2DA,oCAAcA;gBAExEA,0BACCA,IAAiBA,EACPA,YAA6BA,EACvCA,KAA6BA,EAC7BA,QAAuCA;oBADvCC,qBAA6BA,GAA7BA,SAA6BA;oBAC7BA,wBAAuCA,GAAvCA,WAAyBA,MAAMA,CAACA,OAAOA;oBAEvCA,kBAAMA,IAAIA,EAAEA,QAAQA,EAAEA,KAAKA,CAACA,CAACA;oBAJnBA,iBAAYA,GAAZA,YAAYA,CAAiBA;gBAKxCA,CAACA;gBAEDD,kCAAOA,GAAPA,UAAQA,CAAGA,EAAEA,CAAGA;oBAEfE,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,EAAEA,GAAGA,CAACA,CAACA,YAAYA,CAACA;oBAClCA,EAAEA,CAAAA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAEA,mBAASA,CAACA,QAAQA,CAACA;wBAACA,MAAMA,CAACA,gBAAKA,CAACA,OAAOA,YAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;oBAE7DA,IAAIA,CAACA,GAAGA,MAAMA,CAACA,OAAOA,CAAMA,EAAEA,CAACA,CAACA,CAACA,EAAOA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC/CA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;wBAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;oBACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;gBACnBA,CAACA;gBACFF,uBAACA;YAADA,CAACA,AArBD,EAC2D,qBAAW,EAoBrE;YArBD,sCAqBC,CAAA"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/KeySortedContext.ts"],"names":[],"mappings":";IAIA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;YAab;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 diff --git a/dist/system/System/Collections/Sorting/Order.js b/dist/system/System/Collections/Sorting/Order.js deleted file mode 100644 index f39633c1..00000000 --- a/dist/system/System/Collections/Sorting/Order.js +++ /dev/null @@ -1,8 +0,0 @@ -System.register([], function(exports_1) { - return { - setters:[], - execute: function() { - } - } -}); -//# sourceMappingURL=Order.js.map \ No newline at end of file diff --git a/dist/system/System/Collections/Sorting/Order.js.map b/dist/system/System/Collections/Sorting/Order.js.map deleted file mode 100644 index 4f15289b..00000000 --- a/dist/system/System/Collections/Sorting/Order.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Order.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Sorting/Order.ts"],"names":[],"mappings":";;;;YAOC"} \ No newline at end of file diff --git a/dist/system/System/Collections/Sorting/SortContext.js b/dist/system/System/Collections/Sorting/SortContext.js index 050f3a8b..ffe274bc 100644 --- a/dist/system/System/Collections/Sorting/SortContext.js +++ b/dist/system/System/Collections/Sorting/SortContext.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../../Compare'], function(exports_1) { + 'use strict'; var Values; var SortContext; return { @@ -40,7 +37,7 @@ System.register(['../../Compare'], function(exports_1) { return _._order * d; }; return 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 8d5ae816..9715ae6b 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":["SortContext","SortContext.constructor","SortContext.order","SortContext.generateSortedIndexes","SortContext.compare"],"mappings":"AAAA;;;GAGG;;;;;;;;;;YAUH;gBAWCA,qBACWA,KAAkBA,EAClBA,SAAwCA,EACxCA,MAA8BA;oBADxCC,yBAAkDA,GAAlDA,YAAoCA,MAAMA,CAACA,OAAOA;oBAClDA,sBAAwCA,GAAxCA,UAAwCA;oBAF9BA,UAAKA,GAALA,KAAKA,CAAaA;oBAClBA,cAASA,GAATA,SAASA,CAA+BA;oBACxCA,WAAMA,GAANA,MAAMA,CAAwBA;gBAEzCA,CAACA;gBARDD,sBAAIA,8BAAKA;yBAATA,cACEE,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;;;mBAAAF;gBAevBA,2CAAqBA,GAArBA,UAAsBA,MAAUA;oBAAhCG,iBAMCA;oBAJAA,EAAEA,CAAAA,CAACA,MAAMA,IAAEA,IAAIA,CAACA;wBAACA,MAAMA,CAACA,EAAEA,CAACA;oBAC3BA,IAAIA,MAAMA,GAAYA,MAAMA,CAACA,GAAGA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAGA,OAAAA,CAACA,EAADA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,KAAIA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;oBAC1DA,MAAMA,CAACA,MAAMA,CAACA;gBACfA,CAACA;gBAQDH,6BAAOA,GAAPA,UAAQA,CAAGA,EAAEA,CAAGA;oBAEfI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,IAAIA,CAACA,GAAGA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;oBAC1BA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;wBAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;oBACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;gBACnBA,CAACA;gBACFJ,kBAACA;YAADA,CAACA,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":";IAIA,YAAY,CAAC;;;;;;;;;YAUb;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 diff --git a/dist/system/System/Compare.js b/dist/system/System/Compare.js index 2f8b74d1..ac6d64b4 100644 --- a/dist/system/System/Compare.js +++ b/dist/system/System/Compare.js @@ -1,12 +1,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) { + "use strict"; var Types_1; - var isTrueNaN, COMPARE_TO; + var isTrueNaN, VOID0, COMPARE_TO; function areEqual(a, b, strict) { if (strict === void 0) { strict = true; } return a === b || !strict && a == b || isTrueNaN(a) && isTrueNaN(b); @@ -20,9 +15,9 @@ System.register(['./Types'], function(exports_1) { return a.compareTo(b); else if (b && Types_1.default.hasMember(b, COMPARE_TO)) return -b.compareTo(a); - if (a > b || strict && (a === 0 && b == 0 || a === null && b === undefined)) + 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 === undefined)) + if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0)) return -1; return NaN; } @@ -34,6 +29,7 @@ System.register(['./Types'], function(exports_1) { }], execute: function() { isTrueNaN = Types_1.default.isTrueNaN; + VOID0 = void 0; COMPARE_TO = "compareTo"; } } diff --git a/dist/system/System/Compare.js.map b/dist/system/System/Compare.js.map index bf6f7e35..1afc0ea7 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":["areEqual","compare"],"mappings":"AAAA,uCAAuC;AACvC,qCAAqC;AACrC;;;GAGG;;;QAGI,SAAS,EAeV,UAAU;IALhB,kBAAyB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArBA,sBAAqBA,GAArBA,aAAqBA;QAE3DA,MAAMA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA;IACjEA,CAACA;IAHD,+BAGC,CAAA;IAMD,iBAAwB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArBC,sBAAqBA,GAArBA,aAAqBA;QAG1DA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YACzBA,MAAMA,CAACA,CAAmBA,CAACA;QAE5BA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;YACrCA,MAAMA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QACvBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QAIxBA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,SAASA,CAACA,CAACA;YAChEA,MAAMA,CAACA,CAAqBA,CAACA;QAE9BA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,SAASA,CAACA,CAACA;YAChEA,MAAMA,CAACA,EAAkBA,CAACA;QAE3BA,MAAMA,CAACA,GAAGA,CAACA;IACZA,CAACA;IApBD,6BAoBC,CAAA;;;;;;;YAvCM,SAAS,GAAG,eAAI,CAAC,SAAS,CAAC;YAe5B,UAAU,GAAG,WAAW,CAAC"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":";;;QASO,SAAS,EAEV,KAAK,EASL,UAAU;IALhB,kBAAyB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArB,sBAAqB,GAArB,aAAqB;QAE3D,MAAM,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAHD,+BAGC,CAAA;IAMD,iBAAwB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArB,sBAAqB,GAArB,aAAqB;QAG1D,EAAE,CAAA,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,CAAmB,CAAC;QAE5B,EAAE,CAAA,CAAC,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAA,CAAC,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAIxB,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,CAAqB,CAAC;QAE9B,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,EAAkB,CAAC;QAE3B,MAAM,CAAC,GAAG,CAAC;IACZ,CAAC;IApBD,6BAoBC,CAAA;;;;;;;YAnCM,SAAS,GAAG,eAAI,CAAC,SAAS,CAAC;YAE5B,KAAK,GAAO,KAAK,CAAC,CAAC;YASnB,UAAU,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Diagnostics/Stopwatch.js b/dist/system/System/Diagnostics/Stopwatch.js index 214fc8f5..6deb4de5 100644 --- a/dist/system/System/Diagnostics/Stopwatch.js +++ b/dist/system/System/Diagnostics/Stopwatch.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../Time/TimeSpan'], function(exports_1) { + 'use strict'; var TimeSpan_1; var Stopwatch; return { @@ -110,7 +107,7 @@ System.register(['../Time/TimeSpan'], function(exports_1) { configurable: true }); return Stopwatch; - })(); + }()); exports_1("default", Stopwatch); } } diff --git a/dist/system/System/Diagnostics/Stopwatch.js.map b/dist/system/System/Diagnostics/Stopwatch.js.map index 8e2c4f5b..b5821b8a 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":["Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","Stopwatch.isRunning","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed"],"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.js b/dist/system/System/Disposable/DisposableBase.js index b68d0c68..55afaaa6 100644 --- a/dist/system/System/Disposable/DisposableBase.js +++ b/dist/system/System/Disposable/DisposableBase.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['./ObjectDisposedException'], function(exports_1) { + 'use strict'; var ObjectDisposedException_1; var DisposableBase; return { @@ -44,7 +41,7 @@ System.register(['./ObjectDisposedException'], function(exports_1) { }; DisposableBase.prototype._onDispose = function () { }; return DisposableBase; - })(); + }()); exports_1("default",DisposableBase); } } diff --git a/dist/system/System/Disposable/DisposableBase.js.map b/dist/system/System/Disposable/DisposableBase.js.map index b120be43..fca2e044 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":["DisposableBase","DisposableBase.constructor","DisposableBase.wasDisposed","DisposableBase.throwIfDisposed","DisposableBase.dispose","DisposableBase._onDispose"],"mappings":"AAAA;;;GAGG;;;;;;;;;;YAOH;gBAGCA,wBAAoBA,UAAsBA;oBAAtBC,eAAUA,GAAVA,UAAUA,CAAYA;oBAIlCA,iBAAYA,GAAWA,KAAKA,CAACA;gBAFrCA,CAACA;gBAGDD,sBAAIA,uCAAWA;yBAAfA;wBAECE,MAAMA,CAACA,IAAIA,CAACA,YAAYA,CAACA;oBAC1BA,CAACA;;;mBAAAF;gBAKSA,wCAAeA,GAAzBA,UACCA,OAAeA,EACfA,UAA8CA;oBAA9CG,0BAA8CA,GAA9CA,aAAoBA,IAAIA,CAACA,qBAAqBA;oBAE9CA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,YAAYA,CAACA;wBACpBA,MAAMA,IAAIA,iCAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;oBACxDA,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAGDH,gCAAOA,GAAPA;oBAECI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,YAAYA,CAACA,CACnBA,CAACA;wBAGAA,CAACA,CAACA,YAAYA,GAAGA,IAAIA,CAACA;wBACtBA,IACAA,CAACA;4BACAA,CAACA,CAACA,UAAUA,EAAEA,CAACA;wBAChBA,CAACA;gCAEDA,CAACA;4BACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,UAAUA,CAACA;gCACfA,CAACA,CAACA,UAAUA,EAAEA,CAACA;wBACjBA,CAACA;oBACFA,CAACA;gBACFA,CAACA;gBAGSJ,mCAAUA,GAApBA,cAA8BK,CAACA;gBAEhCL,qBAACA;YAADA,CAACA,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":";IAKA,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 diff --git a/dist/system/System/Disposable/ObjectDisposedException.js b/dist/system/System/Disposable/ObjectDisposedException.js index 2536c040..4ed7acd7 100644 --- a/dist/system/System/Disposable/ObjectDisposedException.js +++ b/dist/system/System/Disposable/ObjectDisposedException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['../Exceptions/InvalidOperationException'], function(exports_1) { + 'use strict'; 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; } @@ -40,7 +36,7 @@ System.register(['../Exceptions/InvalidOperationException'], function(exports_1) throw new ObjectDisposedException(objectName, message); }; return ObjectDisposedException; - })(InvalidOperationException_1.default); + }(InvalidOperationException_1.default)); exports_1("default", ObjectDisposedException); } } diff --git a/dist/system/System/Disposable/ObjectDisposedException.js.map b/dist/system/System/Disposable/ObjectDisposedException.js.map index bd7f8c00..8aa0c7f6 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":["ObjectDisposedException","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAOG,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBAEQA,2CAAyBA;gBAMhCA,iCACCA,UAAiBA,EACjBA,OAAqBA,EACrBA,cAA+BA;oBAD/BC,uBAAqBA,GAArBA,cAAqBA;oBACrBA,8BAA+BA,GAA/BA,qBAA+BA;oBAE/BA,kBAAMA,OAAOA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;wBAChCA,CAACA,CAACA,UAAUA,GAAGA,UAAUA,CAACA;oBAC3BA,CAACA,CAACA,CAACA;gBACJA,CAACA;gBAGSD,yCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEDF,0CAAQA,GAARA;oBAECG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,UAAUA,CAACA;oBACnCA,KAAKA,GAAGA,KAAKA,GAAGA,CAACA,GAAGA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;oBAE1CA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,KAAKA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;gBACtDA,CAACA;gBAEMH,uCAAeA,GAAtBA,UACCA,UAA2BA,EAC3BA,UAAkBA,EAClBA,OAAeA;oBAEfI,EAAEA,CAAAA,CAACA,UAAUA,CAACA,WAAWA,CAACA;wBACzBA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;gBACzDA,CAACA;gBAEFJ,8BAACA;YAADA,CAACA,AAzCD,EAEQ,mCAAyB,EAuChC;YAzCD,6CAyCC,CAAA"} \ No newline at end of file +{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["../../../../source/System/Disposable/ObjectDisposedException.ts"],"names":[],"mappings":";IAMA,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 diff --git a/dist/system/System/Disposable/Utility.js b/dist/system/System/Disposable/Utility.js index 63fef6ff..3c20b375 100644 --- a/dist/system/System/Disposable/Utility.js +++ b/dist/system/System/Disposable/Utility.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../Types'], function(exports_1) { + 'use strict'; var Types_1; function dispose() { var disposables = []; @@ -89,7 +86,6 @@ System.register(['../Types'], function(exports_1) { Types_1 = Types_1_1; }], execute: function() { - 'use strict'; } } }); diff --git a/dist/system/System/Disposable/Utility.js.map b/dist/system/System/Disposable/Utility.js.map index f38fa98e..546779ea 100644 --- a/dist/system/System/Disposable/Utility.js.map +++ b/dist/system/System/Disposable/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Disposable/Utility.ts"],"names":["dispose","disposeWithoutException","disposeThese","using","disposeSingle","disposeTheseInternal"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Disposable/Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Events/EventDispatcher.js b/dist/system/System/Events/EventDispatcher.js index 993ae7a8..0ccf6e96 100644 --- a/dist/system/System/Events/EventDispatcher.js +++ b/dist/system/System/Events/EventDispatcher.js @@ -1,8 +1,5 @@ -/* - * @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'], function(exports_1) { + 'use strict'; 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; } @@ -64,7 +61,7 @@ System.register(['../Utility/shallowCopy', '../Disposable/DisposableBase', '../C && _.priority == other.priority; }; return EventDispatcherEntry; - })(DisposableBase_1.default); + }(DisposableBase_1.default)); exports_1("default", EventDispatcherEntry); EventDispatcher = (function (_super) { __extends(EventDispatcher, _super); @@ -168,7 +165,7 @@ System.register(['../Utility/shallowCopy', '../Disposable/DisposableBase', '../C } }; return EventDispatcher; - })(DisposableBase_1.default); + }(DisposableBase_1.default)); } } }); diff --git a/dist/system/System/Events/EventDispatcher.js.map b/dist/system/System/Events/EventDispatcher.js.map index d959fd81..af105704 100644 --- a/dist/system/System/Events/EventDispatcher.js.map +++ b/dist/system/System/Events/EventDispatcher.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcher.ts"],"names":["EventDispatcherEntry","EventDispatcherEntry.constructor","EventDispatcherEntry.dispose","EventDispatcherEntry.wasDisposed","EventDispatcherEntry.matches","EventDispatcherEntry.equals","EventDispatcher","EventDispatcher.constructor","EventDispatcher.addEventListener","EventDispatcher.registerEventListener","EventDispatcher.hasEventListener","EventDispatcher.removeEventListener","EventDispatcher.dispatchEvent","EventDispatcher.DISPOSING","EventDispatcher.DISPOSED","EventDispatcher.isDisposing","EventDispatcher.dispose"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcher.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Exception.js b/dist/system/System/Exception.js index 4e6c1fcd..8f142829 100644 --- a/dist/system/System/Exception.js +++ b/dist/system/System/Exception.js @@ -1,15 +1,9 @@ -/* - * @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 - */ System.register([], function(exports_1) { + 'use strict'; var NAME, Exception; return { setters:[], execute: function() { - /// - /// NAME = 'Exception'; Exception = (function () { function Exception(message, innerException, beforeSealing) { @@ -39,7 +33,7 @@ System.register([], function(exports_1) { } }; return Exception; - })(); + }()); exports_1("default", Exception); } } diff --git a/dist/system/System/Exception.js.map b/dist/system/System/Exception.js.map index d20c6f30..e01d2193 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":["Exception","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose"],"mappings":"AAAA;;;;GAIG;;QAMG,IAAI;;;;YAJV,gEAAgE;YAChE,kDAAkD;YAG5C,IAAI,GAAU,WAAW,CAAC;YAKhC;gBAeCA,mBACQA,OAAqBA,EAC5BA,cAA2BA,EAC3BA,aAA6BA;oBAF7BC,uBAA4BA,GAA5BA,cAA4BA;oBAC5BA,8BAA2BA,GAA3BA,qBAA2BA;oBADpBA,YAAOA,GAAPA,OAAOA,CAAcA;oBAI5BA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,CAACA;oBACrBA,CAACA,CAACA,IAAIA,GAAGA,EAAEA,CAACA;oBACZA,EAAEA,CAAAA,CAACA,cAAcA,CAACA;wBACjBA,CAACA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,GAAGA,cAAcA,CAACA;oBAO3CA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;wBAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBAClBA,CAACA;gBASSD,2BAAOA,GAAjBA,cACEE,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAKhBF,4BAAQA,GAARA;oBAECG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAGA,CAACA,CAACA,OAAOA,CAACA;oBAC5BA,CAACA,GAAGA,CAACA,GAAGA,CAACA,IAAIA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;oBAExBA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBAC/BA,CAACA;gBAKDH,2BAAOA,GAAPA;oBAECI,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;oBACrBA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAClBA,CAACA;wBACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA;4BACzBA,OAAOA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACjBA,CAACA;gBACFA,CAACA;gBACFJ,gBAACA;YAADA,CAACA,AApED,IAoEC;YApED,+BAoEC,CAAA"} \ No newline at end of file +{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../source/System/Exception.ts"],"names":[],"mappings":";IAKA,YAAY,CAAC;QAMP,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;oBACb,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;oBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBASS,2BAAO,GAAjB,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAKhB,4BAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBAExB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC/B,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,AApED,IAoEC;YApED,+BAoEC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/ExceptionType.js b/dist/system/System/ExceptionType.js index 69774a09..e2862e80 100644 --- a/dist/system/System/ExceptionType.js +++ b/dist/system/System/ExceptionType.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + "use strict"; var Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError; return { setters:[], diff --git a/dist/system/System/ExceptionType.js.map b/dist/system/System/ExceptionType.js.map index 0229ee93..282dde56 100644 --- a/dist/system/System/ExceptionType.js.map +++ b/dist/system/System/ExceptionType.js.map @@ -1 +1 @@ -{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["../../../source/System/ExceptionType.ts"],"names":[],"mappings":"AAAA;;;GAGG;;QAcH,KAAK,EAML,SAAS,EAMT,UAAU,EAOV,cAAc,EAMd,WAAW,EAMX,SAAS,EAMT,QAAQ;;;;YArCR,mBAAA,KAAK,GAAG,OAAO,CAAA,CAAC;YAMhB,uBAAA,SAAS,GAAG,WAAW,CAAA,CAAC;YAMxB,wBAAA,UAAU,GAAG,YAAY,CAAA,CAAC;YAO1B,4BAAA,cAAc,GAAG,gBAAgB,CAAA,CAAC;YAMlC,yBAAA,WAAW,GAAG,aAAa,CAAA,CAAC;YAM5B,uBAAA,SAAS,GAAG,WAAW,CAAA,CAAC;YAMxB,sBAAA,QAAQ,GAAG,UAAU,CAAA,CAAC"} \ No newline at end of file +{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["../../../source/System/ExceptionType.ts"],"names":[],"mappings":";;QAiBA,KAAK,EAML,SAAS,EAMT,UAAU,EAOV,cAAc,EAMd,WAAW,EAMX,SAAS,EAMT,QAAQ;;;;YArCR,mBAAA,KAAK,GAAG,OAAO,CAAA,CAAC;YAMhB,uBAAA,SAAS,GAAG,WAAW,CAAA,CAAC;YAMxB,wBAAA,UAAU,GAAG,YAAY,CAAA,CAAC;YAO1B,4BAAA,cAAc,GAAG,gBAAgB,CAAA,CAAC;YAMlC,yBAAA,WAAW,GAAG,aAAa,CAAA,CAAC;YAM5B,uBAAA,SAAS,GAAG,WAAW,CAAA,CAAC;YAMxB,sBAAA,QAAQ,GAAG,UAAU,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/ArgumentException.js b/dist/system/System/Exceptions/ArgumentException.js index 6f31805b..70343cfa 100644 --- a/dist/system/System/Exceptions/ArgumentException.js +++ b/dist/system/System/Exceptions/ArgumentException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./SystemException', '../Text/Utility'], function(exports_1) { + 'use strict'; 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; } @@ -41,7 +37,7 @@ System.register(['./SystemException', '../Text/Utility'], function(exports_1) { return '[' + _.name + ': ' + _.message + ']'; }; return ArgumentException; - })(SystemException_1.default); + }(SystemException_1.default)); exports_1("default", ArgumentException); } } diff --git a/dist/system/System/Exceptions/ArgumentException.js.map b/dist/system/System/Exceptions/ArgumentException.js.map index 2f550564..430cbe73 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":["ArgumentException","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAQG,IAAI;;;;;;;;;;YAAJ,IAAI,GAAU,mBAAmB,CAAC;YAExC;gBACgCA,qCAAeA;gBAM9CA,2BACCA,SAAgBA,EAChBA,OAAqBA,EACrBA,cAA2BA,EAC3BA,aAA6BA;oBAF7BC,uBAAqBA,GAArBA,cAAqBA;oBACrBA,8BAA2BA,GAA3BA,qBAA2BA;oBAG3BA,IAAIA,EAAEA,GAAGA,SAASA,GAAGA,CAACA,GAAGA,GAAGA,SAASA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;oBAEnDA,kBAAMA,cAAIA,CAACA,EAAEA,GAAGA,OAAOA,CAACA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;wBAC3CA,CAACA,CAACA,SAASA,GAAGA,SAASA,CAACA;wBACxBA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;4BAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACpCA,CAACA,CAACA,CAACA;gBACJA,CAACA;gBAGSD,mCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEDF,oCAAQA,GAARA;oBAECG,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;gBAC9CA,CAACA;gBAEFH,wBAACA;YAADA,CAACA,AAjCD,EACgC,yBAAe,EAgC9C;YAjCD,uCAiCC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentException.ts"],"names":[],"mappings":";IAKA,YAAY,CAAC;;;;;;;QAQP,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;oBAEnD,kBAAM,cAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;wBAC3C,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;gBAED,oCAAQ,GAAR;oBAEC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;gBAC9C,CAAC;gBAEF,wBAAC;YAAD,CAAC,AAjCD,CACgC,yBAAe,GAgC9C;YAjCD,uCAiCC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Exceptions/ArgumentNullException.js b/dist/system/System/Exceptions/ArgumentNullException.js index cd86035b..e7953c38 100644 --- a/dist/system/System/Exceptions/ArgumentNullException.js +++ b/dist/system/System/Exceptions/ArgumentNullException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./ArgumentException'], function(exports_1) { + 'use strict'; 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; } @@ -29,7 +25,7 @@ System.register(['./ArgumentException'], function(exports_1) { return NAME; }; return ArgumentNullException; - })(ArgumentException_1.default); + }(ArgumentException_1.default)); exports_1("default", ArgumentNullException); } } diff --git a/dist/system/System/Exceptions/ArgumentNullException.js.map b/dist/system/System/Exceptions/ArgumentNullException.js.map index f2ffc755..fa8318da 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":["ArgumentNullException","ArgumentNullException.constructor","ArgumentNullException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,uBAAuB,CAAC;YAE5C;gBACoCA,yCAAiBA;gBAEpDA,+BACCA,SAAgBA,EAChBA,OAAmBA,EACnBA,cAA2BA;oBAD3BC,uBAAmBA,GAAnBA,YAAmBA;oBACnBA,8BAA2BA,GAA3BA,qBAA2BA;oBAE3BA,kBAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,CAACA,CAACA;gBAC3CA,CAACA;gBAESD,uCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEFF,4BAACA;YAADA,CAACA,AAhBD,EACoC,2BAAiB,EAepD;YAhBD,2CAgBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentNullException.ts"],"names":[],"mappings":";IAKA,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 diff --git a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js index 18a38264..8b1654cd 100644 --- a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./ArgumentException'], function(exports_1) { + "use strict"; 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; } @@ -17,6 +13,7 @@ System.register(['./ArgumentException'], function(exports_1) { ArgumentException_1 = ArgumentException_1_1; }], execute: function() { + 'use strict'; NAME = 'ArgumentOutOfRangeException'; ArgumentOutOfRangeException = (function (_super) { __extends(ArgumentOutOfRangeException, _super); @@ -31,7 +28,7 @@ System.register(['./ArgumentException'], function(exports_1) { return NAME; }; return ArgumentOutOfRangeException; - })(ArgumentException_1.default); + }(ArgumentException_1.default)); exports_1("default", ArgumentOutOfRangeException); } } diff --git a/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map b/dist/system/System/Exceptions/ArgumentOutOfRangeException.js.map index 08a2ba4d..8fdd71e6 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":["ArgumentOutOfRangeException","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAOG,IAAI;;;;;;;YAAJ,IAAI,GAAU,6BAA6B,CAAC;YAElD;gBAC0CA,+CAAiBA;gBAI1DA,qCACCA,SAAgBA,EAChBA,WAAiCA,EACjCA,OAAoBA,EACpBA,cAA+BA;oBAD/BC,uBAAoBA,GAApBA,aAAoBA;oBACpBA,8BAA+BA,GAA/BA,qBAA+BA;oBAE/BA,kBAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;wBAC3CA,CAACA,CAACA,WAAWA,GAAGA,WAAWA,CAACA;oBAC7BA,CAACA,CAACA,CAACA;gBACJA,CAACA;gBAGSD,6CAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEFF,kCAACA;YAADA,CAACA,AAtBD,EAC0C,2BAAiB,EAqB1D;YAtBD,iDAsBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/ArgumentOutOfRangeException.ts"],"names":[],"mappings":";;;;;;;;QAYM,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,OAAO,EAAE,cAAc,EAAE,UAAC,CAAC;wBAC3C,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 diff --git a/dist/system/System/Exceptions/InvalidOperationException.js b/dist/system/System/Exceptions/InvalidOperationException.js index 0df1c91f..acd821b7 100644 --- a/dist/system/System/Exceptions/InvalidOperationException.js +++ b/dist/system/System/Exceptions/InvalidOperationException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./SystemException'], function(exports_1) { + 'use strict'; 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; } @@ -27,7 +23,7 @@ System.register(['./SystemException'], function(exports_1) { return NAME; }; return InvalidOperationException; - })(SystemException_1.default); + }(SystemException_1.default)); exports_1("default", InvalidOperationException); } } diff --git a/dist/system/System/Exceptions/InvalidOperationException.js.map b/dist/system/System/Exceptions/InvalidOperationException.js.map index 0d165bc4..2f3002bb 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":["InvalidOperationException","InvalidOperationException.constructor","InvalidOperationException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,2BAA2B,CAAC;YAEhD;gBACwCA,6CAAeA;gBADvDA;oBACwCC,8BAAeA;gBAOvDA,CAACA;gBALUD,2CAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEFF,gCAACA;YAADA,CAACA,AARD,EACwC,yBAAe,EAOtD;YARD,+CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/InvalidOperationException.ts"],"names":[],"mappings":";IAKA,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 diff --git a/dist/system/System/Exceptions/NotImplementedException.js b/dist/system/System/Exceptions/NotImplementedException.js index 46dc6521..241bfc95 100644 --- a/dist/system/System/Exceptions/NotImplementedException.js +++ b/dist/system/System/Exceptions/NotImplementedException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./SystemException'], function(exports_1) { + 'use strict'; 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; } @@ -27,7 +23,7 @@ System.register(['./SystemException'], function(exports_1) { return NAME; }; return NotImplementedException; - })(SystemException_1.default); + }(SystemException_1.default)); exports_1("default", NotImplementedException); } } diff --git a/dist/system/System/Exceptions/NotImplementedException.js.map b/dist/system/System/Exceptions/NotImplementedException.js.map index 2d18d508..46afdbc0 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":["NotImplementedException","NotImplementedException.constructor","NotImplementedException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,yBAAyB,CAAC;YAE9C;gBACsCA,2CAAeA;gBADrDA;oBACsCC,8BAAeA;gBAOrDA,CAACA;gBALUD,yCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEFF,8BAACA;YAADA,CAACA,AARD,EACsC,yBAAe,EAOpD;YARD,6CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NotImplementedException.ts"],"names":[],"mappings":";IAKA,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 diff --git a/dist/system/System/Exceptions/NullReferenceException.js b/dist/system/System/Exceptions/NullReferenceException.js index fc634d42..1d5beabe 100644 --- a/dist/system/System/Exceptions/NullReferenceException.js +++ b/dist/system/System/Exceptions/NullReferenceException.js @@ -1,9 +1,5 @@ -/* - * @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 - */ System.register(['./SystemException'], function(exports_1) { + 'use strict'; 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; } @@ -27,7 +23,7 @@ System.register(['./SystemException'], function(exports_1) { return NAME; }; return NullReferenceException; - })(SystemException_1.default); + }(SystemException_1.default)); exports_1("default", NullReferenceException); } } diff --git a/dist/system/System/Exceptions/NullReferenceException.js.map b/dist/system/System/Exceptions/NullReferenceException.js.map index 66aa46c1..9f9deba6 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":["NullReferenceException","NullReferenceException.constructor","NullReferenceException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,wBAAwB,CAAC;YAE7C;gBACqCA,0CAAeA;gBADpDA;oBACqCC,8BAAeA;gBAOpDA,CAACA;gBALUD,wCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEFF,6BAACA;YAADA,CAACA,AARD,EACqC,yBAAe,EAOnD;YARD,4CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/NullReferenceException.ts"],"names":[],"mappings":";IAKA,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 diff --git a/dist/system/System/Exceptions/SystemException.js b/dist/system/System/Exceptions/SystemException.js index 1719b955..f3ed9930 100644 --- a/dist/system/System/Exceptions/SystemException.js +++ b/dist/system/System/Exceptions/SystemException.js @@ -1,9 +1,5 @@ -/* - * @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.systemexception%28v=vs.110%29.aspx - */ System.register(['../Exception'], function(exports_1) { + 'use strict'; 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; } @@ -27,7 +23,7 @@ System.register(['../Exception'], function(exports_1) { return NAME; }; return SystemException; - })(Exception_1.default); + }(Exception_1.default)); exports_1("default", SystemException); } } diff --git a/dist/system/System/Exceptions/SystemException.js.map b/dist/system/System/Exceptions/SystemException.js.map index 477df7b7..d2a012dc 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":["SystemException","SystemException.constructor","SystemException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;QAKG,IAAI;;;;;;;YAAJ,IAAI,GAAU,iBAAiB,CAAC;YAEtC;gBAC8BA,mCAASA;gBADvCA;oBAC8BC,8BAASA;gBAMvCA,CAACA;gBAJUD,iCAAOA,GAAjBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBACFF,sBAACA;YAADA,CAACA,AAPD,EAC8B,mBAAS,EAMtC;YAPD,qCAOC,CAAA"} \ No newline at end of file +{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["../../../../source/System/Exceptions/SystemException.ts"],"names":[],"mappings":";IAKA,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 diff --git a/dist/system/System/Functions.js b/dist/system/System/Functions.js index b4f49fe1..c6bba8cf 100644 --- a/dist/system/System/Functions.js +++ b/dist/system/System/Functions.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + 'use strict'; var Functions, rootFunctions; return { setters:[], @@ -15,7 +12,7 @@ System.register([], function(exports_1) { Functions.prototype.False = function () { return false; }; Functions.prototype.Blank = function () { }; return Functions; - })(); + }()); rootFunctions = new Functions(); (function (Functions) { Functions.Identity = rootFunctions.Identity; diff --git a/dist/system/System/Functions.js.map b/dist/system/System/Functions.js.map index f5c89250..128e6d17 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":["Functions","Functions.constructor","Functions.Identity","Functions.True","Functions.False","Functions.Blank"],"mappings":"AAAA;;;GAGG;;mBAqCG,aAAa;;;;YA/BnB;gBAAAA;gBA6BAC,CAACA;gBAtBAD,4BAAQA,GAARA,UAAYA,CAAGA,IACbE,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAMbF,wBAAIA,GAAJA,cACEG,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAMhBH,yBAAKA,GAALA,cACEI,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBAKjBJ,yBAAKA,GAALA,cACEK,CAACA;gBACJL,gBAACA;YAADA,CAACA,AA7BD,IA6BC;YAEK,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;YAIhD,WAAO,SAAS,EAChB,CAAC;gBAKWA,kBAAQA,GAChBA,aAAaA,CAACA,QAAQA,CAACA;gBAMfA,cAAIA,GACZA,aAAaA,CAACA,IAAIA,CAACA;gBAMXA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;gBAKZA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;YACxBA,CAACA,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":";IAIA,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 diff --git a/dist/system/System/Integer.js b/dist/system/System/Integer.js index 9a733b8b..26802eaa 100644 --- a/dist/system/System/Integer.js +++ b/dist/system/System/Integer.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['./Types', './Exceptions/ArgumentException'], function(exports_1) { + "use strict"; var Types_1, ArgumentException_1; var Integer; function Integer(n) { diff --git a/dist/system/System/Integer.js.map b/dist/system/System/Integer.js.map index 2a6213fd..311a7b32 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":["Integer","Integer.r","Integer.random","Integer.random.under","Integer.is","Integer.assert"],"mappings":"AAAA;;;GAGG;;;;IAKH,iBAAiB,CAAQ;QAExBA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA;IACdA,CAACA;;;;;;;;;;YAED,WAAO,OAAO,EACd,CAAC;gBAEAA,WAAWA,GAAUA;oBACpBC,MAAMA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAEA,GAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;gBAChCA,CAACA;gBAaDD,gBAAuBA,GAAUA;oBAEhCE,MAAMA,CAACA,GAAGA,EAACA,KAAKA,CAACA,CAACA;oBAClBA,EAAEA,CAAAA,CAACA,GAAGA,IAAEA,CAACA,CAACA;wBAACA,MAAMA,CAACA,CAACA,CAACA;oBACpBA,GAAGA,IAAIA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBACxBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBANeF,cAAMA,SAMrBA,CAAAA;gBAEDA,IAAcA,MAAMA,CAmBnBA;gBAnBDA,WAAcA,MAAMA,EAACA,CAACA;oBAarBE,eAAsBA,QAAeA;wBAEpCC,MAAMA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAAAA;oBACnBA,CAACA;oBAHeD,YAAKA,QAGpBA,CAAAA;gBAGFA,CAACA,EAnBaF,MAAMA,GAANA,cAAMA,KAANA,cAAMA,QAmBnBA;gBAEDA,YAAmBA,CAAQA;oBAE1BI,MAAMA,CAACA,eAAIA,CAACA,QAAQA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,IAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;gBAC9CA,CAACA;gBAHeJ,UAAEA,KAGjBA,CAAAA;gBAEDA,gBAAuBA,CAAQA,EAAEA,YAAoBA;oBAEpDK,IAAIA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA,CAACA;oBACdA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;wBACAA,MAAMA,IAAIA,2BAAiBA,CAACA,YAAYA,IAAIA,GAAGA,EAAEA,qBAAqBA,CAACA,CAACA;oBACzEA,CAACA;oBACDA,MAAMA,CAACA,CAACA,CAACA;gBACVA,CAACA;gBAReL,cAAMA,SAQrBA,CAAAA;YAEFA,CAACA,EA9DM,OAAO,KAAP,OAAO,QA8Db;YAED,oBAAe,OAAO,EAAC"} \ No newline at end of file +{"version":3,"file":"Integer.js","sourceRoot":"","sources":["../../../source/System/Integer.ts"],"names":[],"mappings":";;;;IAQA,iBAAiB,CAAQ;QAExB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;;;;;;;;;;YAED,WAAO,OAAO,EACd,CAAC;gBAEA,WAAW,GAAU;oBACpB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBAaD,gBAAuB,GAAU;oBAEhC,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;oBAClB,EAAE,CAAA,CAAC,GAAG,IAAE,CAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC;oBACpB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBANe,cAAM,SAMrB,CAAA;gBAED,IAAc,MAAM,CAmBnB;gBAnBD,WAAc,MAAM,EAAC,CAAC;oBAarB,eAAsB,QAAe;wBAEpC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;oBACnB,CAAC;oBAHe,YAAK,QAGpB,CAAA;gBAGF,CAAC,EAnBa,MAAM,GAAN,cAAM,KAAN,cAAM,QAmBnB;gBAED,YAAmB,CAAQ;oBAE1B,MAAM,CAAC,eAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBAHe,UAAE,KAGjB,CAAA;gBAED,gBAAuB,CAAQ,EAAE,YAAoB;oBAEpD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBACd,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;wBACA,MAAM,IAAI,2BAAiB,CAAC,YAAY,IAAI,GAAG,EAAE,qBAAqB,CAAC,CAAC;oBACzE,CAAC;oBACD,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBARe,cAAM,SAQrB,CAAA;YAEF,CAAC,EA9DM,OAAO,KAAP,OAAO,QA8Db;YAED,oBAAe,OAAO,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Lazy.js b/dist/system/System/Lazy.js index 19eb83cd..36d843fd 100644 --- a/dist/system/System/Lazy.js +++ b/dist/system/System/Lazy.js @@ -1,8 +1,5 @@ -/* - * @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) { + 'use strict'; 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; } @@ -87,7 +84,7 @@ System.register(['./Disposable/DisposableBase'], function(exports_1) { return this.equals(other) || this.value === other.value; }; return Lazy; - })(DisposableBase_1.default); + }(DisposableBase_1.default)); exports_1("default", Lazy); } } diff --git a/dist/system/System/Lazy.js.map b/dist/system/System/Lazy.js.map index 2a742dab..7cb14641 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":["Lazy","Lazy.constructor","Lazy.isValueCreated","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../source/System/Lazy.ts"],"names":[],"mappings":";IAIA,YAAY,CAAC;;;;;;;;;;;;;;YAMb;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 diff --git a/dist/system/System/Observable/ObservableNodeBase.js b/dist/system/System/Observable/ObservableNodeBase.js index aa56c83a..9d51ae21 100644 --- a/dist/system/System/Observable/ObservableNodeBase.js +++ b/dist/system/System/Observable/ObservableNodeBase.js @@ -1,10 +1,5 @@ -/* - * @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 - */ System.register(['./SubscribableBase'], function(exports_1) { + 'use strict'; 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; } @@ -12,11 +7,10 @@ System.register(['./SubscribableBase'], function(exports_1) { }; var SubscribableBase_1; var ObservableNodeBase, OBSERVER_ERROR_MESSAGE; - function processAction(observers, handler, dispose) { - if (dispose === void 0) { dispose = true; } + function processAction(observers, handler) { var observersErrors = null; - for (var _i = 0; _i < observers.length; _i++) { - var s = observers[_i]; + for (var _i = 0, observers_1 = observers; _i < observers_1.length; _i++) { + var s = observers_1[_i]; try { handler(s); } @@ -25,8 +19,7 @@ System.register(['./SubscribableBase'], function(exports_1) { observersErrors.push({ observer: s, ex: ex }); } } - if (dispose) - observers.length = 0; + observers.length = 0; if (observersErrors && observersErrors.length) { if (console && console.error) console.error(OBSERVER_ERROR_MESSAGE, observersErrors); @@ -58,7 +51,7 @@ System.register(['./SubscribableBase'], function(exports_1) { processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); }); }; return ObservableNodeBase; - })(SubscribableBase_1.default); + }(SubscribableBase_1.default)); exports_1("default", ObservableNodeBase); OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; } diff --git a/dist/system/System/Observable/ObservableNodeBase.js.map b/dist/system/System/Observable/ObservableNodeBase.js.map index 86bc56f2..ca33433d 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":["processAction","ObservableNodeBase","ObservableNodeBase.constructor","ObservableNodeBase.onNext","ObservableNodeBase.onError","ObservableNodeBase.onCompleted"],"mappings":"AAAA;;;;;GAKG;;;;;;;;4BAqCG,sBAAsB;IAE5B,uBACC,SAAwB,EACxB,OAA8B,EAC9B,OAAsB;QAAtBA,uBAAsBA,GAAtBA,cAAsBA;QAEtBA,IAAIA,eAAeA,GAAoCA,IAAIA,CAACA;QAE5DA,GAAGA,CAAAA,CAAUA,UAASA,EAAlBA,qBAAKA,EAALA,IAAkBA,CAACA;YAAnBA,IAAIA,CAACA,GAAIA,SAASA,IAAbA;YAERA,IACAA,CAACA;gBACAA,OAAOA,CAACA,CAACA,CAACA,CAACA;YACZA,CACAA;YAAAA,KAAKA,CAAAA,CAACA,EAAEA,CAACA,CACTA,CAACA;gBACAA,eAAeA,GAAGA,eAAeA,IAAIA,EAAEA,CAACA;gBAExCA,eAAeA,CAACA,IAAIA,CAACA,EAACA,QAAQA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,EAAEA,EAACA,CAACA,CAACA;YAC7CA,CAACA;SACDA;QAEDA,EAAEA,CAAAA,CAACA,OAAOA,CAACA;YACVA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA;QAEtBA,EAAEA,CAAAA,CAACA,eAAeA,IAAIA,eAAeA,CAACA,MAAMA,CAACA,CAC7CA,CAACA;YACAA,EAAEA,CAAAA,CAACA,OAAOA,IAAIA,OAAOA,CAACA,KAAKA,CAACA;gBAC3BA,OAAOA,CAACA,KAAKA,CAACA,sBAAsBA,EAAEA,eAAeA,CAACA,CAACA;YACxDA,IAAIA;gBAACA,MAAMA;oBACVA,OAAOA,EAAEA,sBAAsBA;oBAC/BA,MAAMA,EAAEA,eAAeA;iBACvBA,CAACA;QACHA,CAACA;IAEFA,CAACA;;;;;;;YAlED;gBAEQC,sCAA8BA;gBAFtCA;oBAEQC,8BAA8BA;gBA0BtCA,CAACA;gBAvBAD,mCAAMA,GAANA,UAAOA,KAAOA;oBAEbE,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,UAACA,CAACA,IAAOA,CAACA,CAACA,MAAMA,IAAIA,CAACA,CAACA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACvCA,CAACA;gBACHA,CAACA;gBAEDF,oCAAOA,GAAPA,UAAQA,KAAWA;oBAElBG,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,UAACA,CAACA,IAAOA,CAACA,CAACA,OAAOA,IAAIA,CAACA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACzCA,CAACA;gBACHA,CAACA;gBAEDH,wCAAWA,GAAXA;oBAECI,aAAaA,CACZA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,EAC1BA,UAACA,CAACA,IAAOA,CAACA,CAACA,WAAWA,IAAIA,CAACA,CAACA,WAAWA,EAAEA,CAACA,CAACA,CAACA,CAC5CA,CAACA;gBACHA,CAACA;gBACFJ,yBAACA;YAADA,CAACA,AA5BD,EAEQ,0BAAgB,EA0BvB;YA5BD,wCA4BC,CAAA;YAEK,sBAAsB,GAAU,uEAAuE,CAAC"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/ObservableNodeBase.ts"],"names":[],"mappings":";IAMA,YAAY,CAAC;;;;;;;4BAqCP,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;gBAEQ,sCAA8B;gBAFtC;oBAEQ,8BAA8B;gBA0BtC,CAAC;gBAvBA,mCAAM,GAAN,UAAO,KAAO;oBAEb,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;gBAED,oCAAO,GAAP,UAAQ,KAAW;oBAElB,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;gBAED,wCAAW,GAAX;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,yBAAC;YAAD,CAAC,AA5BD,CAEQ,0BAAgB,GA0BvB;YA5BD,wCA4BC,CAAA;YAEK,sBAAsB,GAAU,uEAAuE,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Observable/SubscribableBase.js b/dist/system/System/Observable/SubscribableBase.js index ce0d3adf..3dc80801 100644 --- a/dist/system/System/Observable/SubscribableBase.js +++ b/dist/system/System/Observable/SubscribableBase.js @@ -1,10 +1,5 @@ -/* - * @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 - */ System.register(['../Collections/LinkedList', '../Disposable/Utility', './Subscription'], function(exports_1) { + 'use strict'; var LinkedList_1, DisposeUtility, Subscription_1; var SubscribableBase; return { @@ -73,7 +68,7 @@ System.register(['../Collections/LinkedList', '../Disposable/Utility', './Subscr this._unsubscribeAll(); }; return SubscribableBase; - })(); + }()); exports_1("default", SubscribableBase); } } diff --git a/dist/system/System/Observable/SubscribableBase.js.map b/dist/system/System/Observable/SubscribableBase.js.map index 31e8ce2e..35c8462d 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":["SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":";IAMA,YAAY,CAAC;;;;;;;;;;;;;;;YAWb;gBAcC;oBAEC,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAU,EAA6B,CAAC;gBACpE,CAAC;gBATS,0CAAe,GAAzB;oBACC,MAAM,CAAC,IAAI,CAAC,eAAe;yBACzB,OAAO,EAAE;yBACT,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,CAAC;gBACxB,CAAC;gBAOO,yCAAc,GAAtB,UACC,UAAsB;oBAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBACtC,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CACtC,CAAC;4BACA,KAAK,CAAC;wBACP,CAAC;wBACD,IAAI,CACJ,CAAC;4BACA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBAClB,CAAC;oBACF,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC;gBACb,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,GAAG,CAAC,CAAC,CAAC,CAAC;oBAEzB,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,sCAAW,GAAX,UAAY,UAAsB;oBAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACxC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAChB,CAAC,CAAC,MAAM,EAAE,CAAC;wBACX,CAAC,CAAC,OAAO,EAAE,CAAC;oBACb,CAAC;gBACF,CAAC;gBAES,0CAAe,GAAzB,UAA0B,iBAAiC;oBAAjC,iCAAiC,GAAjC,yBAAiC;oBAC1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;oBACrC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBACrB,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,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBAE/B,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,yCAAc,GAAd;oBACC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAED,kCAAO,GAAP;oBACC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAEF,uBAAC;YAAD,CAAC,AAlFD,IAkFC;YAlFD,sCAkFC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Observable/Subscription.js b/dist/system/System/Observable/Subscription.js index 7a50c0b6..7e3a61e3 100644 --- a/dist/system/System/Observable/Subscription.js +++ b/dist/system/System/Observable/Subscription.js @@ -1,17 +1,9 @@ -/* - * @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 - */ System.register([], function(exports_1) { + 'use strict'; var Subscription; return { setters:[], execute: function() { - /// - /// - /// Subscription = (function () { function Subscription(_subscribable, _subscriber) { this._subscribable = _subscribable; @@ -43,7 +35,7 @@ System.register([], function(exports_1) { } }; return Subscription; - })(); + }()); exports_1("default", Subscription); } } diff --git a/dist/system/System/Observable/Subscription.js.map b/dist/system/System/Observable/Subscription.js.map index 7b70b8c5..b53fc361 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":["Subscription","Subscription.constructor","Subscription.subscriber","Subscription.wasDisposed","Subscription.dispose"],"mappings":"AAAA;;;;;GAKG;;;;;;YAGH,yCAAyC;YACzC,uCAAuC;YACvC,0DAA0D;YAK1D;gBAGCA,sBACSA,aAA+BA,EAC/BA,WAAcA;oBADdC,kBAAaA,GAAbA,aAAaA,CAAkBA;oBAC/BA,gBAAWA,GAAXA,WAAWA,CAAGA;oBAEtBA,EAAEA,CAACA,CAACA,CAACA,aAAaA,IAAIA,CAACA,WAAWA,CAACA;wBAClCA,MAAMA,6CAA6CA,CAACA;gBACtDA,CAACA;gBAEDD,sBAAIA,oCAAUA;yBAAdA;wBACCE,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA;oBACzBA,CAACA;;;mBAAAF;gBAiBDA,sBAAIA,qCAAWA;yBAAfA;wBAECG,MAAMA,CAACA,CAACA,IAAIA,CAACA,aAAaA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA;oBACjDA,CAACA;;;mBAAAH;gBAEDA,8BAAOA,GAAPA;oBAECI,IAAIA,UAAUA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;oBACjCA,IAAIA,YAAYA,GAAGA,IAAIA,CAACA,aAAaA,CAACA;oBAGtCA,IAAIA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;oBACxBA,IAAIA,CAACA,aAAaA,GAAGA,IAAIA,CAACA;oBAG1BA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,YAAYA,CAACA,CAC/BA,CAACA;wBACAA,YAAYA,CAACA,WAAWA,CAACA,UAAUA,CAACA,CAACA;oBACtCA,CAACA;gBACFA,CAACA;gBACFJ,mBAACA;YAADA,CAACA,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":";IAMA,YAAY,CAAC;;;;;YAUb;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 diff --git a/dist/system/System/Serialization/Utility.js b/dist/system/System/Serialization/Utility.js index 2a124e22..d18a41b7 100644 --- a/dist/system/System/Serialization/Utility.js +++ b/dist/system/System/Serialization/Utility.js @@ -1,8 +1,5 @@ -/* - * @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) { + "use strict"; var Types_1, InvalidOperationException_1; var EMPTY, TRUE, FALSE; function toString(value, defaultForUnknown) { diff --git a/dist/system/System/Serialization/Utility.js.map b/dist/system/System/Serialization/Utility.js.map index 80aca3e8..964d3004 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":["toString","isSerializable","toPrimitive"],"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":";;;QAYM,KAAK,EAAO,IAAI,EAAW,KAAK;IAEtC,kBACC,KAA6B,EAC7B,iBAAyB;QAGzB,IAAI,CAAC,GAAQ,KAAK,CAAC;QACnB,MAAM,CAAA,CAAC,OAAO,CAAC,CAAC,CAChB,CAAC;YACA,KAAK,eAAI,CAAC,SAAS,CAAC;YACpB,KAAK,eAAI,CAAC,MAAM;gBACf,MAAM,CAAC,CAAC,CAAC;YACV,KAAK,eAAI,CAAC,OAAO;gBAChB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;YACzB,KAAK,eAAI,CAAC,MAAM;gBACf,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YAClB;gBAEC,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC;gBAEV,EAAE,CAAA,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;oBAC1B,MAAM,CAAC,iBAAiB,CAAC;gBAE1B,IAAI,EAAE,GAAG,IAAI,mCAAyB,CAAC,8CAA8C,CAAC,CAAC;gBACvF,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,EAAE,CAAC;QAEX,CAAC;IAEF,CAAC;IA/BD,+BA+BC,CAAA;IAED,wBAA+B,QAAY;QAC1C,MAAM,CAAC,eAAI,CAAC,eAAe,CAAgB,QAAQ,EAAC,WAAW,EAAC,eAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;IAFD,2CAEC,CAAA;IAED,qBACC,KAAY,EACZ,eAAwB,EACxB,cAAkC;QAIlC,EAAE,CAAA,CAAC,KAAK,CAAC,CACT,CAAC;YACA,EAAE,CAAA,CAAC,eAAe,CAAC;gBAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAEhD,MAAM,CAAA,CAAC,KAAK,CAAC,CACb,CAAC;gBACA,KAAK,MAAM;oBACV,MAAM,CAAC,IAAI,CAAC;gBACb,KAAK,eAAI,CAAC,SAAS;oBAClB,MAAM,CAAC,SAAS,CAAC;gBAClB,KAAK,IAAI;oBACR,MAAM,CAAC,IAAI,CAAC;gBACb,KAAK,KAAK;oBACT,MAAM,CAAC,KAAK,CAAC;gBACd;oBAEC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAC,KAAK,CAAC,CAAC;oBAClD,EAAE,CAAA,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEZ,EAAE,CAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAC5B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAAC,MAAM,CAAC,GAAG,CAAC;wBAC5B,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;4BAC/B,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCAAC,MAAM,CAAC,MAAM,CAAC;wBAClC,CAAC;oBAEF,CAAC;oBAKD,EAAE,CAAA,CAAC,cAAc,CAAC;wBAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;oBAEjD,KAAK,CAAC;YACR,CAAC;QAEF,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IAEd,CAAC;IAhDD,qCAgDC,CAAA;;;;;;;;;;YAvFK,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Text/StringBuilder.js b/dist/system/System/Text/StringBuilder.js index abbf22b8..213948af 100644 --- a/dist/system/System/Text/StringBuilder.js +++ b/dist/system/System/Text/StringBuilder.js @@ -1,17 +1,14 @@ -/* - * @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 - */ System.register(['../Types'], function(exports_1) { + 'use strict'; var Types_1; - var StringBuilder; + var VOID0, StringBuilder; return { setters:[ function (Types_1_1) { Types_1 = Types_1_1; }], execute: function() { + VOID0 = void 0; StringBuilder = (function () { function StringBuilder() { var initial = []; @@ -24,7 +21,7 @@ System.register(['../Types'], function(exports_1) { _.appendThese(initial); } StringBuilder.prototype.appendSingle = function (item) { - if (item !== null && item !== undefined) { + if (item !== null && item !== VOID0) { var _ = this; _._latest = null; switch (typeof item) { @@ -60,7 +57,7 @@ System.register(['../Types'], function(exports_1) { StringBuilder.prototype.appendLines = function (items) { var _ = this; items.forEach(function (i) { - if (i !== null && i !== undefined) { + if (i !== null && i !== VOID0) { _.appendSingle(i); _._partArray.push("\r\n"); } @@ -91,7 +88,7 @@ System.register(['../Types'], function(exports_1) { this.clear(); }; return StringBuilder; - })(); + }()); exports_1("default", StringBuilder); } } diff --git a/dist/system/System/Text/StringBuilder.js.map b/dist/system/System/Text/StringBuilder.js.map index 580cd205..61aea8d1 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":["StringBuilder","StringBuilder.constructor","StringBuilder.appendSingle","StringBuilder.appendThese","StringBuilder.append","StringBuilder.appendLine","StringBuilder.appendLines","StringBuilder.isEmpty","StringBuilder.toString","StringBuilder.join","StringBuilder.clear","StringBuilder.dispose"],"mappings":"AAAA;;;;GAIG;;;;;;;;;;YAkBH;gBASCA;oBAAYC,iBAAgBA;yBAAhBA,WAAgBA,CAAhBA,sBAAgBA,CAAhBA,IAAgBA;wBAAhBA,gCAAgBA;;oBAE3BA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,CAACA,CAACA,OAAOA,GAAGA,IAAIA,CAACA;oBACjBA,CAACA,CAACA,UAAUA,GAAGA,EAAEA,CAACA;oBAClBA,CAACA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,CAACA;gBAEOD,oCAAYA,GAApBA,UAAqBA,IAAQA;oBAE5BE,EAAEA,CAAAA,CAACA,IAAIA,KAAGA,IAAIA,IAAIA,IAAIA,KAAGA,SAASA,CAACA,CAACA,CAACA;wBACpCA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;wBACbA,CAACA,CAACA,OAAOA,GAAGA,IAAIA,CAACA;wBACjBA,MAAMA,CAAAA,CAACA,OAAOA,IAAIA,CAACA,CAACA,CAACA;4BACpBA,KAAKA,eAAIA,CAACA,MAAMA,CAACA;4BACjBA,KAAKA,eAAIA,CAACA,QAAQA;gCACjBA,IAAIA,GAAGA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;gCACvBA,KAAKA,CAACA;wBACRA,CAACA;wBACDA,CAACA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,CAACA;gBAEFA,CAACA;gBAEDF,mCAAWA,GAAXA,UAAYA,KAAWA;oBAEtBG,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,KAAKA,CAACA,OAAOA,CAACA,UAAAA,CAACA,IAAGA,OAAAA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA,EAAjBA,CAAiBA,CAACA,CAACA;oBACrCA,MAAMA,CAACA,CAACA,CAACA;gBACVA,CAACA;gBAEDH,8BAAMA,GAANA;oBAAOI,eAAcA;yBAAdA,WAAcA,CAAdA,sBAAcA,CAAdA,IAAcA;wBAAdA,8BAAcA;;oBAEpBA,IAAIA,CAACA,WAAWA,CAACA,KAAKA,CAACA,CAACA;oBACxBA,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEDJ,kCAAUA,GAAVA;oBAAWK,eAAcA;yBAAdA,WAAcA,CAAdA,sBAAcA,CAAdA,IAAcA;wBAAdA,8BAAcA;;oBAExBA,IAAIA,CAACA,WAAWA,CAACA,KAAKA,CAACA,CAACA;oBACxBA,MAAMA,CAACA,IAAIA,CAACA;gBACbA,CAACA;gBAEDL,mCAAWA,GAAXA,UAAYA,KAAWA;oBAEtBM,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,KAAKA,CAACA,OAAOA,CACXA,UAAAA,CAACA;wBAEDA,EAAEA,CAAAA,CAACA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,SAASA,CAACA,CAACA,CAACA;4BAC9BA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;4BAClBA,CAACA,CAACA,UAAUA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;wBAC3BA,CAACA;oBACFA,CAACA,CACDA,CAACA;oBACFA,MAAMA,CAACA,CAACA,CAACA;gBACVA,CAACA;gBAcDN,sBAAIA,kCAAOA;yBAAXA;wBAECO,MAAMA,CAACA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,KAAGA,CAACA,CAACA;oBACnCA,CAACA;;;mBAAAP;gBAEDA,gCAAQA,GAARA;oBAECQ,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,OAAOA,CAACA;oBAC1BA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,KAAGA,IAAIA,CAACA;wBACjBA,IAAIA,CAACA,OAAOA,GAAGA,MAAMA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;oBAEhDA,MAAMA,CAACA,MAAMA,CAACA;gBACfA,CAACA;gBAEDR,4BAAIA,GAAJA,UAAKA,SAAgBA;oBAEpBS,MAAMA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBACxCA,CAACA;gBAEDT,6BAAKA,GAALA;oBAECU,IAAIA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBAC3BA,IAAIA,CAACA,OAAOA,GAAGA,IAAIA,CAACA;gBACrBA,CAACA;gBAEDV,+BAAOA,GAAPA;oBAECW,IAAIA,CAACA,KAAKA,EAAEA,CAACA;gBACdA,CAACA;gBAEFX,oBAACA;YAADA,CAACA,AA7GD,IA6GC;YA7GD,mCA6GC,CAAA"} \ 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 0b8a3d8a..cf72d864 100644 --- a/dist/system/System/Text/Utility.js +++ b/dist/system/System/Text/Utility.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../Types'], function(exports_1) { + "use strict"; var Types_1; var EMPTY; function escapeRegExp(source) { diff --git a/dist/system/System/Text/Utility.js.map b/dist/system/System/Text/Utility.js.map index c761f323..0172ab55 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":["escapeRegExp","trim","format","supplant"],"mappings":"AAAA;;;GAGG;;;QAIU,KAAK;IAElB,sBAA6B,MAAa;QACzCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,qCAAqCA,EAAEA,MAAMA,CAACA,CAACA;IACtEA,CAACA;IAFD,uCAEC,CAAA;IAUD,cAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;QAE7EC,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACVA,EAAEA,CAAAA,CAACA,KAAKA,KAAGA,KAAKA,CAACA;gBAACA,MAAMA,CAACA,MAAMA,CAACA;YAChCA,IAAIA,OAAOA,GAAGA,YAAYA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,CAACA,IAAIA,EAAEA,GAAWA,KAAKA,CAACA,CAACA;YAChFA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,IAAIA,MAAMA,CAACA,IAAIA,GAACA,OAAOA,GAACA,MAAMA,GAACA,OAAOA,GAACA,KAAKA,EAACA,GAAGA,GAACA,CAACA,UAAUA,GAACA,GAAGA,GAACA,EAAEA,CAACA,CAACA,EAACA,KAAKA,CAACA,CAACA;QACpGA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,YAAYA,EAAEA,KAAKA,CAACA,CAACA;IAC5CA,CAACA;IATD,uBASC,CAAA;IAQD,gBAAuB,MAAa;QAAEC,cAAaA;aAAbA,WAAaA,CAAbA,sBAAaA,CAAbA,IAAaA;YAAbA,6BAAaA;;QAElDA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,CAACA;IAC/BA,CAACA;IAHD,2BAGC,CAAA;IAaD,kBAAyB,MAAa,EAAE,MAA+B;QAEtEC,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QACrCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,eAAeA,EACpCA,UAACA,CAAQA,EAAEA,CAAQA;YAElBA,IAAIA,CAACA,GAAOA,CAACA,CAACA;YACdA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CACZA,CAACA;gBACAA,IAAIA,CAACA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBACpBA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAACA,CAACA,GAAGA,CAACA,CAACA;YACrBA,CAACA;YAEDA,IAAIA,CAACA,GAASA,MAAOA,CAACA,CAACA,CAACA,CAACA;YACzBA,MAAMA,CAAAA,CAACA,OAAOA,CAACA,CAACA,CAChBA,CAACA;gBACAA,KAAKA,eAAIA,CAACA,MAAMA,CAACA;gBACjBA,KAAKA,eAAIA,CAACA,MAAMA,CAACA;gBACjBA,KAAKA,eAAIA,CAACA,OAAOA;oBAChBA,MAAMA,CAACA,CAACA,CAACA;gBACVA;oBACCA,MAAMA,CAACA,CAACA,CAACA;YACXA,CAACA;QACFA,CAACA,CACDA,CAACA;IACHA,CAACA;IAzBD,+BAyBC,CAAA;;;;;;;YAxEY,mBAAA,KAAK,GAAU,EAAE,CAAA,CAAC"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["../../../../source/System/Text/Utility.ts"],"names":[],"mappings":";;;QAOa,KAAK;IAElB,sBAA6B,MAAa;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAFD,uCAEC,CAAA;IAUD,cAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;QAE7E,EAAE,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,EAAE,CAAA,CAAC,KAAK,KAAG,KAAK,CAAC;gBAAC,MAAM,CAAC,MAAM,CAAC;YAChC,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,GAAC,OAAO,GAAC,MAAM,GAAC,OAAO,GAAC,KAAK,EAAC,GAAG,GAAC,CAAC,UAAU,GAAC,GAAG,GAAC,EAAE,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IATD,uBASC,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,eAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,eAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,eAAI,CAAC,OAAO;oBAChB,MAAM,CAAC,CAAC,CAAC;gBACV;oBACC,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;QACF,CAAC,CACD,CAAC;IACH,CAAC;IAzBD,+BAyBC,CAAA;;;;;;;YAxEY,mBAAA,KAAK,GAAU,EAAE,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Time/Calendars.js b/dist/system/System/Time/Calendars.js deleted file mode 100644 index c25d036e..00000000 --- a/dist/system/System/Time/Calendars.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register([], function(exports_1) { - return { - setters:[], - execute: function() { - } - } -}); -//# sourceMappingURL=Calendars.js.map \ No newline at end of file diff --git a/dist/system/System/Time/Calendars.js.map b/dist/system/System/Time/Calendars.js.map deleted file mode 100644 index efc5aa26..00000000 --- a/dist/system/System/Time/Calendars.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Calendars.js","sourceRoot":"","sources":["../../../../source/System/Time/Calendars.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;YA4BF"} \ No newline at end of file diff --git a/dist/system/System/Time/ClockTime.js b/dist/system/System/Time/ClockTime.js index 6ad29c3b..256e51c3 100644 --- a/dist/system/System/Time/ClockTime.js +++ b/dist/system/System/Time/ClockTime.js @@ -1,15 +1,11 @@ -/* - * @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(['./HowMany', './TimeQuantity'], function(exports_1) { +System.register(['./TimeQuantity'], function(exports_1) { + 'use strict'; 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 HowMany, TimeQuantity_1; + var TimeQuantity_1; var ClockTime; function pluralize(value, label) { if (Math.abs(value) !== 1) @@ -18,9 +14,6 @@ System.register(['./HowMany', './TimeQuantity'], function(exports_1) { } return { setters:[ - function (HowMany_1) { - HowMany = HowMany_1; - }, function (TimeQuantity_1_1) { TimeQuantity_1 = TimeQuantity_1_1; }], @@ -68,7 +61,6 @@ System.register(['./HowMany', './TimeQuantity'], function(exports_1) { return value; }; ClockTime.prototype.toString = function () { - /* INSERT CUSTOM FORMATTING CODE HERE */ var _ = this, a = []; if (_.days) a.push(pluralize(_.days, "day")); @@ -83,7 +75,7 @@ System.register(['./HowMany', './TimeQuantity'], function(exports_1) { return a.join(", ").replace(", and, ", " and "); }; return ClockTime; - })(TimeQuantity_1.default); + }(TimeQuantity_1.default)); exports_1("default", ClockTime); } } diff --git a/dist/system/System/Time/ClockTime.js.map b/dist/system/System/Time/ClockTime.js.map index 2995362e..b6c0b75f 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":["pluralize","ClockTime","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString"],"mappings":"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AYA,EAAEA,CAACA;oBAE9BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA;wBACTA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA,CAACA;oBAElCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA;wBACTA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA,CAACA;oBAEnCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA;wBACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;oBAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA;wBACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;oBAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;wBACbA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,KAAKA,CAACA,CAACA;oBAElCA,MAAMA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,OAAOA,CAACA,SAASA,EAAEA,OAAOA,CAACA,CAACA;gBACjDA,CAACA;gBAEFJ,gBAACA;YAADA,CAACA,AAjGD,EACwB,sBAAY,EAgGnC;YAjGD,+BAiGC,CAAA"} \ 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.js b/dist/system/System/Time/DateTime.js index dc68fba8..1d5356da 100644 --- a/dist/system/System/Time/DateTime.js +++ b/dist/system/System/Time/DateTime.js @@ -1,19 +1,9 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Based on .NET DateTime's interface. - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register(['../Types', './HowMany', './ClockTime', './TimeSpan', './TimeStamp'], function(exports_1) { - var Types_1, HowMany, ClockTime_1, TimeSpan_1, TimeStamp_1; +System.register(['./ClockTime', './TimeSpan', './TimeStamp'], function(exports_1) { + 'use strict'; + var ClockTime_1, TimeSpan_1, TimeStamp_1; var DateTime; return { setters:[ - function (Types_1_1) { - Types_1 = Types_1_1; - }, - function (HowMany_1) { - HowMany = HowMany_1; - }, function (ClockTime_1_1) { ClockTime_1 = ClockTime_1_1; }, @@ -30,12 +20,12 @@ System.register(['../Types', './HowMany', './ClockTime', './TimeSpan', './TimeSt if (kind === void 0) { kind = 1; } var _ = this; _._kind = kind; - if (Types_1.default.isInstanceOf(value, DateTime)) + if (value instanceof DateTime) _._value = value.toJsDate(); - else if (Types_1.default.isInstanceOf(value, Date)) + else if (value instanceof Date) _._setJsDate(value); else - _._value = value == undefined + _._value = value === void (0) ? new Date() : new Date(value); } @@ -179,7 +169,7 @@ System.register(['../Types', './HowMany', './ClockTime', './TimeSpan', './TimeSt configurable: true }); DateTime.between = function (first, last) { - var f = Types_1.default.isInstanceOf(first, DateTime) ? first._value : first, l = Types_1.default.isInstanceOf(last, DateTime) ? last._value : 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()); }; DateTime.isLeapYear = function (year) { @@ -189,7 +179,7 @@ System.register(['../Types', './HowMany', './ClockTime', './TimeSpan', './TimeSt return (new Date(year, month + 1, 0)).getDate(); }; return 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 9081af4d..9c5ab8da 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":["DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","DateTime.kind","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth"],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;YAaH;gBAoBCA,kBAAYA,KAAsBA,EAAEA,IAAwCA;oBAAhEC,qBAAsBA,GAAtBA,YAAgBA,IAAIA,EAAEA;oBAAEA,oBAAwCA,GAAxCA,QAAwCA;oBAE3EA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;oBACfA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,YAAYA,CAAWA,KAAKA,EAACA,QAAQA,CAACA,CAACA;wBAC9CA,CAACA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,QAAQA,EAAEA,CAACA;oBAC7BA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,YAAYA,CAAOA,KAAKA,EAACA,IAAIA,CAACA,CAACA;wBAC3CA,CAACA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBACrBA,IAAIA;wBACHA,CAACA,CAACA,MAAMA,GAAGA,KAAKA,IAAEA,SAASA;8BACxBA,IAAIA,IAAIA,EAAEA;8BACVA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACrBA,CAACA;gBA5BDD,2BAAQA,GAARA;oBAECE,MAAMA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,CAACA,CAACA;gBACxCA,CAACA;gBAEOF,6BAAUA,GAAlBA,UAAmBA,KAAUA;oBAE5BG,IAAIA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;oBAClBA,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,OAAOA,EAAEA,CAACA,CAACA;gBACzCA,CAACA;gBAsBDH,sBAAIA,0BAAIA;yBAARA;wBAECI,MAAMA,CAACA,IAAIA,CAACA,KAAKA,CAACA;oBACnBA,CAACA;;;mBAAAJ;gBAEDA,sBAAIA,0BAAIA;yBAARA;wBAECK,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,WAAWA,EAAEA,CAACA;oBAClCA,CAACA;;;mBAAAL;gBAMDA,sBAAIA,2BAAKA;yBAATA;wBAECM,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,CAACA;oBAC/BA,CAACA;;;mBAAAN;gBAMDA,sBAAIA,yBAAGA;yBAAPA;wBAECO,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,CAACA;oBAC9BA,CAACA;;;mBAAAP;gBAEDA,sBAAIA,+BAASA;yBAAbA;wBAECQ,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA;oBAC7BA,CAACA;;;mBAAAR;gBAGDA,kCAAeA,GAAfA,UAAgBA,EAASA;oBAExBS,EAAEA,GAAGA,EAAEA,IAAIA,CAACA,CAACA;oBACbA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,GAAGA,EAAEA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBAC7DA,CAACA;gBAEDT,6BAAUA,GAAVA,UAAWA,OAAcA;oBAExBU,OAAOA,GAAGA,OAAOA,IAAIA,CAACA,CAACA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,OAAOA,GAACA,IAA+BA,CAACA,CAACA;gBACtEA,CAACA;gBAEDV,6BAAUA,GAAVA,UAAWA,OAAcA;oBAExBW,OAAOA,GAAGA,OAAOA,IAAIA,CAACA,CAACA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,OAAOA,GAACA,KAA+BA,CAACA,CAACA;gBACtEA,CAACA;gBAEDX,2BAAQA,GAARA,UAASA,KAAYA;oBAEpBY,KAAKA,GAAGA,KAAKA,IAAIA,CAACA,CAACA;oBACnBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,KAAKA,GAACA,OAA6BA,CAACA,CAACA;gBAClEA,CAACA;gBAEDZ,0BAAOA,GAAPA,UAAQA,IAAWA;oBAElBa,IAAIA,GAAGA,IAAIA,IAAIA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,GAACA,QAA4BA,CAACA,CAACA;gBAChEA,CAACA;gBAEDb,4BAASA,GAATA,UAAUA,MAAaA;oBAEtBc,MAAMA,GAAGA,MAAMA,IAAIA,CAACA,CAACA;oBACrBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;oBACxBA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA,QAAQA,EAAEA,GAACA,MAAMA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACpCA,CAACA;gBAEDd,2BAAQA,GAARA,UAASA,KAAYA;oBAEpBe,KAAKA,GAAGA,KAAKA,IAAIA,CAACA,CAACA;oBACnBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;oBACxBA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAACA,KAAKA,CAACA,CAACA;oBACrCA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACpCA,CAACA;gBAQDf,sBAAGA,GAAHA,UAAIA,IAAkBA;oBAErBgB,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA,CAACA;gBAC1DA,CAACA;gBAODhB,2BAAQA,GAARA,UAASA,IAAkBA;oBAE1BiB,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA,CAACA;gBAC3DA,CAACA;gBAODjB,kCAAeA,GAAfA,UAAgBA,QAAsBA;oBAErCkB,MAAMA,CAACA,QAAQA,CAACA,OAAOA,CAACA,QAAQA,EAAEA,IAAIA,CAACA,CAACA;gBACzCA,CAACA;gBAKDlB,sBAAIA,0BAAIA;yBAARA;wBAECmB,IAAIA,CAACA,GAAGA,IAAIA,CAACA;wBACbA,MAAMA,CAACA,IAAIA,QAAQA,CAClBA,IAAIA,IAAIA,CACPA,CAACA,CAACA,IAAIA,EACNA,CAACA,CAACA,KAAKA,EACPA,CAACA,CAACA,GAAGA,CACLA,EACCA,CAACA,CAACA,KAAKA,CACTA,CAACA;oBACHA,CAACA;;;mBAAAnB;gBAQDA,sBAAIA,+BAASA;yBAAbA;wBAECoB,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAGA,CAACA,CAACA,KAAKA,CAACA;wBAC1BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;4BACAA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;4BACpBA,CAACA,CAACA,KAAKA,GAAGA,CAACA,GAAGA,IAAIA,mBAASA,CAC1BA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,eAAeA,EAAEA,CAACA,CAACA;wBACvBA,CAACA;wBACDA,MAAMA,CAACA,CAACA,CAACA;oBACVA,CAACA;;;mBAAApB;gBAKDA,8BAAWA,GAAXA;oBACCqB,MAAMA,CAACA,mBAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC7BA,CAACA;gBAMDrB,sBAAWA,eAAGA;yBAAdA;wBAECsB,MAAMA,CAACA,IAAIA,QAAQA,EAAEA,CAACA;oBACvBA,CAACA;;;mBAAAtB;gBAMDA,sBAAIA,qCAAeA;yBAAnBA;wBAECuB,IAAIA,CAACA,GAAGA,IAAIA,CAACA;wBACbA,EAAEA,CAAAA,CAACA,CAACA,CAACA,KAAKA,IAAEA,CAAmBA,CAACA;4BAC/BA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA;wBAEjCA,IAAIA,CAACA,GAAGA,CAACA,CAACA,MAAMA,CAACA;wBACjBA,MAAMA,CAACA,IAAIA,QAAQA,CAClBA,IAAIA,IAAIA,CACPA,CAACA,CAACA,cAAcA,EAAEA,EAClBA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,aAAaA,EAAEA,EACjBA,CAACA,CAACA,aAAaA,EAAEA,EACjBA,CAACA,CAACA,kBAAkBA,EAAEA,CACtBA,EACDA,CAAiBA,CACjBA,CAACA;oBACHA,CAACA;;;mBAAAvB;gBAMDA,sBAAWA,iBAAKA;yBAAhBA;wBAECwB,MAAMA,CAACA,QAAQA,CAACA,GAAGA,CAACA,IAAIA,CAACA;oBAC1BA,CAACA;;;mBAAAxB;gBAMDA,sBAAWA,oBAAQA;yBAAnBA;wBAECyB,IAAIA,KAAKA,GAAYA,QAAQA,CAACA,KAAKA,CAACA;wBACpCA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;oBACzBA,CAACA;;;mBAAAzB;gBAOMA,gBAAOA,GAAdA,UAAeA,KAAmBA,EAAEA,IAAkBA;oBAErD0B,IAAIA,CAACA,GAAQA,eAAIA,CAACA,YAAYA,CAAWA,KAAKA,EAACA,QAAQA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAASA,KAAKA,EACjFA,CAACA,GAAQA,eAAIA,CAACA,YAAYA,CAAWA,IAAIA,EAACA,QAAQA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,GAASA,IAAIA,CAACA;oBAEnFA,MAAMA,CAACA,IAAIA,kBAAQA,CAACA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,CAACA,CAACA;gBAChDA,CAACA;gBAQM1B,mBAAUA,GAAjBA,UAAkBA,IAAWA;oBAC5B2B,MAAMA,CAACA,CAACA,CAACA,IAAIA,GAAGA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACpEA,CAACA;gBAQM3B,oBAAWA,GAAlBA,UAAmBA,IAAWA,EAAEA,KAAqBA;oBAEpD4B,MAAMA,CAACA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,EAACA,KAAKA,GAACA,CAACA,EAACA,CAACA,CAACA,CAACA,CAACA,OAAOA,EAAEA,CAACA;gBAC7CA,CAACA;gBAGF5B,eAACA;YAADA,CAACA,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":"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"} \ No newline at end of file diff --git a/dist/system/System/Time/HowMany.js b/dist/system/System/Time/HowMany.js index 53c9c54c..0397f166 100644 --- a/dist/system/System/Time/HowMany.js +++ b/dist/system/System/Time/HowMany.js @@ -1,12 +1 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register([], function(exports_1) { - return { - setters:[], - execute: function() { - } - } -}); //# 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 index 31e8fd6e..2de162e5 100644 --- a/dist/system/System/Time/HowMany.js.map +++ b/dist/system/System/Time/HowMany.js.map @@ -1 +1 @@ -{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;YAsDF"} \ No newline at end of file +{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["../../../../source/System/Time/HowMany.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/system/System/Time/TimeQuantity.js b/dist/system/System/Time/TimeQuantity.js index eeacd486..544f055a 100644 --- a/dist/system/System/Time/TimeQuantity.js +++ b/dist/system/System/Time/TimeQuantity.js @@ -1,18 +1,12 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register(['../Compare', './HowMany', './TimeUnit'], function(exports_1) { - var Compare_1, HowMany, TimeUnit_1; +System.register(['../Compare', './TimeUnit'], function(exports_1) { + 'use strict'; + var Compare_1, TimeUnit_1; var TimeQuantity; return { setters:[ function (Compare_1_1) { Compare_1 = Compare_1_1; }, - function (HowMany_1) { - HowMany = HowMany_1; - }, function (TimeUnit_1_1) { TimeUnit_1 = TimeUnit_1_1; }], @@ -61,7 +55,7 @@ System.register(['../Compare', './HowMany', './TimeUnit'], function(exports_1) { return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units); }; return TimeQuantity; - })(); + }()); exports_1("default", TimeQuantity); } } diff --git a/dist/system/System/Time/TimeQuantity.js.map b/dist/system/System/Time/TimeQuantity.js.map index 10c96d1d..7f47b1e6 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":["TimeQuantity","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","TimeQuantity.direction","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal"],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;YAYH;gBAICA,sBAAsBA,SAAoBA;oBAA9BC,yBAA8BA,GAA9BA,aAA8BA;oBAApBA,cAASA,GAATA,SAASA,CAAWA;gBAE1CA,CAACA;gBAGDD,2CAAoBA,GAApBA;oBAECE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;gBACvBA,CAACA;gBAMDF,sBAAIA,mCAASA;yBAAbA;wBAECG,MAAMA,CAACA,iBAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,CAACA,CAACA,CAACA;oBAChDA,CAACA;;;mBAAAH;gBAODA,6BAAMA,GAANA,UAAOA,KAAmBA;oBAEzBI,MAAMA,CAACA,kBAAQA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;gBAChGA,CAACA;gBAODJ,gCAASA,GAATA,UAAUA,KAAmBA;oBAE5BK,MAAMA,CAACA,iBAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;gBAC/FA,CAACA;gBAUDL,sBAAIA,+BAAKA;yBAATA;wBAECM,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;wBACpBA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;4BACAA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA;4BAErCA,IAAIA,CAACA,MAAMA,GAAGA,CAACA,GAAqBA,MAAMA,CAACA,MAAMA,CAACA;gCACjDA,KAAKA,EAAEA,EAAEA,GAACA,KAA6BA;gCACvCA,YAAYA,EAAEA,EAAEA;gCAChBA,OAAOA,EAAEA,EAAEA,GAACA,IAA+BA;gCAC3CA,OAAOA,EAAEA,EAAEA,GAACA,KAA+BA;gCAC3CA,KAAKA,EAAEA,EAAEA,GAACA,OAA6BA;gCACvCA,IAAIA,EAAEA,EAAEA,GAACA,QAA4BA;6BACrCA,CAACA,CAACA;wBACJA,CAACA;wBACDA,MAAMA,CAACA,CAACA,CAACA;oBACVA,CAACA;;;mBAAAN;gBAODA,+BAAQA,GAARA,UAASA,KAAcA;oBAEtBO,MAAMA,CAACA,kBAAQA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;gBACtEA,CAACA;gBACFP,mBAACA;YAADA,CAACA,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":";IAIA,YAAY,CAAC;;;;;;;;;;;;YAYb;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 diff --git a/dist/system/System/Time/TimeSpan.js b/dist/system/System/Time/TimeSpan.js index e09c1df8..4740c71c 100644 --- a/dist/system/System/Time/TimeSpan.js +++ b/dist/system/System/Time/TimeSpan.js @@ -1,24 +1,17 @@ -/* - * @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(['../Types', './HowMany', './TimeUnit', './ClockTime', './TimeQuantity'], function(exports_1) { +System.register(['../Types', './TimeUnit', './ClockTime', './TimeQuantity'], function(exports_1) { + 'use strict'; 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, HowMany, TimeUnit_1, ClockTime_1, TimeQuantity_1; + var Types_1, TimeUnit_1, ClockTime_1, TimeQuantity_1; var TimeSpan, timeSpanZero; return { setters:[ function (Types_1_1) { Types_1 = Types_1_1; }, - function (HowMany_1) { - HowMany = HowMany_1; - }, function (TimeUnit_1_1) { TimeUnit_1 = TimeUnit_1_1; }, @@ -99,7 +92,7 @@ System.register(['../Types', './HowMany', './TimeUnit', './ClockTime', './TimeQu configurable: true }); return TimeSpan; - })(TimeQuantity_1.default); + }(TimeQuantity_1.default)); exports_1("default", TimeSpan); } } diff --git a/dist/system/System/Time/TimeSpan.js.map b/dist/system/System/Time/TimeSpan.js.map index 2aba0e69..120b21f3 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":["TimeSpan","TimeSpan.constructor","TimeSpan.total","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero"],"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.js b/dist/system/System/Time/TimeStamp.js index 79b6c2bf..2b27be65 100644 --- a/dist/system/System/Time/TimeStamp.js +++ b/dist/system/System/Time/TimeStamp.js @@ -1,22 +1,15 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register(['./HowMany', '../Types'], function(exports_1) { - var HowMany, Types_1; +System.register(['../Types'], function(exports_1) { + 'use strict'; + var Types_1; var TimeStamp; return { setters:[ - function (HowMany_1) { - HowMany = HowMany_1; - }, function (Types_1_1) { Types_1 = Types_1_1; }], execute: function() { TimeStamp = (function () { function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) { - // TODO: Add validation or properly carry out of range values... if (day === void 0) { day = 1; } if (hour === void 0) { hour = 0; } if (minute === void 0) { minute = 0; } @@ -38,9 +31,9 @@ System.register(['./HowMany', '../Types'], function(exports_1) { return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000); }; TimeStamp.from = function (d) { - if (!(Types_1.default.isInstanceOf(d, Date)) && Types_1.default.hasMember(d, 'toJsDate')) + if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate')) d = d.toJsDate(); - if (Types_1.default.isInstanceOf(d, Date)) { + if (d instanceof Date) { return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); } else { @@ -48,7 +41,7 @@ System.register(['./HowMany', '../Types'], function(exports_1) { } }; return TimeStamp; - })(); + }()); exports_1("default", TimeStamp); } } diff --git a/dist/system/System/Time/TimeStamp.js.map b/dist/system/System/Time/TimeStamp.js.map index 00dce4cd..6c9306b5 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":["TimeStamp","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from"],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;YAWH;gBAICA,mBACQA,IAAWA,EACXA,KAAqBA,EACrBA,GAAcA,EACdA,IAAeA,EACfA,MAAiBA,EACjBA,MAAiBA,EACjBA,WAAsBA,EACtBA,IAAeA;oBAGtBC,gEAAgEA;oBARhEA,mBAAqBA,GAArBA,OAAqBA;oBACrBA,oBAAsBA,GAAtBA,QAAsBA;oBACtBA,sBAAwBA,GAAxBA,UAAwBA;oBACxBA,sBAAwBA,GAAxBA,UAAwBA;oBACxBA,2BAA6BA,GAA7BA,eAA6BA;oBAC7BA,oBAAsBA,GAAtBA,QAAsBA;oBAPfA,SAAIA,GAAJA,IAAIA,CAAOA;oBACXA,UAAKA,GAALA,KAAKA,CAAgBA;oBACrBA,QAAGA,GAAHA,GAAGA,CAAWA;oBACdA,SAAIA,GAAJA,IAAIA,CAAWA;oBACfA,WAAMA,GAANA,MAAMA,CAAWA;oBACjBA,WAAMA,GAANA,MAAMA,CAAWA;oBACjBA,gBAAWA,GAAXA,WAAWA,CAAWA;oBACtBA,SAAIA,GAAJA,IAAIA,CAAWA;oBAKtBA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,CAACA;gBAEDD,4BAAQA,GAARA;oBAECE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,MAAMA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,CAACA,CAACA,IAAIA,GAACA,KAA6BA,CAACA,CAACA;gBAC3HA,CAACA;gBAEMF,cAAIA,GAAXA,UAAYA,CAAgBA;oBAE3BG,EAAEA,CAACA,CAACA,CAACA,CAACA,eAAIA,CAACA,YAAYA,CAAOA,CAACA,EAACA,IAAIA,CAACA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAACA,UAAUA,CAACA,CAACA;wBACtEA,CAACA,GAAeA,CAAEA,CAACA,QAAQA,EAAEA,CAACA;oBAC/BA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,YAAYA,CAAOA,CAACA,EAACA,IAAIA,CAACA,CAACA,CACnCA,CAACA;wBACAA,MAAMA,CAACA,IAAIA,SAASA,CACnBA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,OAAOA,EAAEA,EACXA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,eAAeA,EAAEA,CACnBA,CAACA;oBACHA,CAACA;oBACDA,IAAIA,CACJA,CAACA;wBACAA,MAAMA,KAAKA,CAACA,oBAAoBA,CAACA,CAACA;oBACnCA,CAACA;gBACFA,CAACA;gBACFH,gBAACA;YAADA,CAACA,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":";IAIA,YAAY,CAAC;;;;;;;;;YAWb;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 diff --git a/dist/system/System/Time/TimeUnit.js b/dist/system/System/Time/TimeUnit.js index 9bcab3ee..7f139c83 100644 --- a/dist/system/System/Time/TimeUnit.js +++ b/dist/system/System/Time/TimeUnit.js @@ -1,16 +1,8 @@ -/* - * @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(['./HowMany'], function(exports_1) { - var HowMany; +System.register([], function(exports_1) { + "use strict"; var TimeUnit; return { - setters:[ - function (HowMany_1) { - HowMany = HowMany_1; - }], + setters:[], execute: function() { (function (TimeUnit) { TimeUnit[TimeUnit["Ticks"] = 0] = "Ticks"; diff --git a/dist/system/System/Time/TimeUnit.js.map b/dist/system/System/Time/TimeUnit.js.map index 4d3697f2..a0328096 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":["TimeUnit","TimeUnit.toMilliseconds","TimeUnit.fromMilliseconds","TimeUnit.from","TimeUnit.assertValid"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TimeUnit.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnit.ts"],"names":[],"mappings":";;;;;;YAUA,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 diff --git a/dist/system/System/Time/TimeUnitValue.js b/dist/system/System/Time/TimeUnitValue.js index a11186ed..3e1dc98e 100644 --- a/dist/system/System/Time/TimeUnitValue.js +++ b/dist/system/System/Time/TimeUnitValue.js @@ -1,8 +1,5 @@ -/* - * @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) { + 'use strict'; 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; } @@ -61,7 +58,7 @@ System.register(['./TimeUnit', './TimeQuantity'], function(exports_1) { return new TimeUnitValue(value, units); }; return TimeUnitValue; - })(TimeQuantity_1.default); + }(TimeQuantity_1.default)); exports_1("default", TimeUnitValue); } } diff --git a/dist/system/System/Time/TimeUnitValue.js.map b/dist/system/System/Time/TimeUnitValue.js.map index 1afb13b9..859e041f 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":["getUnitQuantityFrom","TimeUnitValue","TimeUnitValue.constructor","TimeUnitValue.value","TimeUnitValue.getTotalMilliseconds","TimeUnitValue.units","TimeUnitValue.to","TimeUnitValue.from"],"mappings":"AAAA;;;GAGG;;;;;;;;;IA2DH,6BAA6B,CAAe,EAAE,KAAc;QAE3DA,MAAMA,CAACA,kBAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;IACnEA,CAACA;;;;;;;;;;YAjDD;gBAC4BC,iCAAYA;gBAGvCA,uBAAYA,KAA0BA,EAAUA,MAAeA;oBAE9DC,kBAAMA,OAAMA,CAACA,KAAKA,CAACA,IAAEA,QAAQA;0BAClBA,KAAKA;0BACbA,mBAAmBA,CAAgBA,KAAKA,EAAEA,MAAMA,CAACA,CAACA,CAACA;oBAJPA,WAAMA,GAANA,MAAMA,CAASA;oBAK9DA,kBAAQA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA;gBAC9BA,CAACA;gBAEDD,sBAAIA,gCAAKA;yBAATA;wBAECE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;oBACvBA,CAACA;yBAEDF,UAAUA,CAAQA;wBAEjBE,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;wBACnBA,IAAIA,CAACA,SAASA,GAAGA,CAACA,CAACA;oBACpBA,CAACA;;;mBANAF;gBAQDA,4CAAoBA,GAApBA;oBAECG,MAAMA,CAACA,kBAAQA,CAACA,cAAcA,CAACA,IAAIA,CAACA,SAASA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAC7DA,CAACA;gBAGDH,sBAAIA,gCAAKA;yBAATA;wBAECI,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA;oBACpBA,CAACA;;;mBAAAJ;gBAEDA,0BAAEA,GAAFA,UAAGA,KAA2BA;oBAA3BK,qBAA2BA,GAA3BA,QAAiBA,IAAIA,CAACA,KAAKA;oBAE7BA,MAAMA,CAACA,aAAaA,CAACA,IAAIA,CAACA,IAAIA,EAACA,KAAKA,CAACA,CAACA;gBACvCA,CAACA;gBAEML,kBAAIA,GAAXA,UAAYA,KAA0BA,EAAEA,KAAsCA;oBAAtCM,qBAAsCA,GAAtCA,QAAiBA,kBAAQA,CAACA,YAAYA;oBAE7EA,MAAMA,CAACA,IAAIA,aAAaA,CAACA,KAAKA,EAAEA,KAAKA,CAACA,CAACA;gBACxCA,CAACA;gBAEFN,oBAACA;YAADA,CAACA,AA5CD,EAC4B,sBAAY,EA2CvC;YA5CD,mCA4CC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeUnitValue.js","sourceRoot":"","sources":["../../../../source/System/Time/TimeUnitValue.ts"],"names":[],"mappings":";IAIA,YAAY,CAAC;;;;;;;;IA2Db,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 diff --git a/dist/system/System/Types.js b/dist/system/System/Types.js index d792e903..834f3124 100644 --- a/dist/system/System/Types.js +++ b/dist/system/System/Types.js @@ -1,15 +1,10 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { - var _BOOLEAN, _NUMBER, _STRING, _OBJECT, _UNDEFINED, _FUNCTION, typeInfoRegistry, TypeInfo, Type; + 'use strict'; + var VOID0, _BOOLEAN, _NUMBER, _STRING, _OBJECT, _UNDEFINED, _FUNCTION, typeInfoRegistry, TypeInfo, Type; return { setters:[], execute: function() { - /// - /// - _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof undefined, _FUNCTION = typeof function () { }; + VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }; typeInfoRegistry = {}; TypeInfo = (function () { function TypeInfo(target) { @@ -83,7 +78,7 @@ System.register([], function(exports_1) { return info; }; return TypeInfo; - })(); + }()); exports_1("TypeInfo", TypeInfo); (function (Type) { Type.BOOLEAN = _BOOLEAN; @@ -97,7 +92,8 @@ System.register([], function(exports_1) { } Type.isBoolean = isBoolean; function isNumber(value, allowNaN) { - if (allowNaN === void 0) { allowNaN = true; } + if (allowNaN === VOID0) + allowNaN = true; return typeof value === _NUMBER && (allowNaN || !isNaN(value)); } Type.isNumber = isNumber; @@ -147,12 +143,8 @@ System.register([], function(exports_1) { return hasMember(instance, property) && typeof (instance[property]) === type; } Type.hasMemberOfType = hasMemberOfType; - function isInstanceOf(instance, type) { - return (instance) instanceof (type); - } - Type.isInstanceOf = isInstanceOf; function isArrayLike(instance) { - return (instance) instanceof (Array) || hasMember(instance, "length"); + return instance instanceof Array || hasMember(instance, "length"); } Type.isArrayLike = isArrayLike; })(Type || (Type = {})); diff --git a/dist/system/System/Types.js.map b/dist/system/System/Types.js.map index 640c8418..865b4da6 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":["TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isInstanceOf","Type.isArrayLike"],"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.js b/dist/system/System/Uri/HostNameType.js index 673d7fd4..5e43ae09 100644 --- a/dist/system/System/Uri/HostNameType.js +++ b/dist/system/System/Uri/HostNameType.js @@ -1,9 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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 - */ System.register([], function(exports_1) { + "use strict"; var UriHostNameType; return { setters:[], diff --git a/dist/system/System/Uri/HostNameType.js.map b/dist/system/System/Uri/HostNameType.js.map index c7e50a91..14af2ef7 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":["UriHostNameType"],"mappings":"AAAA;;;;GAIG;;;;;;YAGH,WAAK,eAAe;gBAInBA,uDAAKA,CAAAA;gBAKLA,mDAAGA,CAAAA;gBAKHA,qDAAIA,CAAAA;gBAKJA,qDAAIA,CAAAA;gBAKJA,2DAAOA,CAAAA;YACRA,CAACA,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":";;;;;;YAOA,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 diff --git a/dist/system/System/Uri/QueryBuilder.js b/dist/system/System/Uri/QueryBuilder.js index 8759ec22..d235a526 100644 --- a/dist/system/System/Uri/QueryBuilder.js +++ b/dist/system/System/Uri/QueryBuilder.js @@ -1,8 +1,5 @@ -/* - * @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'], function(exports_1) { + 'use strict'; 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; } @@ -28,13 +25,21 @@ System.register(['../Types', './QueryParams', '../Collections/Dictionaries/Order function QueryBuilder(query, decodeValues) { if (decodeValues === void 0) { decodeValues = true; } _super.call(this); + this.importQuery(query, decodeValues); + } + QueryBuilder.prototype.importQuery = function (query, decodeValues) { + if (decodeValues === void 0) { decodeValues = true; } if (Types_1.default.isString(query)) { this.importFromString(query, decodeValues); } + else if (Array.isArray(query)) { + this.importPairs(query); + } else { this.importMap(query); } - } + return this; + }; QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } @@ -59,8 +64,8 @@ System.register(['../Types', './QueryParams', '../Collections/Dictionaries/Order QueryBuilder.prototype.encode = function (prefixIfNotEmpty) { var entries = []; var keys = this.keys; - for (var _i = 0; _i < keys.length; _i++) { - var k = keys[_i]; + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var k = keys_1[_i]; var value = this.getValue(k); for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) { var v = _b[_a]; @@ -75,7 +80,7 @@ System.register(['../Types', './QueryParams', '../Collections/Dictionaries/Order return this.encode(); }; return QueryBuilder; - })(OrderedStringKeyDictionary_1.default); + }(OrderedStringKeyDictionary_1.default)); exports_1("default", QueryBuilder); } } diff --git a/dist/system/System/Uri/QueryBuilder.js.map b/dist/system/System/Uri/QueryBuilder.js.map index 67651955..ba454bc2 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":["QueryBuilder","QueryBuilder.constructor","QueryBuilder.importFromString","QueryBuilder.init","QueryBuilder.encode","QueryBuilder.toString"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../source/System/Uri/QueryBuilder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Uri/QueryParams.js b/dist/system/System/Uri/QueryParams.js index a4f91c55..47b54562 100644 --- a/dist/system/System/Uri/QueryParams.js +++ b/dist/system/System/Uri/QueryParams.js @@ -1,27 +1,16 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -System.register(['../Types', '../Serialization/Utility'], function(exports_1) { - var Types_1, Serialization; +System.register(['../Types', '../Serialization/Utility', '../KeyValueExtract'], function(exports_1) { + 'use strict'; + var Types_1, Serialization, KeyValueExtract_1; var ENTRY_SEPARATOR, KEY_VALUE_SEPARATOR, Separator; function encode(values, prefixIfNotEmpty) { if (!values) return ''; - var entries = []; + var entries; if (Array.isArray(values)) { - for (var _i = 0; _i < values.length; _i++) { - var kvp = values[_i]; - if (kvp) - entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value)); - } + entries = values.map(function (kvp) { return KeyValueExtract_1.default(kvp, function (key, value) { return key + KEY_VALUE_SEPARATOR + encodeValue(value); }); }); } else { - var keys = Object.keys(values); - for (var _a = 0; _a < keys.length; _a++) { - var k = keys[_a]; - entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k])); - } + entries = Object.keys(values).map(function (key) { return key + KEY_VALUE_SEPARATOR + encodeValue(values[key]); }); } return (entries.length && prefixIfNotEmpty ? '?' : '') + entries.join(ENTRY_SEPARATOR); @@ -49,8 +38,8 @@ System.register(['../Types', '../Serialization/Utility'], function(exports_1) { if (decodeValues === void 0) { decodeValues = true; } if (query && (query = query.replace(/^\s*\?+/, ''))) { var entries = query.split(ENTRY_SEPARATOR); - for (var _i = 0; _i < entries.length; _i++) { - var entry = entries[_i]; + for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { + var entry = entries_1[_i]; var si = entry.indexOf(KEY_VALUE_SEPARATOR); if (si != -1) { var key = entry.substring(0, si); @@ -97,6 +86,9 @@ System.register(['../Types', '../Serialization/Utility'], function(exports_1) { }, function (Serialization_1) { Serialization = Serialization_1; + }, + function (KeyValueExtract_1_1) { + KeyValueExtract_1 = KeyValueExtract_1_1; }], execute: function() { ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; diff --git a/dist/system/System/Uri/QueryParams.js.map b/dist/system/System/Uri/QueryParams.js.map index ced8aec0..91c8c80c 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":["encode","encodeValue","isUriComponentFormattable","parse","parseToMap","parseToArray","Separator"],"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.js b/dist/system/System/Uri/Scheme.js index 86c07af4..1246d2ea 100644 --- a/dist/system/System/Uri/Scheme.js +++ b/dist/system/System/Uri/Scheme.js @@ -1,9 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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 - */ System.register([], function(exports_1) { + "use strict"; var UriScheme, PIPE, TCP; return { setters:[], diff --git a/dist/system/System/Uri/Scheme.js.map b/dist/system/System/Uri/Scheme.js.map index a36f3b15..1cbca7a8 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":["UriScheme"],"mappings":"AAAA;;;;GAIG;;mBAkFG,IAAI,EACJ,GAAG;;;;YAhFT,WAAK,SAAS;gBAIbA,yCAAIA,CAAAA;gBAMJA,uCAAGA,CAAAA;gBAMHA,6CAAMA,CAAAA;gBAMNA,yCAAIA,CAAAA;gBAMJA,2CAAKA,CAAAA;gBAMLA,yCAAIA,CAAAA;gBAMJA,6CAAMA,CAAAA;gBAMNA,yCAAIA,CAAAA;gBAMJA,uCAAGA,CAAAA;gBAMHA,yCAAIA,CAAAA;gBAMJA,0CAAIA,CAAAA;gBAMJA,8CAAMA,CAAAA;gBAKNA,0CAAIA,CAAAA;YACLA,CAACA,EA5EI,SAAS,KAAT,SAAS,QA4Eb;YAGK,IAAI,GAAG,UAAU,CAAC;YAClB,GAAG,GAAG,SAAS,CAAC;YAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;YAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;YAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,oBAAe,SAAS,EAAC"} \ No newline at end of file +{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../../source/System/Uri/Scheme.ts"],"names":[],"mappings":";;mBAqFM,IAAI,EACJ,GAAG;;;;YAhFT,WAAK,SAAS;gBAIb,yCAAI,CAAA;gBAMJ,uCAAG,CAAA;gBAMH,6CAAM,CAAA;gBAMN,yCAAI,CAAA;gBAMJ,2CAAK,CAAA;gBAML,yCAAI,CAAA;gBAMJ,6CAAM,CAAA;gBAMN,yCAAI,CAAA;gBAMJ,uCAAG,CAAA;gBAMH,yCAAI,CAAA;gBAMJ,0CAAI,CAAA;gBAMJ,8CAAM,CAAA;gBAKN,0CAAI,CAAA;YACL,CAAC,EA5EI,SAAS,KAAT,SAAS,QA4Eb;YAGK,IAAI,GAAG,UAAU,CAAC;YAClB,GAAG,GAAG,SAAS,CAAC;YAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;YAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;YAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,oBAAe,SAAS,EAAC"} \ No newline at end of file diff --git a/dist/system/System/Uri/Uri.js b/dist/system/System/Uri/Uri.js index 7a21b310..e73873ca 100644 --- a/dist/system/System/Uri/Uri.js +++ b/dist/system/System/Uri/Uri.js @@ -1,15 +1,12 @@ -/* - * @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 - */ System.register(['../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Scheme', '../Exceptions/ArgumentException', '../Exceptions/ArgumentOutOfRangeException'], function(exports_1) { + 'use strict'; var Types_1, QueryParams, Utility_1, Scheme_1, ArgumentException_1, ArgumentOutOfRangeException_1; - var Uri, SLASH, SLASH2, QM, HASH, EMPTY, AT; + var Uri, Fields, SLASH, SLASH2, QM, HASH, EMPTY, AT; function copyUri(from, to) { - if (to === void 0) { to = {}; } var i = 0, field; - while (field = Uri.Fields[i++]) { + if (!to) + to = {}; + while (field = Fields[i++]) { var value = from[field]; if (value) to[field] = value; @@ -63,8 +60,6 @@ System.register(['../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Sc + (formatQuery(query) || EMPTY); } function uriToString(uri) { - // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment] - // {scheme}{authority}{path}{query}{fragment} var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment); return EMPTY + ((scheme && (scheme + ':')) || EMPTY) @@ -186,6 +181,11 @@ System.register(['../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Sc Uri.prototype.copyTo = function (map) { return copyUri(this, map); }; + Uri.prototype.updateQuery = function (query) { + var map = this.toMap(); + map.query = query; + return Uri.from(map); + }; Uri.prototype.getAbsoluteUri = function () { return uriToString(this); }; @@ -209,7 +209,7 @@ System.register(['../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Sc return this.absoluteUri; }; Uri.toString = function (uri) { - return Types_1.default.isInstanceOf(uri, Uri) + return uri instanceof Uri ? uri.absoluteUri : uriToString(uri); }; @@ -217,22 +217,20 @@ System.register(['../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Sc return getAuthority(uri); }; return Uri; - })(); - (function (Uri) { - (function (Fields) { - Fields[Fields["scheme"] = 0] = "scheme"; - Fields[Fields["userInfo"] = 1] = "userInfo"; - Fields[Fields["host"] = 2] = "host"; - Fields[Fields["port"] = 3] = "port"; - Fields[Fields["path"] = 4] = "path"; - Fields[Fields["query"] = 5] = "query"; - Fields[Fields["fragment"] = 6] = "fragment"; - })(Uri.Fields || (Uri.Fields = {})); - var Fields = Uri.Fields; - Object.freeze(Fields); - })(Uri || (Uri = {})); + }()); + exports_1("default", Uri); + (function (Fields) { + Fields[Fields["scheme"] = 0] = "scheme"; + Fields[Fields["userInfo"] = 1] = "userInfo"; + Fields[Fields["host"] = 2] = "host"; + Fields[Fields["port"] = 3] = "port"; + Fields[Fields["path"] = 4] = "path"; + Fields[Fields["query"] = 5] = "query"; + Fields[Fields["fragment"] = 6] = "fragment"; + })(Fields || (Fields = {})); + exports_1("Fields", Fields); + Object.freeze(Fields); SLASH = '/', SLASH2 = '//', QM = '?', 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 ed074f12..dffc870e 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":["copyUri","getScheme","getAuthority","formatQuery","formatFragment","getPathAndQuery","uriToString","tryParse","Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","Uri.pathSegments","Uri.toMap","Uri.toString","Uri.Fields"],"mappings":"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,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,QAAQA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;YACnCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,EAAEA,CAACA,CAACA;QACpBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,KAAKA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;YAChCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QACxBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,IAAIA,MAAMA,GAAGA,cAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA;YACjDA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,IAAIA,2BAAiBA,CAACA,KAAKA,EAACA,iCAAiCA,CAACA,CAACA;YAEvEA,MAAMA,GAAGA,cAAIA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,EAACA,KAAKA,CAACA,CAACA,CAACA;YACvCA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,IAAIA,SAASA,CAACA;YAEpCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAC5BA,CAACA;QAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA;QACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA;YAC5CA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,EAAEA,CAACA,CAACA;QACpBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,QAAQA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,IAAIA,SAASA,CAACA;YACnDA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAC5BA,CAACA;QAGDA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;QACrBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA,cAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChDA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACdA,MAAMA,CAACA,IAAIA,2BAAiBA,CAACA,KAAKA,EAACA,mBAAmBA,CAACA,CAACA;YAEzDA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACnBA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAEDA,GAAGA,GAAGA,cAAIA,CAACA,GAAGA,CAACA,CAACA;QAChBA,EAAEA,CAAAA,CAACA,GAAGA,CAACA;YACNA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA;QAEnBA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAGrBA,MAAMA,CAACA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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/applyMixins.js b/dist/system/System/Utility/applyMixins.js index 390570d3..465e07eb 100644 --- a/dist/system/System/Utility/applyMixins.js +++ b/dist/system/System/Utility/applyMixins.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + "use strict"; function applyMixins(derivedConstructor, baseConstructors) { baseConstructors .forEach(function (bc) { diff --git a/dist/system/System/Utility/applyMixins.js.map b/dist/system/System/Utility/applyMixins.js.map index facc229a..b1edb9cf 100644 --- a/dist/system/System/Utility/applyMixins.js.map +++ b/dist/system/System/Utility/applyMixins.js.map @@ -1 +1 @@ -{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["../../../../source/System/Utility/applyMixins.ts"],"names":["applyMixins"],"mappings":"AAAA;;;GAGG;;IAEH,qBAAoC,kBAAsB,EAAE,gBAAsB;QAEjFA,gBAAgBA;aACdA,OAAOA,CAACA,UAAAA,EAAEA;YAEVA,MAAMA,CAACA,mBAAmBA,CAACA,EAAEA,CAACA,SAASA,CAACA,CAACA,OAAOA,CAC9CA,UAAAA,IAAIA;gBAEJA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,CAACA,GAAGA,EAAEA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;YACzDA,CAACA,CACDA,CAACA;QACHA,CAACA,CACDA,CAACA;IACHA,CAACA;IAbD,iCAaC,CAAA"} \ No newline at end of file +{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["../../../../source/System/Utility/applyMixins.ts"],"names":[],"mappings":";;IAKA,qBAAoC,kBAAsB,EAAE,gBAAsB;QAEjF,gBAAgB;aACd,OAAO,CAAC,UAAA,EAAE;YAEV,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAC9C,UAAA,IAAI;gBAEJ,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC,CACD,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC;IAbD,iCAaC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Utility/clone.js b/dist/system/System/Utility/clone.js index 9e018dbb..c3406411 100644 --- a/dist/system/System/Utility/clone.js +++ b/dist/system/System/Utility/clone.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register(['../Types'], function(exports_1) { + "use strict"; var Types_1; function clone(source, depth) { if (depth === void 0) { depth = 0; } diff --git a/dist/system/System/Utility/clone.js.map b/dist/system/System/Utility/clone.js.map index f9366591..c21f3af0 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":["clone"],"mappings":"AAAA;;;GAGG;;;IAIH,eAA8B,MAAU,EAAE,KAAgB;QAAhBA,qBAAgBA,GAAhBA,SAAgBA;QAEzDA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;YACVA,MAAMA,CAACA,MAAMA,CAACA;QAGfA,EAAEA,CAAAA,CAACA,CAACA,eAAIA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;YAACA,MAAMA,CAACA,MAAMA,CAACA;QAEzCA,IAAIA,MAAUA,CAACA;QACfA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CACzBA,CAACA;YACAA,MAAMA,GAASA,MAAOA,CAACA,KAAKA,EAAEA,CAACA;YAC/BA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA,CACXA,CAACA;gBACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EACnCA,CAACA;oBACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;gBACzCA,CAACA;YACFA,CAACA;QACFA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,MAAMA,GAAGA,EAAEA,CAACA;YACZA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;gBAACA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CAChCA,CAACA;oBAEAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;gBACzCA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IAEfA,CAACA;IAhCD,2BAgCC,CAAA"} \ No newline at end of file +{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../source/System/Utility/clone.ts"],"names":[],"mappings":";;;IAOA,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 diff --git a/dist/system/System/Utility/shallowCopy.js b/dist/system/System/Utility/shallowCopy.js index 90df52d0..20b821c4 100644 --- a/dist/system/System/Utility/shallowCopy.js +++ b/dist/system/System/Utility/shallowCopy.js @@ -1,8 +1,5 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + "use strict"; function shallowCopy(source, target) { if (target === void 0) { target = {}; } if (target) { diff --git a/dist/system/System/Utility/shallowCopy.js.map b/dist/system/System/Utility/shallowCopy.js.map index d5deb567..c9d1c610 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":["shallowCopy"],"mappings":"AAAA;;;GAGG;;IAEH,qBAAoC,MAAU,EAAE,MAAe;QAAfA,sBAAeA,GAAfA,WAAeA;QAE9DA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;YACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CACpBA,CAACA;gBAEAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;YACvBA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAZD,iCAYC,CAAA"} \ No newline at end of file +{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["../../../../source/System/Utility/shallowCopy.ts"],"names":[],"mappings":";;IAKA,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 diff --git a/dist/system/System/Validation/ValidationResult.js b/dist/system/System/Validation/ValidationResult.js index 664582aa..af21c98b 100644 --- a/dist/system/System/Validation/ValidationResult.js +++ b/dist/system/System/Validation/ValidationResult.js @@ -1,14 +1,9 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ System.register([], function(exports_1) { + 'use strict'; var valid, ValidationResult; return { setters:[], execute: function() { - /// - /// valid = new ValidationResult(true); ValidationResult = (function () { function ValidationResult(isValid, message, data) { @@ -38,7 +33,7 @@ System.register([], function(exports_1) { return new ValidationResult(false, message, data); }; return ValidationResult; - })(); + }()); exports_1("default", ValidationResult); } } diff --git a/dist/system/System/Validation/ValidationResult.js.map b/dist/system/System/Validation/ValidationResult.js.map index 5a208c76..231b2a9c 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":["ValidationResult","ValidationResult.constructor","ValidationResult.equals","ValidationResult.valid","ValidationResult.invalid"],"mappings":"AAAA;;;GAGG;;QAKG,KAAK;;;;YAHX,8CAA8C;YAC9C,yCAAyC;YAEnC,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAKzC;gBAOCA,0BACQA,OAAuBA,EACvBA,OAAqBA,EACrBA,IAAeA;oBAFtBC,uBAA8BA,GAA9BA,eAA8BA;oBAC9BA,uBAA4BA,GAA5BA,cAA4BA;oBAC5BA,oBAAsBA,GAAtBA,WAAsBA;oBAFfA,YAAOA,GAAPA,OAAOA,CAAgBA;oBACvBA,YAAOA,GAAPA,OAAOA,CAAcA;oBACrBA,SAAIA,GAAJA,IAAIA,CAAWA;oBAItBA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,CAACA;gBAKDD,iCAAMA,GAANA,UAAOA,KAAuBA;oBAE7BE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACbA,MAAMA,CAACA,CAACA,CAACA,OAAOA,KAAGA,KAAKA,CAACA,OAAOA;2BAC5BA,CAACA,CAACA,OAAOA,IAAEA,CAACA,CAACA,OAAOA;2BACpBA,CAACA,CAACA,IAAIA,IAAEA,CAACA,CAACA,IAAIA,CAACA;gBACpBA,CAACA;gBAODF,sBAAWA,yBAAKA;yBAAhBA;wBACCG,MAAMA,CAACA,KAAKA,CAACA;oBACdA,CAACA;;;mBAAAH;gBAKMA,wBAAOA,GAAdA,UACCA,OAAcA,EACdA,IAAeA;oBAAfI,oBAAeA,GAAfA,WAAeA;oBAEfA,MAAMA,CAACA,IAAIA,gBAAgBA,CAACA,KAAKA,EAAEA,OAAOA,EAAEA,IAAIA,CAACA,CAACA;gBACnDA,CAACA;gBACFJ,uBAACA;YAADA,CAACA,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":";IAIA,YAAY,CAAC;QAKP,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.js b/dist/umd.min/System.Linq/Linq.js index 150b1694..65da1c69 100644 --- a/dist/umd.min/System.Linq/Linq.js +++ b/dist/umd.min/System.Linq/Linq.js @@ -1,8 +1,3 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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,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(t,e)}(["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/Utility","../System/Disposable/DisposableBase","../System/Exception","../System/Disposable/ObjectDisposedException","../System/Collections/Sorting/KeySortedContext"],function(t,e){function n(t,e){void 0===e&&(e=null);var r=new g["default"](e,t.keySelector,t.order,t.comparer);return t.parent?n(t.parent,r):r}function r(t,e){if(void 0===e&&(e="Enumerable"),t)throw new w["default"](e)}var o=t("../System/Compare"),u=t("../System/Collections/Array/Compare"),i=t("../System/Collections/Array/Utility"),a=t("../System/Collections/Enumeration/Enumerator"),f=t("../System/Types"),c=t("../System/Integer"),s=t("../System/Functions"),l=t("../System/Collections/Enumeration/ArrayEnumerator"),p=t("../System/Collections/Enumeration/EnumeratorBase"),d=t("../System/Collections/Dictionaries/Dictionary"),y=t("../System/Collections/Queue"),v=t("../System/Disposable/Utility"),h=t("../System/Disposable/DisposableBase"),m=t("../System/Exception"),w=t("../System/Disposable/ObjectDisposedException"),g=t("../System/Collections/Sorting/KeySortedContext"),E=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}(s["default"]),N=new E;Object.freeze(N);var x=function(t){function e(){t.call(this,"Unsupported enumerable.")}return __extends(e,t),e}(m["default"]),D=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e}return __extends(e,t),e.fromArray=function(t){return new I(t)},e.from=function(t){if(f["default"].isObject(t)){if(f["default"].isInstanceOf(t,e))return t;if(Array.isArray(t))return new I(t);if(a.isEnumerable(t))return new e(function(){return t.getEnumerator()});if(f["default"].isArrayLike(t))return new I(t)}throw new x},e.toArray=function(t){if(f["default"].isObject(t)){if(Array.isArray(t))return t.slice();if(f["default"].isArrayLike(t)&&(t=new I(t)),f["default"].isInstanceOf(t,e))return t.toArray();if(a.isEnumerable(t)){var n=[];return a.forEach(t.getEnumerator(),function(t,e){n[e]=t}),n}}throw new x},e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.choice=function(t){return new e(function(){return new p["default"](null,function(e){return e.yieldReturn(t[c["default"].random(t.length)])})})},e.cycle=function(t){return new e(function(){var e=0;return new p["default"](function(){e=0},function(n){return e>=t.length&&(e=0),n.yieldReturn(t[e++])})})},e.empty=function(){return new e(function(){return new p["default"](null,N.False)})},e.repeat=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e=n,r=0;return new p["default"](function(){r=0},function(n){return r++=n)return e.empty();if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e,o=n,u=0;return new p["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i})}:function(){var e;return new p["default"](function(){e=t},function(t){var n=e;return e+=r,t.yieldReturn(n)})})},e.rangeDown=function(t,n,r){return void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.range(t,1/0,n)},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.rangeDown(t,1/0,n)},e.rangeTo=function(t,n,r){if(void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),!isFinite(t))throw new Error("Must have a valid 'start' value.");if(isNaN(n))throw new Error("Must have a valid 'to' value.");if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return r=Math.abs(r),isFinite(n)?new e(function(){var e;return n>t?new p["default"](function(){e=t},function(t){var o=n>=e&&t.yieldReturn(e);return o&&(e+=r),o}):new p["default"](function(){e=t},function(t){var o=e>=n&&t.yieldReturn(e);return o&&(e-=r),o})}):e.range(t,1/0,n>t?+r:-r)},e.matches=function(t,n,r){void 0===r&&(r="");var o=typeof t;if(o!=f["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+o+"'.");return f["default"].isInstanceOf(n,RegExp)&&(r+=n.ignoreCase?"i":"",r+=n.multiline?"m":"",n=n.source),-1===r.indexOf("g")&&(r+="g"),new e(function(){var e;return new p["default"](function(){e=new RegExp(n,r)},function(n){var r=e.exec(t);return null!==r?n.yieldReturn(r):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e=n,r=0;return new p["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))})}:function(){var e=0;return new p["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))})})},e.unfold=function(t,n,r){return void 0===r&&(r=!1),new e(function(){var e,o,u=0;return new p["default"](function(){u=0,e=t,o=!r},function(t){var r=u++;return o?o=!1:e=n(e,r),t.yieldReturn(e)})})},e.defer=function(t){return new e(function(){var e;return new p["default"](function(){e=t().getEnumerator()},function(t){return e.moveNext()&&t.yieldReturn(e.current)},function(){v.dispose(e)})})},e.forEach=function(t,e){t&&v.using(a.from(t),function(t){a.forEach(t,e)})},e.map=function(t,e){return t&&v.using(a.from(t),function(t){var n=[];return a.forEach(t,function(t,r){n[r]=e(t)}),n})},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(N.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(N.Lesser)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=0;v.using(e.getEnumerator(),function(r){for(;e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){var e=[];return t?this.where(t).toArray():(this.forEach(function(t,n){e[n]=t}),e)},e.prototype.asEnumerable=function(){var t=this;return new e(function(){return t.getEnumerator()})},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=N.Identity),void 0===n&&(n=N.Identity);var r=new d["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);void 0!==i?i.push(u):r.addByKeyValue(o,[u])}),new _(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r){n[t(r)]=e(r)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=N.Identity);var r=new d["default"](n);return this.forEach(function(n){return r.addByKeyValue(t(n),e(n))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=N.Identity),this.select(e).toArray().join(t)},e.prototype.doAction=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var i=t(e.current,u++);if(i===!1||0===i)return n.yieldBreak();if(2!==i)return n.yieldReturn(e.current)}return!1},function(){v.dispose(e)})},function(){o=!0})},e.prototype.force=function(t){void 0===t&&(t=0),this.throwIfDisposed(),this.doAction(function(e){return t})},e.prototype.skip=function(t){var n=this;if(n.throwIfDisposed(),!t||isNaN(t)||0>t)return n;if(!isFinite(t))return e.empty();c["default"].assert(t,"count");var r=t;return this.doAction(function(t,e){return r>e?2:1})},e.prototype.skipWhile=function(t){this.throwIfDisposed();var e=!0;return this.doAction(function(n,r){return e&&(e=t(n,r)),e?2:1})},e.prototype.take=function(t){if(!t||isNaN(t)||0>t)return e.empty();var n=this;if(n.throwIfDisposed(),!isFinite(t))return n;c["default"].assert(t,"count");var r=t;return n.doAction(function(t,e){return r>e})},e.prototype.takeWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?1:0})},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!e)return this.doAction(function(e,n){return t(e,n)?0:1});var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!t||isNaN(t)||0>=t)return n;if(!isFinite(t))return e.empty();c["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new p["default"](function(){t=n.getEnumerator(),e=new y["default"]},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.takeFromLast=function(t){if(!t||isNaN(t)||0>=t)return e.empty();var n=this;return isFinite(t)?(c["default"].assert(t,"count"),n.reverse().take(t)):n.reverse()},e.prototype.traverseBreadthFirst=function(t,n){var r=this;return new e(function(){var o,u,i,a=0;return new p["default"](function(){a=0,u=[],i=0,o=r.getEnumerator()},function(r){for(;;){if(o.moveNext())return u[i++]=o.current,r.yieldReturn(n(o.current,a));if(!i)return r.yieldBreak();var f=e.fromArray(u).selectMany(t);if(!f.any())return r.yieldBreak();a++,u=[],i=0,o.dispose(),o=f.getEnumerator()}},function(){v.dispose(o),u.length=0})})},e.prototype.traverseDepthFirst=function(t,n){var r=this;return new e(function(){var e,o,u=[];return new p["default"](function(){e=r.getEnumerator(),o=0},function(r){for(;;){if(e.moveNext()){var i=n(e.current,o);return u[o++]=e,e=t(e.current).getEnumerator(),r.yieldReturn(i)}if(0==o)return!1;e.dispose(),e=u[--o],u.length=o}},function(){try{v.dispose(e)}finally{v.disposeThese(u)}})})},e.prototype.flatten=function(){var t=this;return new e(function(){var n,r=null;return new p["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(null!=r){if(r.moveNext())return t.yieldReturn(r.current);r=null}if(n.moveNext()){var o=n.current;if(Array.isArray(o)){r.dispose(),r=e.fromArray(o).selectMany(N.Identity).flatten().getEnumerator();continue}return t.yieldReturn(n.current)}return!1}},function(){v.dispose(n,r)})})},e.prototype.pairwise=function(t){var n=this;return new e(function(){var e;return new p["default"](function(){e=n.getEnumerator(),e.moveNext()},function(n){var r=e.current;return e.moveNext()&&n.yieldReturn(t(r,e.current))},function(){v.dispose(e)})})},e.prototype.scan=function(t,n){var r=void 0!==n,o=this;return new e(function(){var e,u,i;return new p["default"](function(){e=o.getEnumerator(),i=!0},function(o){return i?(i=!1,r?o.yieldReturn(u=n):e.moveNext()&&o.yieldReturn(u=e.current)):e.moveNext()?o.yieldReturn(u=t(u,e.current)):!1},function(){v.dispose(e)})})},e.prototype.select=function(t){var n=this,o=!n.throwIfDisposed();return t.length<2?new b(n,null,t):new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){return r(o),e.moveNext()?n.yieldReturn(t(e.current,u++)):!1},function(){v.dispose(e)})},function(){o=!0})},e.prototype.selectMany=function(t,n){var r=this;return n||(n=function(t,e){return e}),new e(function(){var e,o,u=0;return new p["default"](function(){e=r.getEnumerator(),o=void 0,u=0},function(r){if(void 0===o&&!e.moveNext())return!1;do{if(!o){var i=t(e.current,u++);if(!i)continue;o=a.from(i)}if(o.moveNext())return r.yieldReturn(n(e.current,o.current));o.dispose(),o=null}while(e.moveNext());return!1},function(){v.dispose(e,o),e=null,o=null})})},e.prototype.choose=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var i=t(e.current,u++);if(null!==i&&void 0!==i)return n.yieldReturn(i)}return!1},function(){v.dispose(e)})},function(){o=!0})},e.prototype.where=function(t){var n=this,o=!n.throwIfDisposed();return t.length<2?new S(n,t):new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();)if(t(e.current,u++))return n.yieldReturn(e.current);return!1},function(){v.dispose(e)})},function(){o=!0})},e.prototype.ofType=function(t){var e;switch(t){case Number:e=f["default"].NUMBER;break;case String:e=f["default"].STRING;break;case Boolean:e=f["default"].BOOLEAN;break;case Function:e=f["default"].FUNCTION;break;default:return this.where(function(e){return f["default"].isInstanceOf(e,t)})}return this.where(function(t){return typeof t===e})},e.prototype.except=function(t,n){var o=this,u=!o.throwIfDisposed();return new e(function(){var i,a;return new p["default"](function(){r(u),i=o.getEnumerator(),a=new d["default"](n),t&&e.forEach(t,function(t){return a.addByKeyValue(t,!0)})},function(t){for(r(u);i.moveNext();){var e=i.current;if(!a.containsKey(e))return a.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){v.dispose(i),a.clear()})},function(){u=!0})},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u,i=!0;return new p["default"](function(){r(o),e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var a=t(e.current);if(i)i=!1;else if(u===a)continue;return u=a,n.yieldReturn(e.current)}return!1},function(){v.dispose(e)})},function(){o=!0})},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,o=0;return new p["default"](function(){r(n),e=t.toArray(),o=e.length},function(t){return o>0&&t.yieldReturn(e[--o])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,o,u;return new p["default"](function(){r(n),e=t.toArray(),o=u=e.length},function(t){if(!u)return t.yieldBreak();var n=c["default"].random(u),r=e[n];return e[n]=e[--u],e[u]=null,u%32==0&&(e.length=u),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=this;e.throwIfDisposed();var n=0;return t?e.forEach(function(e,r){t(e,r)&&++n}):e.forEach(function(){++n}),n},e.prototype.all=function(t){var e=!0;return this.forEach(function(n){return t(n)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(t){var e=!1;return t?this.forEach(function(n){return e=t(n),!e}):this.forEach(function(){return e=!0,!1}),e},e.prototype.some=function(t){return this.any(t)},e.prototype.isEmpty=function(){return!this.any()},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 e?this.forEach(function(r,u){return o.areEqual(e(r),e(t),!0)?(n=u,!1):void 0}):this.forEach(function(e,r){return o.areEqual(e,t,!0)?(n=r,!1):void 0}),n},e.prototype.lastIndexOf=function(t,e){var n=-1;return e?this.forEach(function(r,u){o.areEqual(e(r),e(t),!0)&&(n=u)}):this.forEach(function(e,r){o.areEqual(e,t,!0)&&(n=r)}),n},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u;return new p["default"](function(){u=!0,r(o),e=n.getEnumerator()},function(n){return r(o),e.moveNext()?(u=!1,n.yieldReturn(e.current)):u?(u=!1,n.yieldReturn(t)):!1},function(){v.dispose(e)})})},e.prototype.zip=function(t,n){var r=this;return new e(function(){var e,o,u=0;return new p["default"](function(){u=0,e=r.getEnumerator(),o=a.from(t)},function(t){return e.moveNext()&&o.moveNext()&&t.yieldReturn(n(e.current,o.current,u++))},function(){v.dispose(e,o)})})},e.prototype.zipMultiple=function(t,n){var r=this;return t.length?new e(function(){var e,o,u,i=0;return new p["default"](function(){e=new y["default"](t),i=0,o=r.getEnumerator(),u=null},function(t){if(o.moveNext())for(;;){for(;!u;){if(!e.count)return t.yieldBreak();var r=e.dequeue();r&&(u=a.from(r))}if(u.moveNext())return t.yieldReturn(n(o.current,u.current,i++));u.dispose(),u=null}return t.yieldBreak()},function(){v.dispose(o,e)})}):e.empty()},e.prototype.join=function(t,n,r,o,u){void 0===u&&(u=N.Identity);var i=this;return new e(function(){var a,f,c=null,s=0;return new p["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,N.Identity,u)},function(t){for(;;){if(null!=c){var e=c[s++];if(void 0!==e)return t.yieldReturn(o(a.current,e));e=null,s=0}if(!a.moveNext())return t.yieldBreak();var r=n(a.current);c=f.get(r)}},function(){v.dispose(a)})})},e.prototype.groupJoin=function(t,n,r,o,u){void 0===u&&(u=N.Identity);var i=this;return new e(function(){var a,f=null;return new p["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,N.Identity,u)},function(t){return a.moveNext()&&t.yieldReturn(o(a.current,f.get(n(a.current))))},function(){v.dispose(a)})})},e.prototype.concatWith=function(t){var n=this;return new e(function(){var e,r;return new p["default"](function(){e=n.getEnumerator()},function(n){if(null!=e){if(e.moveNext())return n.yieldReturn(e.current);r=a.from(t),e.dispose(),e=null}return r.moveNext()?n.yieldReturn(r.current):!1},function(){v.dispose(e,r)})})},e.prototype.merge=function(t){var n=this;return t.length?1==t.length?n.concatWith(t[0]):new e(function(){var e,r;return new p["default"](function(){e=n.getEnumerator(),r=new y["default"](t)},function(t){for(;;){for(;!e&&r.count;)e=a.from(r.dequeue());if(e&&e.moveNext())return t.yieldReturn(e.current);{if(!e)return t.yieldBreak();e.dispose(),e=null}}},function(){v.dispose(e,r)})}):n},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var r=t,o=this;return o.throwIfDisposed(),new e(function(){var t,e,u=0,i=!1;return new p["default"](function(){u=0,t=o.getEnumerator(),e=a.from(n),i=!1},function(n){return u==r&&(i=!0,e.moveNext())?n.yieldReturn(e.current):t.moveNext()?(u++,n.yieldReturn(t.current)):!i&&e.moveNext()&&n.yieldReturn(e.current)},function(){v.dispose(t,e)})})},e.prototype.alternateMultiple=function(t){var n=this;return new e(function(){var r,o,u,i;return new p["default"](function(){i=new l["default"](e.toArray(t)),u=n.getEnumerator();var a=u.moveNext();o=a?1:0,a&&(r=u.current)},function(t){switch(o){case 0:return t.yieldBreak();case 2:if(i.moveNext())return t.yieldReturn(i.current);i.reset(),o=1}var e=r,n=u.moveNext();return o=n?2:0,n&&(r=u.current),t.yieldReturn(e)},function(){v.dispose(u,i)})})},e.prototype.alternateSingle=function(t){return this.alternateMultiple(e.make(t))},e.prototype.alternate=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");c["default"].assert(t,"size");var n,r=this;return new e(function(){var e;return new p["default"](function(){e=r.getEnumerator()},function(r){var o=i.initialize(t);for(n=0;t>n&&e.moveNext;)o[n++]=e.current;return o.length=n,n&&r.yieldReturn(o)},function(){v.dispose(e)})})},e.prototype.aggregate=function(t,e){return this.scan(t,e).lastOrDefault()},e.prototype.average=function(t){void 0===t&&(t=f["default"].numberOrNaN);var e=0,n=0,r=0;return this.forEach(function(o){var u=t(o);return isNaN(u)?(e=NaN,!1):(isFinite(u)?e+=u:n+=u>0?1:-1,void++r)}),n?n*(1/0):isNaN(e)||!r?NaN:e/r},e.prototype.max=function(){return this.aggregate(N.Greater)},e.prototype.min=function(){return this.aggregate(N.Lesser)},e.prototype.maxBy=function(t){return void 0===t&&(t=N.Identity),this.aggregate(function(e,n){return t(e)>t(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=N.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["default"].numberOrNaN);var e=1,n=!1;return this.forEach(function(r){n=!0;var o=t(r);return isNaN(o)?(e=NaN,!1):0==o?(e=0,!1):void(e*=o)}),n&&isNaN(e)?NaN:e},e.prototype.elementAt=function(t){if(isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var e=t,n=this;n.throwIfDisposed();var r=void 0,o=!1;if(n.forEach(function(t,n){return n==e?(r=t,o=!0,!1):void 0}),!o)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return r},e.prototype.elementAtOrDefault=function(t,e){if(void 0===e&&(e=null),isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var n=t,r=this;r.throwIfDisposed();var o=void 0,u=!1;return r.forEach(function(t,e){return e==n?(o=t,u=!0,!1):void 0}),u?o:e},e.prototype.first=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){return e=t,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return e},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){return n=t,r=!0,!1}),r?n:t},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.single=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){if(n)throw new Error("single:sequence contains more than one element.");n=!0,e=t}),!n)throw new Error("single:No element satisfies the condition.");return e},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){if(r)throw new Error("single:sequence contains more than one element.");r=!0,n=t}),r?n:t},e.prototype.share=function(){var t=this;t.throwIfDisposed();var n;return new e(function(){return new p["default"](function(){n||(n=t.getEnumerator())},function(t){return n.moveNext()&&t.yieldReturn(n.current)})},function(){v.dispose(n)})},e.prototype.memoize=function(){var t,n,o=this,u=!o.throwIfDisposed();return new e(function(){var e=0;return new p["default"](function(){r(u),n||(n=o.getEnumerator()),t||(t=[]),e=0},function(o){r(u);var i=e++;return i>=t.length?n.moveNext()?o.yieldReturn(t[i]=n.current):!1:o.yieldReturn(t[i])})},function(){u=!0,t&&(t.length=0),t=null,v.dispose(n),n=null})},e.prototype.catchError=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e;return new p["default"](function(){try{r(o),e=n.getEnumerator()}catch(t){}},function(n){try{if(r(o),e.moveNext())return n.yieldReturn(e.current)}catch(u){t(u)}return!1},function(){v.dispose(e)})})},e.prototype.finallyAction=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e;return new p["default"](function(){r(o),e=n.getEnumerator()},function(t){return r(o),e.moveNext()?t.yieldReturn(e.current):!1},function(){try{v.dispose(e)}finally{t()}})})},e}(h["default"]);e.Enumerable=D;var I=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new l["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.source;if(!t)return[];if(Array.isArray(t))return t.slice();for(var e=t.length,n=i.initialize(e),r=0;e>r;++r)n[r]=t[r];return n},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=e._source;if(n)for(var r=0;r=0?r[e]:t.prototype.elementAt.call(this,e)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed();var r=n._source;return t=0?r[t]:e},e.prototype.first=function(){var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t.prototype.first.call(this)},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t},e.prototype.last=function(){var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t.prototype.last.call(this)},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t},e.prototype.skip=function(t){var e=this;return!t||0>t?e.asEnumerable():new D(function(){return new l["default"](function(){return e._source},t)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this,n=e._source?e._source.length:0;return e.take(n-t)},e.prototype.takeFromLast=function(t){if(!t||0>t)return D.empty();var e=this,n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new D(function(){return new l["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return new e(this._source)},e.prototype.sequenceEqual=function(n,r){return void 0===r&&(r=o.areEqual),Array.isArray(n)?u.areEqual(this.source,n,!0,r):f["default"].isInstanceOf(n,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=N.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(D),R=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}(I),_=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 p["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new R(n.key,n.value))},function(){v.dispose(t)})},t}(),S=function(t){function e(e,n){t.call(this,null),this.prevSource=e,this.prevPredicate=n}return __extends(e,t),e.prototype.where=function(n){if(n.length>1)return t.prototype.where.call(this,n);var r=this.prevPredicate,o=function(t){return r(t)&&n(t)};return new e(this.prevSource,o)},e.prototype.select=function(e){return e.length>1?t.prototype.select.call(this,e):new b(this.prevSource,this.prevPredicate,e)},e.prototype.getEnumerator=function(){var t,e=this.prevPredicate,n=this.prevSource;return new p["default"](function(){t=n.getEnumerator()},function(n){for(;t.moveNext();)if(e(t.current))return n.yieldReturn(t.current);return!1},function(){v.dispose(t)})},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this.prevPredicate=null,this.prevSource=null},e}(D),b=function(t){function e(e,n,r){t.call(this,null),this.prevSource=e,this.prevPredicate=n,this.prevSelector=r}return __extends(e,t),e.prototype.where=function(e){return e.length>1?t.prototype.where.call(this,e):new S(this,e)},e.prototype.select=function(n){if(n.length>1)return t.prototype.select.call(this,n);var r=this,o=r.prevSelector,u=function(t){return n(o(t))};return new e(r.prevSource,r.prevPredicate,u)},e.prototype.getEnumerator=function(){var t,e=this,n=e.prevPredicate,r=e.prevSource,o=e.prevSelector;return new p["default"](function(){t=r.getEnumerator()},function(e){for(;t.moveNext();){var r=t.current;if(null==n||n(r))return e.yieldReturn(o(r))}return!1},function(){v.dispose(t)})},e.prototype._onDispose=function(){var e=this;t.prototype._onDispose.call(this),e.prevPredicate=null,e.prevSource=null,e.prevSelector=null},e}(D),A=function(t){function e(e,n,r,u,i){void 0===i&&(i=o.compare),t.call(this,null),this.source=e,this.keySelector=n,this.order=r,this.parent=u,this.comparer=i}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,r=this,o=0;return new p["default"](function(){o=0,t=D.toArray(r.source),e=n(r).generateSortedIndexes(t)},function(n){return oe?t:e},e.prototype.Lesser=function(t,e){return e>t?t:e},e}(s["default"]),x=new N;Object.freeze(x);var D=function(t){function e(){t.call(this,"Unsupported enumerable.")}return __extends(e,t),e}(m["default"]),I=function(t){function e(e,n){t.call(this,n),this._enumeratorFactory=e}return __extends(e,t),e.fromArray=function(t){return new R(t)},e.from=function(t){if(f["default"].isObject(t)){if(t instanceof e)return t;if(Array.isArray(t))return new R(t);if(a.isEnumerable(t))return new e(function(){return t.getEnumerator()});if(f["default"].isArrayLike(t))return new R(t)}throw new D},e.toArray=function(t){if(f["default"].isObject(t)){if(Array.isArray(t))return t.slice();if(f["default"].isArrayLike(t)&&(t=new R(t)),t instanceof e)return t.toArray();if(a.isEnumerable(t)){var n=[];return a.forEach(t.getEnumerator(),function(t,e){n[e]=t}),n}}throw new D},e.prototype.getEnumerator=function(){return this.throwIfDisposed(),this._enumeratorFactory()},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this._enumeratorFactory=null},e.choice=function(t){return new e(function(){return new p["default"](null,function(e){return e.yieldReturn(t[c["default"].random(t.length)])})})},e.cycle=function(t){return new e(function(){var e=0;return new p["default"](function(){e=0},function(n){return e>=t.length&&(e=0),n.yieldReturn(t[e++])})})},e.empty=function(){return new e(function(){return new p["default"](null,x.False)})},e.repeat=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e=n,r=0;return new p["default"](function(){r=0},function(n){return r++=n)return e.empty();if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e,o=n,u=0;return new p["default"](function(){u=0,e=t},function(t){var i=u++u&&(e+=r),i})}:function(){var e;return new p["default"](function(){e=t},function(t){var n=e;return e+=r,t.yieldReturn(n)})})},e.rangeDown=function(t,n,r){return void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),r=-1*Math.abs(r),e.range(t,n,r)},e.toInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.range(t,1/0,n)},e.toNegativeInfinity=function(t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e.rangeDown(t,1/0,n)},e.rangeTo=function(t,n,r){if(void 0===t&&(t=0),void 0===n&&(n=1/0),void 0===r&&(r=1),!isFinite(t))throw new Error("Must have a valid 'start' value.");if(isNaN(n))throw new Error("Must have a valid 'to' value.");if(!isFinite(r))throw new Error("Must have a valid 'step' value.");return r=Math.abs(r),isFinite(n)?new e(function(){var e;return n>t?new p["default"](function(){e=t},function(t){var o=n>=e&&t.yieldReturn(e);return o&&(e+=r),o}):new p["default"](function(){e=t},function(t){var o=e>=n&&t.yieldReturn(e);return o&&(e-=r),o})}):e.range(t,1/0,n>t?+r:-r)},e.matches=function(t,n,r){void 0===r&&(r="");var o=typeof t;if(o!=f["default"].STRING)throw new Error("Cannot exec RegExp matches of type '"+o+"'.");return n instanceof RegExp&&(r+=n.ignoreCase?"i":"",r+=n.multiline?"m":"",n=n.source),-1===r.indexOf("g")&&(r+="g"),new e(function(){var e;return new p["default"](function(){e=new RegExp(n,r)},function(n){var r=e.exec(t);return null!==r?n.yieldReturn(r):!1})})},e.generate=function(t,n){return void 0===n&&(n=1/0),isNaN(n)||0>=n?e.empty():new e(isFinite(n)&&c["default"].assert(n,"count")?function(){var e=n,r=0;return new p["default"](function(){r=0},function(n){var o=r++;return e>o&&n.yieldReturn(t(o))})}:function(){var e=0;return new p["default"](function(){e=0},function(n){return n.yieldReturn(t(e++))})})},e.unfold=function(t,n,r){return void 0===r&&(r=!1),new e(function(){var e,o,u=0;return new p["default"](function(){u=0,e=t,o=!r},function(t){var r=u++;return o?o=!1:e=n(e,r),t.yieldReturn(e)})})},e.defer=function(t){return new e(function(){var e;return new p["default"](function(){e=t().getEnumerator()},function(t){return e.moveNext()&&t.yieldReturn(e.current)},function(){h.dispose(e)})})},e.forEach=function(t,e){t&&h.using(a.from(t),function(t){a.forEach(t,e)})},e.map=function(t,e){return t&&h.using(a.from(t),function(t){var n=[];return a.forEach(t,function(t,r){n[r]=e(t)}),n})},e.max=function(t){return t.takeUntil(function(t){return t==+(1/0)},!0).aggregate(x.Greater)},e.min=function(t){return t.takeUntil(function(t){return t==-(1/0)},!0).aggregate(x.Lesser)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=0;h.using(e.getEnumerator(),function(r){for(;e.throwIfDisposed()&&r.moveNext()&&t(r.current,n++)!==!1;);})},e.prototype.toArray=function(t){var e=[];return t?this.where(t).toArray():(this.forEach(function(t,n){e[n]=t}),e)},e.prototype.asEnumerable=function(){var t=this;return new e(function(){return t.getEnumerator()})},e.prototype.toLookup=function(t,e,n){void 0===e&&(e=x.Identity),void 0===n&&(n=x.Identity);var r=new d["default"](n);return this.forEach(function(n){var o=t(n),u=e(n),i=r.getValue(o);i!==E?i.push(u):r.addByKeyValue(o,[u])}),new S(r)},e.prototype.toMap=function(t,e){var n={};return this.forEach(function(r){n[t(r)]=e(r)}),n},e.prototype.toDictionary=function(t,e,n){void 0===n&&(n=x.Identity);var r=new d["default"](n);return this.forEach(function(n){return r.addByKeyValue(t(n),e(n))}),r},e.prototype.toJoinedString=function(t,e){return void 0===t&&(t=""),void 0===e&&(e=x.Identity),this.select(e).toArray().join(t)},e.prototype.doAction=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var i=t(e.current,u++);if(i===!1||0===i)return n.yieldBreak();if(2!==i)return n.yieldReturn(e.current)}return!1},function(){h.dispose(e)})},function(){o=!0})},e.prototype.force=function(t){void 0===t&&(t=0),this.throwIfDisposed(),this.doAction(function(e){return t})},e.prototype.skip=function(t){var n=this;if(n.throwIfDisposed(),!t||isNaN(t)||0>t)return n;if(!isFinite(t))return e.empty();c["default"].assert(t,"count");var r=t;return this.doAction(function(t,e){return r>e?2:1})},e.prototype.skipWhile=function(t){this.throwIfDisposed();var e=!0;return this.doAction(function(n,r){return e&&(e=t(n,r)),e?2:1})},e.prototype.take=function(t){if(!t||isNaN(t)||0>t)return e.empty();var n=this;if(n.throwIfDisposed(),!isFinite(t))return n;c["default"].assert(t,"count");var r=t;return n.doAction(function(t,e){return r>e})},e.prototype.takeWhile=function(t){return this.throwIfDisposed(),this.doAction(function(e,n){return t(e,n)?1:0})},e.prototype.takeUntil=function(t,e){if(this.throwIfDisposed(),!e)return this.doAction(function(e,n){return t(e,n)?0:1});var n=!1;return this.doAction(function(e,r){return n?0:(n=t(e,r),1)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var n=this;if(!t||isNaN(t)||0>=t)return n;if(!isFinite(t))return e.empty();c["default"].assert(t,"count");var r=t;return new e(function(){var t,e;return new p["default"](function(){t=n.getEnumerator(),e=new y["default"]},function(n){for(;t.moveNext();)if(e.enqueue(t.current),e.count>r)return n.yieldReturn(e.dequeue());return!1},function(){h.dispose(t,e)})})},e.prototype.takeFromLast=function(t){if(!t||isNaN(t)||0>=t)return e.empty();var n=this;return isFinite(t)?(c["default"].assert(t,"count"),n.reverse().take(t)):n.reverse()},e.prototype.traverseBreadthFirst=function(t,n){var r=this;return new e(function(){var o,u,i,a=0;return new p["default"](function(){a=0,u=[],i=0,o=r.getEnumerator()},function(r){for(;;){if(o.moveNext())return u[i++]=o.current,r.yieldReturn(n(o.current,a));if(!i)return r.yieldBreak();var f=e.fromArray(u).selectMany(t);if(!f.any())return r.yieldBreak();a++,u=[],i=0,o.dispose(),o=f.getEnumerator()}},function(){h.dispose(o),u.length=0})})},e.prototype.traverseDepthFirst=function(t,n){var r=this;return new e(function(){var e,o,u=[];return new p["default"](function(){e=r.getEnumerator(),o=0},function(r){for(;;){if(e.moveNext()){var i=n(e.current,o);return u[o++]=e,e=t(e.current).getEnumerator(),r.yieldReturn(i)}if(0==o)return!1;e.dispose(),e=u[--o],u.length=o}},function(){try{h.dispose(e)}finally{h.disposeThese(u)}})})},e.prototype.flatten=function(){var t=this;return new e(function(){var n,r=null;return new p["default"](function(){n=t.getEnumerator()},function(t){for(;;){if(null!=r){if(r.moveNext())return t.yieldReturn(r.current);r=null}if(n.moveNext()){var o=n.current;if(Array.isArray(o)){r.dispose(),r=e.fromArray(o).selectMany(x.Identity).flatten().getEnumerator();continue}return t.yieldReturn(n.current)}return!1}},function(){h.dispose(n,r)})})},e.prototype.pairwise=function(t){var n=this;return new e(function(){var e;return new p["default"](function(){e=n.getEnumerator(),e.moveNext()},function(n){var r=e.current;return e.moveNext()&&n.yieldReturn(t(r,e.current))},function(){h.dispose(e)})})},e.prototype.scan=function(t,n){var r=n!==E,o=this;return new e(function(){var e,u,i;return new p["default"](function(){e=o.getEnumerator(),i=!0},function(o){return i?(i=!1,r?o.yieldReturn(u=n):e.moveNext()&&o.yieldReturn(u=e.current)):e.moveNext()?o.yieldReturn(u=t(u,e.current)):!1},function(){h.dispose(e)})})},e.prototype.select=function(t){var n=this,o=!n.throwIfDisposed();return t.length<2?new A(n,null,t):new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){return r(o),e.moveNext()?n.yieldReturn(t(e.current,u++)):!1},function(){h.dispose(e)})},function(){o=!0})},e.prototype.selectMany=function(t,n){var r=this;return n||(n=function(t,e){return e}),new e(function(){var e,o,u=0;return new p["default"](function(){e=r.getEnumerator(),o=void 0,u=0},function(r){if(o===E&&!e.moveNext())return!1;do{if(!o){var i=t(e.current,u++);if(!i)continue;o=a.from(i)}if(o.moveNext())return r.yieldReturn(n(e.current,o.current));o.dispose(),o=null}while(e.moveNext());return!1},function(){h.dispose(e,o),e=null,o=null})})},e.prototype.choose=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var i=t(e.current,u++);if(null!==i&&i!==E)return n.yieldReturn(i)}return!1},function(){h.dispose(e)})},function(){o=!0})},e.prototype.where=function(t){var n=this,o=!n.throwIfDisposed();return t.length<2?new b(n,t):new e(function(){var e,u=0;return new p["default"](function(){r(o),u=0,e=n.getEnumerator()},function(n){for(r(o);e.moveNext();)if(t(e.current,u++))return n.yieldReturn(e.current);return!1},function(){h.dispose(e)})},function(){o=!0})},e.prototype.ofType=function(t){var e;switch(t){case Number:e=f["default"].NUMBER;break;case String:e=f["default"].STRING;break;case Boolean:e=f["default"].BOOLEAN;break;case Function:e=f["default"].FUNCTION;break;default:return this.where(function(e){return e instanceof t})}return this.where(function(t){return typeof t===e})},e.prototype.except=function(t,n){var o=this,u=!o.throwIfDisposed();return new e(function(){var i,a;return new p["default"](function(){r(u),i=o.getEnumerator(),a=new d["default"](n),t&&e.forEach(t,function(t){return a.addByKeyValue(t,!0)})},function(t){for(r(u);i.moveNext();){var e=i.current;if(!a.containsKey(e))return a.addByKeyValue(e,!0),t.yieldReturn(e)}return!1},function(){h.dispose(i),a.clear()})},function(){u=!0})},e.prototype.distinct=function(t){return this.except(null,t)},e.prototype.distinctUntilChanged=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u,i=!0;return new p["default"](function(){r(o),e=n.getEnumerator()},function(n){for(r(o);e.moveNext();){var a=t(e.current);if(i)i=!1;else if(u===a)continue;return u=a,n.yieldReturn(e.current)}return!1},function(){h.dispose(e)})},function(){o=!0})},e.prototype.reverse=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,o=0;return new p["default"](function(){r(n),e=t.toArray(),o=e.length},function(t){return o>0&&t.yieldReturn(e[--o])},function(){e.length=0})},function(){n=!0})},e.prototype.shuffle=function(){var t=this,n=!t.throwIfDisposed();return new e(function(){var e,o,u;return new p["default"](function(){r(n),e=t.toArray(),o=u=e.length},function(t){if(!u)return t.yieldBreak();var n=c["default"].random(u),r=e[n];return e[n]=e[--u],e[u]=null,u%32==0&&(e.length=u),t.yieldReturn(r)},function(){e.length=0})},function(){n=!0})},e.prototype.count=function(t){var e=this;e.throwIfDisposed();var n=0;return t?e.forEach(function(e,r){t(e,r)&&++n}):e.forEach(function(){++n}),n},e.prototype.all=function(t){var e=!0;return this.forEach(function(n){return t(n)?void 0:(e=!1,!1)}),e},e.prototype.every=function(t){return this.all(t)},e.prototype.any=function(t){var e=!1;return t?this.forEach(function(n){return e=t(n),!e}):this.forEach(function(){return e=!0,!1}),e},e.prototype.some=function(t){return this.any(t)},e.prototype.isEmpty=function(){return!this.any()},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 e?this.forEach(function(r,u){return o.areEqual(e(r),e(t),!0)?(n=u,!1):void 0}):this.forEach(function(e,r){return o.areEqual(e,t,!0)?(n=r,!1):void 0}),n},e.prototype.lastIndexOf=function(t,e){var n=-1;return e?this.forEach(function(r,u){o.areEqual(e(r),e(t),!0)&&(n=u)}):this.forEach(function(e,r){o.areEqual(e,t,!0)&&(n=r)}),n},e.prototype.defaultIfEmpty=function(t){void 0===t&&(t=null);var n=this,o=!n.throwIfDisposed();return new e(function(){var e,u;return new p["default"](function(){u=!0,r(o),e=n.getEnumerator()},function(n){return r(o),e.moveNext()?(u=!1,n.yieldReturn(e.current)):u?(u=!1,n.yieldReturn(t)):!1},function(){h.dispose(e)})})},e.prototype.zip=function(t,n){var r=this;return new e(function(){var e,o,u=0;return new p["default"](function(){u=0,e=r.getEnumerator(),o=a.from(t)},function(t){return e.moveNext()&&o.moveNext()&&t.yieldReturn(n(e.current,o.current,u++))},function(){h.dispose(e,o)})})},e.prototype.zipMultiple=function(t,n){var r=this;return t.length?new e(function(){var e,o,u,i=0;return new p["default"](function(){e=new y["default"](t),i=0,o=r.getEnumerator(),u=null},function(t){if(o.moveNext())for(;;){for(;!u;){if(!e.count)return t.yieldBreak();var r=e.dequeue();r&&(u=a.from(r))}if(u.moveNext())return t.yieldReturn(n(o.current,u.current,i++));u.dispose(),u=null}return t.yieldBreak()},function(){h.dispose(o,e)})}):e.empty()},e.prototype.join=function(t,n,r,o,u){void 0===u&&(u=x.Identity);var i=this;return new e(function(){var a,f,c=null,s=0;return new p["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,x.Identity,u)},function(t){for(;;){if(null!=c){var e=c[s++];if(e!==E)return t.yieldReturn(o(a.current,e));e=null,s=0}if(!a.moveNext())return t.yieldBreak();var r=n(a.current);c=f.get(r)}},function(){h.dispose(a)})})},e.prototype.groupJoin=function(t,n,r,o,u){void 0===u&&(u=x.Identity);var i=this;return new e(function(){var a,f=null;return new p["default"](function(){a=i.getEnumerator(),f=e.from(t).toLookup(r,x.Identity,u)},function(t){return a.moveNext()&&t.yieldReturn(o(a.current,f.get(n(a.current))))},function(){h.dispose(a)})})},e.prototype.concatWith=function(t){var n=this;return new e(function(){var e,r;return new p["default"](function(){e=n.getEnumerator()},function(n){if(null!=e){if(e.moveNext())return n.yieldReturn(e.current);r=a.from(t),e.dispose(),e=null}return r.moveNext()?n.yieldReturn(r.current):!1},function(){h.dispose(e,r)})})},e.prototype.merge=function(t){var n=this;return t.length?1==t.length?n.concatWith(t[0]):new e(function(){var e,r;return new p["default"](function(){e=n.getEnumerator(),r=new y["default"](t)},function(t){for(;;){for(;!e&&r.count;)e=a.from(r.dequeue());if(e&&e.moveNext())return t.yieldReturn(e.current);{if(!e)return t.yieldBreak();e.dispose(),e=null}}},function(){h.dispose(e,r)})}):n},e.prototype.concat=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var r=t,o=this;return o.throwIfDisposed(),new e(function(){var t,e,u=0,i=!1;return new p["default"](function(){u=0,t=o.getEnumerator(),e=a.from(n),i=!1},function(n){return u==r&&(i=!0,e.moveNext())?n.yieldReturn(e.current):t.moveNext()?(u++,n.yieldReturn(t.current)):!i&&e.moveNext()&&n.yieldReturn(e.current)},function(){h.dispose(t,e)})})},e.prototype.alternateMultiple=function(t){var n=this;return new e(function(){var r,o,u,i;return new p["default"](function(){i=new l["default"](e.toArray(t)),u=n.getEnumerator();var a=u.moveNext();o=a?1:0,a&&(r=u.current)},function(t){switch(o){case 0:return t.yieldBreak();case 2:if(i.moveNext())return t.yieldReturn(i.current);i.reset(),o=1}var e=r,n=u.moveNext();return o=n?2:0,n&&(r=u.current),t.yieldReturn(e)},function(){h.dispose(u,i)})})},e.prototype.alternateSingle=function(t){return this.alternateMultiple(e.make(t))},e.prototype.alternate=function(){for(var t=[],e=0;et||!isFinite(t))throw new Error("Invalid buffer size.");c["default"].assert(t,"size");var n,r=this;return new e(function(){var e;return new p["default"](function(){e=r.getEnumerator()},function(r){var o=i.initialize(t);for(n=0;t>n&&e.moveNext;)o[n++]=e.current;return o.length=n,n&&r.yieldReturn(o)},function(){h.dispose(e)})})},e.prototype.aggregate=function(t,e){return this.scan(t,e).lastOrDefault()},e.prototype.average=function(t){void 0===t&&(t=f["default"].numberOrNaN);var e=0,n=0,r=0;return this.forEach(function(o){var u=t(o);return isNaN(u)?(e=NaN,!1):(isFinite(u)?e+=u:n+=u>0?1:-1,void++r)}),n?n*(1/0):isNaN(e)||!r?NaN:e/r},e.prototype.max=function(){return this.aggregate(x.Greater)},e.prototype.min=function(){return this.aggregate(x.Lesser)},e.prototype.maxBy=function(t){return void 0===t&&(t=x.Identity),this.aggregate(function(e,n){return t(e)>t(n)?e:n})},e.prototype.minBy=function(t){return void 0===t&&(t=x.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["default"].numberOrNaN);var e=1,n=!1;return this.forEach(function(r){n=!0;var o=t(r);return isNaN(o)?(e=NaN,!1):0==o?(e=0,!1):void(e*=o)}),n&&isNaN(e)?NaN:e},e.prototype.elementAt=function(t){if(isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var e=t,n=this;n.throwIfDisposed();var r=void 0,o=!1;if(n.forEach(function(t,n){return n==e?(r=t,o=!0,!1):void 0}),!o)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return r},e.prototype.elementAtOrDefault=function(t,e){if(void 0===e&&(e=null),isNaN(t)||0>t||!isFinite(t))throw new Error("'index' is invalid or out of bounds.");c["default"].assert(t,"index");var n=t,r=this;r.throwIfDisposed();var o=void 0,u=!1;return r.forEach(function(t,e){return e==n?(o=t,u=!0,!1):void 0}),u?o:e},e.prototype.first=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){return e=t,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return e},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){return n=t,r=!0,!1}),r?n:t},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.single=function(){var t=this;t.throwIfDisposed();var e=void 0,n=!1;if(t.forEach(function(t){if(n)throw new Error("single:sequence contains more than one element.");n=!0,e=t}),!n)throw new Error("single:No element satisfies the condition.");return e},e.prototype.singleOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=void 0,r=!1;return e.forEach(function(t){if(r)throw new Error("single:sequence contains more than one element.");r=!0,n=t}),r?n:t},e.prototype.share=function(){var t=this;t.throwIfDisposed();var n;return new e(function(){return new p["default"](function(){n||(n=t.getEnumerator())},function(t){return n.moveNext()&&t.yieldReturn(n.current)})},function(){h.dispose(n)})},e.prototype.memoize=function(){var t,n,o=this,u=!o.throwIfDisposed();return new e(function(){var e=0;return new p["default"](function(){r(u),n||(n=o.getEnumerator()),t||(t=[]),e=0},function(o){r(u);var i=e++;return i>=t.length?n.moveNext()?o.yieldReturn(t[i]=n.current):!1:o.yieldReturn(t[i])})},function(){u=!0,t&&(t.length=0),t=null,h.dispose(n),n=null})},e.prototype.catchError=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e;return new p["default"](function(){try{r(o),e=n.getEnumerator()}catch(t){}},function(n){try{if(r(o),e.moveNext())return n.yieldReturn(e.current)}catch(u){t(u)}return!1},function(){h.dispose(e)})})},e.prototype.finallyAction=function(t){var n=this,o=!n.throwIfDisposed();return new e(function(){var e;return new p["default"](function(){r(o),e=n.getEnumerator()},function(t){return r(o),e.moveNext()?t.yieldReturn(e.current):!1},function(){try{h.dispose(e)}finally{t()}})})},e}(v["default"]);e.Enumerable=I;var R=function(t){function e(e){t.call(this,function(){return n.throwIfDisposed(),new l["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.source;if(!t)return[];if(Array.isArray(t))return t.slice();for(var e=t.length,n=i.initialize(e),r=0;e>r;++r)n[r]=t[r];return n},e.prototype.asEnumerable=function(){return new e(this._source)},e.prototype.forEach=function(t){var e=this;e.throwIfDisposed();var n=e._source;if(n)for(var r=0;r=0?r[e]:t.prototype.elementAt.call(this,e)},e.prototype.elementAtOrDefault=function(t,e){void 0===e&&(e=null);var n=this;n.throwIfDisposed();var r=n._source;return t=0?r[t]:e},e.prototype.first=function(){var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t.prototype.first.call(this)},e.prototype.firstOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source;return n&&n.length?n[0]:t},e.prototype.last=function(){var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t.prototype.last.call(this)},e.prototype.lastOrDefault=function(t){void 0===t&&(t=null);var e=this;e.throwIfDisposed();var n=e._source,r=n.length;return r?n[r-1]:t},e.prototype.skip=function(t){var e=this;return!t||0>t?e.asEnumerable():new I(function(){return new l["default"](function(){return e._source},t)})},e.prototype.takeExceptLast=function(t){void 0===t&&(t=1);var e=this,n=e._source?e._source.length:0;return e.take(n-t)},e.prototype.takeFromLast=function(t){if(!t||0>t)return I.empty();var e=this,n=e._source?e._source.length:0;return e.skip(n-t)},e.prototype.reverse=function(){var t=this;return new I(function(){return new l["default"](function(){return t._source},t._source?t._source.length-1:0,-1)})},e.prototype.memoize=function(){return new e(this._source)},e.prototype.sequenceEqual=function(n,r){return void 0===r&&(r=o.areEqual),Array.isArray(n)?u.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=x.Identity);var r=this._source;return!n&&Array.isArray(r)?r.join(e):t.prototype.toJoinedString.call(this,e,n)},e}(I),_=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}(R),S=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 p["default"](function(){t=e._dictionary.getEnumerator()},function(e){if(!t.moveNext())return!1;var n=t.current;return e.yieldReturn(new _(n.key,n.value))},function(){h.dispose(t)})},t}(),b=function(t){function e(e,n){t.call(this,null),this.prevSource=e,this.prevPredicate=n}return __extends(e,t),e.prototype.where=function(n){if(n.length>1)return t.prototype.where.call(this,n);var r=this.prevPredicate,o=function(t){return r(t)&&n(t)};return new e(this.prevSource,o)},e.prototype.select=function(e){return e.length>1?t.prototype.select.call(this,e):new A(this.prevSource,this.prevPredicate,e)},e.prototype.getEnumerator=function(){var t,e=this.prevPredicate,n=this.prevSource;return new p["default"](function(){t=n.getEnumerator()},function(n){for(;t.moveNext();)if(e(t.current))return n.yieldReturn(t.current);return!1},function(){h.dispose(t)})},e.prototype._onDispose=function(){t.prototype._onDispose.call(this),this.prevPredicate=null,this.prevSource=null},e}(I),A=function(t){function e(e,n,r){t.call(this,null),this.prevSource=e,this.prevPredicate=n,this.prevSelector=r}return __extends(e,t),e.prototype.where=function(e){return e.length>1?t.prototype.where.call(this,e):new b(this,e)},e.prototype.select=function(n){if(n.length>1)return t.prototype.select.call(this,n);var r=this,o=r.prevSelector,u=function(t){return n(o(t))};return new e(r.prevSource,r.prevPredicate,u)},e.prototype.getEnumerator=function(){var t,e=this,n=e.prevPredicate,r=e.prevSource,o=e.prevSelector;return new p["default"](function(){t=r.getEnumerator()},function(e){for(;t.moveNext();){var r=t.current;if(null==n||n(r))return e.yieldReturn(o(r))}return!1},function(){h.dispose(t)})},e.prototype._onDispose=function(){var e=this;t.prototype._onDispose.call(this),e.prevPredicate=null,e.prevSource=null,e.prevSelector=null},e}(I),k=function(t){function e(e,n,r,u,i){void 0===i&&(i=o.compare),t.call(this,null),this.source=e,this.keySelector=n,this.order=r,this.parent=u,this.comparer=i}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,r=this,o=0;return new p["default"](function(){o=0,t=I.toArray(r.source),e=n(r).generateSortedIndexes(t)},function(n){return o\r\n ///\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../System/Compare');\r\n var Arrays = require('../System/Collections/Array/Compare');\r\n var ArrayUtility = require('../System/Collections/Array/Utility');\r\n var Enumerator_1 = require('../System/Collections/Enumeration/Enumerator');\r\n var Types_1 = require('../System/Types');\r\n var Integer_1 = require('../System/Integer');\r\n var Functions_1 = require('../System/Functions');\r\n var ArrayEnumerator_1 = require('../System/Collections/Enumeration/ArrayEnumerator');\r\n var EnumeratorBase_1 = require('../System/Collections/Enumeration/EnumeratorBase');\r\n var Dictionary_1 = require('../System/Collections/Dictionaries/Dictionary');\r\n var Queue_1 = require('../System/Collections/Queue');\r\n var Utility_1 = require('../System/Disposable/Utility');\r\n var DisposableBase_1 = require('../System/Disposable/DisposableBase');\r\n var Exception_1 = require(\"../System/Exception\");\r\n var ObjectDisposedException_1 = require('../System/Disposable/ObjectDisposedException');\r\n var KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\r\n 'use strict';\r\n var LinqFunctions = (function (_super) {\r\n __extends(LinqFunctions, _super);\r\n function LinqFunctions() {\r\n _super.apply(this, arguments);\r\n }\r\n LinqFunctions.prototype.Greater = function (a, b) {\r\n return a > b ? a : b;\r\n };\r\n LinqFunctions.prototype.Lesser = function (a, b) {\r\n return a < b ? a : b;\r\n };\r\n return LinqFunctions;\r\n })(Functions_1.default);\r\n var Functions = new LinqFunctions();\r\n Object.freeze(Functions);\r\n var UnsupportedEnumerableException = (function (_super) {\r\n __extends(UnsupportedEnumerableException, _super);\r\n function UnsupportedEnumerableException() {\r\n _super.call(this, \"Unsupported enumerable.\");\r\n }\r\n return UnsupportedEnumerableException;\r\n })(Exception_1.default);\r\n var Enumerable = (function (_super) {\r\n __extends(Enumerable, _super);\r\n function Enumerable(_enumeratorFactory, finalizer) {\r\n _super.call(this, finalizer);\r\n this._enumeratorFactory = _enumeratorFactory;\r\n }\r\n Enumerable.fromArray = function (array) {\r\n return new ArrayEnumerable(array);\r\n };\r\n Enumerable.from = function (source) {\r\n if (Types_1.default.isObject(source)) {\r\n if (Types_1.default.isInstanceOf(source, Enumerable))\r\n return source;\r\n if (Array.isArray(source))\r\n return new ArrayEnumerable(source);\r\n if (Enumerator_1.isEnumerable(source))\r\n return new Enumerable(function () { return source.getEnumerator(); });\r\n if (Types_1.default.isArrayLike(source))\r\n return new ArrayEnumerable(source);\r\n }\r\n throw new UnsupportedEnumerableException();\r\n };\r\n Enumerable.toArray = function (source) {\r\n if (Types_1.default.isObject(source)) {\r\n if (Array.isArray(source))\r\n return source.slice();\r\n if (Types_1.default.isArrayLike(source))\r\n source = new ArrayEnumerable(source);\r\n if (Types_1.default.isInstanceOf(source, Enumerable))\r\n return source.toArray();\r\n if (Enumerator_1.isEnumerable(source)) {\r\n var result = [];\r\n Enumerator_1.forEach(source.getEnumerator(), function (e, i) {\r\n result[i] = e;\r\n });\r\n return result;\r\n }\r\n }\r\n throw new UnsupportedEnumerableException();\r\n };\r\n Enumerable.prototype.getEnumerator = function () {\r\n this.throwIfDisposed();\r\n return this._enumeratorFactory();\r\n };\r\n Enumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this._enumeratorFactory = null;\r\n };\r\n Enumerable.choice = function (values) {\r\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\r\n return yielder.yieldReturn(values[Integer_1.default.random(values.length)]);\r\n }); });\r\n };\r\n Enumerable.cycle = function (values) {\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) {\r\n if (index >= values.length)\r\n index = 0;\r\n return yielder.yieldReturn(values[index++]);\r\n });\r\n });\r\n };\r\n Enumerable.empty = function () {\r\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, Functions.False); });\r\n };\r\n Enumerable.repeat = function (element, count) {\r\n if (count === void 0) { count = Infinity; }\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); });\r\n })\r\n : new Enumerable(function () {\r\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); });\r\n });\r\n };\r\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\r\n return new Enumerable(function () {\r\n var element;\r\n return new EnumeratorBase_1.default(function () {\r\n element = initializer();\r\n }, function (yielder) { return yielder.yieldReturn(element); }, function () {\r\n finalizer(element);\r\n });\r\n });\r\n };\r\n Enumerable.make = function (element) {\r\n return Enumerable.repeat(element, 1);\r\n };\r\n Enumerable.range = function (start, count, step) {\r\n if (start === void 0) { start = 0; }\r\n if (count === void 0) { count = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n if (!isFinite(start))\r\n throw new Error(\"Must have a valid 'start' value.\");\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n if (!isFinite(step))\r\n throw new Error(\"Must have a valid 'step' value.\");\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var value;\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n value = start;\r\n }, function (yielder) {\r\n var result = index++ < c\r\n && yielder.yieldReturn(value);\r\n if (result && index < count)\r\n value += step;\r\n return result;\r\n });\r\n })\r\n : new Enumerable(function () {\r\n var value;\r\n return new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var current = value;\r\n value += step;\r\n return yielder.yieldReturn(current);\r\n });\r\n });\r\n };\r\n Enumerable.rangeDown = function (start, count, step) {\r\n if (start === void 0) { start = 0; }\r\n if (count === void 0) { count = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n step = Math.abs(step) * -1;\r\n return Enumerable.range(start, count, step);\r\n };\r\n Enumerable.toInfinity = function (start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n return Enumerable.range(start, Infinity, step);\r\n };\r\n Enumerable.toNegativeInfinity = function (start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n return Enumerable.rangeDown(start, Infinity, step);\r\n };\r\n Enumerable.rangeTo = function (start, to, step) {\r\n if (start === void 0) { start = 0; }\r\n if (to === void 0) { to = Infinity; }\r\n if (step === void 0) { step = 1; }\r\n if (!isFinite(start))\r\n throw new Error(\"Must have a valid 'start' value.\");\r\n if (isNaN(to))\r\n throw new Error(\"Must have a valid 'to' value.\");\r\n if (!isFinite(step))\r\n throw new Error(\"Must have a valid 'step' value.\");\r\n step = Math.abs(step);\r\n if (!isFinite(to))\r\n return Enumerable.range(start, Infinity, (start < to) ? (+step) : (-step));\r\n return new Enumerable(function () {\r\n var value;\r\n return start < to\r\n ? new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var result = value <= to && yielder.yieldReturn(value);\r\n if (result)\r\n value += step;\r\n return result;\r\n })\r\n : new EnumeratorBase_1.default(function () {\r\n value = start;\r\n }, function (yielder) {\r\n var result = value >= to && yielder.yieldReturn(value);\r\n if (result)\r\n value -= step;\r\n return result;\r\n });\r\n });\r\n };\r\n Enumerable.matches = function (input, pattern, flags) {\r\n if (flags === void 0) { flags = \"\"; }\r\n var type = typeof input;\r\n if (type != Types_1.default.STRING)\r\n throw new Error(\"Cannot exec RegExp matches of type '\" + type + \"'.\");\r\n if (Types_1.default.isInstanceOf(pattern, RegExp)) {\r\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n flags += (pattern.multiline) ? \"m\" : \"\";\r\n pattern = pattern.source;\r\n }\r\n if (flags.indexOf(\"g\") === -1)\r\n flags += \"g\";\r\n return new Enumerable(function () {\r\n var regex;\r\n return new EnumeratorBase_1.default(function () {\r\n regex = new RegExp(pattern, flags);\r\n }, function (yielder) {\r\n var match = regex.exec(input);\r\n return (match !== null) ? yielder.yieldReturn(match) : false;\r\n });\r\n });\r\n };\r\n Enumerable.generate = function (factory, count) {\r\n if (count === void 0) { count = Infinity; }\r\n if (isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\r\n ? new Enumerable(function () {\r\n var c = count;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) {\r\n var current = index++;\r\n return current < c && yielder.yieldReturn(factory(current));\r\n });\r\n })\r\n : new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); });\r\n });\r\n };\r\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\r\n if (skipSeed === void 0) { skipSeed = false; }\r\n return new Enumerable(function () {\r\n var index = 0;\r\n var value;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n value = seed;\r\n isFirst = !skipSeed;\r\n }, function (yielder) {\r\n var i = index++;\r\n if (isFirst)\r\n isFirst = false;\r\n else\r\n value = valueFactory(value, i);\r\n return yielder.yieldReturn(value);\r\n });\r\n });\r\n };\r\n Enumerable.defer = function (enumerableFactory) {\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = enumerableFactory().getEnumerator();\r\n }, function (yielder) { return enumerator.moveNext() && yielder.yieldReturn(enumerator.current); }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.forEach = function (enumerable, action) {\r\n if (enumerable) {\r\n Utility_1.using(Enumerator_1.from(enumerable), function (e) {\r\n Enumerator_1.forEach(e, action);\r\n });\r\n }\r\n };\r\n Enumerable.map = function (enumerable, selector) {\r\n return enumerable && Utility_1.using(Enumerator_1.from(enumerable), function (e) {\r\n var result = [];\r\n Enumerator_1.forEach(e, function (e, i) {\r\n result[i] = selector(e);\r\n });\r\n return result;\r\n });\r\n };\r\n Enumerable.max = function (values) {\r\n return values\r\n .takeUntil(function (v) { return v == +Infinity; }, true)\r\n .aggregate(Functions.Greater);\r\n };\r\n Enumerable.min = function (values) {\r\n return values\r\n .takeUntil(function (v) { return v == -Infinity; }, true)\r\n .aggregate(Functions.Lesser);\r\n };\r\n Enumerable.prototype.forEach = function (action) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var index = 0;\r\n Utility_1.using(_.getEnumerator(), function (e) {\r\n while (_.throwIfDisposed() && e.moveNext()) {\r\n if (action(e.current, index++) === false)\r\n break;\r\n }\r\n });\r\n };\r\n Enumerable.prototype.toArray = function (predicate) {\r\n var result = [];\r\n if (predicate)\r\n return this.where(predicate).toArray();\r\n this.forEach(function (x, i) {\r\n result[i] = x;\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.asEnumerable = function () {\r\n var _ = this;\r\n return new Enumerable(function () { return _.getEnumerator(); });\r\n };\r\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\r\n if (elementSelector === void 0) { elementSelector = Functions.Identity; }\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var dict = new Dictionary_1.default(compareSelector);\r\n this.forEach(function (x) {\r\n var key = keySelector(x);\r\n var element = elementSelector(x);\r\n var array = dict.getValue(key);\r\n if (array !== undefined)\r\n array.push(element);\r\n else\r\n dict.addByKeyValue(key, [element]);\r\n });\r\n return new Lookup(dict);\r\n };\r\n Enumerable.prototype.toMap = function (keySelector, elementSelector) {\r\n var obj = {};\r\n this.forEach(function (x) {\r\n obj[keySelector(x)] = elementSelector(x);\r\n });\r\n return obj;\r\n };\r\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var dict = new Dictionary_1.default(compareSelector);\r\n this.forEach(function (x) { return dict.addByKeyValue(keySelector(x), elementSelector(x)); });\r\n return dict;\r\n };\r\n Enumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator === void 0) { separator = \"\"; }\r\n if (selector === void 0) { selector = Functions.Identity; }\r\n return this.select(selector).toArray().join(separator);\r\n };\r\n Enumerable.prototype.doAction = function (action) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var actionResult = action(enumerator.current, index++);\r\n if (actionResult === false || actionResult === 0)\r\n return yielder.yieldBreak();\r\n if (actionResult !== 2)\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.force = function (defaultAction) {\r\n if (defaultAction === void 0) { defaultAction = 0; }\r\n this.throwIfDisposed();\r\n this.doAction(function (element) { return defaultAction; });\r\n };\r\n Enumerable.prototype.skip = function (count) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n if (!count || isNaN(count) || count < 0)\r\n return _;\r\n if (!isFinite(count))\r\n return Enumerable.empty();\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return this.doAction(function (element, index) {\r\n return index < c\r\n ? 2\r\n : 1;\r\n });\r\n };\r\n Enumerable.prototype.skipWhile = function (predicate) {\r\n this.throwIfDisposed();\r\n var skipping = true;\r\n return this.doAction(function (element, index) {\r\n if (skipping)\r\n skipping = predicate(element, index);\r\n return skipping\r\n ? 2\r\n : 1;\r\n });\r\n };\r\n Enumerable.prototype.take = function (count) {\r\n if (!count || isNaN(count) || count < 0)\r\n return Enumerable.empty();\r\n var _ = this;\r\n _.throwIfDisposed();\r\n if (!isFinite(count))\r\n return _;\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return _.doAction(function (element, index) { return index < c; });\r\n };\r\n Enumerable.prototype.takeWhile = function (predicate) {\r\n this.throwIfDisposed();\r\n return this.doAction(function (element, index) {\r\n return predicate(element, index)\r\n ? 1\r\n : 0;\r\n });\r\n };\r\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\r\n this.throwIfDisposed();\r\n if (!includeUntilValue)\r\n return this.doAction(function (element, index) {\r\n return predicate(element, index)\r\n ? 0\r\n : 1;\r\n });\r\n var found = false;\r\n return this.doAction(function (element, index) {\r\n if (found)\r\n return 0;\r\n found = predicate(element, index);\r\n return 1;\r\n });\r\n };\r\n Enumerable.prototype.takeExceptLast = function (count) {\r\n if (count === void 0) { count = 1; }\r\n var _ = this;\r\n if (!count || isNaN(count) || count <= 0)\r\n return _;\r\n if (!isFinite(count))\r\n return Enumerable.empty();\r\n Integer_1.default.assert(count, \"count\");\r\n var c = count;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var q;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n q = new Queue_1.default();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n q.enqueue(enumerator.current);\r\n if (q.count > c)\r\n return yielder.yieldReturn(q.dequeue());\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator, q);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.takeFromLast = function (count) {\r\n if (!count || isNaN(count) || count <= 0)\r\n return Enumerable.empty();\r\n var _ = this;\r\n if (!isFinite(count))\r\n return _.reverse();\r\n Integer_1.default.assert(count, \"count\");\r\n return _.reverse().take(count);\r\n };\r\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var nestLevel = 0;\r\n var buffer, len;\r\n return new EnumeratorBase_1.default(function () {\r\n nestLevel = 0;\r\n buffer = [];\r\n len = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n buffer[len++] = enumerator.current;\r\n return yielder.yieldReturn(resultSelector(enumerator.current, nestLevel));\r\n }\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var next = Enumerable\r\n .fromArray(buffer)\r\n .selectMany(func);\r\n if (!next.any()) {\r\n return yielder.yieldBreak();\r\n }\r\n else {\r\n nestLevel++;\r\n buffer = [];\r\n len = 0;\r\n enumerator.dispose();\r\n enumerator = next.getEnumerator();\r\n }\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n buffer.length = 0;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumeratorStack = [];\r\n var enumerator;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n len = 0;\r\n }, function (yielder) {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n var value = resultSelector(enumerator.current, len);\r\n enumeratorStack[len++] = enumerator;\r\n enumerator = func(enumerator.current).getEnumerator();\r\n return yielder.yieldReturn(value);\r\n }\r\n if (len == 0)\r\n return false;\r\n enumerator.dispose();\r\n enumerator = enumeratorStack[--len];\r\n enumeratorStack.length = len;\r\n }\r\n }, function () {\r\n try {\r\n Utility_1.dispose(enumerator);\r\n }\r\n finally {\r\n Utility_1.disposeThese(enumeratorStack);\r\n }\r\n });\r\n });\r\n };\r\n Enumerable.prototype.flatten = function () {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = null;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n while (true) {\r\n if (middleEnumerator != null) {\r\n if (middleEnumerator.moveNext()) {\r\n return yielder.yieldReturn(middleEnumerator.current);\r\n }\r\n else {\r\n middleEnumerator = null;\r\n }\r\n }\r\n if (enumerator.moveNext()) {\r\n var c = enumerator.current;\r\n if (Array.isArray(c)) {\r\n middleEnumerator.dispose();\r\n middleEnumerator = Enumerable.fromArray(c)\r\n .selectMany(Functions.Identity)\r\n .flatten()\r\n .getEnumerator();\r\n continue;\r\n }\r\n else {\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n }\r\n return false;\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator, middleEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.pairwise = function (selector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n enumerator.moveNext();\r\n }, function (yielder) {\r\n var prev = enumerator.current;\r\n return enumerator.moveNext()\r\n && yielder.yieldReturn(selector(prev, enumerator.current));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.scan = function (func, seed) {\r\n var isUseSeed = seed !== undefined;\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var value;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n isFirst = true;\r\n }, function (yielder) {\r\n if (isFirst) {\r\n isFirst = false;\r\n return isUseSeed\r\n ? yielder.yieldReturn(value = seed)\r\n : enumerator.moveNext() && yielder.yieldReturn(value\r\n = enumerator.current);\r\n }\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(value = func(value, enumerator.current))\r\n : false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.select = function (selector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n if (selector.length < 2)\r\n return new WhereSelectEnumerable(_, null, selector);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n return enumerator.moveNext()\r\n ? yielder.yieldReturn(selector(enumerator.current, index++))\r\n : false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\r\n var _ = this;\r\n if (!resultSelector)\r\n resultSelector = function (a, b) { return b; };\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n middleEnumerator = undefined;\r\n index = 0;\r\n }, function (yielder) {\r\n if (middleEnumerator === undefined && !enumerator.moveNext())\r\n return false;\r\n do {\r\n if (!middleEnumerator) {\r\n var middleSeq = collectionSelector(enumerator.current, index++);\r\n if (!middleSeq)\r\n continue;\r\n middleEnumerator = Enumerator_1.from(middleSeq);\r\n }\r\n if (middleEnumerator.moveNext())\r\n return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current));\r\n middleEnumerator.dispose();\r\n middleEnumerator = null;\r\n } while (enumerator.moveNext());\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator, middleEnumerator);\r\n enumerator = null;\r\n middleEnumerator = null;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.choose = function (selector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var result = selector(enumerator.current, index++);\r\n if (result !== null && result !== undefined)\r\n return yielder.yieldReturn(result);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.where = function (predicate) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n if (predicate.length < 2)\r\n return new WhereEnumerable(_, predicate);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n index = 0;\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current, index++))\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.ofType = function (type) {\r\n var typeName;\r\n switch (type) {\r\n case Number:\r\n typeName = Types_1.default.NUMBER;\r\n break;\r\n case String:\r\n typeName = Types_1.default.STRING;\r\n break;\r\n case Boolean:\r\n typeName = Types_1.default.BOOLEAN;\r\n break;\r\n case Function:\r\n typeName = Types_1.default.FUNCTION;\r\n break;\r\n default:\r\n return this\r\n .where(function (x) { return Types_1.default.isInstanceOf(x, type); });\r\n }\r\n return this\r\n .where(function (x) { return typeof x === typeName; });\r\n };\r\n Enumerable.prototype.except = function (second, compareSelector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n if (second)\r\n Enumerable.forEach(second, function (key) { return keys.addByKeyValue(key, true); });\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, true);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n keys.clear();\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.distinct = function (compareSelector) {\r\n return this.except(null, compareSelector);\r\n };\r\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var compareKey;\r\n var initial = true;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n while (enumerator.moveNext()) {\r\n var key = compareSelector(enumerator.current);\r\n if (initial) {\r\n initial = false;\r\n }\r\n else if (compareKey === key) {\r\n continue;\r\n }\r\n compareKey = key;\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.reverse = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var buffer;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n buffer = _.toArray();\r\n index = buffer.length;\r\n }, function (yielder) {\r\n return index > 0\r\n && yielder.yieldReturn(buffer[--index]);\r\n }, function () {\r\n buffer.length = 0;\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.shuffle = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var buffer;\r\n var capacity;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n buffer = _.toArray();\r\n capacity = len = buffer.length;\r\n }, function (yielder) {\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var selectedIndex = Integer_1.default.random(len);\r\n var selectedValue = buffer[selectedIndex];\r\n buffer[selectedIndex] = buffer[--len];\r\n buffer[len] = null;\r\n if (len % 32 == 0)\r\n buffer.length = len;\r\n return yielder.yieldReturn(selectedValue);\r\n }, function () {\r\n buffer.length = 0;\r\n });\r\n }, function () {\r\n disposed = true;\r\n });\r\n };\r\n Enumerable.prototype.count = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var count = 0;\r\n if (predicate) {\r\n _.forEach(function (x, i) {\r\n if (predicate(x, i))\r\n ++count;\r\n });\r\n }\r\n else {\r\n _.forEach(function () {\r\n ++count;\r\n });\r\n }\r\n return count;\r\n };\r\n Enumerable.prototype.all = function (predicate) {\r\n var result = true;\r\n this.forEach(function (x) {\r\n if (!predicate(x)) {\r\n result = false;\r\n return false;\r\n }\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.every = function (predicate) {\r\n return this.all(predicate);\r\n };\r\n Enumerable.prototype.any = function (predicate) {\r\n var result = false;\r\n if (predicate) {\r\n this.forEach(function (x) {\r\n result = predicate(x);\r\n return !result;\r\n });\r\n }\r\n else {\r\n this.forEach(function () {\r\n result = true;\r\n return false;\r\n });\r\n }\r\n return result;\r\n };\r\n Enumerable.prototype.some = function (predicate) {\r\n return this.any(predicate);\r\n };\r\n Enumerable.prototype.isEmpty = function () {\r\n return !this.any();\r\n };\r\n Enumerable.prototype.contains = function (value, compareSelector) {\r\n return compareSelector\r\n ? this.any(function (v) { return compareSelector(v) === compareSelector(value); })\r\n : this.any(function (v) { return v === value; });\r\n };\r\n Enumerable.prototype.indexOf = function (value, compareSelector) {\r\n var found = -1;\r\n if (compareSelector)\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(compareSelector(element), compareSelector(value), true)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n else\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(element, value, true)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n return found;\r\n };\r\n Enumerable.prototype.lastIndexOf = function (value, compareSelector) {\r\n var result = -1;\r\n if (compareSelector)\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n result\r\n = i;\r\n });\r\n else\r\n this.forEach(function (element, i) {\r\n if (Values.areEqual(element, value, true))\r\n result = i;\r\n });\r\n return result;\r\n };\r\n Enumerable.prototype.defaultIfEmpty = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var isFirst;\r\n return new EnumeratorBase_1.default(function () {\r\n isFirst = true;\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n if (enumerator.moveNext()) {\r\n isFirst = false;\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n else if (isFirst) {\r\n isFirst = false;\r\n return yielder.yieldReturn(defaultValue);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.zip = function (second, resultSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = Enumerator_1.from(second);\r\n }, function (yielder) {\r\n return firstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.zipMultiple = function (second, resultSelector) {\r\n var _ = this;\r\n if (!second.length)\r\n return Enumerable.empty();\r\n return new Enumerable(function () {\r\n var secondTemp;\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n secondTemp = new Queue_1.default(second);\r\n index = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = null;\r\n }, function (yielder) {\r\n if (firstEnumerator.moveNext()) {\r\n while (true) {\r\n while (!secondEnumerator) {\r\n if (secondTemp.count) {\r\n var next = secondTemp.dequeue();\r\n if (next)\r\n secondEnumerator = Enumerator_1.from(next);\r\n }\r\n else\r\n return yielder.yieldBreak();\r\n }\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\r\n secondEnumerator.dispose();\r\n secondEnumerator = null;\r\n }\r\n }\r\n return yielder.yieldBreak();\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondTemp);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var outerEnumerator;\r\n var lookup;\r\n var innerElements = null;\r\n var innerCount = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n outerEnumerator = _.getEnumerator();\r\n lookup = Enumerable.from(inner)\r\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n }, function (yielder) {\r\n while (true) {\r\n if (innerElements != null) {\r\n var innerElement = innerElements[innerCount++];\r\n if (innerElement !== undefined)\r\n return yielder.yieldReturn(resultSelector(outerEnumerator.current, innerElement));\r\n innerElement = null;\r\n innerCount = 0;\r\n }\r\n if (outerEnumerator.moveNext()) {\r\n var key = outerKeySelector(outerEnumerator.current);\r\n innerElements = lookup.get(key);\r\n }\r\n else {\r\n return yielder.yieldBreak();\r\n }\r\n }\r\n }, function () {\r\n Utility_1.dispose(outerEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var lookup = null;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n lookup = Enumerable.from(inner)\r\n .toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n }, function (yielder) {\r\n return enumerator.moveNext()\r\n && yielder.yieldReturn(resultSelector(enumerator.current, lookup.get(outerKeySelector(enumerator.current))));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.concatWith = function (other) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n firstEnumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n if (firstEnumerator != null) {\r\n if (firstEnumerator.moveNext())\r\n return yielder.yieldReturn(firstEnumerator.current);\r\n secondEnumerator = Enumerator_1.from(other);\r\n firstEnumerator.dispose();\r\n firstEnumerator = null;\r\n }\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(secondEnumerator.current);\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.merge = function (enumerables) {\r\n var _ = this;\r\n if (!enumerables.length)\r\n return _;\r\n if (enumerables.length == 1)\r\n return _.concatWith(enumerables[0]);\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var queue;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n queue = new Queue_1.default(enumerables);\r\n }, function (yielder) {\r\n while (true) {\r\n while (!enumerator && queue.count) {\r\n enumerator = Enumerator_1.from(queue.dequeue());\r\n }\r\n if (enumerator && enumerator.moveNext())\r\n return yielder.yieldReturn(enumerator.current);\r\n if (enumerator) {\r\n enumerator.dispose();\r\n enumerator = null;\r\n continue;\r\n }\r\n return yielder.yieldBreak();\r\n }\r\n }, function () {\r\n Utility_1.dispose(enumerator, queue);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.concat = function () {\r\n var enumerables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n enumerables[_i - 0] = arguments[_i];\r\n }\r\n var _ = this;\r\n if (enumerables.length == 0)\r\n return _;\r\n if (enumerables.length == 1)\r\n return _.concatWith(enumerables[0]);\r\n return _.merge(enumerables);\r\n };\r\n Enumerable.prototype.insertAt = function (index, other) {\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var count = 0;\r\n var isEnumerated = false;\r\n return new EnumeratorBase_1.default(function () {\r\n count = 0;\r\n firstEnumerator = _.getEnumerator();\r\n secondEnumerator = Enumerator_1.from(other);\r\n isEnumerated = false;\r\n }, function (yielder) {\r\n if (count == n) {\r\n isEnumerated = true;\r\n if (secondEnumerator.moveNext())\r\n return yielder.yieldReturn(secondEnumerator.current);\r\n }\r\n if (firstEnumerator.moveNext()) {\r\n count++;\r\n return yielder.yieldReturn(firstEnumerator.current);\r\n }\r\n return !isEnumerated\r\n && secondEnumerator.moveNext()\r\n && yielder.yieldReturn(secondEnumerator.current);\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.alternateMultiple = function (sequence) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var buffer, mode, enumerator, alternateEnumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence));\r\n enumerator = _.getEnumerator();\r\n var hasAtLeastOne = enumerator.moveNext();\r\n mode = hasAtLeastOne\r\n ? 1\r\n : 0;\r\n if (hasAtLeastOne)\r\n buffer = enumerator.current;\r\n }, function (yielder) {\r\n switch (mode) {\r\n case 0:\r\n return yielder.yieldBreak();\r\n case 2:\r\n if (alternateEnumerator.moveNext())\r\n return yielder.yieldReturn(alternateEnumerator.current);\r\n alternateEnumerator.reset();\r\n mode = 1;\r\n break;\r\n }\r\n var latest = buffer;\r\n var another = enumerator.moveNext();\r\n mode = another\r\n ? 2\r\n : 0;\r\n if (another)\r\n buffer = enumerator.current;\r\n return yielder.yieldReturn(latest);\r\n }, function () {\r\n Utility_1.dispose(enumerator, alternateEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.alternateSingle = function (value) {\r\n return this.alternateMultiple(Enumerable.make(value));\r\n };\r\n Enumerable.prototype.alternate = function () {\r\n var sequence = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n sequence[_i - 0] = arguments[_i];\r\n }\r\n return this.alternateMultiple(sequence);\r\n };\r\n Enumerable.prototype.intersect = function (second, compareSelector) {\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n var outs;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n outs = new Dictionary_1.default(compareSelector);\r\n Enumerable.from(second)\r\n .forEach(function (key) {\r\n keys.addByKeyValue(key, true);\r\n });\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current;\r\n if (!outs.containsKey(current) && keys.containsKey(current)) {\r\n outs.addByKeyValue(current, true);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return yielder.yieldBreak();\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n return Utility_1.using(this.getEnumerator(), function (e1) { return Utility_1.using(Enumerable.from(second).getEnumerator(), function (e2) {\r\n while (e1.moveNext()) {\r\n if (!e2.moveNext() || !equalityComparer(e1.current, e2.current))\r\n return false;\r\n }\r\n return !e2.moveNext();\r\n }); });\r\n };\r\n Enumerable.prototype.union = function (second, compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var keys;\r\n return new EnumeratorBase_1.default(function () {\r\n firstEnumerator = _.getEnumerator();\r\n keys = new Dictionary_1.default(compareSelector);\r\n }, function (yielder) {\r\n var current;\r\n if (secondEnumerator === undefined) {\r\n while (firstEnumerator.moveNext()) {\r\n current = firstEnumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, null);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n }\r\n while (secondEnumerator.moveNext()) {\r\n current = secondEnumerator.current;\r\n if (!keys.containsKey(current)) {\r\n keys.addByKeyValue(current, null);\r\n return yielder.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(firstEnumerator, secondEnumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.orderBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return new OrderedEnumerable(this, keySelector, 1);\r\n };\r\n Enumerable.prototype.orderUsing = function (comparison) {\r\n return new OrderedEnumerable(this, null, 1, null, comparison);\r\n };\r\n Enumerable.prototype.orderUsingReversed = function (comparison) {\r\n return new OrderedEnumerable(this, null, -1, null, comparison);\r\n };\r\n Enumerable.prototype.orderByDescending = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return new OrderedEnumerable(this, keySelector, -1);\r\n };\r\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) {\r\n var _ = this;\r\n if (!elementSelector)\r\n elementSelector = Functions.Identity;\r\n return new Enumerable(function () { return _.toLookup(keySelector, elementSelector, compareSelector)\r\n .getEnumerator(); });\r\n };\r\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\r\n if (resultSelector === void 0) { resultSelector = function (key, elements) { return new Grouping(key, elements); }; }\r\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\r\n var _ = this;\r\n if (!elementSelector)\r\n elementSelector = Functions.Identity;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var key;\r\n var compareKey;\r\n var group;\r\n var len;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n if (enumerator.moveNext()) {\r\n key = keySelector(enumerator.current);\r\n compareKey = compareSelector(key);\r\n group = [elementSelector(enumerator.current)];\r\n len = 1;\r\n }\r\n else\r\n group = null;\r\n }, function (yielder) {\r\n if (!group)\r\n return yielder.yieldBreak();\r\n var hasNext, c;\r\n while ((hasNext = enumerator.moveNext())) {\r\n c = enumerator.current;\r\n if (compareKey === compareSelector(keySelector(c)))\r\n group[len++] = elementSelector(c);\r\n else\r\n break;\r\n }\r\n var result = resultSelector(key, group);\r\n if (hasNext) {\r\n c = enumerator.current;\r\n key = keySelector(c);\r\n compareKey = compareSelector(key);\r\n group = [elementSelector(c)];\r\n len = 1;\r\n }\r\n else {\r\n group = null;\r\n }\r\n return yielder.yieldReturn(result);\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n group = null;\r\n });\r\n });\r\n };\r\n Enumerable.prototype.buffer = function (size) {\r\n if (size < 1 || !isFinite(size))\r\n throw new Error(\"Invalid buffer size.\");\r\n Integer_1.default.assert(size, \"size\");\r\n var _ = this, len;\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n var array = ArrayUtility.initialize(size);\r\n len = 0;\r\n while (len < size && enumerator.moveNext) {\r\n array[len++] = enumerator.current;\r\n }\r\n array.length = len;\r\n return len && yielder.yieldReturn(array);\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.aggregate = function (func, seed) {\r\n return this.scan(func, seed).lastOrDefault();\r\n };\r\n Enumerable.prototype.average = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var sum = 0;\r\n var sumInfinite = 0;\r\n var count = 0;\r\n this.forEach(function (x) {\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n sum = NaN;\r\n return false;\r\n }\r\n if (isFinite(value))\r\n sum += value;\r\n else\r\n sumInfinite += value > 0 ? (+1) : (-1);\r\n ++count;\r\n });\r\n if (sumInfinite)\r\n return sumInfinite * Infinity;\r\n return (isNaN(sum) || !count)\r\n ? NaN\r\n : (sum / count);\r\n };\r\n Enumerable.prototype.max = function () {\r\n return this.aggregate(Functions.Greater);\r\n };\r\n Enumerable.prototype.min = function () {\r\n return this.aggregate(Functions.Lesser);\r\n };\r\n Enumerable.prototype.maxBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\r\n };\r\n Enumerable.prototype.minBy = function (keySelector) {\r\n if (keySelector === void 0) { keySelector = Functions.Identity; }\r\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\r\n };\r\n Enumerable.prototype.sum = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var sum = 0;\r\n var sumInfinite = 0;\r\n this.forEach(function (x) {\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n sum = NaN;\r\n return false;\r\n }\r\n if (isFinite(value))\r\n sum += value;\r\n else\r\n sumInfinite += value > 0 ? (+1) : (-1);\r\n });\r\n return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum);\r\n };\r\n Enumerable.prototype.product = function (selector) {\r\n if (selector === void 0) { selector = Types_1.default.numberOrNaN; }\r\n var result = 1, exists = false;\r\n this.forEach(function (x) {\r\n exists = true;\r\n var value = selector(x);\r\n if (isNaN(value)) {\r\n result = NaN;\r\n return false;\r\n }\r\n if (value == 0) {\r\n result = 0;\r\n return false;\r\n }\r\n result *= value;\r\n });\r\n return (exists && isNaN(result)) ? NaN : result;\r\n };\r\n Enumerable.prototype.elementAt = function (index) {\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x, i) {\r\n if (i == n) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n if (!found)\r\n throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n return value;\r\n };\r\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n if (isNaN(index) || index < 0 || !isFinite(index))\r\n throw new Error(\"'index' is invalid or out of bounds.\");\r\n Integer_1.default.assert(index, \"index\");\r\n var n = index;\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x, i) {\r\n if (i == n) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.first = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n if (!found)\r\n throw new Error(\"first:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.firstOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.last = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n if (!found)\r\n throw new Error(\"last:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.lastOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.single = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n }\r\n else\r\n throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n if (!found)\r\n throw new Error(\"single:No element satisfies the condition.\");\r\n return value;\r\n };\r\n Enumerable.prototype.singleOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var value = undefined;\r\n var found = false;\r\n _.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n }\r\n else\r\n throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n Enumerable.prototype.share = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var sharedEnumerator;\r\n return new Enumerable(function () {\r\n return new EnumeratorBase_1.default(function () {\r\n // assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n if (!sharedEnumerator)\r\n sharedEnumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n return sharedEnumerator.moveNext()\r\n && yielder.yieldReturn(sharedEnumerator.current);\r\n });\r\n }, function () {\r\n Utility_1.dispose(sharedEnumerator);\r\n });\r\n };\r\n Enumerable.prototype.memoize = function () {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n var cache;\r\n var enumerator;\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n if (!enumerator)\r\n enumerator = _.getEnumerator();\r\n if (!cache)\r\n cache = [];\r\n index = 0;\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n var i = index++;\r\n if (i >= cache.length) {\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(cache[i] = enumerator.current)\r\n : false;\r\n }\r\n return yielder.yieldReturn(cache[i]);\r\n });\r\n }, function () {\r\n disposed = true;\r\n if (cache)\r\n cache.length = 0;\r\n cache = null;\r\n Utility_1.dispose(enumerator);\r\n enumerator = null;\r\n });\r\n };\r\n Enumerable.prototype.catchError = function (handler) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n try {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }\r\n catch (e) {\r\n }\r\n }, function (yielder) {\r\n try {\r\n throwIfDisposed(disposed);\r\n if (enumerator.moveNext())\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n catch (e) {\r\n handler(e);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n });\r\n };\r\n Enumerable.prototype.finallyAction = function (action) {\r\n var _ = this, disposed = !_.throwIfDisposed();\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n throwIfDisposed(disposed);\r\n enumerator = _.getEnumerator();\r\n }, function (yielder) {\r\n throwIfDisposed(disposed);\r\n return (enumerator.moveNext())\r\n ? yielder.yieldReturn(enumerator.current)\r\n : false;\r\n }, function () {\r\n try {\r\n Utility_1.dispose(enumerator);\r\n }\r\n finally {\r\n action();\r\n }\r\n });\r\n });\r\n };\r\n return Enumerable;\r\n })(DisposableBase_1.default);\r\n exports.Enumerable = Enumerable;\r\n var ArrayEnumerable = (function (_super) {\r\n __extends(ArrayEnumerable, _super);\r\n function ArrayEnumerable(source) {\r\n _super.call(this, function () {\r\n _.throwIfDisposed();\r\n return new ArrayEnumerator_1.default(function () {\r\n _.throwIfDisposed(\"The underlying ArrayEnumerable was disposed.\", \"ArrayEnumerator\");\r\n return _._source;\r\n });\r\n });\r\n var _ = this;\r\n _._disposableObjectName = \"ArrayEnumerable\";\r\n _._source = source;\r\n }\r\n ArrayEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this._source = null;\r\n };\r\n Object.defineProperty(ArrayEnumerable.prototype, \"source\", {\r\n get: function () {\r\n return this._source;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ArrayEnumerable.prototype.toArray = function () {\r\n var s = this.source;\r\n if (!s)\r\n return [];\r\n if (Array.isArray(s))\r\n return s.slice();\r\n var len = s.length, result = ArrayUtility.initialize(len);\r\n for (var i = 0; i < len; ++i) {\r\n result[i] = s[i];\r\n }\r\n return result;\r\n };\r\n ArrayEnumerable.prototype.asEnumerable = function () {\r\n return new ArrayEnumerable(this._source);\r\n };\r\n ArrayEnumerable.prototype.forEach = function (action) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n if (source) {\r\n for (var i = 0; i < source.length; ++i) {\r\n if (action(source[i], i) === false)\r\n break;\r\n }\r\n }\r\n };\r\n ArrayEnumerable.prototype.any = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source ? source.length : 0;\r\n return len && (!predicate || _super.prototype.any.call(this, predicate));\r\n };\r\n ArrayEnumerable.prototype.count = function (predicate) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source ? source.length : 0;\r\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\r\n };\r\n ArrayEnumerable.prototype.elementAt = function (index) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (index < source.length && index >= 0)\r\n ? source[index]\r\n : _super.prototype.elementAt.call(this, index);\r\n };\r\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (index < source.length && index >= 0)\r\n ? source[index]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.first = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (source && source.length)\r\n ? source[0]\r\n : _super.prototype.first.call(this);\r\n };\r\n ArrayEnumerable.prototype.firstOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source;\r\n return (source && source.length)\r\n ? source[0]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.last = function () {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source.length;\r\n return (len)\r\n ? source[len - 1]\r\n : _super.prototype.last.call(this);\r\n };\r\n ArrayEnumerable.prototype.lastOrDefault = function (defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var _ = this;\r\n _.throwIfDisposed();\r\n var source = _._source, len = source.length;\r\n return len\r\n ? source[len - 1]\r\n : defaultValue;\r\n };\r\n ArrayEnumerable.prototype.skip = function (count) {\r\n var _ = this;\r\n if (!count || count < 0)\r\n return _.asEnumerable();\r\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, count); });\r\n };\r\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\r\n if (count === void 0) { count = 1; }\r\n var _ = this, len = _._source ? _._source.length : 0;\r\n return _.take(len - count);\r\n };\r\n ArrayEnumerable.prototype.takeFromLast = function (count) {\r\n if (!count || count < 0)\r\n return Enumerable.empty();\r\n var _ = this, len = _._source\r\n ? _._source.length\r\n : 0;\r\n return _.skip(len - count);\r\n };\r\n ArrayEnumerable.prototype.reverse = function () {\r\n var _ = this;\r\n return new Enumerable(function () { return new ArrayEnumerator_1.default(function () { return _._source; }, _._source\r\n ? (_._source.length - 1)\r\n : 0, -1); });\r\n };\r\n ArrayEnumerable.prototype.memoize = function () {\r\n return new ArrayEnumerable(this._source);\r\n };\r\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n if (Array.isArray(second))\r\n return Arrays.areEqual(this.source, second, true, equalityComparer);\r\n if (Types_1.default.isInstanceOf(second, ArrayEnumerable))\r\n return second.sequenceEqual(this.source, equalityComparer);\r\n return _super.prototype.sequenceEqual.call(this, second, equalityComparer);\r\n };\r\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator === void 0) { separator = \"\"; }\r\n if (selector === void 0) { selector = Functions.Identity; }\r\n var s = this._source;\r\n return !selector && Array.isArray(s)\r\n ? s.join(separator)\r\n : _super.prototype.toJoinedString.call(this, separator, selector);\r\n };\r\n return ArrayEnumerable;\r\n })(Enumerable);\r\n var Grouping = (function (_super) {\r\n __extends(Grouping, _super);\r\n function Grouping(_groupKey, elements) {\r\n _super.call(this, elements);\r\n this._groupKey = _groupKey;\r\n }\r\n Object.defineProperty(Grouping.prototype, \"key\", {\r\n get: function () {\r\n return this._groupKey;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Grouping;\r\n })(ArrayEnumerable);\r\n var Lookup = (function () {\r\n function Lookup(_dictionary) {\r\n this._dictionary = _dictionary;\r\n }\r\n Object.defineProperty(Lookup.prototype, \"count\", {\r\n get: function () {\r\n return this._dictionary.count;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lookup.prototype.get = function (key) {\r\n return this._dictionary.getValue(key);\r\n };\r\n Lookup.prototype.contains = function (key) {\r\n return this._dictionary.containsKey(key);\r\n };\r\n Lookup.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = _._dictionary.getEnumerator();\r\n }, function (yielder) {\r\n if (!enumerator.moveNext())\r\n return false;\r\n var current = enumerator.current;\r\n return yielder.yieldReturn(new Grouping(current.key, current.value));\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n return Lookup;\r\n })();\r\n var WhereEnumerable = (function (_super) {\r\n __extends(WhereEnumerable, _super);\r\n function WhereEnumerable(prevSource, prevPredicate) {\r\n _super.call(this, null);\r\n this.prevSource = prevSource;\r\n this.prevPredicate = prevPredicate;\r\n }\r\n WhereEnumerable.prototype.where = function (predicate) {\r\n if (predicate.length > 1)\r\n return _super.prototype.where.call(this, predicate);\r\n var prevPredicate = this.prevPredicate;\r\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\r\n return new WhereEnumerable(this.prevSource, composedPredicate);\r\n };\r\n WhereEnumerable.prototype.select = function (selector) {\r\n if (selector.length > 1)\r\n return _super.prototype.select.call(this, selector);\r\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector);\r\n };\r\n WhereEnumerable.prototype.getEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var source = this.prevSource;\r\n var enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = source.getEnumerator();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current))\r\n return yielder.yieldReturn(enumerator.current);\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n WhereEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this.prevPredicate = null;\r\n this.prevSource = null;\r\n };\r\n return WhereEnumerable;\r\n })(Enumerable);\r\n var WhereSelectEnumerable = (function (_super) {\r\n __extends(WhereSelectEnumerable, _super);\r\n function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) {\r\n _super.call(this, null);\r\n this.prevSource = prevSource;\r\n this.prevPredicate = prevPredicate;\r\n this.prevSelector = prevSelector;\r\n }\r\n WhereSelectEnumerable.prototype.where = function (predicate) {\r\n if (predicate.length > 1)\r\n return _super.prototype.where.call(this, predicate);\r\n return new WhereEnumerable(this, predicate);\r\n };\r\n WhereSelectEnumerable.prototype.select = function (selector) {\r\n if (selector.length > 1)\r\n return _super.prototype.select.call(this, selector);\r\n var _ = this;\r\n var prevSelector = _.prevSelector;\r\n var composedSelector = function (x) { return selector(prevSelector(x)); };\r\n return new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n };\r\n WhereSelectEnumerable.prototype.getEnumerator = function () {\r\n var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, enumerator;\r\n return new EnumeratorBase_1.default(function () {\r\n enumerator = source.getEnumerator();\r\n }, function (yielder) {\r\n while (enumerator.moveNext()) {\r\n var c = enumerator.current;\r\n if (predicate == null || predicate(c)) {\r\n return yielder.yieldReturn(selector(c));\r\n }\r\n }\r\n return false;\r\n }, function () {\r\n Utility_1.dispose(enumerator);\r\n });\r\n };\r\n WhereSelectEnumerable.prototype._onDispose = function () {\r\n var _ = this;\r\n _super.prototype._onDispose.call(this);\r\n _.prevPredicate = null;\r\n _.prevSource = null;\r\n _.prevSelector = null;\r\n };\r\n return WhereSelectEnumerable;\r\n })(Enumerable);\r\n var OrderedEnumerable = (function (_super) {\r\n __extends(OrderedEnumerable, _super);\r\n function OrderedEnumerable(source, keySelector, order, parent, comparer) {\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n _super.call(this, null);\r\n this.source = source;\r\n this.keySelector = keySelector;\r\n this.order = order;\r\n this.parent = parent;\r\n this.comparer = comparer;\r\n }\r\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, order) {\r\n return new OrderedEnumerable(this.source, keySelector, order, this);\r\n };\r\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, 1);\r\n };\r\n OrderedEnumerable.prototype.thenUsing = function (comparison) {\r\n return new OrderedEnumerable(this.source, null, 1, this, comparison);\r\n };\r\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, -1);\r\n };\r\n OrderedEnumerable.prototype.thenUsingReversed = function (comparison) {\r\n return new OrderedEnumerable(this.source, null, -1, this, comparison);\r\n };\r\n OrderedEnumerable.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var buffer;\r\n var indexes;\r\n var index = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n index = 0;\r\n buffer = Enumerable.toArray(_.source);\r\n indexes = createSortContext(_).generateSortedIndexes(buffer);\r\n }, function (yielder) {\r\n return (index < indexes.length)\r\n ? yielder.yieldReturn(buffer[indexes[index++]])\r\n : false;\r\n }, function () {\r\n if (buffer)\r\n buffer.length = 0;\r\n buffer = null;\r\n if (indexes)\r\n indexes.length = 0;\r\n indexes = null;\r\n });\r\n };\r\n OrderedEnumerable.prototype._onDispose = function () {\r\n _super.prototype._onDispose.call(this);\r\n this.source = null;\r\n this.keySelector = null;\r\n this.order = null;\r\n this.parent = null;\r\n };\r\n return OrderedEnumerable;\r\n })(Enumerable);\r\n function createSortContext(orderedEnumerable, currentContext) {\r\n if (currentContext === void 0) { currentContext = null; }\r\n var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer);\r\n if (orderedEnumerable.parent)\r\n return createSortContext(orderedEnumerable.parent, context);\r\n return context;\r\n }\r\n function throwIfDisposed(disposed, className) {\r\n if (className === void 0) { className = \"Enumerable\"; }\r\n if (disposed)\r\n throw new ObjectDisposedException_1.default(className);\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Enumerable;\r\n});\r\n//# sourceMappingURL=Linq.js.map","/*\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\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 {from as enumeratorFrom, forEach as enumeratorForEach, isEnumerable} 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, disposeThese, using} from '../System/Disposable/Utility';\r\nimport DisposableBase from '../System/Disposable/DisposableBase';\r\nimport Exception from \"../System/Exception\";\r\nimport ArgumentException from '../System/Exceptions/ArgumentException';\r\nimport ObjectDisposedException from '../System/Disposable/ObjectDisposedException';\r\nimport Order from \"../System/Collections/Sorting/Order\";\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\ntype Comparable = Primitive|IComparable;\r\n'use strict';\r\n\r\n// #region Local Constants.\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 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 DisposableBase implements IEnumerable\r\n{\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}\r\n\r\n\t/**\r\n\t * Static shortcut for creating an ArrayEnumerable.\r\n\t */\r\n\tstatic fromArray(array:IArray):Enumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(array);\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:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Type.isInstanceOf>(source, Enumerable))\r\n\t\t\t\treturn source;\r\n\r\n\t\t\tif(Array.isArray(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(()=>source.getEnumerator());\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\r\n\tstatic toArray(source:IEnumerable | IArray):T[]\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Array.isArray(source))\r\n\t\t\t\treturn source.slice();\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\tsource = new ArrayEnumerable(>source);\r\n\r\n\t\t\tif(Type.isInstanceOf>(source, Enumerable))\r\n\t\t\t\treturn source.toArray();\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t{\r\n\t\t\t\tvar result:T[] = [];\r\n\t\t\t\tenumeratorForEach(\r\n\t\t\t\t\tsource.getEnumerator(), (e, i) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult[i] = e;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\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//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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(values[Integer.random(values.length)])\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0; // Let the compiler know this is an int.\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);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic empty():Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\tFunctions.False\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\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? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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)=> (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)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration does not break.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):Enumerable\r\n\t{\r\n\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic make(element:T):Enumerable\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\tstatic range(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new Enumerable(\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\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic rangeDown(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\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):Enumerable\r\n\t{\r\n\t\treturn Enumerable.range(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\treturn Enumerable.rangeDown(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number = 0,\r\n\t\tto:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(to))\r\n\t\t\tthrow new Error(\"Must have a valid 'to' value.\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\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\t// Range to infinity has a more efficient mechanism.\r\n\t\tif(!isFinite(to))\r\n\t\t\treturn Enumerable.range(start, Infinity, (start(\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 start(\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 result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t: 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 result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\treturn result;\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 matches(input:string, pattern:any, flags:string = \"\"):Enumerable\r\n\t{\r\n\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(Type.isInstanceOf(pattern, 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 Enumerable(\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, count:number = Infinity):Enumerable\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\r\n\t\t\t? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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\tvar current:number = index++;\r\n\t\t\t\t\t\treturn current(\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},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++))\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(seed:T, valueFactory:Selector, skipSeed:Boolean = false):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic defer(enumerableFactory:() => IEnumerable):Enumerable\r\n\t{\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 = enumerableFactory().getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> enumerator.moveNext() && yielder.yieldReturn(enumerator.current),\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\tstatic forEach(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\tif(enumerable)\r\n\t\t{\r\n\t\t\tusing(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tenumeratorForEach(e, action);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\r\n\t\treturn enumerable && using(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tvar result:TResult[] = [];\r\n\t\t\t\tenumeratorForEach(e, (e, i)=>\r\n\t\t\t\t{\r\n\t\t\t\t\tresult[i] = selector(e);\r\n\t\t\t\t});\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:Enumerable):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:Enumerable):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\t// #endregion\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Instance methods...\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\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\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\tvar result:T[] = [];\r\n\r\n\t\tif(predicate) return this.where(predicate).toArray();\r\n\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tresult[i] = x\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(() => _.getEnumerator());\r\n\t}\r\n\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\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!==undefined) 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=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x)] = elementSelector(x);\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=> dict.addByKeyValue(keySelector(x), elementSelector(x)));\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\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):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 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\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\t\t);\r\n\t}\r\n\r\n\tforce(defaultAction:EnumerableAction = EnumerableAction.Break):void\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tthis.doAction(element => defaultAction);\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!count || isNaN(count) || count<0) // Out of bounds? Simply return this.\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\r\n\t\tvar c:number = count;\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tvar skipping:boolean = true;\r\n\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(skipping)\r\n\t\t\t\t\tskipping = predicate(element, index);\r\n\r\n\t\t\t\treturn skipping\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttake(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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)) // +Infinity equals no limit.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = 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):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t}\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\r\n\t\tif(!count || isNaN(count) || count<=0) // Out of bounds? Empty.\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\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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 in reverse.\r\n\t\t\treturn _.reverse();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn _.reverse().take(count);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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 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.fromArray(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(func);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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\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\tvar 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\tenumerator = func(enumerator.current).getEnumerator();\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\tdisposeThese(enumeratorStack);\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\tflatten():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 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!=null)\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 = 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\tif(Array.isArray(c))\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 = Enumerable.fromArray(c)\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(enumerator.current);\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 false;\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\t\t\t\t);\r\n\t\t\t}\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\t\t\t\t);\r\n\t\t\t}\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!==undefined; // 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\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\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(selector.length<2)\r\n\t\t\treturn new WhereSelectEnumerable(_, null, selector);\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: 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\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\r\n\tselectMany(collectionSelector:Selector>>):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector | IArray> | 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:any, middle:any) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a, b) => 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===undefined && !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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tchoose(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!==undefined)\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\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\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(predicate.length<2)\r\n\t\t\treturn new WhereEnumerable(_, predicate);\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\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\r\n\t}\r\n\r\n\tofType(type:{ new (): TType }):Enumerable;\r\n\tofType(type:any):Enumerable\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=>Type.isInstanceOf(x, type));\r\n\t\t}\r\n\t\treturn >this\r\n\t\t\t.where(x=>typeof x===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerable,\r\n\t\tcompareSelector?:Selector):Enumerable\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\tEnumerable.forEach(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\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\tdistinct(compareSelector?:(value:T) => T):Enumerable\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] results in [0,1,2,0];\r\n\tdistinctUntilChanged(compareSelector?: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 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(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\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\treverse():Enumerable\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 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)=>\r\n\t\t\t\t\tindex>0\r\n\t\t\t\t\t&& 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\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\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar count:number = 0;\r\n\t\tif(predicate)\r\n\t\t{\r\n\t\t\t_.forEach((x, i) =>\r\n\t\t\t{\r\n\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\t++count;\r\n\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\tvar result = true;\r\n\t\tthis.forEach(x =>\r\n\t\t{\r\n\t\t\tif(!predicate(x))\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\tvar result = false;\r\n\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\tif(predicate)\r\n\t\t{\r\n\t\t\tthis.forEach(x =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x); // 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\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\tresult = true;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\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\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true)) result\r\n\t\t\t\t\t= i;\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):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 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)=>\r\n\t\t\t\t\tfirstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\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\tzipMultiple(\r\n\t\tsecond:IArray | IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\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\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerable | IArray,\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!==undefined)\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:IEnumerable | IArray,\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\tconcatWith(other:IEnumerable | IArray):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 firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator: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\tfirstEnumerator = _.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\tif(firstEnumerator!=null)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(firstEnumerator.moveNext()) return yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\t\tfirstEnumerator.dispose();\r\n\t\t\t\t\t\t\tfirstEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(secondEnumerator.moveNext()) return yielder.yieldReturn(secondEnumerator.current);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tmerge(enumerables:IArray | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!enumerables.length)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\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 | IArray>;\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 | IArray>(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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\r\n\r\n\t\treturn _.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tinsertAt(index:number, other:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerable | IArray):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\t\t\t\t);\r\n\t\t\t}\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\tintersect(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second)\r\n\t\t\t\t\t\t\t.forEach(key=>\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\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);\r\n\t\t\t\t\t}\r\n\t\t\t\t); // Should Dictionary be IDisposable?\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second).getEnumerator(),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\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:IEnumerable | IArray,\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\tunion(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\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 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);\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===undefined)\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 = Enumerable.from(second).getEnumerator();\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\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 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\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>|Enumerable>\r\n\t{\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() => _.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\tbuffer(size:number):IEnumerable\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\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 sum = 0;\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\tvar count = 0; // No need to make integer if the result could be a float.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tfunction(x)\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 += value>0 ? (+1) : (-1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(sumInfinite) // Not zero?\r\n\t\t\treturn sumInfinite*Infinity;\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 += value>0 ? (+1) : (-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\tx=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\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\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// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (!found) ? defaultValue : value;\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 _ = 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\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"first:No element satisfies the condition.\");\r\n\t\treturn value;\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\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\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\tsingle():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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"single:No element satisfies the condition.\");\r\n\t\treturn value;\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\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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\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\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 new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n\r\n\t\t\t\t\t\tif(!sharedEnumerator)\r\n\t\t\t\t\t\t\tsharedEnumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tsharedEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(sharedEnumerator.current)\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\tdispose(sharedEnumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\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\t// #region Error Handling\r\n\tcatchError(handler:(e:Error) => void):Enumerable\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):Enumerable\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\r\n\r\nclass ArrayEnumerable\r\nextends Enumerable\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; // Could possibly 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 s = this.source;\r\n\t\tif(!s)\r\n\t\t\treturn [];\r\n\r\n\t\tif(Array.isArray(s))\r\n\t\t\treturn (s).slice();\r\n\r\n\t\tvar len = s.length, result:T[] = ArrayUtility.initialize(len);\r\n\t\tfor(let i = 0; i\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\tvar source = _._source;\r\n\t\tif(source)\r\n\t\t{\r\n\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\tfor(let i = 0; iaction(source[i], i)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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 ? source.length : 0;\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 ? source.length : 0;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: super.elementAt(index);\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\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: super.first();\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\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: defaultValue;\r\n\t}\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 source = _._source, len = source.length;\r\n\t\treturn (len)\r\n\t\t\t? source[len - 1]\r\n\t\t\t: super.last();\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 source = _._source, len = source.length;\r\n\t\treturn len\r\n\t\t\t? source[len - 1]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!count || count<0) // Out of bounds? Simply return a unfiltered enumerable.\r\n\t\t\treturn _.asEnumerable();\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, len = _._source ? _._source.length : 0;\r\n\t\treturn _.take(len - count);\r\n\t}\r\n\r\n\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || count<0) return Enumerable.empty();\r\n\r\n\t\tvar _ = this,\r\n\t\t 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 new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Array.isArray(second))\r\n\t\t\treturn Arrays.areEqual(this.source, >second, true, equalityComparer);\r\n\r\n\t\tif(Type.isInstanceOf(second, 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\nclass WhereEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate // predicate.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\tvar prevPredicate = this.prevPredicate;\r\n\t\tvar composedPredicate = (x:T) => prevPredicate(x) && predicate(x);\r\n\t\treturn new WhereEnumerable(this.prevSource, composedPredicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\treturn new WhereSelectEnumerable(\r\n\t\t\tthis.prevSource,\r\n\t\t\tthis.prevPredicate,\r\n\t\t\tselector\r\n\t\t);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar predicate = this.prevPredicate;\r\n\t\tvar source = this.prevSource;\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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(enumerator.current))\r\n\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.prevPredicate = null;\r\n\t\tthis.prevSource = null;\r\n\t}\r\n}\r\n\r\nclass WhereSelectEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate, // predicate.length always <= 1\r\n\t\tprivate prevSelector:Selector // selector.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:(value:T, index?:number) => boolean):Enumerable\r\n\t{\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\treturn new WhereEnumerable(this, predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t// if selector use index, can't compose\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prevSelector = _.prevSelector;\r\n\t\tvar composedSelector = (x:TSource) => selector(prevSelector(x));\r\n\t\treturn new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t predicate = _.prevPredicate,\r\n\t\t source = _.prevSource,\r\n\t\t selector:Selector = _.prevSelector, // Type definition needed for correct inference.\r\n\t\t 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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\tif(predicate==null || predicate(c))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selector(c));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tsuper._onDispose();\r\n\t\t_.prevPredicate = null;\r\n\t\t_.prevSource = null;\r\n\t\t_.prevSelector = null;\r\n\t}\r\n}\r\n\r\nexport interface IOrderedEnumerable\r\nextends Enumerable\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 Enumerable 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}\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\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/**\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, className:string = \"Enumerable\"):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(className);\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","createSortContext","orderedEnumerable","currentContext","throwIfDisposed","disposed","className","Values","Arrays","ArrayUtility","Enumerator_1","Types_1","Integer_1","Functions_1","ArrayEnumerator_1","EnumeratorBase_1","Dictionary_1","Queue_1","Utility_1","DisposableBase_1","Exception_1","ObjectDisposedException_1","KeySortedContext_1","VOID0","LinqFunctions","_super","LinqFunctions.constructor","LinqFunctions.Greater","LinqFunctions.Lesser","Functions","freeze","UnsupportedEnumerableException","UnsupportedEnumerableException.constructor","Enumerable","Enumerable.constructor","Enumerable.fromArray","Enumerable.from","Enumerable.toArray","Enumerable.getEnumerator","Enumerable._onDispose","Enumerable.choice","Enumerable.cycle","Enumerable.empty","Enumerable.repeat","Enumerable.repeatWithFinalize","Enumerable.make","Enumerable.range","Enumerable.rangeDown","Enumerable.toInfinity","Enumerable.toNegativeInfinity","Enumerable.rangeTo","Enumerable.matches","Enumerable.generate","Enumerable.unfold","Enumerable.defer","Enumerable.forEach","Enumerable.map","Enumerable.max","Enumerable.min","Enumerable.asEnumerable","Enumerable.toLookup","Enumerable.toMap","Enumerable.toDictionary","Enumerable.toJoinedString","Enumerable.doAction","Enumerable.force","Enumerable.skip","Enumerable.skipWhile","Enumerable.take","Enumerable.takeWhile","Enumerable.takeUntil","Enumerable.takeExceptLast","Enumerable.takeFromLast","Enumerable.traverseBreadthFirst","Enumerable.traverseDepthFirst","Enumerable.flatten","Enumerable.pairwise","Enumerable.scan","Enumerable.select","Enumerable.selectMany","Enumerable.choose","Enumerable.where","Enumerable.ofType","Enumerable.except","Enumerable.distinct","Enumerable.distinctUntilChanged","Enumerable.reverse","Enumerable.shuffle","Enumerable.count","Enumerable.all","Enumerable.every","Enumerable.any","Enumerable.some","Enumerable.isEmpty","Enumerable.contains","Enumerable.indexOf","Enumerable.lastIndexOf","Enumerable.defaultIfEmpty","Enumerable.zip","Enumerable.zipMultiple","Enumerable.join","Enumerable.groupJoin","Enumerable.concatWith","Enumerable.merge","Enumerable.concat","Enumerable.insertAt","Enumerable.alternateMultiple","Enumerable.alternateSingle","Enumerable.alternate","Enumerable.intersect","Enumerable.sequenceEqual","Enumerable.union","Enumerable.orderBy","Enumerable.orderUsing","Enumerable.orderUsingReversed","Enumerable.orderByDescending","Enumerable.groupBy","Enumerable.partitionBy","Enumerable.buffer","Enumerable.aggregate","Enumerable.average","value","selector","x","isNaN","sum","NaN","isFinite","sumInfinite","count","Enumerable.maxBy","Enumerable.minBy","Enumerable.sum","Enumerable.product","Enumerable.elementAt","Enumerable.elementAtOrDefault","Enumerable.first","Enumerable.firstOrDefault","Enumerable.last","Enumerable.lastOrDefault","Enumerable.single","Enumerable.singleOrDefault","Enumerable.share","Enumerable.memoize","Enumerable.catchError","Enumerable.finallyAction","ArrayEnumerable","ArrayEnumerable.constructor","ArrayEnumerable._onDispose","get","ArrayEnumerable.source","enumerable","configurable","ArrayEnumerable.toArray","ArrayEnumerable.asEnumerable","ArrayEnumerable.forEach","ArrayEnumerable.any","ArrayEnumerable.count","ArrayEnumerable.elementAt","ArrayEnumerable.elementAtOrDefault","ArrayEnumerable.first","ArrayEnumerable.firstOrDefault","ArrayEnumerable.last","ArrayEnumerable.lastOrDefault","ArrayEnumerable.skip","ArrayEnumerable.takeExceptLast","ArrayEnumerable.takeFromLast","ArrayEnumerable.reverse","ArrayEnumerable.memoize","ArrayEnumerable.sequenceEqual","ArrayEnumerable.toJoinedString","Grouping","Grouping.constructor","Grouping.key","Lookup","Lookup.constructor","Lookup.count","Lookup.get","Lookup.contains","Lookup.getEnumerator","WhereEnumerable","WhereEnumerable.constructor","WhereEnumerable.where","WhereEnumerable.select","WhereEnumerable.getEnumerator","WhereEnumerable._onDispose","WhereSelectEnumerable","WhereSelectEnumerable.constructor","WhereSelectEnumerable.where","WhereSelectEnumerable.select","WhereSelectEnumerable.getEnumerator","WhereSelectEnumerable._onDispose","OrderedEnumerable","OrderedEnumerable.constructor","OrderedEnumerable.createOrderedEnumerable","OrderedEnumerable.thenBy","OrderedEnumerable.thenUsing","OrderedEnumerable.thenByDescending","OrderedEnumerable.thenUsingReversed","OrderedEnumerable.getEnumerator","OrderedEnumerable._onDispose","defineProperty"],"mappings":"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","file":"System.Linq/Linq.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\", '../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/Utility', '../System/Disposable/DisposableBase', \"../System/Exception\", '../System/Disposable/ObjectDisposedException', \"../System/Collections/Sorting/KeySortedContext\"], 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 Utility_1 = require('../System/Disposable/Utility');\n var DisposableBase_1 = require('../System/Disposable/DisposableBase');\n var Exception_1 = require(\"../System/Exception\");\n var ObjectDisposedException_1 = require('../System/Disposable/ObjectDisposedException');\n var KeySortedContext_1 = require(\"../System/Collections/Sorting/KeySortedContext\");\n var VOID0 = void 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.default);\n var Functions = new LinqFunctions();\n Object.freeze(Functions);\n var UnsupportedEnumerableException = (function (_super) {\n __extends(UnsupportedEnumerableException, _super);\n function UnsupportedEnumerableException() {\n _super.call(this, \"Unsupported enumerable.\");\n }\n return UnsupportedEnumerableException;\n })(Exception_1.default);\n var Enumerable = (function (_super) {\n __extends(Enumerable, _super);\n function Enumerable(_enumeratorFactory, finalizer) {\n _super.call(this, finalizer);\n this._enumeratorFactory = _enumeratorFactory;\n }\n Enumerable.fromArray = function (array) {\n return new ArrayEnumerable(array);\n };\n Enumerable.from = function (source) {\n if (Types_1.default.isObject(source)) {\n if (source instanceof Enumerable)\n return source;\n if (Array.isArray(source))\n return new ArrayEnumerable(source);\n if (Enumerator_1.isEnumerable(source))\n return new Enumerable(function () { return source.getEnumerator(); });\n if (Types_1.default.isArrayLike(source))\n return new ArrayEnumerable(source);\n }\n throw new UnsupportedEnumerableException();\n };\n Enumerable.toArray = function (source) {\n if (Types_1.default.isObject(source)) {\n if (Array.isArray(source))\n return source.slice();\n if (Types_1.default.isArrayLike(source))\n source = new ArrayEnumerable(source);\n if (source instanceof Enumerable)\n return source.toArray();\n if (Enumerator_1.isEnumerable(source)) {\n var result = [];\n Enumerator_1.forEach(source.getEnumerator(), function (e, i) {\n result[i] = e;\n });\n return result;\n }\n }\n throw new UnsupportedEnumerableException();\n };\n Enumerable.prototype.getEnumerator = function () {\n this.throwIfDisposed();\n return this._enumeratorFactory();\n };\n Enumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this._enumeratorFactory = null;\n };\n Enumerable.choice = function (values) {\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) {\n return yielder.yieldReturn(values[Integer_1.default.random(values.length)]);\n }); });\n };\n Enumerable.cycle = function (values) {\n return new Enumerable(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 });\n });\n };\n Enumerable.empty = function () {\n return new Enumerable(function () { return new EnumeratorBase_1.default(null, Functions.False); });\n };\n Enumerable.repeat = function (element, 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 ? new Enumerable(function () {\n var c = count;\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return (index++ < c) && yielder.yieldReturn(element); });\n })\n : new Enumerable(function () {\n return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); });\n });\n };\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\n return new Enumerable(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 });\n });\n };\n Enumerable.make = function (element) {\n return Enumerable.repeat(element, 1);\n };\n Enumerable.range = function (start, count, step) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = Infinity; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new Error(\"Must have a valid 'start' value.\");\n if (isNaN(count) || count <= 0)\n return Enumerable.empty();\n if (!isFinite(step))\n throw new Error(\"Must have a valid 'step' value.\");\n return isFinite(count) && Integer_1.default.assert(count, \"count\")\n ? new Enumerable(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 });\n })\n : new Enumerable(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 });\n });\n };\n Enumerable.rangeDown = function (start, count, step) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = Infinity; }\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 return Enumerable.range(start, Infinity, step);\n };\n Enumerable.toNegativeInfinity = function (start, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n return Enumerable.rangeDown(start, Infinity, step);\n };\n Enumerable.rangeTo = function (start, to, step) {\n if (start === void 0) { start = 0; }\n if (to === void 0) { to = Infinity; }\n if (step === void 0) { step = 1; }\n if (!isFinite(start))\n throw new Error(\"Must have a valid 'start' value.\");\n if (isNaN(to))\n throw new Error(\"Must have a valid 'to' value.\");\n if (!isFinite(step))\n throw new Error(\"Must have a valid 'step' value.\");\n step = Math.abs(step);\n if (!isFinite(to))\n return Enumerable.range(start, Infinity, (start < to) ? (+step) : (-step));\n return new Enumerable(function () {\n var value;\n return start < to\n ? new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var result = value <= to && yielder.yieldReturn(value);\n if (result)\n value += step;\n return result;\n })\n : new EnumeratorBase_1.default(function () {\n value = start;\n }, function (yielder) {\n var result = value >= to && yielder.yieldReturn(value);\n if (result)\n value -= step;\n return result;\n });\n });\n };\n Enumerable.matches = function (input, pattern, flags) {\n if (flags === void 0) { flags = \"\"; }\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 Enumerable(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 ? new Enumerable(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 });\n })\n : new Enumerable(function () {\n var index = 0;\n return new EnumeratorBase_1.default(function () {\n index = 0;\n }, function (yielder) { return yielder.yieldReturn(factory(index++)); });\n });\n };\n Enumerable.unfold = function (seed, valueFactory, skipSeed) {\n if (skipSeed === void 0) { skipSeed = false; }\n return new Enumerable(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 });\n });\n };\n Enumerable.defer = function (enumerableFactory) {\n return new Enumerable(function () {\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = enumerableFactory().getEnumerator();\n }, function (yielder) { return enumerator.moveNext() && yielder.yieldReturn(enumerator.current); }, function () {\n Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.forEach = function (enumerable, action) {\n if (enumerable) {\n Utility_1.using(Enumerator_1.from(enumerable), function (e) {\n Enumerator_1.forEach(e, action);\n });\n }\n };\n Enumerable.map = function (enumerable, selector) {\n return enumerable && Utility_1.using(Enumerator_1.from(enumerable), function (e) {\n var result = [];\n Enumerator_1.forEach(e, function (e, i) {\n result[i] = selector(e);\n });\n return result;\n });\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.prototype.forEach = function (action) {\n var _ = this;\n _.throwIfDisposed();\n var index = 0;\n Utility_1.using(_.getEnumerator(), function (e) {\n while (_.throwIfDisposed() && e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n });\n };\n Enumerable.prototype.toArray = function (predicate) {\n var result = [];\n if (predicate)\n return this.where(predicate).toArray();\n this.forEach(function (x, i) {\n result[i] = x;\n });\n return result;\n };\n Enumerable.prototype.asEnumerable = function () {\n var _ = this;\n return new Enumerable(function () { return _.getEnumerator(); });\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) {\n obj[keySelector(x)] = elementSelector(x);\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) { return dict.addByKeyValue(keySelector(x), elementSelector(x)); });\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.doAction = function (action) {\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 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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.force = function (defaultAction) {\n if (defaultAction === void 0) { defaultAction = 0; }\n this.throwIfDisposed();\n this.doAction(function (element) { return defaultAction; });\n };\n Enumerable.prototype.skip = function (count) {\n var _ = this;\n _.throwIfDisposed();\n if (!count || isNaN(count) || 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 this.doAction(function (element, index) {\n return index < c\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.skipWhile = function (predicate) {\n this.throwIfDisposed();\n var skipping = true;\n return this.doAction(function (element, index) {\n if (skipping)\n skipping = predicate(element, index);\n return skipping\n ? 2\n : 1;\n });\n };\n Enumerable.prototype.take = function (count) {\n if (!count || isNaN(count) || count < 0)\n return Enumerable.empty();\n var _ = this;\n _.throwIfDisposed();\n if (!isFinite(count))\n return _;\n Integer_1.default.assert(count, \"count\");\n var c = count;\n return _.doAction(function (element, index) { return index < c; });\n };\n Enumerable.prototype.takeWhile = function (predicate) {\n this.throwIfDisposed();\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 1\n : 0;\n });\n };\n Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) {\n this.throwIfDisposed();\n if (!includeUntilValue)\n return this.doAction(function (element, index) {\n return predicate(element, index)\n ? 0\n : 1;\n });\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 });\n };\n Enumerable.prototype.takeExceptLast = function (count) {\n if (count === void 0) { count = 1; }\n var _ = this;\n if (!count || isNaN(count) || 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 Utility_1.dispose(enumerator, q);\n });\n });\n };\n Enumerable.prototype.takeFromLast = function (count) {\n if (!count || isNaN(count) || count <= 0)\n return Enumerable.empty();\n var _ = this;\n if (!isFinite(count))\n return _.reverse();\n Integer_1.default.assert(count, \"count\");\n return _.reverse().take(count);\n };\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\n var _ = this;\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 .fromArray(buffer)\n .selectMany(func);\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 Utility_1.dispose(enumerator);\n buffer.length = 0;\n });\n });\n };\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\n var _ = this;\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 enumerator = func(enumerator.current).getEnumerator();\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 Utility_1.dispose(enumerator);\n }\n finally {\n Utility_1.disposeThese(enumeratorStack);\n }\n });\n });\n };\n Enumerable.prototype.flatten = function () {\n var _ = this;\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 != null) {\n if (middleEnumerator.moveNext()) {\n return yielder.yieldReturn(middleEnumerator.current);\n }\n else {\n middleEnumerator = null;\n }\n }\n if (enumerator.moveNext()) {\n var c = enumerator.current;\n if (Array.isArray(c)) {\n middleEnumerator.dispose();\n middleEnumerator = Enumerable.fromArray(c)\n .selectMany(Functions.Identity)\n .flatten()\n .getEnumerator();\n continue;\n }\n else {\n return yielder.yieldReturn(enumerator.current);\n }\n }\n return false;\n }\n }, function () {\n Utility_1.dispose(enumerator, middleEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.select = function (selector) {\n var _ = this, disposed = !_.throwIfDisposed();\n if (selector.length < 2)\n return new WhereSelectEnumerable(_, null, selector);\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 : false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\n var _ = this;\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 Utility_1.dispose(enumerator, middleEnumerator);\n enumerator = null;\n middleEnumerator = null;\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.where = function (predicate) {\n var _ = this, disposed = !_.throwIfDisposed();\n if (predicate.length < 2)\n return new WhereEnumerable(_, predicate);\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 Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.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 .where(function (x) { return typeof x === typeName; });\n };\n Enumerable.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 Enumerable.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 Utility_1.dispose(enumerator);\n keys.clear();\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.distinct = function (compareSelector) {\n return this.except(null, compareSelector);\n };\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\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 (compareKey === key) {\n continue;\n }\n compareKey = key;\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.reverse = function () {\n var _ = this, disposed = !_.throwIfDisposed();\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) {\n return index > 0\n && yielder.yieldReturn(buffer[--index]);\n }, function () {\n buffer.length = 0;\n });\n }, function () {\n disposed = true;\n });\n };\n Enumerable.prototype.shuffle = function () {\n var _ = this, disposed = !_.throwIfDisposed();\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 _ = this;\n _.throwIfDisposed();\n var count = 0;\n if (predicate) {\n _.forEach(function (x, i) {\n if (predicate(x, i))\n ++count;\n });\n }\n else {\n _.forEach(function () {\n ++count;\n });\n }\n return count;\n };\n Enumerable.prototype.all = function (predicate) {\n var result = true;\n this.forEach(function (x) {\n if (!predicate(x)) {\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 var result = false;\n if (predicate) {\n this.forEach(function (x) {\n result = predicate(x);\n return !result;\n });\n }\n else {\n this.forEach(function () {\n result = true;\n return false;\n });\n }\n return result;\n };\n Enumerable.prototype.some = function (predicate) {\n return this.any(predicate);\n };\n Enumerable.prototype.isEmpty = function () {\n return !this.any();\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 if (compareSelector)\n this.forEach(function (element, i) {\n if (Values.areEqual(compareSelector(element), compareSelector(value), true)) {\n found = i;\n return false;\n }\n });\n else\n this.forEach(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 if (compareSelector)\n this.forEach(function (element, i) {\n if (Values.areEqual(compareSelector(element), compareSelector(value), true))\n result\n = i;\n });\n else\n this.forEach(function (element, i) {\n if (Values.areEqual(element, value, true))\n result = i;\n });\n return result;\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.zip = function (second, resultSelector) {\n var _ = this;\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) {\n return firstEnumerator.moveNext() && secondEnumerator.moveNext()\n && yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++));\n }, function () {\n Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.prototype.zipMultiple = function (second, resultSelector) {\n var _ = this;\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 Utility_1.dispose(firstEnumerator, secondTemp);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(outerEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.concatWith = function (other) {\n var _ = this;\n return new Enumerable(function () {\n var firstEnumerator;\n var secondEnumerator;\n return new EnumeratorBase_1.default(function () {\n firstEnumerator = _.getEnumerator();\n }, function (yielder) {\n if (firstEnumerator != null) {\n if (firstEnumerator.moveNext())\n return yielder.yieldReturn(firstEnumerator.current);\n secondEnumerator = Enumerator_1.from(other);\n firstEnumerator.dispose();\n firstEnumerator = null;\n }\n if (secondEnumerator.moveNext())\n return yielder.yieldReturn(secondEnumerator.current);\n return false;\n }, function () {\n Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.prototype.merge = function (enumerables) {\n var _ = this;\n if (!enumerables.length)\n return _;\n if (enumerables.length == 1)\n return _.concatWith(enumerables[0]);\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 Utility_1.dispose(enumerator, queue);\n });\n });\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 var _ = this;\n if (enumerables.length == 0)\n return _;\n if (enumerables.length == 1)\n return _.concatWith(enumerables[0]);\n return _.merge(enumerables);\n };\n Enumerable.prototype.insertAt = function (index, other) {\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\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 Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator, alternateEnumerator);\n });\n });\n };\n Enumerable.prototype.alternateSingle = function (value) {\n return this.alternateMultiple(Enumerable.make(value));\n };\n Enumerable.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 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 Enumerable.from(second)\n .forEach(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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n return Utility_1.using(this.getEnumerator(), function (e1) { return Utility_1.using(Enumerable.from(second).getEnumerator(), function (e2) {\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.union = function (second, compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions.Identity; }\n var _ = this;\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 = Enumerable.from(second).getEnumerator();\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 Utility_1.dispose(firstEnumerator, secondEnumerator);\n });\n });\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.groupBy = function (keySelector, elementSelector, compareSelector) {\n var _ = this;\n if (!elementSelector)\n elementSelector = Functions.Identity;\n return new Enumerable(function () { return _.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 Utility_1.dispose(enumerator);\n group = null;\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\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 sum = 0;\n var sumInfinite = 0;\n var count = 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 += value > 0 ? (+1) : (-1);\n ++count;\n });\n if (sumInfinite)\n return sumInfinite * Infinity;\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 += value > 0 ? (+1) : (-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) {\n exists = true;\n var value = selector(x);\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.elementAt = function (index) {\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x, i) {\n if (i == n) {\n value = x;\n found = true;\n return false;\n }\n });\n if (!found)\n throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\n return value;\n };\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n if (isNaN(index) || index < 0 || !isFinite(index))\n throw new Error(\"'index' is invalid or out of bounds.\");\n Integer_1.default.assert(index, \"index\");\n var n = index;\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x, i) {\n if (i == n) {\n value = x;\n found = true;\n return false;\n }\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.first = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n value = x;\n found = true;\n return false;\n });\n if (!found)\n throw new Error(\"first:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.firstOrDefault = 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 value = x;\n found = true;\n return false;\n });\n return (!found) ? defaultValue : value;\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.single = function () {\n var _ = this;\n _.throwIfDisposed();\n var value = undefined;\n var found = false;\n _.forEach(function (x) {\n if (!found) {\n found = true;\n value = x;\n }\n else\n throw new Error(\"single:sequence contains more than one element.\");\n });\n if (!found)\n throw new Error(\"single:No element satisfies the condition.\");\n return value;\n };\n Enumerable.prototype.singleOrDefault = 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 if (!found) {\n found = true;\n value = x;\n }\n else\n throw new Error(\"single:sequence contains more than one element.\");\n });\n return (!found) ? defaultValue : value;\n };\n Enumerable.prototype.share = function () {\n var _ = this;\n _.throwIfDisposed();\n var sharedEnumerator;\n return new Enumerable(function () {\n return new EnumeratorBase_1.default(function () {\n if (!sharedEnumerator)\n sharedEnumerator = _.getEnumerator();\n }, function (yielder) {\n return sharedEnumerator.moveNext()\n && yielder.yieldReturn(sharedEnumerator.current);\n });\n }, function () {\n Utility_1.dispose(sharedEnumerator);\n });\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 Utility_1.dispose(enumerator);\n enumerator = null;\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n });\n });\n };\n Enumerable.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 Utility_1.dispose(enumerator);\n }\n finally {\n action();\n }\n });\n });\n };\n return Enumerable;\n })(DisposableBase_1.default);\n exports.Enumerable = Enumerable;\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 s = this.source;\n if (!s)\n return [];\n if (Array.isArray(s))\n return s.slice();\n var len = s.length, result = ArrayUtility.initialize(len);\n for (var i = 0; i < len; ++i) {\n result[i] = s[i];\n }\n return result;\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 var source = _._source;\n if (source) {\n for (var i = 0; i < source.length; ++i) {\n if (action(source[i], i) === false)\n break;\n }\n }\n };\n ArrayEnumerable.prototype.any = function (predicate) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source, len = source ? source.length : 0;\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 ? source.length : 0;\n return len && (predicate ? _super.prototype.count.call(this, predicate) : len);\n };\n ArrayEnumerable.prototype.elementAt = function (index) {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (index < source.length && index >= 0)\n ? source[index]\n : _super.prototype.elementAt.call(this, index);\n };\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (index < source.length && index >= 0)\n ? source[index]\n : defaultValue;\n };\n ArrayEnumerable.prototype.first = function () {\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (source && source.length)\n ? source[0]\n : _super.prototype.first.call(this);\n };\n ArrayEnumerable.prototype.firstOrDefault = function (defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var _ = this;\n _.throwIfDisposed();\n var source = _._source;\n return (source && source.length)\n ? source[0]\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 || count < 0)\n return _.asEnumerable();\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, len = _._source ? _._source.length : 0;\n return _.take(len - count);\n };\n ArrayEnumerable.prototype.takeFromLast = function (count) {\n if (!count || count < 0)\n return Enumerable.empty();\n var _ = this, 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 new ArrayEnumerable(this._source);\n };\n ArrayEnumerable.prototype.sequenceEqual = function (second, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\n if (Array.isArray(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 })(Enumerable);\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 Utility_1.dispose(enumerator);\n });\n };\n return Lookup;\n })();\n var WhereEnumerable = (function (_super) {\n __extends(WhereEnumerable, _super);\n function WhereEnumerable(prevSource, prevPredicate) {\n _super.call(this, null);\n this.prevSource = prevSource;\n this.prevPredicate = prevPredicate;\n }\n WhereEnumerable.prototype.where = function (predicate) {\n if (predicate.length > 1)\n return _super.prototype.where.call(this, predicate);\n var prevPredicate = this.prevPredicate;\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\n return new WhereEnumerable(this.prevSource, composedPredicate);\n };\n WhereEnumerable.prototype.select = function (selector) {\n if (selector.length > 1)\n return _super.prototype.select.call(this, selector);\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector);\n };\n WhereEnumerable.prototype.getEnumerator = function () {\n var predicate = this.prevPredicate;\n var source = this.prevSource;\n var enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = source.getEnumerator();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n if (predicate(enumerator.current))\n return yielder.yieldReturn(enumerator.current);\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n };\n WhereEnumerable.prototype._onDispose = function () {\n _super.prototype._onDispose.call(this);\n this.prevPredicate = null;\n this.prevSource = null;\n };\n return WhereEnumerable;\n })(Enumerable);\n var WhereSelectEnumerable = (function (_super) {\n __extends(WhereSelectEnumerable, _super);\n function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) {\n _super.call(this, null);\n this.prevSource = prevSource;\n this.prevPredicate = prevPredicate;\n this.prevSelector = prevSelector;\n }\n WhereSelectEnumerable.prototype.where = function (predicate) {\n if (predicate.length > 1)\n return _super.prototype.where.call(this, predicate);\n return new WhereEnumerable(this, predicate);\n };\n WhereSelectEnumerable.prototype.select = function (selector) {\n if (selector.length > 1)\n return _super.prototype.select.call(this, selector);\n var _ = this;\n var prevSelector = _.prevSelector;\n var composedSelector = function (x) { return selector(prevSelector(x)); };\n return new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\n };\n WhereSelectEnumerable.prototype.getEnumerator = function () {\n var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, enumerator;\n return new EnumeratorBase_1.default(function () {\n enumerator = source.getEnumerator();\n }, function (yielder) {\n while (enumerator.moveNext()) {\n var c = enumerator.current;\n if (predicate == null || predicate(c)) {\n return yielder.yieldReturn(selector(c));\n }\n }\n return false;\n }, function () {\n Utility_1.dispose(enumerator);\n });\n };\n WhereSelectEnumerable.prototype._onDispose = function () {\n var _ = this;\n _super.prototype._onDispose.call(this);\n _.prevPredicate = null;\n _.prevSource = null;\n _.prevSelector = null;\n };\n return WhereSelectEnumerable;\n })(Enumerable);\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 }\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 });\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 })(Enumerable);\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, className) {\n if (className === void 0) { className = \"Enumerable\"; }\n if (disposed)\n throw new ObjectDisposedException_1.default(className);\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'use strict'; // For compatibility with (let, const, function, class);\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 {from as enumeratorFrom, forEach as enumeratorForEach, isEnumerable} 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, disposeThese, using} from '../System/Disposable/Utility';\r\nimport DisposableBase from '../System/Disposable/DisposableBase';\r\nimport Exception from \"../System/Exception\";\r\nimport ArgumentException from '../System/Exceptions/ArgumentException';\r\nimport ObjectDisposedException from '../System/Disposable/ObjectDisposedException';\r\nimport KeySortedContext from \"../System/Collections/Sorting/KeySortedContext\";\r\ntype Comparable = Primitive|IComparable;\r\n\r\n// #region Local Constants.\r\n\r\nconst VOID0:any = void 0;\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 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 DisposableBase implements IEnumerable\r\n{\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}\r\n\r\n\t/**\r\n\t * Static shortcut for creating an ArrayEnumerable.\r\n\t */\r\n\tstatic fromArray(array:IArray):Enumerable\r\n\t{\r\n\t\treturn new ArrayEnumerable(array);\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:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(Type.isObject(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(Array.isArray(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(()=>source.getEnumerator());\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\treturn new ArrayEnumerable(source);\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\r\n\tstatic toArray(source:IEnumerable | IArray):T[]\r\n\t{\r\n\t\tif(Type.isObject(source))\r\n\t\t{\r\n\t\t\tif(Array.isArray(source))\r\n\t\t\t\treturn source.slice();\r\n\r\n\t\t\tif(Type.isArrayLike(source))\r\n\t\t\t\tsource = new ArrayEnumerable(>source);\r\n\r\n\t\t\tif(source instanceof Enumerable)\r\n\t\t\t\treturn source.toArray();\r\n\r\n\t\t\tif(isEnumerable(source))\r\n\t\t\t{\r\n\t\t\t\tvar result:T[] = [];\r\n\t\t\t\tenumeratorForEach(\r\n\t\t\t\t\tsource.getEnumerator(), (e, i) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult[i] = e;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new UnsupportedEnumerableException();\r\n\t}\r\n\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//////////////////////////////////////////\r\n\t// #region Static Methods...\r\n\tstatic choice(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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(values[Integer.random(values.length)])\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic cycle(values:IArray):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tvar index:number = 0; // Let the compiler know this is an int.\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);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic empty():Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\r\n\t\t\t() => new EnumeratorBase(\r\n\t\t\t\tnull,\r\n\t\t\t\tFunctions.False\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tstatic repeat(element:T, count:number = Infinity):Enumerable\r\n\t{\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? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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)=> (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)\r\n\t\t);\r\n\t}\r\n\r\n\t// Note: this enumeration does not break.\r\n\tstatic repeatWithFinalize(\r\n\t\tinitializer:() => T,\r\n\t\tfinalizer:(element:T) => void):Enumerable\r\n\t{\r\n\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic make(element:T):Enumerable\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\tstatic range(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(count) || count<=0)\r\n\t\t\treturn Enumerable.empty();\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\r\n\r\n\t\treturn isFinite(count) && Integer.assert(count, \"count\")\r\n\t\t\t? new Enumerable(\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\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic rangeDown(\r\n\t\tstart:number = 0,\r\n\t\tcount:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\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):Enumerable\r\n\t{\r\n\t\treturn Enumerable.range(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic toNegativeInfinity(\r\n\t\tstart:number = 0,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\treturn Enumerable.rangeDown(start, Infinity, step);\r\n\t}\r\n\r\n\tstatic rangeTo(\r\n\t\tstart:number = 0,\r\n\t\tto:number = Infinity,\r\n\t\tstep:number = 1):Enumerable\r\n\t{\r\n\t\tif(!isFinite(start))\r\n\t\t\tthrow new Error(\"Must have a valid 'start' value.\");\r\n\r\n\t\tif(isNaN(to))\r\n\t\t\tthrow new Error(\"Must have a valid 'to' value.\");\r\n\r\n\t\tif(!isFinite(step))\r\n\t\t\tthrow new Error(\"Must have a valid 'step' value.\");\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\t// Range to infinity has a more efficient mechanism.\r\n\t\tif(!isFinite(to))\r\n\t\t\treturn Enumerable.range(start, Infinity, (start(\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 start(\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 result:boolean = value<=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue += step;\r\n\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t: 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 result:boolean = value>=to && yielder.yieldReturn(value);\r\n\r\n\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\tvalue -= step;\r\n\r\n\t\t\t\t\t\treturn result;\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 matches(input:string, pattern:any, flags:string = \"\"):Enumerable\r\n\t{\r\n\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 Enumerable(\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, count:number = Infinity):Enumerable\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\r\n\t\t\t? new Enumerable(\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() =>\r\n\t\t\t\t\t{\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\tvar current:number = index++;\r\n\t\t\t\t\t\treturn current(\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},\r\n\r\n\t\t\t\t\t(yielder)=> yielder.yieldReturn(factory(index++))\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic unfold(seed:T, valueFactory:Selector, skipSeed:Boolean = false):Enumerable\r\n\t{\r\n\t\treturn new Enumerable(\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic defer(enumerableFactory:() => IEnumerable):Enumerable\r\n\t{\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 = enumerableFactory().getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=> enumerator.moveNext() && yielder.yieldReturn(enumerator.current),\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\tstatic forEach(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\taction:(element:T, index?:number) => any):void\r\n\t{\r\n\t\tif(enumerable)\r\n\t\t{\r\n\t\t\tusing(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tenumeratorForEach(e, action);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic map(\r\n\t\tenumerable:IEnumerable | IArray,\r\n\t\tselector:Selector):TResult[]\r\n\t{\r\n\r\n\t\treturn enumerable && using(enumeratorFrom(enumerable), e=>\r\n\t\t\t{\r\n\t\t\t\tvar result:TResult[] = [];\r\n\t\t\t\tenumeratorForEach(e, (e, i)=>\r\n\t\t\t\t{\r\n\t\t\t\t\tresult[i] = selector(e);\r\n\t\t\t\t});\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\t// Slightly optimized versions for numbers.\r\n\tstatic max(values:Enumerable):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:Enumerable):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\t// #endregion\r\n\r\n\t//////////////////////////////////////////\r\n\t// #region Instance methods...\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\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\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\tvar result:T[] = [];\r\n\r\n\t\tif(predicate) return this.where(predicate).toArray();\r\n\r\n\t\tthis.forEach((x, i)=>\r\n\t\t{\r\n\t\t\tresult[i] = x\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// Return a default (unfiltered) enumerable.\r\n\tasEnumerable():Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn new Enumerable(() => _.getEnumerator());\r\n\t}\r\n\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=>\r\n\t\t{\r\n\t\t\tobj[keySelector(x)] = elementSelector(x);\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=> dict.addByKeyValue(keySelector(x), elementSelector(x)));\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\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):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 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\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\t\t);\r\n\t}\r\n\r\n\tforce(defaultAction:EnumerableAction = EnumerableAction.Break):void\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tthis.doAction(element => defaultAction);\r\n\t}\r\n\r\n\t// #region Indexing/Paging methods.\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tif(!count || isNaN(count) || count<0) // Out of bounds? Simply return this.\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\r\n\t\tvar c:number = count;\r\n\r\n\t\treturn this.doAction(\r\n\t\t\t(element:T, index?:number) =>\r\n\t\t\t\tindex):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\r\n\r\n\t\tvar skipping:boolean = true;\r\n\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(skipping)\r\n\t\t\t\t\tskipping = predicate(element, index);\r\n\r\n\t\t\t\treturn skipping\r\n\t\t\t\t\t? EnumerableAction.Skip\r\n\t\t\t\t\t: EnumerableAction.Return;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\ttake(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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)) // +Infinity equals no limit.\r\n\t\t\treturn _;\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\t\tvar c = 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):Enumerable\r\n\t{\r\n\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\tthis.throwIfDisposed();\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);\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\r\n\t\t\t\treturn EnumerableAction.Return;\r\n\t\t\t}\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\r\n\t\tif(!count || isNaN(count) || count<=0) // Out of bounds? Empty.\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\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || isNaN(count) || 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 in reverse.\r\n\t\t\treturn _.reverse();\r\n\r\n\t\tInteger.assert(count, \"count\");\r\n\r\n\t\treturn _.reverse().take(count);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region Projection and Filtering Methods\r\n\r\n\ttraverseBreadthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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 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.fromArray(buffer)\r\n\t\t\t\t\t\t\t\t.selectMany(func);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\ttraverseDepthFirst(\r\n\t\tfunc:(element:any) => IEnumerable,\r\n\t\tresultSelector?:(element:any, nestLevel?:number) => any):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\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\tvar 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\tenumerator = func(enumerator.current).getEnumerator();\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\tdisposeThese(enumeratorStack);\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\tflatten():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 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!=null)\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 = 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\tif(Array.isArray(c))\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 = Enumerable.fromArray(c)\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(enumerator.current);\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 false;\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\t\t\t\t);\r\n\t\t\t}\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\t\t\t\t);\r\n\t\t\t}\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\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\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(selector.length<2)\r\n\t\t\treturn new WhereSelectEnumerable(_, null, selector);\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: 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\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\r\n\tselectMany(collectionSelector:Selector>>):Enumerable;\r\n\r\n\tselectMany(\r\n\t\tcollectionSelector:Selector | IArray> | 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:any, middle:any) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(!resultSelector)\r\n\t\t\tresultSelector = (a, b) => 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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tchoose(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\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\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this, disposed = !_.throwIfDisposed();\r\n\r\n\t\tif(predicate.length<2)\r\n\t\t\treturn new WhereEnumerable(_, predicate);\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\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\r\n\t}\r\n\r\n\tofType(type:{ new (): TType }):Enumerable;\r\n\tofType(type:any):Enumerable\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.where(x=>typeof x===typeName);\r\n\t}\r\n\r\n\texcept(\r\n\t\tsecond:IEnumerable,\r\n\t\tcompareSelector?:Selector):Enumerable\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\tEnumerable.forEach(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\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\tdistinct(compareSelector?:(value:T) => T):Enumerable\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] results in [0,1,2,0];\r\n\tdistinctUntilChanged(compareSelector?: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 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(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\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\treverse():Enumerable\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 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)=>\r\n\t\t\t\t\tindex>0\r\n\t\t\t\t\t&& 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\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\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar count:number = 0;\r\n\t\tif(predicate)\r\n\t\t{\r\n\t\t\t_.forEach((x, i) =>\r\n\t\t\t{\r\n\t\t\t\tif(predicate(x, i))++count;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\t++count;\r\n\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\tvar result = true;\r\n\t\tthis.forEach(x =>\r\n\t\t{\r\n\t\t\tif(!predicate(x))\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\tvar result = false;\r\n\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\tif(predicate)\r\n\t\t{\r\n\t\t\tthis.forEach(x =>\r\n\t\t\t{\r\n\t\t\t\tresult = predicate(x); // 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\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.forEach(() =>\r\n\t\t\t{\r\n\t\t\t\tresult = true;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\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\tisEmpty():boolean\r\n\t{\r\n\t\treturn !this.any();\r\n\t}\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\t// Why? Because NaN doesn't equal NaN. :P\r\n\t\t\t\tif(Values.areEqual(element, value, true))\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\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\r\n\t\tif(compareSelector)\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(compareSelector(element), compareSelector(value), true)) result\r\n\t\t\t\t\t= i;\r\n\t\t\t});\r\n\t\telse\r\n\t\t\tthis.forEach((element:T, i?:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(Values.areEqual(element, value, true)) result = i;\r\n\t\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tzip(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):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 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)=>\r\n\t\t\t\t\tfirstEnumerator.moveNext() && secondEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(resultSelector(firstEnumerator.current, secondEnumerator.current, index++)),\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\tzipMultiple(\r\n\t\tsecond:IArray | IArray>,\r\n\t\tresultSelector:(first:T, second:TSecond, index?:number) => TResult):Enumerable\r\n\t{\r\n\t\tvar _ = this;\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\t// #region Join Methods\r\n\r\n\tjoin(\r\n\t\tinner:IEnumerable | IArray,\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:IEnumerable | IArray,\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\tconcatWith(other:IEnumerable | IArray):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 firstEnumerator:IEnumerator;\r\n\t\t\t\tvar secondEnumerator: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\tfirstEnumerator = _.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\tif(firstEnumerator!=null)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(firstEnumerator.moveNext()) return yielder.yieldReturn(firstEnumerator.current);\r\n\t\t\t\t\t\t\tsecondEnumerator = enumeratorFrom(other);\r\n\t\t\t\t\t\t\tfirstEnumerator.dispose();\r\n\t\t\t\t\t\t\tfirstEnumerator = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(secondEnumerator.moveNext()) return yielder.yieldReturn(secondEnumerator.current);\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tmerge(enumerables:IArray | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!enumerables.length)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\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 | IArray>;\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 | IArray>(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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tconcat(...enumerables:Array | IArray>):Enumerable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(enumerables.length==0)\r\n\t\t\treturn _;\r\n\r\n\t\tif(enumerables.length==1)\r\n\t\t\treturn _.concatWith(enumerables[0]);\r\n\r\n\t\treturn _.merge(enumerables);\r\n\t}\r\n\r\n\r\n\tinsertAt(index:number, other:IEnumerable | IArray):Enumerable\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\r\n\talternateMultiple(sequence:IEnumerable | IArray):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\t\t\t\t);\r\n\t\t\t}\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\tintersect(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second)\r\n\t\t\t\t\t\t\t.forEach(key=>\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tkeys.addByKeyValue(key, true);\r\n\t\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);\r\n\t\t\t\t\t}\r\n\t\t\t\t); // Should Dictionary be IDisposable?\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\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\tEnumerable.from(second).getEnumerator(),\r\n\t\t\t\te2=>\r\n\t\t\t\t{\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:IEnumerable | IArray,\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\tunion(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tcompareSelector:Selector = Functions.Identity):Enumerable\r\n\t{\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 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);\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 = Enumerable.from(second).getEnumerator();\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\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 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\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>|Enumerable>\r\n\t{\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() => _.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\tbuffer(size:number):IEnumerable\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\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\t}\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 sum = 0;\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\tvar count = 0; // No need to make integer if the result could be a float.\r\n\r\n\t\tthis.forEach(\r\n\t\t\tfunction(x)\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 += value>0 ? (+1) : (-1);\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(sumInfinite) // Not zero?\r\n\t\t\treturn sumInfinite*Infinity;\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 += value>0 ? (+1) : (-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\tx=>\r\n\t\t\t{\r\n\t\t\t\texists = true;\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\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// #endregion\r\n\r\n\t// #region Single Value Return...\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n\t\treturn value;\r\n\t}\r\n\r\n\telementAtOrDefault(index:number, defaultValue:T = null):T\r\n\t{\r\n\r\n\t\tif(isNaN(index) || index<0 || !isFinite(index))\r\n\t\t\tthrow new Error(\"'index' is invalid or out of bounds.\");\r\n\r\n\t\tInteger.assert(index, \"index\");\r\n\t\tvar n:number = index;\r\n\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\t(x:T, i:number) =>\r\n\t\t\t{\r\n\t\t\t\tif(i==n)\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn (!found) ? defaultValue : value;\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 _ = 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\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"first:No element satisfies the condition.\");\r\n\t\treturn value;\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\tvar value:T = undefined;\r\n\t\tvar found = false;\r\n\t\t_.forEach(\r\n\t\t\tx =>\r\n\t\t\t{\r\n\t\t\t\tvalue = x;\r\n\t\t\t\tfound = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t);\r\n\t\treturn (!found) ? defaultValue : value;\r\n\t}\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\tsingle():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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif(!found) throw new Error(\"single:No element satisfies the condition.\");\r\n\t\treturn value;\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\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\tif(!found)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tvalue = x;\r\n\t\t\t\t}\r\n\t\t\t\telse throw new Error(\"single:sequence contains more than one element.\");\r\n\t\t\t}\r\n\t\t);\r\n\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\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 new EnumeratorBase(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator.\r\n\r\n\t\t\t\t\t\tif(!sharedEnumerator)\r\n\t\t\t\t\t\t\tsharedEnumerator = _.getEnumerator();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t(yielder)=>\r\n\t\t\t\t\tsharedEnumerator.moveNext()\r\n\t\t\t\t\t&& yielder.yieldReturn(sharedEnumerator.current)\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\tdispose(sharedEnumerator);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\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\t// #region Error Handling\r\n\tcatchError(handler:(e:Error) => void):Enumerable\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):Enumerable\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\r\n\r\nclass ArrayEnumerable\r\nextends Enumerable\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; // Could possibly 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 s = this.source;\r\n\t\tif(!s)\r\n\t\t\treturn [];\r\n\r\n\t\tif(Array.isArray(s))\r\n\t\t\treturn (s).slice();\r\n\r\n\t\tvar len = s.length, result:T[] = ArrayUtility.initialize(len);\r\n\t\tfor(let i = 0; i\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\tvar source = _._source;\r\n\t\tif(source)\r\n\t\t{\r\n\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\tfor(let i = 0; iaction(source[i], i)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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 ? source.length : 0;\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 ? source.length : 0;\r\n\t\treturn len && (predicate ? super.count(predicate) : len);\r\n\t}\r\n\r\n\telementAt(index:number):T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: super.elementAt(index);\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\r\n\t\tvar source = _._source;\r\n\t\treturn (index=0)\r\n\t\t\t? source[index]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tfirst():T\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.throwIfDisposed();\r\n\r\n\t\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: super.first();\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\tvar source = _._source;\r\n\t\treturn (source && source.length)\r\n\t\t\t? source[0]\r\n\t\t\t: defaultValue;\r\n\t}\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 source = _._source, len = source.length;\r\n\t\treturn (len)\r\n\t\t\t? source[len - 1]\r\n\t\t\t: super.last();\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 source = _._source, len = source.length;\r\n\t\treturn len\r\n\t\t\t? source[len - 1]\r\n\t\t\t: defaultValue;\r\n\t}\r\n\r\n\tskip(count:number):Enumerable\r\n\t{\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!count || count<0) // Out of bounds? Simply return a unfiltered enumerable.\r\n\t\t\treturn _.asEnumerable();\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, len = _._source ? _._source.length : 0;\r\n\t\treturn _.take(len - count);\r\n\t}\r\n\r\n\ttakeFromLast(count:number):Enumerable\r\n\t{\r\n\t\tif(!count || count<0) return Enumerable.empty();\r\n\r\n\t\tvar _ = this,\r\n\t\t 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 new ArrayEnumerable(this._source);\r\n\t}\r\n\r\n\tsequenceEqual(\r\n\t\tsecond:IEnumerable | IArray,\r\n\t\tequalityComparer:EqualityComparison = Values.areEqual):boolean\r\n\t{\r\n\t\tif(Array.isArray(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\nclass WhereEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate // predicate.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:Predicate):Enumerable\r\n\t{\r\n\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\tvar prevPredicate = this.prevPredicate;\r\n\t\tvar composedPredicate = (x:T) => prevPredicate(x) && predicate(x);\r\n\t\treturn new WhereEnumerable(this.prevSource, composedPredicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\treturn new WhereSelectEnumerable(\r\n\t\t\tthis.prevSource,\r\n\t\t\tthis.prevPredicate,\r\n\t\t\tselector\r\n\t\t);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar predicate = this.prevPredicate;\r\n\t\tvar source = this.prevSource;\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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tif(predicate(enumerator.current))\r\n\t\t\t\t\t\treturn yielder.yieldReturn(enumerator.current);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tsuper._onDispose();\r\n\t\tthis.prevPredicate = null;\r\n\t\tthis.prevSource = null;\r\n\t}\r\n}\r\n\r\nclass WhereSelectEnumerable\r\nextends Enumerable\r\n{\r\n\tconstructor(\r\n\t\tprivate prevSource:IEnumerable,\r\n\t\tprivate prevPredicate:Predicate, // predicate.length always <= 1\r\n\t\tprivate prevSelector:Selector // selector.length always <= 1\r\n\t)\r\n\t{\r\n\t\tsuper(null);\r\n\t}\r\n\r\n\twhere(predicate:(value:T, index?:number) => boolean):Enumerable\r\n\t{\r\n\t\tif(predicate.length>1)\r\n\t\t\treturn super.where(predicate);\r\n\r\n\t\treturn new WhereEnumerable(this, predicate);\r\n\t}\r\n\r\n\tselect(selector:Selector):Enumerable\r\n\t{\r\n\r\n\t\tif(selector.length>1)\r\n\t\t// if selector use index, can't compose\r\n\t\t\treturn super.select(selector);\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prevSelector = _.prevSelector;\r\n\t\tvar composedSelector = (x:TSource) => selector(prevSelector(x));\r\n\t\treturn new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector);\r\n\t}\r\n\r\n\tgetEnumerator():IEnumerator\r\n\t{\r\n\t\tvar _ = this,\r\n\t\t predicate = _.prevPredicate,\r\n\t\t source = _.prevSource,\r\n\t\t selector:Selector = _.prevSelector, // Type definition needed for correct inference.\r\n\t\t 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 = source.getEnumerator();\r\n\t\t\t},\r\n\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\t\t\t\twhile(enumerator.moveNext())\r\n\t\t\t\t{\r\n\t\t\t\t\tvar c = enumerator.current;\r\n\t\t\t\t\tif(predicate==null || predicate(c))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn yielder.yieldReturn(selector(c));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\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\tprotected _onDispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tsuper._onDispose();\r\n\t\t_.prevPredicate = null;\r\n\t\t_.prevSource = null;\r\n\t\t_.prevSelector = null;\r\n\t}\r\n}\r\n\r\nexport interface IOrderedEnumerable\r\nextends Enumerable\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 Enumerable 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}\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\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/**\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, className:string = \"Enumerable\"):void\r\n{\r\n\tif(disposed) throw new ObjectDisposedException(className);\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.js b/dist/umd.min/System/Collections/Array/Compare.js index d1320d11..0b40bd0d 100644 --- a/dist/umd.min/System/Collections/Array/Compare.js +++ b/dist/umd.min/System/Collections/Array/Compare.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(r,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(r,e)}(["require","exports","../../Compare","../../Types"],function(r,e){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)return null;if(Array.isArray(r))return r.slice();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){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)return null;if(Array.isArray(r))return r.slice();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}); //# 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 3ce7c5cd..f81f9e6f 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":["deps","factory","module","exports","v","require","undefined","define","amd","validateSize","a","b","areAllEqual","arrays","strict","equalityComparer","areEqual","copyAndSort","comparer","areEquivalent","Values","Types_1"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,gBAAiB,eAAgB,SAAUI,EAASF,GCI9E,QAAAM,GAAsBC,EAAeC,GAGpCF,GAAGA,GAAKA,GAAKA,IAAIA,IAAMA,IAAMA,EAC5BA,OAAOA,CAGRA,KAAIA,IAAMA,EACTA,OAAOA,CAERA,IAAIA,GAAMA,EAAEA,MACZA,OAAGA,KAAMA,EAAEA,QACHA,EAGCA,IAANA,GACKA,EAGDA,EAGR,QAAAG,GACCC,EACAC,EACAC,GAEAH,GAFAA,SAAAA,IAAAA,EAA2CA,EAAOA,WAE9CA,EACHA,KAAMA,IAAIA,OAAMA,kDACjBA,IAAGA,EAAOA,OAAOA,EAChBA,KAAMA,IAAIA,OAAMA,8CAEjBA,KAAIA,GADAA,GAAQA,EAAOA,GACXA,EAAIA,EAAGA,EAAIA,EAAOA,OAAUA,EAAFA,IAAOA,EAExCA,IAAIA,EAASA,EAAOA,EAAOA,GAAIA,EAAQA,GACtCA,OAAOA,CAETA,QAAOA,EAGR,QAAAI,GACCN,EAAaC,EACbG,EACAC,GAAAC,SAAAA,IAAAA,EAAyCA,EAAOA,SAEhDA,IAAIA,GAAMA,EAAaA,EAAGA,EAC1BA,IAAGA,EAAAA,WAAKA,UAAUA,GAAMA,MAAgBA,EAExCA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,IAASA,EAEvBA,IAAIA,EAAiBA,EAAEA,GAAIA,EAAEA,GAAIA,GAChCA,OAAOA,CAGTA,QAAOA,EAIR,QAAAC,GAAwBP,EAAaQ,GAEpCD,IAAIA,EAAGA,MAAOA,KACdA,IAAGA,MAAMA,QAAQA,GAAIA,MAAkBA,GAAGA,OAC1CA,IAAoBA,GAAhBA,EAAMA,EAAEA,MACTA,GAAIA,MAAOA,EAAIA,GAAIA,OAAMA,IAG3BA,KACAA,EAAEA,OAASA,EAEZA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,EAAOA,IAAKA,EAAEA,GAAKA,EAAEA,EAEpCA,OADAA,GAAEA,KAAKA,GACAA,EAMR,QAAAE,GACCT,EAAaC,EACbO,GAAAC,SAAAA,IAAAA,EAAyBA,EAAOA,QAEhCA,IAAIA,GAAMA,EAAaA,EAAGA,EAC1BA,IAAGA,EAAAA,WAAKA,UAAUA,GAAMA,MAAgBA,EAIxCA,GAAIA,EAAYA,EAAGA,GACnBA,EAAIA,EAAYA,EAAGA,EAEnBA,KAAIA,GAAIA,GAAIA,EAAKA,EAAFA,IAASA,EAEvBA,GAA0BA,IAAvBA,EAASA,EAAEA,GAAIA,EAAEA,IACnBA,OAAOA,CAGTA,QAAOA,EArGR,GAAYC,GAAMf,EAAM,iBACxBgB,EAAAhB,EAAiB,cA2BDF,GAAAS,YAAWA,EAkBXT,EAAAa,SAAQA,EAqCRb,EAAAgB,cAAaA","file":"System/Collections/Array/Compare.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../../Types'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var Types_1 = require('../../Types');\r\n function validateSize(a, b) {\r\n if (a && b && a === b || !a && !b)\r\n return true;\r\n if (!a || !b)\r\n return false;\r\n var len = a.length;\r\n if (len !== b.length)\r\n return false;\r\n if (len === 0)\r\n return true;\r\n return len;\r\n }\r\n function areAllEqual(arrays, strict, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n if (!arrays)\r\n throw new Error(\"ArgumentNullException: 'arrays' cannot be null.\");\r\n if (arrays.length < 2)\r\n throw new Error(\"Cannot compare a set of arrays less than 2.\");\r\n var first = arrays[0];\r\n for (var i = 0, l = arrays.length; i < l; ++i) {\r\n if (!areEqual(first, arrays[i], strict, equalityComparer))\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areAllEqual = areAllEqual;\r\n function areEqual(a, b, strict, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Values.areEqual; }\r\n var len = validateSize(a, b);\r\n if (Types_1.default.isBoolean(len))\r\n return len;\r\n for (var i = 0; i < len; ++i) {\r\n if (!equalityComparer(a[i], b[i], strict))\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areEqual = areEqual;\r\n function copyAndSort(a, comparer) {\r\n if (!a)\r\n return null;\r\n if (Array.isArray(a))\r\n return a.slice();\r\n var len = a.length, b;\r\n if (len > 65536)\r\n b = new Array(len);\r\n else {\r\n b = [];\r\n b.length = len;\r\n }\r\n for (var i = 0; i < len; i++)\r\n b[i] = a[i];\r\n b.sort(comparer);\r\n return b;\r\n }\r\n function areEquivalent(a, b, comparer) {\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n var len = validateSize(a, b);\r\n if (Types_1.default.isBoolean(len))\r\n return len;\r\n a = copyAndSort(a, comparer);\r\n b = copyAndSort(b, comparer);\r\n for (var i = 0; i < len; ++i) {\r\n if (comparer(a[i], b[i]) !== 0)\r\n return false;\r\n }\r\n return true;\r\n }\r\n exports.areEquivalent = areEquivalent;\r\n});\r\n//# sourceMappingURL=Compare.js.map","/*\r\n * @author 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):T[]\r\n{\r\n\tif(!a) return null;\r\n\tif(Array.isArray(a)) return (>a).slice();\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536) b = 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 = copyAndSort(a, comparer);\r\n\tb = copyAndSort(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 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 = copyAndSort(a, comparer);\n b = copyAndSort(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):T[]\r\n{\r\n\tif(!a) return null;\r\n\tif(Array.isArray(a)) return (>a).slice();\r\n\tvar len = a.length, b:T[];\r\n\tif(len>65536) b = 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 = copyAndSort(a, comparer);\r\n\tb = copyAndSort(b, comparer);\r\n\r\n\tfor(let i = 0; in})}function f(n,e){return void 0===e&&(e=!1),o(n,-(1/0),e,function(n,e){return n>e})}e.sum=r,e.average=t,e.product=i,e.min=u,e.max=f}); +!function(n){if("object"==typeof module&&"object"==typeof module.exports){var e=n(require,exports);void 0!==e&&(module.exports=e)}else"function"==typeof define&&define.amd&&define(["require","exports"],n)}(function(n,e){function r(n,e){if(void 0===e&&(e=!1),!n||!n.length)return 0;var r=0;return e?n.forEach(function(n){isNaN(n)||(r+=n)}):n.every(function(n){return r+=n,!isNaN(r)}),r}function t(n,e){if(void 0===e&&(e=!1),!n||!n.length)return NaN;var r,t=0;return e?(r=0,n.forEach(function(n){isNaN(n)||(t+=n,r++)})):(r=n.length,n.every(function(n){return t+=n,!isNaN(t)})),!r||isNaN(t)?NaN:t/r}function i(n,e){if(void 0===e&&(e=!1),!n||!n.length)return NaN;var r=1;if(e){var t=!1;n.forEach(function(n){isNaN(n)||(r*=n,t||(t=!0))}),t||(r=NaN)}else n.every(function(n){return isNaN(n)?(r=NaN,!1):(r*=n,!0)});return r}function o(n,e,r,t){if(!n||!n.length)return NaN;var i=e;if(r){var o=!1;n.forEach(function(n){isNaN(n)||(t(n,i)&&(i=n),o||(o=!0))}),o||(i=NaN)}else n.every(function(n){return isNaN(n)?(i=NaN,!1):(t(n,i)&&(i=n),!0)});return i}function u(n,e){return void 0===e&&(e=!1),o(n,+(1/0),e,function(n,e){return e>n})}function f(n,e){return void 0===e&&(e=!1),o(n,-(1/0),e,function(n,e){return n>e})}e.sum=r,e.average=t,e.product=i,e.min=u,e.max=f}); //# sourceMappingURL=Procedure.js.map diff --git a/dist/umd.min/System/Collections/Array/Procedure.js.map b/dist/umd.min/System/Collections/Array/Procedure.js.map index 3c14bf4c..9d8a3c63 100644 --- a/dist/umd.min/System/Collections/Array/Procedure.js.map +++ b/dist/umd.min/System/Collections/Array/Procedure.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Procedure.js","System/Collections/Array/Procedure.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","sum","source","ignoreNaN","average","product","ifSet","start","predicate","min","max"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCL9C,QAAAM,GAAoBC,EAAiBC,GAEpCF,GAFoCA,SAAAA,IAAAA,GAAAA,IAEhCA,IAAWA,EAAOA,OACrBA,MAAOA,EAERA,IAAIA,GAASA,CAabA,OAZGA,GACFA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAAIA,GAAUA,KAGzBA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,KAGTA,EAGR,QAAAG,GAAwBF,EAAiBC,GAExCC,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAgBA,GAAZA,EAASA,CAyBbA,OAxBGA,IAEFA,EAAQA,EACRA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACVA,SAOFA,EAAQA,EAAOA,OACfA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,OAKPA,GAASA,MAAMA,GAAWA,IAAOA,EAAOA,EAGlD,QAAAC,GAAwBH,EAAiBC,GAExCE,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGRA,GAAUA,GAEHA,IAITA,OAAOA,GAGR,QAAAC,GACCJ,EACAK,EACAJ,EACAK,GAEAF,IAAIA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAENA,EAAUA,EAAGA,KACfA,EAASA,GACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGLA,EAAUA,EAAGA,KACfA,EAASA,IAEHA,IAGTA,OAAOA,GAIR,QAAAG,GAAoBP,EAAiBC,GAEpCM,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAEA,GAAFA,IAG3D,QAAAC,GAAoBR,EAAiBC,GAEpCO,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAAA,GAAEA,IAnJ7Cf,EAAAM,IAAGA,EAqBHN,EAAAS,QAAOA,EAiCPT,EAAAU,QAAOA,EAsFPV,EAAAc,IAAGA,EAKHd,EAAAe,IAAGA","file":"System/Collections/Array/Procedure.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function sum(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return 0;\r\n var result = 0;\r\n if (ignoreNaN)\r\n source.forEach(function (n) {\r\n if (!isNaN(n))\r\n result += n;\r\n });\r\n else\r\n source.every(function (n) {\r\n result += n;\r\n return !isNaN(result);\r\n });\r\n return result;\r\n }\r\n exports.sum = sum;\r\n function average(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = 0, count;\r\n if (ignoreNaN) {\r\n count = 0;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n result += n;\r\n count++;\r\n }\r\n });\r\n }\r\n else {\r\n count = source.length;\r\n source.every(function (n) {\r\n result += n;\r\n return !isNaN(result);\r\n });\r\n }\r\n return (!count || isNaN(result)) ? NaN : (result / count);\r\n }\r\n exports.average = average;\r\n function product(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = 1;\r\n if (ignoreNaN) {\r\n var found = false;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n result *= n;\r\n if (!found)\r\n found = true;\r\n }\r\n });\r\n if (!found)\r\n result = NaN;\r\n }\r\n else {\r\n source.every(function (n) {\r\n if (isNaN(n)) {\r\n result = NaN;\r\n return false;\r\n }\r\n result *= n;\r\n return true;\r\n });\r\n }\r\n return result;\r\n }\r\n exports.product = product;\r\n function ifSet(source, start, ignoreNaN, predicate) {\r\n if (!source || !source.length)\r\n return NaN;\r\n var result = start;\r\n if (ignoreNaN) {\r\n var found = false;\r\n source.forEach(function (n) {\r\n if (!isNaN(n)) {\r\n if (predicate(n, result))\r\n result = n;\r\n if (!found)\r\n found = true;\r\n }\r\n });\r\n if (!found)\r\n result = NaN;\r\n }\r\n else {\r\n source.every(function (n) {\r\n if (isNaN(n)) {\r\n result = NaN;\r\n return false;\r\n }\r\n if (predicate(n, result))\r\n result = n;\r\n return true;\r\n });\r\n }\r\n return result;\r\n }\r\n function min(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n return ifSet(source, +Infinity, ignoreNaN, function (n, result) { return n < result; });\r\n }\r\n exports.min = min;\r\n function max(source, ignoreNaN) {\r\n if (ignoreNaN === void 0) { ignoreNaN = false; }\r\n return ifSet(source, -Infinity, ignoreNaN, function (n, result) { return n > result; });\r\n }\r\n exports.max = max;\r\n});\r\n//# sourceMappingURL=Procedure.js.map","/*\r\n * @author 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\nexport function sum(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn 0;\r\n\r\n\tvar result = 0;\r\n\tif(ignoreNaN)\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n)) result += n;\r\n\t\t});\r\n\telse\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\treturn result;\r\n}\r\n\r\nexport function average(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 0, count:number;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tcount = 0;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult += n;\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\telse\r\n\t{\r\n\t\tcount = source.length;\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treturn (!count || isNaN(result)) ? NaN : (result/count);\r\n}\r\n\r\nexport function product(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 1;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult *= n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tresult *= n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction ifSet(\r\n\tsource:number[],\r\n\tstart:number,\r\n\tignoreNaN:boolean,\r\n\tpredicate:(n:number, result:number) => boolean)\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = start;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tif(predicate(n, result))\r\n\t\t\t\t\tresult = n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif(predicate(n, result))\r\n\t\t\t\tresult = n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\treturn result;\r\n\r\n}\r\n\r\nexport function min(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\treturn ifSet(source, +Infinity, ignoreNaN, (n, result) => n n>result);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Procedure.js","System/Collections/Array/Procedure.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","sum","source","ignoreNaN","average","product","ifSet","start","predicate","min","max"],"mappings":"CAAA,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,GCDtB,QAAAM,GAAoBC,EAAiBC,GAEpCF,GAFoCA,SAAAA,IAAAA,GAAAA,IAEhCA,IAAWA,EAAOA,OACrBA,MAAOA,EAERA,IAAIA,GAASA,CAabA,OAZGA,GACFA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAAIA,GAAUA,KAGzBA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,KAGTA,EAGR,QAAAG,GAAwBF,EAAiBC,GAExCC,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAgBA,GAAZA,EAASA,CAyBbA,OAxBGA,IAEFA,EAAQA,EACRA,EAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACVA,SAOFA,EAAQA,EAAOA,OACfA,EAAOA,MAAMA,SAAAA,GAGZA,MADAA,IAAUA,GACFA,MAAMA,OAKPA,GAASA,MAAMA,GAAWA,IAAOA,EAAOA,EAGlD,QAAAC,GAAwBH,EAAiBC,GAExCE,GAFwCA,SAAAA,IAAAA,GAAAA,IAEpCA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAETA,GAAUA,EACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGRA,GAAUA,GAEHA,IAITA,OAAOA,GAGR,QAAAC,GACCJ,EACAK,EACAJ,EACAK,GAEAF,IAAIA,IAAWA,EAAOA,OACrBA,MAAOA,IAERA,IAAIA,GAASA,CACbA,IAAGA,EACHA,CACCA,GAAIA,IAAQA,CACZA,GAAOA,QAAQA,SAAAA,GAEVA,MAAMA,KAENA,EAAUA,EAAGA,KACfA,EAASA,GACNA,IAAOA,GAAQA,MAIjBA,IACHA,EAASA,SAIVA,GAAOA,MAAMA,SAAAA,GAEZA,MAAGA,OAAMA,IAERA,EAASA,KACFA,IAGLA,EAAUA,EAAGA,KACfA,EAASA,IAEHA,IAGTA,OAAOA,GAIR,QAAAG,GAAoBP,EAAiBC,GAEpCM,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAEA,GAAFA,IAG3D,QAAAC,GAAoBR,EAAiBC,GAEpCO,MAFoCA,UAAAA,IAAAA,GAAAA,GAE7BA,EAAMA,IAASA,EAAAA,GAAUA,EAAWA,SAACA,EAAGA,GAAWA,MAAAA,GAAEA,IAnJ7Cf,EAAAM,IAAGA,EAqBHN,EAAAS,QAAOA,EAiCPT,EAAAU,QAAOA,EAsFPV,EAAAc,IAAGA,EAKHd,EAAAe,IAAGA","file":"System/Collections/Array/Procedure.js","sourcesContent":["(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 function sum(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return 0;\n var result = 0;\n if (ignoreNaN)\n source.forEach(function (n) {\n if (!isNaN(n))\n result += n;\n });\n else\n source.every(function (n) {\n result += n;\n return !isNaN(result);\n });\n return result;\n }\n exports.sum = sum;\n function average(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return NaN;\n var result = 0, count;\n if (ignoreNaN) {\n count = 0;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n result += n;\n count++;\n }\n });\n }\n else {\n count = source.length;\n source.every(function (n) {\n result += n;\n return !isNaN(result);\n });\n }\n return (!count || isNaN(result)) ? NaN : (result / count);\n }\n exports.average = average;\n function product(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n if (!source || !source.length)\n return NaN;\n var result = 1;\n if (ignoreNaN) {\n var found = false;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n result *= n;\n if (!found)\n found = true;\n }\n });\n if (!found)\n result = NaN;\n }\n else {\n source.every(function (n) {\n if (isNaN(n)) {\n result = NaN;\n return false;\n }\n result *= n;\n return true;\n });\n }\n return result;\n }\n exports.product = product;\n function ifSet(source, start, ignoreNaN, predicate) {\n if (!source || !source.length)\n return NaN;\n var result = start;\n if (ignoreNaN) {\n var found = false;\n source.forEach(function (n) {\n if (!isNaN(n)) {\n if (predicate(n, result))\n result = n;\n if (!found)\n found = true;\n }\n });\n if (!found)\n result = NaN;\n }\n else {\n source.every(function (n) {\n if (isNaN(n)) {\n result = NaN;\n return false;\n }\n if (predicate(n, result))\n result = n;\n return true;\n });\n }\n return result;\n }\n function min(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n return ifSet(source, +Infinity, ignoreNaN, function (n, result) { return n < result; });\n }\n exports.min = min;\n function max(source, ignoreNaN) {\n if (ignoreNaN === void 0) { ignoreNaN = false; }\n return ifSet(source, -Infinity, ignoreNaN, function (n, result) { return n > result; });\n }\n exports.max = max;\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\nexport function sum(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn 0;\r\n\r\n\tvar result = 0;\r\n\tif(ignoreNaN)\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n)) result += n;\r\n\t\t});\r\n\telse\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\treturn result;\r\n}\r\n\r\nexport function average(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 0, count:number;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tcount = 0;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult += n;\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\telse\r\n\t{\r\n\t\tcount = source.length;\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tresult += n;\r\n\t\t\treturn !isNaN(result);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treturn (!count || isNaN(result)) ? NaN : (result/count);\r\n}\r\n\r\nexport function product(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = 1;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult *= n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tresult *= n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction ifSet(\r\n\tsource:number[],\r\n\tstart:number,\r\n\tignoreNaN:boolean,\r\n\tpredicate:(n:number, result:number) => boolean)\r\n{\r\n\tif(!source || !source.length)\r\n\t\treturn NaN;\r\n\r\n\tvar result = start;\r\n\tif(ignoreNaN)\r\n\t{\r\n\t\tvar found = false;\r\n\t\tsource.forEach(n =>\r\n\t\t{\r\n\t\t\tif(!isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tif(predicate(n, result))\r\n\t\t\t\t\tresult = n;\r\n\t\t\t\tif(!found) found = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!found)\r\n\t\t\tresult = NaN;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tsource.every(n =>\r\n\t\t{\r\n\t\t\tif(isNaN(n))\r\n\t\t\t{\r\n\t\t\t\tresult = NaN;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif(predicate(n, result))\r\n\t\t\t\tresult = n;\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\treturn result;\r\n\r\n}\r\n\r\nexport function min(source:number[], ignoreNaN:boolean = false):number\r\n{\r\n\treturn ifSet(source, +Infinity, ignoreNaN, (n, result) => n n>result);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sort.js b/dist/umd.min/System/Collections/Array/Sort.js index 69be8f8f..0a52048f 100644 --- a/dist/umd.min/System/Collections/Array/Sort.js +++ b/dist/umd.min/System/Collections/Array/Sort.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../../Types","../../Compare"],function(e,r){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)),l=t(e(f)),p=Math.min(d.length,l.length),s=Array.isArray(r)?r:null,c=0;p>c;c++){var y=d[c],m=l[c],v=s?cc;c++){var y=d[c],m=l[c],v=s?c\r\n var Types_1 = require('../../Types');\r\n var Compare_1 = require('../../Compare');\r\n function ensureArray(value) {\r\n return Array.isArray(value)\r\n ? value\r\n : [value];\r\n }\r\n function createComparer(selector, order, equivalentToNaN) {\r\n if (order === void 0) { order = 1; }\r\n if (equivalentToNaN === void 0) { equivalentToNaN = NaN; }\r\n var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN);\r\n return function (a, b) {\r\n var aValue = ensureArray(selector(a));\r\n var bValue = ensureArray(selector(b));\r\n var len = Math.min(aValue.length, bValue.length);\r\n var oArray = Array.isArray(order) ? order : null;\r\n for (var i = 0; i < len; i++) {\r\n var vA = aValue[i], vB = bValue[i], o = oArray\r\n ? (i < oArray.length ? oArray[i] : 1)\r\n : order;\r\n if (nanHasEquivalent) {\r\n if (Types_1.default.isTrueNaN(vA))\r\n vA = equivalentToNaN;\r\n if (Types_1.default.isTrueNaN(vB))\r\n vB = equivalentToNaN;\r\n }\r\n var r = Compare_1.compare(vA, vB);\r\n if (r !== 0)\r\n return o * r;\r\n }\r\n return 0;\r\n };\r\n }\r\n exports.createComparer = createComparer;\r\n exports.default = createComparer;\r\n exports.by = createComparer;\r\n});\r\n//# sourceMappingURL=Sort.js.map","/*\r\n * @author 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 {compare,CompareResult} from '../../Compare';\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 +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ensureArray","value","createComparer","selector","order","equivalentToNaN","Types_1","Compare_1","by"],"mappings":"CAAA,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,GCKtB,QAAAM,GAAwBC,GAEvBD,MAAOA,OAAMA,QAAQA,GACbA,GACDA,GA0BR,QAAAE,GACCC,EACAC,EACAC,GADAH,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,IAEAA,IAAIA,IAAoBA,EAAAA,WAAKA,UAAUA,EAEvCA,OAAOA,UAACA,EAAqBA,GAQ5BA,IAAIA,GALAA,GAASA,EAAYA,EAASA,IAC9BA,EAASA,EAAYA,EAASA,IAC9BA,EAAMA,KAAKA,IAAIA,EAAOA,OAAQA,EAAOA,QAErCA,EAAiBA,MAAMA,QAAQA,GAASA,EAAQA,KAC5CA,EAAIA,EAAKA,EAAFA,EAAOA,IACtBA,CACCA,GAAIA,GAAKA,EAAOA,GAAIA,EAAKA,EAAOA,GAC5BA,EAAKA,EACDA,EAAEA,EAAOA,OAASA,EAAOA,GAAKA,EACxBA,CAEXA,KAECA,EAAAA,WAAKA,UAAUA,KACjBA,EAAKA,GACHA,EAAAA,WAAKA,UAAUA,KACjBA,EAAKA,GAIPA,IAAIA,GAAIA,EAAAA,QAAQA,EAAIA,EACpBA,IAAOA,IAAJA,EACFA,MAAOA,GAAEA,EAIXA,MAAOA,IAtET,GAAAI,GAAAV,EAAiB,eACjBW,EAAAX,EAAsB,gBAgCNF,GAAAQ,eAAcA,EA0CXR,EAAAA,WAAOQ,EACPR,EAAAc,GAAEN","file":"System/Collections/Array/Sort.js","sourcesContent":["(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 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.default.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.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 }\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\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 diff --git a/dist/umd.min/System/Collections/Array/Utility.js b/dist/umd.min/System/Collections/Array/Utility.js index 71175ce4..b046e83e 100644 --- a/dist/umd.min/System/Collections/Array/Utility.js +++ b/dist/umd.min/System/Collections/Array/Utility.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../../Types","../../Integer","../../Compare","../../Exceptions/ArgumentException","../../Exceptions/ArgumentNullException","../../Exceptions/ArgumentOutOfRangeException"],function(e,t){function n(e){x["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?o(e,n(Math.min(r,Math.max(e.length-t,0))),t,0,r):e}function o(e,t,n,r,o){if(void 0===n&&(n=0),void 0===r&&(r=0),void 0===o&&(o=1/0),!e)throw new E["default"]("source",I);if(!t)throw new E["default"]("destination",I);if(0>n)throw new A["default"]("sourceIndex",n,b);var a=e.length;if(n>=a)throw new A["default"]("sourceIndex",n,"Must be less than the length of the source array.");if(t.length<0)throw new A["default"]("destinationIndex",r,b);var i=e.length-n;if(isFinite(o)&&o>i)throw new A["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");o=Math.min(o,i);for(var f=0;o>f;++f)t[r+f]=e[n+f];return t}function a(e,t,n){if(void 0===n&&(n=m.areEqual),e&&e.length){if(Array.isArray(e))return-1!=e.indexOf(t);for(var r=0;rr)throw new A["default"]("max",r,b)}else r=1/0;for(var a=e.length-1;a>=0&&(e[a]!==t||(e[a]=n,++o,--r));--a);}return o}function f(e,t,n,r){x["default"].assert(n,"index"),x["default"].assert(n,"length");for(var o=n+r,a=n;o>a;++a)e[a]=t}function u(e,t,n){f(e,null,t,n)}function l(e,t,n){if(void 0===n&&(n=m.areEqual),!e)throw new E["default"]("array",I);var r=e.length,o=!r||!a(e,t,n);return o&&(e[r]=t),o}function d(e,t){if(!e)throw new E["default"]("array",I);if(!v["default"].isFunction(t))throw new y["default"]("predicate","Must be a function.");for(var n=e.length,r=0;n>r;++r)if(r in e&&t(e[r]))return r;return-1}function c(e,t){if(!e)throw new E["default"]("source",I);if(t)for(var n=0;nt)throw new A["default"]("index",t,b);var n=tn)throw new A["default"]("max",n,b)}else n=1/0;for(var a=e.length-1;a>=0&&(!r(e[a],t)||(e.splice(a,1),++o,--n));--a);}return o}function g(e,t){if(x["default"].assert(t,"count"),0>t)throw new A["default"]("count",t,b);for(var n=[];t--;)n.push(e);return n}function w(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(o=w(o,t-1));for(var a=0;a65536?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 b["default"]("source",q);if(!t)throw new b["default"]("destination",q);if(0>n)throw new M["default"]("sourceIndex",n,O);var o=e.length;if(n>=o)throw new M["default"]("sourceIndex",n,"Must be less than the length of the source array.");if(t.length<0)throw new M["default"]("destinationIndex",r,O);var a=e.length-n;if(isFinite(i)&&i>a)throw new M["default"]("sourceIndex",n,"Source index + length cannot exceed the length of the source array.");i=Math.min(i,a);for(var f=0;i>f;++f)t[r+f]=e[n+f];return t}function o(e,t,n){if(void 0===n&&(n=A.areEqual),e&&e.length){if(Array.isArray(e))return-1!=e.indexOf(t);for(var r=0;rr)throw new M["default"]("max",r,O)}else r=1/0;for(var o=e.length-1;o>=0&&(e[o]!==t||(e[o]=n,++i,--r));--o);}return i}function f(e,t,n,r){E["default"].assert(n,"index"),E["default"].assert(n,"length");for(var i=n+r,o=n;i>o;++o)e[o]=t}function u(e,t,n){f(e,null,t,n)}function l(e,t,n){if(void 0===n&&(n=A.areEqual),!e)throw new b["default"]("array",q);var r=e.length,i=!r||!o(e,t,n);return i&&(e[r]=t),i}function c(e,t){if(!e)throw new b["default"]("array",q);if(!m["default"].isFunction(t))throw new I["default"]("predicate","Must be a function.");for(var n=e.length,r=0;n>r;++r)if(r in e&&t(e[r]))return r;return-1}function d(e,t){if(!e)throw new b["default"]("source",q);if(t)for(var n=0;nt)throw new M["default"]("index",t,O);var n=tn)throw new M["default"]("max",n,O)}else n=1/0;for(var o=e.length-1;o>=0&&(!r(e[o],t)||(e.splice(o,1),++i,--n));--o);}return i}function v(e,t){if(E["default"].assert(t,"count"),0>t)throw new M["default"]("count",t,O);for(var n=[];t--;)n.push(e);return n}function g(e,t){void 0===t&&(t=0);for(var n=[],r=0;r0&&(i=g(i,t-1));for(var o=0;or;r++){var o=e[r];if(o)try{o(t)}catch(a){if(!n)throw a;m["default"].isFunction(n)&&n(a,r)}}}function x(e,t,n){w(r(e),t,n)}function y(e,t,n){if(!e)return null;var i=r(e);if(e.length)for(var o=0,a=i.length;a>o;o++){var f=i[o];try{i[o]=f?f(t):void 0}catch(u){if(i[o]=void 0,!n)throw u;m["default"].isFunction(n)&&n(u,o)}}return i}var m=e("../../Types"),E=e("../../Integer"),A=e("../../Compare"),I=e("../../Exceptions/ArgumentException"),b=e("../../Exceptions/ArgumentNullException"),M=e("../../Exceptions/ArgumentOutOfRangeException");t.initialize=n,t.copy=r;var q="Cannot be null.",O="Cannot be less than zero.";t.copyTo=i,t.contains=o,t.replace=a,t.updateRange=f,t.clear=u,t.register=l,t.findIndex=c,t.forEach=d,t.applyTo=h,t.removeIndex=s,t.remove=p,t.repeat=v,t.flatten=g,t.dispatchUnsafe=w,t.dispatch=x,t.dispatchMapped=y}); //# sourceMappingURL=Utility.js.map diff --git a/dist/umd.min/System/Collections/Array/Utility.js.map b/dist/umd.min/System/Collections/Array/Utility.js.map index 69f0ea7e..18a85847 100644 --- a/dist/umd.min/System/Collections/Array/Utility.js.map +++ b/dist/umd.min/System/Collections/Array/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Utility.js","System/Collections/Array/Utility.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","initialize","length","copy","source","sourceIndex","copyTo","destination","destinationIndex","contains","array","item","equalityComparer","replace","old","newValue","max","updateRange","value","index","clear","register","findIndex","predicate","forEach","fn","applyTo","target","removeIndex","remove","repeat","element","count","flatten","a","recurseDepth","Types_1","Integer_1","Compare_1","ArgumentException_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","CBN","CBL0"],"mappings":"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","file":"System/Collections/Array/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../../Types');\r\n var Integer_1 = require('../../Integer');\r\n var Compare_1 = require('../../Compare');\r\n var ArgumentException_1 = require('../../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException');\r\n var ArgumentOutOfRangeException_1 = require('../../Exceptions/ArgumentOutOfRangeException');\r\n function initialize(length) {\r\n Integer_1.default.assert(length, 'length');\r\n var array;\r\n if (length > 65536)\r\n array = new Array(length);\r\n else {\r\n array = [];\r\n array.length = length;\r\n }\r\n return array;\r\n }\r\n exports.initialize = initialize;\r\n function copy(source, sourceIndex, length) {\r\n if (sourceIndex === void 0) { sourceIndex = 0; }\r\n if (length === void 0) { length = Infinity; }\r\n if (!source)\r\n return source;\r\n return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length);\r\n }\r\n exports.copy = copy;\r\n var CBN = 'Cannot be null.', CBL0 = 'Cannot be less than zero.';\r\n function copyTo(source, destination, sourceIndex, destinationIndex, length) {\r\n if (sourceIndex === void 0) { sourceIndex = 0; }\r\n if (destinationIndex === void 0) { destinationIndex = 0; }\r\n if (length === void 0) { length = Infinity; }\r\n if (!source)\r\n throw new ArgumentNullException_1.default('source', CBN);\r\n if (!destination)\r\n throw new ArgumentNullException_1.default('destination', CBN);\r\n if (sourceIndex < 0)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, CBL0);\r\n var sourceLength = source.length;\r\n if (sourceIndex >= sourceLength)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Must be less than the length of the source array.');\r\n if (destination.length < 0)\r\n throw new ArgumentOutOfRangeException_1.default('destinationIndex', destinationIndex, CBL0);\r\n var maxLength = source.length - sourceIndex;\r\n if (isFinite(length) && length > maxLength)\r\n throw new ArgumentOutOfRangeException_1.default('sourceIndex', sourceIndex, 'Source index + length cannot exceed the length of the source array.');\r\n length = Math.min(length, maxLength);\r\n for (var i = 0; i < length; ++i) {\r\n destination[destinationIndex + i] = source[sourceIndex + i];\r\n }\r\n return destination;\r\n }\r\n exports.copyTo = copyTo;\r\n function contains(array, item, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (array && array.length) {\r\n if (Array.isArray(array))\r\n return array.indexOf(item) != -1;\r\n for (var i = 0; i < array.length; ++i) {\r\n if (equalityComparer(array[i], item))\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n exports.contains = contains;\r\n function replace(array, old, newValue, max) {\r\n var count = 0;\r\n if (max !== 0) {\r\n if (!max)\r\n max = Infinity;\r\n else if (max < 0)\r\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\r\n for (var i = (array.length - 1); i >= 0; --i) {\r\n if (array[i] === old) {\r\n array[i] = newValue;\r\n ++count;\r\n if (!--max)\r\n break;\r\n }\r\n }\r\n }\r\n return count;\r\n }\r\n exports.replace = replace;\r\n function updateRange(array, value, index, length) {\r\n Integer_1.default.assert(index, 'index');\r\n Integer_1.default.assert(index, 'length');\r\n var end = index + length;\r\n for (var i = index; i < end; ++i) {\r\n array[i] = value;\r\n }\r\n }\r\n exports.updateRange = updateRange;\r\n function clear(array, index, length) {\r\n updateRange(array, null, index, length);\r\n }\r\n exports.clear = clear;\r\n function register(array, item, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n var len = array.length;\r\n var ok = !len || !contains(array, item, equalityComparer);\r\n if (ok)\r\n array[len] = item;\r\n return ok;\r\n }\r\n exports.register = register;\r\n function findIndex(array, predicate) {\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n if (!Types_1.default.isFunction(predicate))\r\n throw new ArgumentException_1.default('predicate', 'Must be a function.');\r\n var len = array.length;\r\n for (var i = 0; i < len; ++i) {\r\n if ((i) in (array) && predicate(array[i]))\r\n return i;\r\n }\r\n return -1;\r\n }\r\n exports.findIndex = findIndex;\r\n function forEach(source, fn) {\r\n if (!source)\r\n throw new ArgumentNullException_1.default('source', CBN);\r\n if (fn) {\r\n for (var i = 0; i < source.length; ++i) {\r\n if (fn(source[i]) === false)\r\n break;\r\n }\r\n }\r\n return source;\r\n }\r\n exports.forEach = forEach;\r\n function applyTo(target, fn) {\r\n if (!target)\r\n throw new ArgumentNullException_1.default('target', CBN);\r\n if (fn) {\r\n for (var i = 0; i < target.length; ++i) {\r\n target[i] = fn(target[i]);\r\n }\r\n }\r\n return target;\r\n }\r\n exports.applyTo = applyTo;\r\n function removeIndex(array, index) {\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n Integer_1.default.assert(index, 'index');\r\n if (index < 0)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, CBL0);\r\n var exists = index < array.length;\r\n if (exists)\r\n array.splice(index, 1);\r\n return exists;\r\n }\r\n exports.removeIndex = removeIndex;\r\n function remove(array, value, max, equalityComparer) {\r\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array', CBN);\r\n var count = 0;\r\n if (array && array.length && max !== 0) {\r\n if (!max)\r\n max = Infinity;\r\n else if (max < 0)\r\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\r\n for (var i = (array.length - 1); i >= 0; --i) {\r\n if (equalityComparer(array[i], value)) {\r\n array.splice(i, 1);\r\n ++count;\r\n if (!--max)\r\n break;\r\n }\r\n }\r\n }\r\n return count;\r\n }\r\n exports.remove = remove;\r\n function repeat(element, count) {\r\n Integer_1.default.assert(count, 'count');\r\n if (count < 0)\r\n throw new ArgumentOutOfRangeException_1.default('count', count, CBL0);\r\n var result = [];\r\n while (count--) {\r\n result.push(element);\r\n }\r\n return result;\r\n }\r\n exports.repeat = repeat;\r\n function flatten(a, recurseDepth) {\r\n if (recurseDepth === void 0) { recurseDepth = 0; }\r\n var result = [];\r\n for (var i = 0; i < a.length; i++) {\r\n var x = a[i];\r\n if (Array.isArray(x)) {\r\n if (recurseDepth > 0)\r\n x = flatten(x, recurseDepth - 1);\r\n for (var n = 0; n < x.length; n++)\r\n result.push(x[n]);\r\n }\r\n else\r\n result.push(x);\r\n }\r\n return result;\r\n }\r\n exports.flatten = flatten;\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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):IArray\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\tCBL0 = 'Cannot be less than zero.';\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:IArray,\r\n\tsourceIndex:number = 0,\r\n\tdestinationIndex:number = 0,\r\n\tlength:number = Infinity):IArray\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(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\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(array && array.length)\r\n\t{\r\n\r\n\t\tif(Array.isArray(array)) return array.indexOf(item)!= -1;\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\r\n\tvar count = 0;\r\n\tif(max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\t\tfor(let i = (array.length - 1); i>=0; --i)\r\n\t\t{\r\n\t\t\tif(array[i]===old)\r\n\t\t\t{\r\n\t\t\t\tarray[i] = newValue;\r\n\t\t\t\t++count;\r\n\t\t\t\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn count;\r\n\r\n}\r\n\r\n/**\r\n * Replaces values of an array across a range of indexes.\r\n * @param array\r\n * @param value\r\n * @param index\r\n * @param length\r\n */\r\nexport function updateRange(\r\n\tarray:T[],\r\n\tvalue:T,\r\n\tindex:number,\r\n\tlength:number):void\r\n{\r\n\tInteger.assert(index, 'index');\r\n\tInteger.assert(index, 'length');\r\n\r\n\tvar end = index + length;\r\n\tfor(let i:number = index; i(\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\tvar len = array.length;\r\n\tfor(let i = 0; i}\r\n */\r\nexport function forEach(\r\n\tsource:IArray,\r\n\tfn:(value:T, index?:number) => (void|boolean)):IArray\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(fn)\r\n\t{\r\n\t\tfor(let i = 0; i}\r\n */\r\nexport function applyTo(target:IArray, fn:(a:T) => T):IArray\r\n{\r\n\tif(!target)\r\n\t\tthrow new ArgumentNullException('target', CBN);\r\n\r\n\tif(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)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tvar count = 0;\r\n\tif(array && array.length && max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\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\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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:T[] = [];\r\n\twhile(count--)\r\n\t{\r\n\t\tresult.push(element);\r\n\t}\r\n\r\n\treturn result;\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.', CBL0 = 'Cannot be less than zero.';\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 (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 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 contains(array, item, equalityComparer) {\n if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }\n if (array && array.length) {\n if (Array.isArray(array))\n return array.indexOf(item) != -1;\n for (var i = 0; i < array.length; ++i) {\n if (equalityComparer(array[i], item))\n return true;\n }\n }\n return false;\n }\n exports.contains = contains;\n function replace(array, old, newValue, max) {\n var count = 0;\n if (max !== 0) {\n if (!max)\n max = Infinity;\n else if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n for (var i = (array.length - 1); i >= 0; --i) {\n if (array[i] === old) {\n array[i] = newValue;\n ++count;\n if (!--max)\n break;\n }\n }\n }\n return count;\n }\n exports.replace = replace;\n function updateRange(array, value, index, length) {\n Integer_1.default.assert(index, 'index');\n Integer_1.default.assert(index, 'length');\n var end = index + length;\n for (var i = index; i < end; ++i) {\n array[i] = value;\n }\n }\n exports.updateRange = updateRange;\n function clear(array, index, length) {\n updateRange(array, null, index, length);\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 for (var i = 0; i < len; ++i) {\n if ((i) in (array) && predicate(array[i]))\n return i;\n }\n return -1;\n }\n exports.findIndex = findIndex;\n function forEach(source, fn) {\n if (!source)\n throw new ArgumentNullException_1.default('source', CBN);\n if (fn) {\n for (var i = 0; i < source.length; ++i) {\n if (fn(source[i]) === false)\n break;\n }\n }\n return source;\n }\n exports.forEach = forEach;\n function applyTo(target, fn) {\n if (!target)\n throw new ArgumentNullException_1.default('target', CBN);\n if (fn) {\n for (var i = 0; i < target.length; ++i) {\n target[i] = fn(target[i]);\n }\n }\n return target;\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)\n throw new ArgumentNullException_1.default('array', CBN);\n var count = 0;\n if (array && array.length && max !== 0) {\n if (!max)\n max = Infinity;\n else if (max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, CBL0);\n for (var i = (array.length - 1); i >= 0; --i) {\n if (equalityComparer(array[i], value)) {\n array.splice(i, 1);\n ++count;\n if (!--max)\n break;\n }\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 = [];\n while (count--) {\n result.push(element);\n }\n return result;\n }\n exports.repeat = repeat;\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 function dispatchUnsafe(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.dispatchUnsafe = dispatchUnsafe;\n function dispatch(listeners, payload, trap) {\n dispatchUnsafe(copy(listeners), payload, trap);\n }\n exports.dispatch = dispatch;\n function dispatchMapped(listeners, payload, trap) {\n if (!listeners)\n return null;\n var result = 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 : undefined;\n }\n catch (ex) {\n result[i] = undefined;\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.dispatchMapped = dispatchMapped;\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\tCBL0 = 'Cannot be less than zero.';\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(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\r\n\tfor(let i = 0; i(\r\n\tarray:IArray, item:T,\r\n\tequalityComparer:EqualityComparison = areEqual):boolean\r\n{\r\n\tif(array && array.length)\r\n\t{\r\n\r\n\t\tif(Array.isArray(array)) return array.indexOf(item)!= -1;\r\n\r\n\t\tfor(let i = 0; i(\r\n\tarray:IArray,\r\n\told:T,\r\n\tnewValue:T,\r\n\tmax?:number):number\r\n{\r\n\r\n\tvar count = 0;\r\n\tif(max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\r\n\t\tfor(let i = (array.length - 1); i>=0; --i)\r\n\t\t{\r\n\t\t\tif(array[i]===old)\r\n\t\t\t{\r\n\t\t\t\tarray[i] = newValue;\r\n\t\t\t\t++count;\r\n\t\t\t\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn count;\r\n\r\n}\r\n\r\n/**\r\n * Replaces values of an array across a range of indexes.\r\n * @param array\r\n * @param value\r\n * @param index\r\n * @param length\r\n */\r\nexport function updateRange(\r\n\tarray:T[],\r\n\tvalue:T,\r\n\tindex:number,\r\n\tlength:number):void\r\n{\r\n\tInteger.assert(index, 'index');\r\n\tInteger.assert(index, 'length');\r\n\r\n\tvar end = index + length;\r\n\tfor(let i:number = index; i(\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\tvar len = array.length;\r\n\tfor(let i = 0; i}\r\n */\r\nexport function forEach(\r\n\tsource:IArray,\r\n\tfn:(value:T, index?:number) => (void|boolean)):IArray\r\n{\r\n\tif(!source)\r\n\t\tthrow new ArgumentNullException('source', CBN);\r\n\r\n\tif(fn)\r\n\t{\r\n\t\tfor(let i = 0; i}\r\n */\r\nexport function applyTo(target:IArray, fn:(a:T) => T):IArray\r\n{\r\n\tif(!target)\r\n\t\tthrow new ArgumentNullException('target', CBN);\r\n\r\n\tif(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)\r\n\t\tthrow new ArgumentNullException('array', CBN);\r\n\r\n\tvar count = 0;\r\n\tif(array && array.length && max!==0)\r\n\t{\r\n\t\tif(!max)\r\n\t\t\tmax = Infinity;\r\n\t\telse if(max<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('max', max, CBL0);\r\n\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\tif(!--max)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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:T[] = [];\r\n\twhile(count--)\r\n\t{\r\n\t\tresult.push(element);\r\n\t}\r\n\r\n\treturn result;\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(\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)=>any>,\r\n\tpayload:T, trap?:boolean|DispatchErrorHandler):void\r\n{\r\n\tdispatchUnsafe(copy(listeners), payload, trap);\r\n}\r\n\r\n/**\r\n * Simply takes a payload and passes it to all the listeners.\r\n * Returns the results in an array that matches the indexes of the listeners.\r\n *\r\n * @param listeners\r\n * @param payload\r\n * @param trap\r\n * @returns {any}\r\n */\r\nexport function dispatchMapped(\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; il;l++)if(i(s[l].key)===u)return!0;return!1},e.prototype.clear=function(){var e=this,r=e._buckets,n=t.prototype.clear.call(this);e._count=0;for(var o in r)r.hasOwnProperty(o)&&delete r[o];return e._entries.clear(),n},e.prototype.getCount=function(){return this._count},e.prototype.getEnumerator=function(){var t,e=this;return new s["default"](function(){t=e._entries.first},function(e){if(null!=t){var r={key:t.key,value:t.value};return t=t.next,e.yieldReturn(r)}return e.yieldBreak()})},e.prototype.getKeys=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.key)}),e},e.prototype.getValues=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.value)}),e},e}(a["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=c}); +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)};!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","../../Types","../../Functions","./DictionaryBase","../Enumeration/EnumeratorBase"],t)}(function(t,e){"use strict";function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function n(t){return null===t?"null":t===l?"undefined":typeof t.toString===i["default"].FUNCTION?t.toString():Object.prototype.toString.call(t)}var o=t("../../Compare"),i=t("../../Types"),u=t("../../Functions"),a=t("./DictionaryBase"),s=t("../Enumeration/EnumeratorBase"),l=void 0,p=function(){function t(t,e,r,n){this.key=t,this.value=e,this.prev=r,this.next=n}return t}(),c=function(){function t(t,e){this.first=t,this.last=e}return t.prototype.addLast=function(t){var e=this;null!=e.last?(e.last.next=t,t.prev=e.last,e.last=t):e.first=e.last=t},t.prototype.replace=function(t,e){var r=this;null!=t.prev?(t.prev.next=e,e.prev=t.prev):r.first=e,null!=t.next?(t.next.prev=e,e.next=t.next):r.last=e},t.prototype.remove=function(t){var e=this;null!=t.prev?t.prev.next=t.next:e.first=t.next,null!=t.next?t.next.prev=t.prev:e.last=t.prev},t.prototype.clear=function(){for(var t=this;t.last;)t.remove(t.last)},t.prototype.forEach=function(t){for(var e=this,r=e.first;r;)t(r),r=r.next},t}(),f=function(t){function e(e){void 0===e&&(e=u["default"].Identity),t.call(this),this.compareSelector=e,this._count=0,this._entries=new c,this._buckets={}}return __extends(e,t),e.prototype.setKV=function(t,e,i){var u,a=this,s=a._buckets,c=a._entries,f=a.compareSelector,v=f(t),y=n(v);if(r(s,y)){for(var h=o.areEqual,d=s[y],_=0;_l;l++)if(i(s[l].key)===u)return!0;return!1},e.prototype.clear=function(){var e=this,r=e._buckets,n=t.prototype.clear.call(this);e._count=0;for(var o in r)r.hasOwnProperty(o)&&delete r[o];return e._entries.clear(),n},e.prototype.getCount=function(){return this._count},e.prototype.getEnumerator=function(){var t,e=this;return new s["default"](function(){t=e._entries.first},function(e){if(null!=t){var r={key:t.key,value:t.value};return t=t.next,e.yieldReturn(r)}return e.yieldBreak()})},e.prototype.getKeys=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.key)}),e},e.prototype.getValues=function(){var t=this,e=[];return t._entries.forEach(function(t){return e.push(t.value)}),e},e}(a["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=f}); //# sourceMappingURL=Dictionary.js.map diff --git a/dist/umd.min/System/Collections/Dictionaries/Dictionary.js.map b/dist/umd.min/System/Collections/Dictionaries/Dictionary.js.map index e4a633e6..a362af6b 100644 --- a/dist/umd.min/System/Collections/Dictionaries/Dictionary.js.map +++ b/dist/umd.min/System/Collections/Dictionaries/Dictionary.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Dictionaries/Dictionary.js","System/Collections/Dictionaries/Dictionary.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","deps","factory","module","exports","v","require","undefined","define","amd","callHasOwnProperty","target","key","computeHashCode","obj","Compare_1","Types_1","Functions_1","DictionaryBase_1","EnumeratorBase_1","HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","Dictionary","_super","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues","defineProperty","value"],"mappings":"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","file":"System/Collections/Dictionaries/Dictionary.js","sourcesContent":["/*\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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], function (require, exports) {\r\n ///\r\n var Compare_1 = require('../../Compare');\r\n var Types_1 = require('../../Types');\r\n var Functions_1 = require('../../Functions');\r\n var DictionaryBase_1 = require('./DictionaryBase');\r\n var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase');\r\n var HashEntry = (function () {\r\n function HashEntry(key, value, prev, next) {\r\n this.key = key;\r\n this.value = value;\r\n this.prev = prev;\r\n this.next = next;\r\n }\r\n return HashEntry;\r\n })();\r\n var EntryList = (function () {\r\n function EntryList(first, last) {\r\n this.first = first;\r\n this.last = last;\r\n }\r\n EntryList.prototype.addLast = function (entry) {\r\n var _ = this;\r\n if (_.last != null) {\r\n _.last.next = entry;\r\n entry.prev = _.last;\r\n _.last = entry;\r\n }\r\n else\r\n _.first = _.last = entry;\r\n };\r\n EntryList.prototype.replace = function (entry, newEntry) {\r\n var _ = this;\r\n if (entry.prev != null) {\r\n entry.prev.next = newEntry;\r\n newEntry.prev = entry.prev;\r\n }\r\n else\r\n _.first = newEntry;\r\n if (entry.next != null) {\r\n entry.next.prev = newEntry;\r\n newEntry.next = entry.next;\r\n }\r\n else\r\n _.last = newEntry;\r\n };\r\n EntryList.prototype.remove = function (entry) {\r\n var _ = this;\r\n if (entry.prev != null)\r\n entry.prev.next = entry.next;\r\n else\r\n _.first = entry.next;\r\n if (entry.next != null)\r\n entry.next.prev = entry.prev;\r\n else\r\n _.last = entry.prev;\r\n };\r\n EntryList.prototype.clear = function () {\r\n var _ = this;\r\n while (_.last) {\r\n _.remove(_.last);\r\n }\r\n };\r\n EntryList.prototype.forEach = function (closure) {\r\n var _ = this, currentEntry = _.first;\r\n while (currentEntry) {\r\n closure(currentEntry);\r\n currentEntry = currentEntry.next;\r\n }\r\n };\r\n return EntryList;\r\n })();\r\n function callHasOwnProperty(target, key) {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n }\r\n function computeHashCode(obj) {\r\n if (obj === null)\r\n return \"null\";\r\n if (obj === undefined)\r\n return \"undefined\";\r\n return (typeof obj.toString === Types_1.default.FUNCTION)\r\n ? obj.toString()\r\n : Object.prototype.toString.call(obj);\r\n }\r\n var Dictionary = (function (_super) {\r\n __extends(Dictionary, _super);\r\n function Dictionary(compareSelector) {\r\n if (compareSelector === void 0) { compareSelector = Functions_1.default.Identity; }\r\n _super.call(this);\r\n this.compareSelector = compareSelector;\r\n this._count = 0;\r\n this._entries = new EntryList();\r\n this._buckets = {};\r\n }\r\n Dictionary.prototype.setKV = function (key, value, allowOverwrite) {\r\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey), entry;\r\n if (callHasOwnProperty(buckets, hash)) {\r\n var equal = Compare_1.areEqual;\r\n var array = buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n var old = array[i];\r\n if (comparer(old.key) === compareKey) {\r\n if (!allowOverwrite)\r\n throw new Error(\"Key already exists.\");\r\n var changed = !equal(old.value, value);\r\n if (changed) {\r\n if (value === undefined) {\r\n entries.remove(old);\r\n array.splice(i, 1);\r\n if (!array.length)\r\n delete buckets[hash];\r\n --_._count;\r\n }\r\n else {\r\n entry = new HashEntry(key, value);\r\n entries.replace(old, entry);\r\n array[i] = entry;\r\n }\r\n _._onValueUpdate(key, value, old.value);\r\n }\r\n return changed;\r\n }\r\n }\r\n array.push(entry = entry || new HashEntry(key, value));\r\n }\r\n else {\r\n if (value === undefined) {\r\n if (allowOverwrite)\r\n return false;\r\n else\r\n throw new Error(\"Cannot add 'undefined' value.\");\r\n }\r\n buckets[hash] = [entry = new HashEntry(key, value)];\r\n }\r\n ++_._count;\r\n entries.addLast(entry);\r\n _._onValueUpdate(key, value, undefined);\r\n return true;\r\n };\r\n Dictionary.prototype.addByKeyValue = function (key, value) {\r\n this.setKV(key, value, false);\r\n };\r\n Dictionary.prototype.getValue = function (key) {\r\n var buckets = this._buckets, comparer = this.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(buckets, hash))\r\n return undefined;\r\n var array = buckets[hash];\r\n for (var _i = 0; _i < array.length; _i++) {\r\n var entry = array[_i];\r\n if (comparer(entry.key) === compareKey)\r\n return entry.value;\r\n }\r\n return undefined;\r\n };\r\n Dictionary.prototype.setValue = function (key, value) {\r\n return this.setKV(key, value, true);\r\n };\r\n Dictionary.prototype.containsKey = function (key) {\r\n var _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n var compareKey = comparer(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(buckets, hash))\r\n return false;\r\n var array = buckets[hash];\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (comparer(array[i].key) === compareKey)\r\n return true;\r\n }\r\n return false;\r\n };\r\n Dictionary.prototype.clear = function () {\r\n var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this);\r\n _._count = 0;\r\n for (var key in buckets) {\r\n if (buckets.hasOwnProperty(key))\r\n delete buckets[key];\r\n }\r\n _._entries.clear();\r\n return count;\r\n };\r\n Dictionary.prototype.getCount = function () {\r\n return this._count;\r\n };\r\n Dictionary.prototype.getEnumerator = function () {\r\n var _ = this, currentEntry;\r\n return new EnumeratorBase_1.default(function () { currentEntry = _._entries.first; }, function (yielder) {\r\n if (currentEntry != null) {\r\n var result = { key: currentEntry.key, value: currentEntry.value };\r\n currentEntry = currentEntry.next;\r\n return yielder.yieldReturn(result);\r\n }\r\n return yielder.yieldBreak();\r\n });\r\n };\r\n Dictionary.prototype.getKeys = function () {\r\n var _ = this, result = [];\r\n _._entries.forEach(function (entry) { return result.push(entry.key); });\r\n return result;\r\n };\r\n Dictionary.prototype.getValues = function () {\r\n var _ = this, result = [];\r\n _._entries.forEach(function (entry) { return result.push(entry.value); });\r\n return result;\r\n };\r\n return Dictionary;\r\n })(DictionaryBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Dictionary;\r\n});\r\n//# sourceMappingURL=Dictionary.js.map","/*\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 {areEqual} from '../../Compare';\r\nimport Type from '../../Types';\r\nimport Functions from '../../Functions';\r\nimport DictionaryAbstractBase from './DictionaryBase';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\n\r\n\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic prev?:HashEntry,\r\n\t\tpublic next?:HashEntry)\r\n\t{ }\r\n}\r\n\r\nclass EntryList\r\n{\r\n\tconstructor(\r\n\t\tpublic first?:HashEntry,\r\n\t\tpublic last?:HashEntry)\r\n\t{ }\r\n\r\n\taddLast(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.last!=null)\r\n\t\t{\r\n\t\t\t_.last.next = entry;\r\n\t\t\tentry.prev = _.last;\r\n\t\t\t_.last = entry;\r\n\t\t}\r\n\t\telse\r\n\t\t\t_.first = _.last = entry;\r\n\t}\r\n\r\n\treplace(entry:HashEntry, newEntry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null)\r\n\t\t{\r\n\t\t\tentry.prev.next = newEntry;\r\n\t\t\tnewEntry.prev = entry.prev;\r\n\t\t}\r\n\t\telse _.first = newEntry;\r\n\r\n\t\tif(entry.next!=null)\r\n\t\t{\r\n\t\t\tentry.next.prev = newEntry;\r\n\t\t\tnewEntry.next = entry.next;\r\n\t\t}\r\n\t\telse _.last = newEntry;\r\n\r\n\t}\r\n\r\n\tremove(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null) entry.prev.next = entry.next;\r\n\t\telse _.first = entry.next;\r\n\r\n\t\tif(entry.next!=null) entry.next.prev = entry.prev;\r\n\t\telse _.last = entry.prev;\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\twhile(_.last)\r\n\t\t{\r\n\t\t\t_.remove(_.last);\r\n\t\t}\r\n\t}\r\n\r\n\tforEach(closure:(entry:HashEntry) => void):void\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry = _.first;\r\n\t\twhile(currentEntry)\r\n\t\t{\r\n\t\t\tclosure(currentEntry);\r\n\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t}\r\n\t}\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\nfunction computeHashCode(obj:any):string\r\n{\r\n\tif(obj===null) return \"null\";\r\n\tif(obj===undefined) return \"undefined\";\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 DictionaryAbstractBase\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _entries = new EntryList();\r\n\tprivate _buckets:IMap[]> = {};\r\n\r\n\tconstructor(private compareSelector:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\r\n\tprivate setKV(key:TKey, value:TValue, allowOverwrite:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey), entry:HashEntry;\r\n\r\n\t\tif(callHasOwnProperty(buckets, hash))\r\n\t\t{\r\n\t\t\tvar equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\t\tvar array = buckets[hash];\r\n\t\t\tfor(let i = 0; i(key, value);\r\n\t\t\t\t\t\t\tentries.replace(old, entry);\r\n\t\t\t\t\t\t\tarray[i] = entry;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_._onValueUpdate(key, value, old.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn changed;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tarray.push(entry = entry || new HashEntry(key, value));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(value===undefined)\r\n\t\t\t{\r\n\t\t\t\tif(allowOverwrite)\r\n\t\t\t\t\treturn false;\r\n\t\t\t\telse\r\n\t\t\t\t\tthrow new Error(\"Cannot add 'undefined' value.\");\r\n\t\t\t}\r\n\t\t\tbuckets[hash] = [entry = new HashEntry(key, value)];\r\n\t\t}\r\n\t\t++_._count;\r\n\t\tentries.addLast(entry);\r\n\t\t_._onValueUpdate(key, value, undefined);\r\n\t\treturn true;\r\n\t}\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tthis.setKV(key, value, false);\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar buckets = this._buckets, comparer = this.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return undefined;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let entry of array)\r\n\t\t{\r\n\t\t\tif(comparer(entry.key)===compareKey) return entry.value;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\treturn this.setKV(key, value, true);\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return false;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let i = 0, len = array.length; i>\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() => { currentEntry = _._entries.first; },\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\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\t_._entries.forEach(entry=> result.push(entry.key));\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\t_._entries.forEach(entry=> result.push(entry.value));\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","callHasOwnProperty","target","key","computeHashCode","obj","Compare_1","Types_1","Functions_1","DictionaryBase_1","EnumeratorBase_1","VOID0","HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","Dictionary","_super","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues","defineProperty","value"],"mappings":"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","file":"System/Collections/Dictionaries/Dictionary.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\", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], 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 DictionaryBase_1 = require('./DictionaryBase');\n var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase');\n var VOID0 = void 0;\n var HashEntry = (function () {\n function HashEntry(key, value, prev, next) {\n this.key = key;\n this.value = value;\n this.prev = prev;\n this.next = next;\n }\n return HashEntry;\n })();\n var EntryList = (function () {\n function EntryList(first, last) {\n this.first = first;\n this.last = last;\n }\n EntryList.prototype.addLast = function (entry) {\n var _ = this;\n if (_.last != null) {\n _.last.next = entry;\n entry.prev = _.last;\n _.last = entry;\n }\n else\n _.first = _.last = entry;\n };\n EntryList.prototype.replace = function (entry, newEntry) {\n var _ = this;\n if (entry.prev != null) {\n entry.prev.next = newEntry;\n newEntry.prev = entry.prev;\n }\n else\n _.first = newEntry;\n if (entry.next != null) {\n entry.next.prev = newEntry;\n newEntry.next = entry.next;\n }\n else\n _.last = newEntry;\n };\n EntryList.prototype.remove = function (entry) {\n var _ = this;\n if (entry.prev != null)\n entry.prev.next = entry.next;\n else\n _.first = entry.next;\n if (entry.next != null)\n entry.next.prev = entry.prev;\n else\n _.last = entry.prev;\n };\n EntryList.prototype.clear = function () {\n var _ = this;\n while (_.last) {\n _.remove(_.last);\n }\n };\n EntryList.prototype.forEach = function (closure) {\n var _ = this, currentEntry = _.first;\n while (currentEntry) {\n closure(currentEntry);\n currentEntry = currentEntry.next;\n }\n };\n return EntryList;\n })();\n function callHasOwnProperty(target, key) {\n return Object.prototype.hasOwnProperty.call(target, key);\n }\n function computeHashCode(obj) {\n if (obj === null)\n return \"null\";\n if (obj === VOID0)\n return \"undefined\";\n return (typeof obj.toString === Types_1.default.FUNCTION)\n ? obj.toString()\n : Object.prototype.toString.call(obj);\n }\n var Dictionary = (function (_super) {\n __extends(Dictionary, _super);\n function Dictionary(compareSelector) {\n if (compareSelector === void 0) { compareSelector = Functions_1.default.Identity; }\n _super.call(this);\n this.compareSelector = compareSelector;\n this._count = 0;\n this._entries = new EntryList();\n this._buckets = {};\n }\n Dictionary.prototype.setKV = function (key, value, allowOverwrite) {\n var _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey), entry;\n if (callHasOwnProperty(buckets, hash)) {\n var equal = Compare_1.areEqual;\n var array = buckets[hash];\n for (var i = 0; i < array.length; i++) {\n var old = array[i];\n if (comparer(old.key) === compareKey) {\n if (!allowOverwrite)\n throw new Error(\"Key already exists.\");\n var changed = !equal(old.value, value);\n if (changed) {\n if (value === VOID0) {\n entries.remove(old);\n array.splice(i, 1);\n if (!array.length)\n delete buckets[hash];\n --_._count;\n }\n else {\n entry = new HashEntry(key, value);\n entries.replace(old, entry);\n array[i] = entry;\n }\n _._onValueUpdate(key, value, old.value);\n }\n return changed;\n }\n }\n array.push(entry = entry || new HashEntry(key, value));\n }\n else {\n if (value === VOID0) {\n if (allowOverwrite)\n return false;\n else\n throw new Error(\"Cannot add 'undefined' value.\");\n }\n buckets[hash] = [entry = new HashEntry(key, value)];\n }\n ++_._count;\n entries.addLast(entry);\n _._onValueUpdate(key, value, undefined);\n return true;\n };\n Dictionary.prototype.addByKeyValue = function (key, value) {\n this.setKV(key, value, false);\n };\n Dictionary.prototype.getValue = function (key) {\n var buckets = this._buckets, comparer = this.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey);\n if (!callHasOwnProperty(buckets, hash))\n return undefined;\n var array = buckets[hash];\n for (var _i = 0; _i < array.length; _i++) {\n var entry = array[_i];\n if (comparer(entry.key) === compareKey)\n return entry.value;\n }\n return undefined;\n };\n Dictionary.prototype.setValue = function (key, value) {\n return this.setKV(key, value, true);\n };\n Dictionary.prototype.containsKey = function (key) {\n var _ = this, buckets = _._buckets, comparer = _.compareSelector;\n var compareKey = comparer(key);\n var hash = computeHashCode(compareKey);\n if (!callHasOwnProperty(buckets, hash))\n return false;\n var array = buckets[hash];\n for (var i = 0, len = array.length; i < len; i++) {\n if (comparer(array[i].key) === compareKey)\n return true;\n }\n return false;\n };\n Dictionary.prototype.clear = function () {\n var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this);\n _._count = 0;\n for (var key in buckets) {\n if (buckets.hasOwnProperty(key))\n delete buckets[key];\n }\n _._entries.clear();\n return count;\n };\n Dictionary.prototype.getCount = function () {\n return this._count;\n };\n Dictionary.prototype.getEnumerator = function () {\n var _ = this, currentEntry;\n return new EnumeratorBase_1.default(function () { currentEntry = _._entries.first; }, function (yielder) {\n if (currentEntry != null) {\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 _._entries.forEach(function (entry) { return result.push(entry.key); });\n return result;\n };\n Dictionary.prototype.getValues = function () {\n var _ = this, result = [];\n _._entries.forEach(function (entry) { return result.push(entry.value); });\n return result;\n };\n return Dictionary;\n })(DictionaryBase_1.default);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\nimport {areEqual} from '../../Compare';\r\nimport Type from '../../Types';\r\nimport Functions from '../../Functions';\r\nimport DictionaryAbstractBase from './DictionaryBase';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\n\r\nconst VOID0:any = void 0;\r\n\r\n// LinkedList for Dictionary\r\nclass HashEntry\r\n{\r\n\tconstructor(\r\n\t\tpublic key?:TKey,\r\n\t\tpublic value?:TValue,\r\n\t\tpublic prev?:HashEntry,\r\n\t\tpublic next?:HashEntry)\r\n\t{ }\r\n}\r\n\r\nclass EntryList\r\n{\r\n\tconstructor(\r\n\t\tpublic first?:HashEntry,\r\n\t\tpublic last?:HashEntry)\r\n\t{ }\r\n\r\n\taddLast(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.last!=null)\r\n\t\t{\r\n\t\t\t_.last.next = entry;\r\n\t\t\tentry.prev = _.last;\r\n\t\t\t_.last = entry;\r\n\t\t}\r\n\t\telse\r\n\t\t\t_.first = _.last = entry;\r\n\t}\r\n\r\n\treplace(entry:HashEntry, newEntry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null)\r\n\t\t{\r\n\t\t\tentry.prev.next = newEntry;\r\n\t\t\tnewEntry.prev = entry.prev;\r\n\t\t}\r\n\t\telse _.first = newEntry;\r\n\r\n\t\tif(entry.next!=null)\r\n\t\t{\r\n\t\t\tentry.next.prev = newEntry;\r\n\t\t\tnewEntry.next = entry.next;\r\n\t\t}\r\n\t\telse _.last = newEntry;\r\n\r\n\t}\r\n\r\n\tremove(entry:HashEntry):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(entry.prev!=null) entry.prev.next = entry.next;\r\n\t\telse _.first = entry.next;\r\n\r\n\t\tif(entry.next!=null) entry.next.prev = entry.prev;\r\n\t\telse _.last = entry.prev;\r\n\t}\r\n\r\n\tclear():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\twhile(_.last)\r\n\t\t{\r\n\t\t\t_.remove(_.last);\r\n\t\t}\r\n\t}\r\n\r\n\tforEach(closure:(entry:HashEntry) => void):void\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry = _.first;\r\n\t\twhile(currentEntry)\r\n\t\t{\r\n\t\t\tclosure(currentEntry);\r\n\t\t\tcurrentEntry = currentEntry.next;\r\n\t\t}\r\n\t}\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\nfunction computeHashCode(obj:any):string\r\n{\r\n\tif(obj===null) return \"null\";\r\n\tif(obj===VOID0) return \"undefined\";\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 DictionaryAbstractBase\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _entries = new EntryList();\r\n\tprivate _buckets:IMap[]> = {};\r\n\r\n\tconstructor(private compareSelector:Selector = Functions.Identity)\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\r\n\tprivate setKV(key:TKey, value:TValue, allowOverwrite:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, entries = _._entries, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey), entry:HashEntry;\r\n\r\n\t\tif(callHasOwnProperty(buckets, hash))\r\n\t\t{\r\n\t\t\tvar equal:(a:any, b:any, strict?:boolean) => boolean = areEqual;\r\n\t\t\tvar array = buckets[hash];\r\n\t\t\tfor(let i = 0; i(key, value);\r\n\t\t\t\t\t\t\tentries.replace(old, entry);\r\n\t\t\t\t\t\t\tarray[i] = entry;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_._onValueUpdate(key, value, old.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn changed;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tarray.push(entry = entry || new HashEntry(key, value));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(value===VOID0)\r\n\t\t\t{\r\n\t\t\t\tif(allowOverwrite)\r\n\t\t\t\t\treturn false;\r\n\t\t\t\telse\r\n\t\t\t\t\tthrow new Error(\"Cannot add 'undefined' value.\");\r\n\t\t\t}\r\n\t\t\tbuckets[hash] = [entry = new HashEntry(key, value)];\r\n\t\t}\r\n\t\t++_._count;\r\n\t\tentries.addLast(entry);\r\n\t\t_._onValueUpdate(key, value, undefined);\r\n\t\treturn true;\r\n\t}\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tthis.setKV(key, value, false);\r\n\t}\r\n\r\n\tgetValue(key:TKey):TValue\r\n\t{\r\n\t\tvar buckets = this._buckets, comparer = this.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return undefined;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let entry of array)\r\n\t\t{\r\n\t\t\tif(comparer(entry.key)===compareKey) return entry.value;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tsetValue(key:TKey, value:TValue):boolean\r\n\t{\r\n\t\treturn this.setKV(key, value, true);\r\n\t}\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar _ = this, buckets = _._buckets, comparer = _.compareSelector;\r\n\t\tvar compareKey = comparer(key);\r\n\t\tvar hash = computeHashCode(compareKey);\r\n\t\tif(!callHasOwnProperty(buckets, hash)) return false;\r\n\r\n\t\tvar array = buckets[hash];\r\n\t\tfor(let i = 0, len = array.length; i>\r\n\t{\r\n\t\tvar _ = this, currentEntry:HashEntry;\r\n\r\n\t\treturn new EnumeratorBase>(\r\n\t\t\t() => { currentEntry = _._entries.first; },\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\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\t_._entries.forEach(entry=> result.push(entry.key));\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\t_._entries.forEach(entry=> result.push(entry.value));\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js index 24ed707f..900192a5 100644 --- a/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js +++ b/dist/umd.min/System/Collections/Dictionaries/DictionaryBase.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../../Compare","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentException","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException"],function(e,t){var n=e("../../Compare"),r=e("../Enumeration/EnumeratorBase"),o=e("../../Exceptions/ArgumentException"),u=e("../../Exceptions/ArgumentNullException"),a=e("../../Exceptions/InvalidOperationException"),i=function(){function e(){this._updateRecursion=0}return Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype._onValueUpdate=function(e,t,r){if(!n.areEqual(t,r,!0)){var o=this;o.onValueChanged&&o.onValueChanged(e,t,r),0==o._updateRecursion&&o._onUpdated()}},e.prototype._onUpdated=function(){var e=this;e.onUpdated&&e.onUpdated()},e.prototype.handleUpdate=function(e){var t,n=this;if(e){n._updateRecursion++;try{t=e()}finally{n._updateRecursion--}}else t=0==n._updateRecursion;return t&&0==n._updateRecursion&&n._onUpdated(),t},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.add=function(e){if(!e)throw new o["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");this.addByKeyValue(e.key,e.value)},e.prototype.clear=function(){var e=this,t=e.keys,n=t.length;return n&&e.handleUpdate(function(){return t.forEach(function(t){e.removeByKey(t)}),!0}),0!=e.count&&console.warn("Dictionary clear() results in mismatched count."),n},e.prototype.contains=function(e){if(!e)return!1;var t=this.getValue(e.key);return n.areEqual(t,e.value)},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),!e)throw new u["default"]("array");for(var n=this.getEnumerator();n.moveNext();)e[t++]=n.current;return e},e.prototype.toArray=function(){return this.copyTo([],0)},e.prototype.remove=function(e){if(!e)return 0;var t=e.key,r=this.getValue(t);return n.areEqual(r,e.value)&&this.removeByKey(t)?1:0},Object.defineProperty(e.prototype,"keys",{get:function(){return this.getKeys()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){return this.getValues()},enumerable:!0,configurable:!0}),e.prototype.addByKeyValue=function(e,t){var n=this;if(n.containsKey(e)){var r=new a["default"]("Adding a key/value when the key already exists.");throw r.data.key=e,r.data.value=t,r}n.setValue(e,t)},e.prototype.containsKey=function(e){var t=this.getValue(e);return void 0!==t},e.prototype.containsValue=function(e){for(var t=this.getEnumerator(),r=n.areEqual;t.moveNext();)if(r(t.current,e,!0))return t.dispose(),!0;return!1},e.prototype.removeByKey=function(e){return this.setValue(e,void 0)},e.prototype.removeByValue=function(e){var t=this,r=0,o=n.areEqual;return t.keys.forEach(function(n){o(t.getValue(n),e,!0)&&(t.removeByKey(n),++r)}),r},e.prototype.importPairs=function(e){var t=this;return t.handleUpdate(function(){var n=!1;return e.forEach(function(e){t.setValue(e.key,e.value),n=!0}),n})},e.prototype.getEnumerator=function(){var e,t,n=this,o=0;return new r["default"](function(){e=n.keys,t=e.length},function(r){for(;t>o;){var u=e[o++],a=n.getValue(u);if(void 0!==a)return r.yieldReturn({key:u,value:a})}return r.yieldBreak()})},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","../../Compare","../Enumeration/EnumeratorBase","../../Exceptions/ArgumentNullException","../../Exceptions/InvalidOperationException","../../KeyValueExtract"],e)}(function(e,t){"use strict";var n=e("../../Compare"),r=e("../Enumeration/EnumeratorBase"),o=e("../../Exceptions/ArgumentNullException"),u=e("../../Exceptions/InvalidOperationException"),a=e("../../KeyValueExtract"),i=void 0,p=function(){function e(){this._updateRecursion=0}return Object.defineProperty(e.prototype,"isUpdating",{get:function(){return 0!=this._updateRecursion},enumerable:!0,configurable:!0}),e.prototype._onValueUpdate=function(e,t,r){if(!n.areEqual(t,r,!0)){var o=this;o.onValueChanged&&o.onValueChanged(e,t,r),0==o._updateRecursion&&o._onUpdated()}},e.prototype._onUpdated=function(){var e=this;e.onUpdated&&e.onUpdated()},e.prototype.handleUpdate=function(e){var t,n=this;if(e){n._updateRecursion++;try{t=e()}finally{n._updateRecursion--}}else t=0==n._updateRecursion;return t&&0==n._updateRecursion&&n._onUpdated(),t},Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this.getCount()},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this;if(!e)throw new o["default"]("item","Dictionaries must use a valid key/value pair. '"+e+"' is not allowed.");a["default"](e,function(e,n){return t.addByKeyValue(e,n)})},e.prototype.clear=function(){var e=this,t=e.keys,n=t.length;return n&&e.handleUpdate(function(){return t.forEach(function(t){e.removeByKey(t)}),!0}),0!=e.count&&console.warn("Dictionary clear() results in mismatched count."),n},e.prototype.contains=function(e){var t=this;return e?a["default"](e,function(e,r){var o=t.getValue(e);return n.areEqual(r,o)}):!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),!e)throw new o["default"]("array");for(var n=this.getEnumerator();n.moveNext();)e[t++]=n.current;return e},e.prototype.toArray=function(){return this.copyTo([],0)},e.prototype.remove=function(e){var t=this;return e?a["default"](e,function(e,r){var o=t.getValue(e);return n.areEqual(r,o)&&t.removeByKey(e)?1:0}):0},Object.defineProperty(e.prototype,"keys",{get:function(){return this.getKeys()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){return this.getValues()},enumerable:!0,configurable:!0}),e.prototype.addByKeyValue=function(e,t){var n=this;if(n.containsKey(e)){var r=new u["default"]("Adding a key/value when the key already exists.");throw r.data.key=e,r.data.value=t,r}n.setValue(e,t)},e.prototype.containsKey=function(e){var t=this.getValue(e);return t!==i},e.prototype.containsValue=function(e){for(var t=this.getEnumerator(),r=n.areEqual;t.moveNext();)if(r(t.current,e,!0))return t.dispose(),!0;return!1},e.prototype.removeByKey=function(e){return this.setValue(e,void 0)},e.prototype.removeByValue=function(e){var t=this,r=0,o=n.areEqual;return t.keys.forEach(function(n){o(t.getValue(n),e,!0)&&(t.removeByKey(n),++r)}),r},e.prototype.importPairs=function(e){var t=this;return t.handleUpdate(function(){var n=!1;return e.forEach(function(e){return a["default"](e,function(e,r){t.setValue(e,r),n=!0})}),n})},e.prototype.getEnumerator=function(){var e,t,n=this,o=0;return new r["default"](function(){e=n.keys,t=e.length},function(r){for(;t>o;){var u=e[o++],a=n.getValue(u);if(a!==i)return r.yieldReturn({key:u,value:a})}return r.yieldBreak()})},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p}); //# 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 f4d19d8d..89faded1 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":["deps","factory","module","exports","v","require","undefined","define","amd","Compare_1","EnumeratorBase_1","ArgumentException_1","ArgumentNullException_1","InvalidOperationException_1","DictionaryBase","DictionaryBase.constructor","get","DictionaryBase.isUpdating","enumerable","configurable","DictionaryBase._onValueUpdate","DictionaryBase._onUpdated","DictionaryBase.handleUpdate","DictionaryBase.isReadOnly","DictionaryBase.count","DictionaryBase.add","DictionaryBase.clear","DictionaryBase.contains","DictionaryBase.copyTo","DictionaryBase.toArray","DictionaryBase.remove","DictionaryBase.keys","DictionaryBase.values","DictionaryBase.addByKeyValue","DictionaryBase.containsKey","DictionaryBase.containsValue","DictionaryBase.removeByKey","DictionaryBase.removeByValue","DictionaryBase.importPairs","DictionaryBase.getEnumerator","Object","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException'], function (require, exports) {\r\n ///\r\n var Compare_1 = require('../../Compare');\r\n var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase');\r\n var ArgumentException_1 = require('../../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException');\r\n var InvalidOperationException_1 = require('../../Exceptions/InvalidOperationException');\r\n var DictionaryBase = (function () {\r\n function DictionaryBase() {\r\n this._updateRecursion = 0;\r\n }\r\n Object.defineProperty(DictionaryBase.prototype, \"isUpdating\", {\r\n get: function () { return this._updateRecursion != 0; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype._onValueUpdate = function (key, value, old) {\r\n if (!Compare_1.areEqual(value, old, true)) {\r\n var _ = this;\r\n if (_.onValueChanged)\r\n _.onValueChanged(key, value, old);\r\n if (_._updateRecursion == 0)\r\n _._onUpdated();\r\n }\r\n };\r\n DictionaryBase.prototype._onUpdated = function () {\r\n var _ = this;\r\n if (_.onUpdated)\r\n _.onUpdated();\r\n };\r\n DictionaryBase.prototype.handleUpdate = function (closure) {\r\n var _ = this, result;\r\n if (closure) {\r\n _._updateRecursion++;\r\n try {\r\n result = closure();\r\n }\r\n finally {\r\n _._updateRecursion--;\r\n }\r\n }\r\n else\r\n result = _._updateRecursion == 0;\r\n if (result && _._updateRecursion == 0)\r\n _._onUpdated();\r\n return result;\r\n };\r\n Object.defineProperty(DictionaryBase.prototype, \"isReadOnly\", {\r\n get: function () { return false; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DictionaryBase.prototype, \"count\", {\r\n get: function () { return this.getCount(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype.add = function (item) {\r\n if (!item)\r\n throw new ArgumentException_1.default('item', 'Dictionaries must use a valid key/value pair. \\'' + item + '\\' is not allowed.');\r\n this.addByKeyValue(item.key, item.value);\r\n };\r\n DictionaryBase.prototype.clear = function () {\r\n var _ = this, keys = _.keys, count = keys.length;\r\n if (count)\r\n _.handleUpdate(function () {\r\n keys.forEach(function (key) { _.removeByKey(key); });\r\n return true;\r\n });\r\n if (_.count != 0)\r\n console.warn(\"Dictionary clear() results in mismatched count.\");\r\n return count;\r\n };\r\n DictionaryBase.prototype.contains = function (item) {\r\n if (!item)\r\n return false;\r\n var value = this.getValue(item.key);\r\n return Compare_1.areEqual(value, item.value);\r\n };\r\n DictionaryBase.prototype.copyTo = function (array, index) {\r\n if (index === void 0) { index = 0; }\r\n if (!array)\r\n throw new ArgumentNullException_1.default('array');\r\n var e = this.getEnumerator();\r\n while (e.moveNext()) {\r\n array[index++] = e.current;\r\n }\r\n return array;\r\n };\r\n DictionaryBase.prototype.toArray = function () {\r\n return this.copyTo([], 0);\r\n };\r\n DictionaryBase.prototype.remove = function (item) {\r\n if (!item)\r\n return 0;\r\n var key = item.key, value = this.getValue(key);\r\n return (Compare_1.areEqual(value, item.value) && this.removeByKey(key))\r\n ? 1 : 0;\r\n };\r\n Object.defineProperty(DictionaryBase.prototype, \"keys\", {\r\n get: function () { return this.getKeys(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DictionaryBase.prototype, \"values\", {\r\n get: function () { return this.getValues(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DictionaryBase.prototype.addByKeyValue = function (key, value) {\r\n var _ = this;\r\n if (_.containsKey(key)) {\r\n var ex = new InvalidOperationException_1.default(\"Adding a key/value when the key already exists.\");\r\n ex.data['key'] = key;\r\n ex.data['value'] = value;\r\n throw ex;\r\n }\r\n _.setValue(key, value);\r\n };\r\n DictionaryBase.prototype.containsKey = function (key) {\r\n var value = this.getValue(key);\r\n return value !== undefined;\r\n };\r\n DictionaryBase.prototype.containsValue = function (value) {\r\n var e = this.getEnumerator(), equal = Compare_1.areEqual;\r\n while (e.moveNext()) {\r\n if (equal(e.current, value, true)) {\r\n e.dispose();\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n DictionaryBase.prototype.removeByKey = function (key) {\r\n return this.setValue(key, undefined);\r\n };\r\n DictionaryBase.prototype.removeByValue = function (value) {\r\n var _ = this, count = 0, equal = Compare_1.areEqual;\r\n _.keys.forEach(function (key) {\r\n if (equal(_.getValue(key), value, true)) {\r\n _.removeByKey(key);\r\n ++count;\r\n }\r\n });\r\n return count;\r\n };\r\n DictionaryBase.prototype.importPairs = function (pairs) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n pairs.forEach(function (pair) {\r\n _.setValue(pair.key, pair.value);\r\n changed = true;\r\n });\r\n return changed;\r\n });\r\n };\r\n DictionaryBase.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var keys, len, i = 0;\r\n return new EnumeratorBase_1.default(function () {\r\n keys = _.keys;\r\n len = keys.length;\r\n }, function (yielder) {\r\n while (i < len) {\r\n var key = keys[i++], value = _.getValue(key);\r\n if (value !== undefined)\r\n return yielder.yieldReturn({ key: key, value: value });\r\n }\r\n return yielder.yieldBreak();\r\n });\r\n };\r\n return DictionaryBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DictionaryBase;\r\n});\r\n//# sourceMappingURL=DictionaryBase.js.map","/*\r\n * @author 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 EnumeratorBase from '../Enumeration/EnumeratorBase';\r\nimport ArgumentException from '../../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\r\nimport InvalidOperationException from '../../Exceptions/InvalidOperationException';\r\n\r\n// Design Note: Should DictionaryAbstractBase be IDisposable?\r\nabstract class DictionaryBase\r\nimplements IDictionary\r\n{\r\n\t// This allows for batch updates in order to improve the efficiency of responsive systems.\r\n\tprivate _updateRecursion:number;\r\n\r\n\tconstructor() {\r\n\t\tthis._updateRecursion = 0;\r\n\t}\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t// Could implement an event dispatcher pattern here easily...\r\n\tonValueChanged:(key:TKey, value:TValue, old:TValue) => void;\r\n\r\n\tprotected _onValueUpdate(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t\tif(!areEqual(value, old, true))\r\n\t\t{\r\n\r\n\t\t\tvar _ = this;\r\n\t\t\tif(_.onValueChanged)\r\n\t\t\t\t_.onValueChanged(key, value, old);\r\n\r\n\t\t\t// If the update recursion is zero, then we are finished with updates.\r\n\t\t\tif(_._updateRecursion==0)\r\n\t\t\t\t_._onUpdated();\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t// Listening to every value update can get noisy. Here we allow for batch update signaling.\r\n\t// The consumer of this class can also wire up their own event system.\r\n\tonUpdated:() => void;\r\n\r\n\tprivate _onUpdated():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.onUpdated)\r\n\t\t\t_.onUpdated();\r\n\t}\r\n\r\n\t// Takes a closure that if returning true will propagate an update signal.\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tvar _ = this, result:boolean;\r\n\t\tif(closure)\r\n\t\t{\r\n\t\t\t_._updateRecursion++;\r\n\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tresult = closure();\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\t_._updateRecursion--;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tresult = _._updateRecursion==0;\r\n\r\n\t\tif(result && _._updateRecursion==0)\r\n\t\t\t_._onUpdated();\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// ICollection\r\n\t/////////////////////////////////////////\r\n\tget isReadOnly():boolean { return false; }\r\n\r\n\tprotected abstract getCount():number;\r\n\tget count():number { return this.getCount(); }\r\n\r\n\tadd(item:IKeyValuePair):void\r\n\t{\r\n\t\tif(!item)\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'item',\r\n\t\t\t\t'Dictionaries must use a valid key/value pair. \\''+item+'\\' is not allowed.'\r\n\t\t\t);\r\n\r\n\t\tthis.addByKeyValue(item.key, item.value);\r\n\t}\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, keys = _.keys, count = keys.length;\r\n\r\n\t\tif(count)\r\n\t\t\t_.handleUpdate(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tkeys.forEach(key=> { _.removeByKey(key); });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tif(_.count!=0) // After they've all been removed, then should be zero.\r\n\t\t\tconsole.warn(\"Dictionary clear() results in mismatched count.\");\r\n\r\n\t\treturn count;\r\n\t}\r\n\r\n\tcontains(item:IKeyValuePair):boolean\r\n\t{\r\n\t\t// Should never have a null object in the collection.\r\n\t\tif(!item) return false;\r\n\r\n\t\tvar value = this.getValue(item.key);\r\n\t\treturn areEqual(value, item.value);\r\n\t}\r\n\r\n\tcopyTo(array:IKeyValuePair[], index:number = 0):IKeyValuePair[]\r\n\t{\r\n\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t// This is a generic implementation that will work for all derived classes.\r\n\t\t// It can be overridden and optimized.\r\n\t\tvar e = this.getEnumerator();\r\n\t\twhile(e.moveNext()) // Disposes when finished.\r\n\t\t{\r\n\t\t\tarray[index++] = e.current;\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\r\n\ttoArray():IKeyValuePair[] {\r\n\t\treturn this.copyTo([],0);\r\n\t}\r\n\r\n\tremove(item:IKeyValuePair):number\r\n\t{\r\n\t\tif(!item) return 0;\r\n\r\n\t\tvar key = item.key, value = this.getValue(key);\r\n\t\treturn (areEqual(value, item.value) && this.removeByKey(key))\r\n\t\t\t? 1 : 0;\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\tget keys():TKey[] { return this.getKeys(); }\r\n\r\n\tprotected abstract getValues():TValue[];\r\n\tget values():TValue[] { return this.getValues(); }\r\n\r\n\r\n\taddByKeyValue(key:TKey, value:TValue):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.containsKey(key)) {\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\t_.setValue(key, value);\r\n\t}\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tabstract setValue(key:TKey, value:TValue):boolean;\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar value = this.getValue(key);\r\n\t\treturn value!==undefined;\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, undefined);\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\t_.keys.forEach(key=>\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\t++count;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportPairs(pairs:IKeyValuePair[]):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\tpairs.forEach(\r\n\t\t\t\t\t\tpair=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_.setValue(pair.key, pair.value);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\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\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar 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\tkeys = _.keys;\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\twhile(i\r\nimport {areEqual} from '../../Compare';\r\nimport EnumeratorBase from '../Enumeration/EnumeratorBase';\r\nimport ArgumentException from '../../Exceptions/ArgumentException';\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\nimplements IDictionary\r\n{\r\n\t// This allows for batch updates in order to improve the efficiency of responsive systems.\r\n\tprivate _updateRecursion:number;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._updateRecursion = 0;\r\n\t}\r\n\r\n\tget isUpdating():boolean { return this._updateRecursion!=0; }\r\n\r\n\t// Could implement an event dispatcher pattern here easily...\r\n\tonValueChanged:(key:TKey, value:TValue, old:TValue) => void;\r\n\r\n\tprotected _onValueUpdate(key:TKey, value:TValue, old:TValue):void\r\n\t{\r\n\t\tif(!areEqual(value, old, true))\r\n\t\t{\r\n\r\n\t\t\tvar _ = this;\r\n\t\t\tif(_.onValueChanged)\r\n\t\t\t\t_.onValueChanged(key, value, old);\r\n\r\n\t\t\t// If the update recursion is zero, then we are finished with updates.\r\n\t\t\tif(_._updateRecursion==0)\r\n\t\t\t\t_._onUpdated();\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t// Listening to every value update can get noisy. Here we allow for batch update signaling.\r\n\t// The consumer of this class can also wire up their own event system.\r\n\tonUpdated:() => void;\r\n\r\n\tprivate _onUpdated():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tif(_.onUpdated)\r\n\t\t\t_.onUpdated();\r\n\t}\r\n\r\n\t// Takes a closure that if returning true will propagate an update signal.\r\n\thandleUpdate(closure?:() => boolean):boolean\r\n\t{\r\n\t\tvar _ = this, result:boolean;\r\n\t\tif(closure)\r\n\t\t{\r\n\t\t\t_._updateRecursion++;\r\n\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tresult = closure();\r\n\t\t\t}\r\n\t\t\tfinally\r\n\t\t\t{\r\n\t\t\t\t_._updateRecursion--;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t\tresult = _._updateRecursion==0;\r\n\r\n\t\tif(result && _._updateRecursion==0)\r\n\t\t\t_._onUpdated();\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/////////////////////////////////////////\r\n\t// ICollection\r\n\t/////////////////////////////////////////\r\n\tget isReadOnly():boolean { return false; }\r\n\r\n\tprotected abstract getCount():number;\r\n\r\n\tget count():number { return this.getCount(); }\r\n\r\n\tadd(item:KeyValuePair):void\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\textractKeyValue(item,\r\n\t\t\t(key, value)=>this.addByKeyValue(key, value));\r\n\t}\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, keys = _.keys, count = keys.length;\r\n\r\n\t\tif(count)\r\n\t\t\t_.handleUpdate(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\tkeys.forEach(key=> { _.removeByKey(key); });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tif(_.count!=0) // After they've all been removed, then should be zero.\r\n\t\t\tconsole.warn(\"Dictionary clear() results in mismatched count.\");\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) 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\tcopyTo(array:IKeyValuePair[], index:number = 0):IKeyValuePair[]\r\n\t{\r\n\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t// This is a generic implementation that will work for all derived classes.\r\n\t\t// It can be overridden and optimized.\r\n\t\tvar e = this.getEnumerator();\r\n\t\twhile(e.moveNext()) // Disposes when finished.\r\n\t\t{\r\n\t\t\tarray[index++] = e.current;\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\r\n\ttoArray():IKeyValuePair[]\r\n\t{\r\n\t\treturn this.copyTo([], 0);\r\n\t}\r\n\r\n\tremove(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\r\n\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):void\r\n\t{\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\t_.setValue(key, value);\r\n\t}\r\n\r\n\tabstract getValue(key:TKey):TValue;\r\n\r\n\tabstract setValue(key:TKey, value:TValue):boolean;\r\n\r\n\tcontainsKey(key:TKey):boolean\r\n\t{\r\n\t\tvar value = this.getValue(key);\r\n\t\treturn value!==VOID0;\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, undefined);\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\t_.keys.forEach(key=>\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\t++count;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn count;\r\n\t}\r\n\r\n\timportPairs(pairs:KeyValuePair[]):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\tpairs.forEach(\r\n\t\t\t\t\tpair=>extractKeyValue(pair, (key, value)=>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_.setValue(key, value);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t})\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\tgetEnumerator():IEnumerator>\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar 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\tkeys = _.keys;\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\twhile(ie)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["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;n= order.length)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.');\r\n return _.setValue(order[index], value);\r\n };\r\n OrderedStringKeyDictionary.prototype.importValues = function (values) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n for (var i = 0; i < values.length; i++) {\r\n if (_.setByIndex(i, values[i]))\r\n changed = true;\r\n }\r\n return changed;\r\n });\r\n };\r\n OrderedStringKeyDictionary.prototype.setValues = function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i - 0] = arguments[_i];\r\n }\r\n return this.importValues(values);\r\n };\r\n OrderedStringKeyDictionary.prototype.removeByIndex = function (index) {\r\n return this.setByIndex(index, undefined);\r\n };\r\n OrderedStringKeyDictionary.prototype.getKeys = function () {\r\n var _ = this;\r\n return _._order.filter(function (key) { return _.containsKey(key); });\r\n };\r\n return OrderedStringKeyDictionary;\r\n })(StringKeyDictionary_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = OrderedStringKeyDictionary;\r\n});\r\n//# sourceMappingURL=OrderedStringKeyDictionary.js.map","/*\r\n * @author 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\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\treturn this._order.indexOf(key, 0);\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\treturn this.getValue(this._order[index]);\r\n\t}\r\n\r\n\t// adding keepIndex allows for clearing a value while still retaining it's index.\r\n\tsetValue(key:string, value:TValue, keepIndex?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, exists = _.indexOfKey(key)!= -1;\r\n\t\tif(!exists && (value!==undefined || keepIndex))\r\n\t\t\t_._order.push(key);\r\n\t\telse if(exists && value===undefined && !keepIndex)\r\n\t\t\tArrayUtility.remove(_._order, key);\r\n\r\n\t\treturn super.setValue(key, value);\r\n\t}\r\n\r\n\tsetByIndex(index:number, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, order = _._order;\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is less than zero.');\r\n\t\tif(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","OrderedStringKeyDictionary.constructor","OrderedStringKeyDictionary.indexOfKey","OrderedStringKeyDictionary.getValueByIndex","OrderedStringKeyDictionary.setValue","OrderedStringKeyDictionary.setByIndex","OrderedStringKeyDictionary.importValues","OrderedStringKeyDictionary.setValues","OrderedStringKeyDictionary.removeByIndex","OrderedStringKeyDictionary.getKeys","defineProperty","value"],"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,mBAAoB,wBAAyB,gDAAiDN,IAEjI,SAAUI,EAASF,GCRtB,YAEA,IAAYM,GAAYJ,EAAM,oBAC9BK,EAAAL,EAAgC,yBAChCM,EAAAN,EAAwC,gDAElCO,EAAY,OAElBC,EAAA,SAAAC,GAQCD,QAAAA,KAECE,EAAAA,KAAAA,MAJOA,KAAAA,UA2ETF,MA/EQA,WAAAA,EAAAA,GAWPA,EAAAA,UAAAA,WAAAA,SAAWA,GAEVG,MAAOA,MAAKA,OAAOA,QAAQA,EAAKA,IAGjCH,EAAAA,UAAAA,gBAAAA,SAAgBA,GAEfI,MAAOA,MAAKA,SAASA,KAAKA,OAAOA,KAIlCJ,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,EAAcA,GAElCK,GAAIA,GAAIA,KAAMA,EAA6BA,IAApBA,EAAEA,WAAWA,EAMpCA,OALIA,IAAWA,IAAQA,IAASA,EAExBA,GAAUA,IAAQA,IAAUA,GACnCA,EAAaA,OAAOA,EAAEA,OAAQA,GAF9BA,EAAEA,OAAOA,KAAKA,GAIRA,EAAAA,UAAMA,SAAQA,KAAAA,KAACA,EAAKA,IAG5BL,EAAAA,UAAAA,WAAAA,SAAWA,EAAcA,GAExBM,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,MACxBA,IAASA,EAANA,EACFA,KAAMA,IAAIA,GAAAA,WAA4BA,QAASA,EAAOA,qBACvDA,IAAGA,GAAOA,EAAMA,OACfA,KAAMA,IAAIA,GAAAA,WAA4BA,QAASA,EAAOA,6BACvDA,OAAOA,GAAEA,SAASA,EAAMA,GAAQA,IAIjCN,EAAAA,UAAAA,aAAAA,SAAaA,GAEZO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAGCA,IAAIA,GADAA,IAAkBA,EACdA,EAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE5BA,EAAEA,WAAWA,EAAGA,EAAOA,MACzBA,GAAUA,EAEZA,OAAOA,MAOVP,EAAAA,UAAAA,UAAAA,WDlBW,ICkBDQ,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAETA,OAAOA,MAAKA,aAAaA,IAG1BR,EAAAA,UAAAA,cAAAA,SAAcA,GAEbS,MAAOA,MAAKA,WAAWA,EAAOA,SAGrBT,EAAAA,UAAAA,QAAVA,WAECU,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,OAAOA,OAAOA,SAAAA,GAAMA,MAAAA,GAAEA,YAAYA,MAG7CV,GA/EQH,EAAAA,WAFRX,QAAAyB,eAAArB,EAAA,cAAAsB,OAAA,ID8DItB,EAAAA,WAAkBU","file":"System/Collections/Dictionaries/OrderedStringKeyDictionary.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\", '../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 return this._order.indexOf(key, 0);\n };\n OrderedStringKeyDictionary.prototype.getValueByIndex = function (index) {\n return this.getValue(this._order[index]);\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.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 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, undefined);\n };\n OrderedStringKeyDictionary.prototype.getKeys = function () {\n var _ = this;\n return _._order.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'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\treturn this._order.indexOf(key, 0);\r\n\t}\r\n\r\n\tgetValueByIndex(index:number):TValue\r\n\t{\r\n\t\treturn this.getValue(this._order[index]);\r\n\t}\r\n\r\n\t// adding keepIndex allows for clearing a value while still retaining it's index.\r\n\tsetValue(key:string, value:TValue, keepIndex?:boolean):boolean\r\n\t{\r\n\t\tvar _ = this, exists = _.indexOfKey(key)!= -1;\r\n\t\tif(!exists && (value!==VOID0 || keepIndex))\r\n\t\t\t_._order.push(key);\r\n\t\telse if(exists && value===VOID0 && !keepIndex)\r\n\t\t\tArrayUtility.remove(_._order, key);\r\n\r\n\t\treturn super.setValue(key, value);\r\n\t}\r\n\r\n\tsetByIndex(index:number, value:TValue):boolean\r\n\t{\r\n\t\tvar _ = this, order = _._order;\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException('index', index, 'Is less than zero.');\r\n\t\tif(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 diff --git a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js index 7d7ba02d..025a2087 100644 --- a/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js +++ b/dist/umd.min/System/Collections/Dictionaries/StringKeyDictionary.js @@ -1,7 +1,2 @@ -/// -/* - * @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,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(t,e)}(["require","exports","../../Compare","./DictionaryBase"],function(t,e){var r=t("../../Compare"),o=t("./DictionaryBase"),n=function(t){function e(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(e,t),e.prototype.containsKey=function(t){return t in this._map},e.prototype.containsValue=function(t){var e=this._map,o=r.areEqual;for(var n in e)if(e.hasOwnProperty(n)&&o(e[n],t))return!0;return!1},e.prototype.getValue=function(t){return this._map[t]},e.prototype.setValue=function(t,e){var r=this,o=r._map,n=o[t];return n!==e?(void 0===e?t in o&&(delete o[t],--r._count):(t in o||++r._count,o[t]=e),r._onValueUpdate(t,e,n),!0):!1},e.prototype.importMap=function(t){var e=this;return e.handleUpdate(function(){var r=!1;for(var o in t)t.hasOwnProperty(o)&&e.setValue(o,t[o])&&(r=!0);return r})},e.prototype.toMap=function(t){var e=this,r={};for(var o in e._map)if(e._map.hasOwnProperty(o)){var n=e._map[o];t&&(n=t(o,n)),void 0!==n&&(r[o]=n)}return r},e.prototype.getKeys=function(){var t=this,e=[];for(var r in t._map)t._map.hasOwnProperty(r)&&e.push(r);return e},e.prototype.getValues=function(){var t=this,e=[];for(var r in t._map)t._map.hasOwnProperty(r)&&e.push(t._map[r]);return e},e.prototype.getCount=function(){return this._count},e}(o["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n}); +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)};!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 r=t("../../Compare"),n=t("./DictionaryBase"),o=void 0,a=function(t){function e(){t.apply(this,arguments),this._count=0,this._map={}}return __extends(e,t),e.prototype.containsKey=function(t){return t in this._map},e.prototype.containsValue=function(t){var e=this._map,n=r.areEqual;for(var o in e)if(e.hasOwnProperty(o)&&n(e[o],t))return!0;return!1},e.prototype.getValue=function(t){return this._map[t]},e.prototype.setValue=function(t,e){var r=this,n=r._map,a=n[t];return a!==e?(e===o?t in n&&(delete n[t],--r._count):(t in n||++r._count,n[t]=e),r._onValueUpdate(t,e,a),!0):!1},e.prototype.importMap=function(t){var e=this;return e.handleUpdate(function(){var r=!1;for(var n in t)t.hasOwnProperty(n)&&e.setValue(n,t[n])&&(r=!0);return r})},e.prototype.toMap=function(t){var e=this,r={};for(var n in e._map)if(e._map.hasOwnProperty(n)){var a=e._map[n];t&&(a=t(n,a)),a!==o&&(r[n]=a)}return r},e.prototype.getKeys=function(){var t=this,e=[];for(var r in t._map)t._map.hasOwnProperty(r)&&e.push(r);return e},e.prototype.getValues=function(){var t=this,e=[];for(var r in t._map)t._map.hasOwnProperty(r)&&e.push(t._map[r]);return e},e.prototype.getCount=function(){return this._count},e}(n["default"]);Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a}); //# 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 3920c972..fbd2a85a 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","deps","factory","module","exports","v","require","undefined","define","amd","Compare_1","DictionaryBase_1","StringKeyDictionary","_super","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,gBAAiB,oBAAqB,SAAUI,EAASF,GCXnF,GAAAM,GAAAJ,EAAuB,iBACvBK,EAAAL,EAA2B,oBAI3BM,EAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WAECA,KAAAA,OAAgBA,EAChBA,KAAAA,QAwHTF,MA3HQA,WAAAA,EAAAA,GAMPA,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,MAAOA,KAAQA,MAASA,MAGzBH,EAAAA,UAAAA,cAAAA,SAAcA,GAEbI,GAAIA,GAAMA,KAAKA,KAAMA,EAAmDA,EAAAA,QACxEA,KAAIA,GAAIA,KAAOA,GAEdA,GAAGA,EAAIA,eAAeA,IAAQA,EAAMA,EAAIA,GAAMA,GAC7CA,OAAOA,CAETA,QAAOA,GAIRJ,EAAAA,UAAAA,SAAAA,SAASA,GAERK,MAAOA,MAAKA,KAAKA,IAGlBL,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,GAEpBM,GAAIA,GAAIA,KAAMA,EAAMA,EAAEA,KAAMA,EAAMA,EAAIA,EACtCA,OAAGA,KAAMA,GAGGA,SAARA,EAECA,IAAOA,WAEFA,GAAIA,KACTA,EAAEA,SAKAA,IAAOA,MACTA,EAAEA,OACLA,EAAIA,GAAOA,GAGZA,EAAEA,eAAeA,EAAKA,EAAOA,IACtBA,IAEDA,GAIRN,EAAAA,UAAAA,UAAAA,SAAUA,GAETO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAECA,GAAIA,IAAkBA,CACtBA,KAAIA,GAAIA,KAAOA,GAEXA,EAAOA,eAAeA,IAAQA,EAAEA,SAASA,EAAKA,EAAOA,MACvDA,GAAUA,EAEZA,OAAOA,MAKVP,EAAAA,UAAAA,MAAAA,SAAMA,GAELQ,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEhBA,GAAGA,EAAEA,KAAKA,eAAeA,GACzBA,CACCA,GAAIA,GAAQA,EAAEA,KAAKA,EAChBA,KACFA,EAAQA,EAASA,EAAKA,IACZA,SAARA,IACFA,EAAOA,GAAOA,GAGjBA,MAAOA,IAGER,EAAAA,UAAAA,QAAVA,WAGCS,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAGdA,OAAOA,IAIET,EAAAA,UAAAA,UAAVA,WAGCU,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAAEA,KAAKA,GAGrBA,OAAOA,IAGEV,EAAAA,UAAAA,SAAVA,WAECW,MAAOA,MAAKA,QAIdX,GA3HQD,EAAAA,WAFRZ,QAAAyB,eAAApB,EAAA,cAAAqB,OAAA,ID+FIrB,EAAAA,WAAkBQ","file":"System/Collections/Dictionaries/StringKeyDictionary.js","sourcesContent":["///\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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', './DictionaryBase'], function (require, exports) {\r\n var Compare_1 = require('../../Compare');\r\n var DictionaryBase_1 = require('./DictionaryBase');\r\n var StringKeyDictionary = (function (_super) {\r\n __extends(StringKeyDictionary, _super);\r\n function StringKeyDictionary() {\r\n _super.apply(this, arguments);\r\n this._count = 0;\r\n this._map = {};\r\n }\r\n StringKeyDictionary.prototype.containsKey = function (key) {\r\n return (key) in (this._map);\r\n };\r\n StringKeyDictionary.prototype.containsValue = function (value) {\r\n var map = this._map, equal = Compare_1.areEqual;\r\n for (var key in map) {\r\n if (map.hasOwnProperty(key) && equal(map[key], value))\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringKeyDictionary.prototype.getValue = function (key) {\r\n return this._map[key];\r\n };\r\n StringKeyDictionary.prototype.setValue = function (key, value) {\r\n var _ = this, map = _._map, old = map[key];\r\n if (old !== value) {\r\n if (value === undefined) {\r\n if ((key) in (map)) {\r\n delete map[key];\r\n --_._count;\r\n }\r\n }\r\n else {\r\n if (!((key) in (map)))\r\n ++_._count;\r\n map[key] = value;\r\n }\r\n _._onValueUpdate(key, value, old);\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringKeyDictionary.prototype.importMap = function (values) {\r\n var _ = this;\r\n return _.handleUpdate(function () {\r\n var changed = false;\r\n for (var key in values) {\r\n if (values.hasOwnProperty(key) && _.setValue(key, values[key]))\r\n changed = true;\r\n }\r\n return changed;\r\n });\r\n };\r\n StringKeyDictionary.prototype.toMap = function (selector) {\r\n var _ = this, result = {};\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key)) {\r\n var value = _._map[key];\r\n if (selector)\r\n value = selector(key, value);\r\n if (value !== undefined)\r\n result[key] = value;\r\n }\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getKeys = function () {\r\n var _ = this, result = [];\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key))\r\n result.push(key);\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getValues = function () {\r\n var _ = this, result = [];\r\n for (var key in _._map) {\r\n if (_._map.hasOwnProperty(key))\r\n result.push(_._map[key]);\r\n }\r\n return result;\r\n };\r\n StringKeyDictionary.prototype.getCount = function () {\r\n return this._count;\r\n };\r\n return StringKeyDictionary;\r\n })(DictionaryBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = StringKeyDictionary;\r\n});\r\n//# sourceMappingURL=StringKeyDictionary.js.map","///\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 {areEqual} from '../../Compare';\r\nimport DictionaryBase from './DictionaryBase';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\r\n\r\n\r\nexport default\r\nclass StringKeyDictionary\r\nextends DictionaryBase implements IStringKeyDictionary\r\n{\r\n\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\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\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\treturn this._map[key];\r\n\t}\r\n\r\n\tsetValue(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===undefined)\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(!((key)in(map)))\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\t_._onValueUpdate(key, value, old);\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\tfor(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!==undefined)\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\r\n\t\tvar _ = this, result:string[] = [];\r\n\t\tfor(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\tresult.push(key);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tfor(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\tresult.push(_._map[key]);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\r\n}\r\n"]} \ No newline at end of file +{"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","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount","defineProperty","value"],"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,gBAAiB,oBAAqBN,IAEzE,SAAUI,EAASF,GCRtB,YAGA,IAAAM,GAAAJ,EAAuB,iBACvBK,EAAAL,EAA2B,oBAGrBM,EAAY,OAElBC,EAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WAECA,KAAAA,OAAgBA,EAChBA,KAAAA,QAwHTF,MA3HQA,WAAAA,EAAAA,GAMPA,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,MAAOA,KAAQA,MAASA,MAGzBH,EAAAA,UAAAA,cAAAA,SAAcA,GAEbI,GAAIA,GAAMA,KAAKA,KAAMA,EAAmDA,EAAAA,QACxEA,KAAIA,GAAIA,KAAOA,GAEdA,GAAGA,EAAIA,eAAeA,IAAQA,EAAMA,EAAIA,GAAMA,GAC7CA,OAAOA,CAETA,QAAOA,GAIRJ,EAAAA,UAAAA,SAAAA,SAASA,GAERK,MAAOA,MAAKA,KAAKA,IAGlBL,EAAAA,UAAAA,SAAAA,SAASA,EAAYA,GAEpBM,GAAIA,GAAIA,KAAMA,EAAMA,EAAEA,KAAMA,EAAMA,EAAIA,EACtCA,OAAGA,KAAMA,GAGLA,IAAQA,EAEPA,IAAOA,WAEFA,GAAIA,KACTA,EAAEA,SAKAA,IAAOA,MACTA,EAAEA,OACLA,EAAIA,GAAOA,GAGZA,EAAEA,eAAeA,EAAKA,EAAOA,IACtBA,IAEDA,GAIRN,EAAAA,UAAAA,UAAAA,SAAUA,GAETO,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,aACRA,WAECA,GAAIA,IAAkBA,CACtBA,KAAIA,GAAIA,KAAOA,GAEXA,EAAOA,eAAeA,IAAQA,EAAEA,SAASA,EAAKA,EAAOA,MACvDA,GAAUA,EAEZA,OAAOA,MAKVP,EAAAA,UAAAA,MAAAA,SAAMA,GAELQ,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEhBA,GAAGA,EAAEA,KAAKA,eAAeA,GACzBA,CACCA,GAAIA,GAAQA,EAAEA,KAAKA,EAChBA,KACFA,EAAQA,EAASA,EAAKA,IACpBA,IAAQA,IACVA,EAAOA,GAAOA,GAGjBA,MAAOA,IAGER,EAAAA,UAAAA,QAAVA,WAGCS,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAGdA,OAAOA,IAIET,EAAAA,UAAAA,UAAVA,WAGCU,GAAIA,GAAIA,KAAMA,IACdA,KAAIA,GAAIA,KAAOA,GAAEA,KAEbA,EAAEA,KAAKA,eAAeA,IACxBA,EAAOA,KAAKA,EAAEA,KAAKA,GAGrBA,OAAOA,IAGEV,EAAAA,UAAAA,SAAVA,WAECW,MAAOA,MAAKA,QAIdX,GA3HQF,EAAAA,WAFRX,QAAAyB,eAAArB,EAAA,cAAAsB,OAAA,ID0FItB,EAAAA,WAAkBS","file":"System/Collections/Dictionaries/StringKeyDictionary.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\", '../../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.containsKey = function (key) {\n return (key) in (this._map);\n };\n StringKeyDictionary.prototype.containsValue = function (value) {\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 return this._map[key];\n };\n StringKeyDictionary.prototype.setValue = 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 (!((key) in (map)))\n ++_._count;\n map[key] = value;\n }\n _._onValueUpdate(key, value, old);\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 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 var _ = this, result = [];\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key))\n result.push(key);\n }\n return result;\n };\n StringKeyDictionary.prototype.getValues = function () {\n var _ = this, result = [];\n for (var key in _._map) {\n if (_._map.hasOwnProperty(key))\n result.push(_._map[key]);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\nimport {areEqual} from '../../Compare';\r\nimport DictionaryBase from './DictionaryBase';\r\nimport ArgumentNullException from '../../Exceptions/ArgumentNullException';\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\tprivate _count:number = 0;\r\n\tprivate _map:IMap = {};\r\n\r\n\r\n\tcontainsKey(key:string):boolean\r\n\t{\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\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\treturn this._map[key];\r\n\t}\r\n\r\n\tsetValue(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(!((key)in(map)))\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\t_._onValueUpdate(key, value, old);\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\tfor(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\r\n\t\tvar _ = this, result:string[] = [];\r\n\t\tfor(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\tresult.push(key);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\tprotected getValues():TValue[]\r\n\t{\r\n\r\n\t\tvar _ = this, result:TValue[] = [];\r\n\t\tfor(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\tresult.push(_._map[key]);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprotected getCount():number\r\n\t{\r\n\t\treturn this._count;\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/Enumeration/ArrayEnumerator.js b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js index b9c3707b..dfae6cd2 100644 --- a/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/ArrayEnumerator.js @@ -1,6 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./IndexEnumerator","../../Types"],function(e,t){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 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}); //# 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 e28da9b4..be8ee999 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","deps","factory","module","exports","v","require","undefined","define","amd","IndexEnumerator_1","Types_1","ArrayEnumerator","_super","ArrayEnumerator.constructor","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,oBAAqB,eAAgB,SAAUI,EAASF,GCVlF,GAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAiB,eAEjBM,EAAA,SAAAC,GAKCD,QAAAA,GAAYA,EAAoBA,EAAkBA,GAAlBE,SAAAA,IAAAA,EAAAA,GAAkBA,SAAAA,IAAAA,EAAAA,GAEjDA,EAAAA,KAAAA,KACCA,WAECA,GAAIA,GAAQA,EAAAA,WAAKA,WAAWA,GAAkBA,IAAmBA,CACjEA,QAAQA,OAAQA,EAAOA,QAASA,EAAOA,OAASA,EAAQA,EAAMA,OAASA,EAAIA,KAAMA,KAIrFF,MAdiCA,WAAAA,EAAAA,GAcjCA,GAdiCF,EAAAA,WADjCX,QAAAgB,eAAAX,EAAA,cAAAY,OAAA,IDwBIZ,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './IndexEnumerator', '../../Types'], function (require, exports) {\r\n ///\r\n var IndexEnumerator_1 = require('./IndexEnumerator');\r\n var Types_1 = require('../../Types');\r\n var ArrayEnumerator = (function (_super) {\r\n __extends(ArrayEnumerator, _super);\r\n function ArrayEnumerator(arrayOrFactory, start, step) {\r\n if (start === void 0) { start = 0; }\r\n if (step === void 0) { step = 1; }\r\n _super.call(this, function () {\r\n var array = Types_1.default.isFunction(arrayOrFactory) ? arrayOrFactory() : arrayOrFactory;\r\n return { source: array, pointer: start, length: (array ? array.length : 0), step: step };\r\n });\r\n }\r\n return ArrayEnumerator;\r\n })(IndexEnumerator_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArrayEnumerator;\r\n});\r\n//# sourceMappingURL=ArrayEnumerator.js.map","/*\r\n * @author 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\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","ArrayEnumerator.constructor","defineProperty","value"],"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,oBAAqB,eAAgBN,IAExE,SAAUI,EAASF,GCRtB,YAGA,IAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAiB,eAEjBM,EAAA,SAAAC,GAKCD,QAAAA,GAAYA,EAAoBA,EAAkBA,GAAlBE,SAAAA,IAAAA,EAAAA,GAAkBA,SAAAA,IAAAA,EAAAA,GAEjDA,EAAAA,KAAAA,KACCA,WAECA,GAAIA,GAAQA,EAAAA,WAAKA,WAAWA,GAAkBA,IAAmBA,CACjEA,QAAQA,OAAQA,EAAOA,QAASA,EAAOA,OAASA,EAAQA,EAAMA,OAASA,EAAIA,KAAMA,KAIrFF,MAdiCA,WAAAA,EAAAA,GAcjCA,GAdiCF,EAAAA,WADjCV,QAAAe,eAAAX,EAAA,cAAAY,OAAA,IDmBIZ,EAAAA,WAAkBQ","file":"System/Collections/Enumeration/ArrayEnumerator.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\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 diff --git a/dist/umd.min/System/Collections/Enumeration/Enumerator.js b/dist/umd.min/System/Collections/Enumeration/Enumerator.js index 99d53029..379e7ed6 100644 --- a/dist/umd.min/System/Collections/Enumeration/Enumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/Enumerator.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../../Types","./ArrayEnumerator","./IndexEnumerator"],function(e,r){function t(e){if(!e)return p;if(Array.isArray(e))return new i["default"](e);if(!u["default"].isPrimitive(e)){if(u["default"].isArrayLike(e))return new f["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(n(e))return e.getEnumerator()}throw new Error("Unknown enumerable.")}function n(e){return u["default"].hasMemberOfType(e,"getEnumerator",u["default"].FUNCTION)}function o(e,r){if(e)for(var t=0;e.moveNext()&&r(e.current,t++)!==!1;);}var u=e("../../Types"),i=e("./ArrayEnumerator"),f=e("./IndexEnumerator"),a=function(){function e(){}return Object.defineProperty(e.prototype,"current",{get:function(){return void 0},enumerable:!0,configurable:!0}),e.prototype.moveNext=function(){return!1},e.prototype.reset=function(){},e.prototype.dispose=function(){},e}(),p=new a;r.from=t,r.isEnumerable=n,r.forEach=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","../../Types","./ArrayEnumerator","./IndexEnumerator"],e)}(function(e,r){"use strict";function t(e){if(!e)return c;if(Array.isArray(e))return new i["default"](e);if(!u["default"].isPrimitive(e)){if(u["default"].isArrayLike(e))return new f["default"](function(){return{source:e,length:e.length,pointer:0,step:1}});if(n(e))return e.getEnumerator()}throw new Error("Unknown enumerable.")}function n(e){return u["default"].hasMemberOfType(e,"getEnumerator",u["default"].FUNCTION)}function o(e,r){if(e)for(var t=0;e.moveNext()&&r(e.current,t++)!==!1;);}var u=e("../../Types"),i=e("./ArrayEnumerator"),f=e("./IndexEnumerator"),a=function(){function e(){}return Object.defineProperty(e.prototype,"current",{get:function(){},enumerable:!0,configurable:!0}),e.prototype.moveNext=function(){return!1},e.prototype.reset=function(){},e.prototype.dispose=function(){},e}(),c=new a;r.from=t,r.isEnumerable=n,r.forEach=o}); //# sourceMappingURL=Enumerator.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/Enumerator.js.map b/dist/umd.min/System/Collections/Enumeration/Enumerator.js.map index a21ece74..cd546925 100644 --- a/dist/umd.min/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/umd.min/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/Enumerator.js","System/Collections/Enumeration/Enumerator.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","from","source","isEnumerable","instance","forEach","e","action","Types_1","ArrayEnumerator_1","IndexEnumerator_1","EmptyEnumerator","get","EmptyEnumerator.current","enumerable","configurable","EmptyEnumerator.moveNext","Empty"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,cAAe,oBAAqB,qBAAsB,SAAUI,EAASF,GCwBvG,QAAAM,GAAwBC,GAGvBD,IAAIA,EACHA,MAAOA,EAERA,IAAGA,MAAMA,QAAQA,GAChBA,MAAOA,IAAIA,GAAAA,WAAwBA,EAGpCA,KAAIA,EAAAA,WAAKA,YAAYA,GACrBA,CACCA,GAAGA,EAAAA,WAAKA,YAAeA,GAEtBA,MAAOA,IAAIA,GAAAA,WACVA,WAECA,OACCA,OAAQA,EACRA,OAAQA,EAAOA,OACfA,QAASA,EACTA,KAAMA,IAKVA,IAAGA,EAAgBA,GAClBA,MAAOA,GAAOA,gBAIhBA,KAAMA,IAAIA,OAAMA,uBAGjB,QAAAE,GAAgCC,GAE/BD,MAAOA,GAAAA,WAAKA,gBAAgCA,EAAUA,gBAAiBA,EAAAA,WAAKA,UAG7E,QAAAE,GACCC,EACAC,GAEAF,GAAGA,EAIFA,IAFAA,GAAIA,GAAQA,EAENA,EAAEA,YAEJA,EAAOA,EAAEA,QAASA,QAAWA,KA3EnC,GAAAG,GAAAX,EAAiB,eAEjBY,EAAAZ,EAA4B,qBAC5Ba,EAAAb,EAA4B,qBAG5Bc,EAAA,WAAAA,QAAAA,MAeAA,MAbCA,QAAAA,eAAIA,EAAAA,UAAAA,WDMOC,ICNXD,WAECE,MAAOA,SDOGC,YAAY,EACZC,cAAc,ICLzBJ,EAAAA,UAAAA,SAAAA,WAECK,OAAOA,GAGRL,EAAAA,UAAAA,MAAAA,aAEAA,EAAAA,UAAAA,QAAAA,aACDA,KAEMM,EAAQ,GAAIN,EAGFhB,GAAAM,KAAIA,EAkCJN,EAAAQ,aAAYA,EAKZR,EAAAU,QAAOA","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Types', './ArrayEnumerator', './IndexEnumerator'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../../Types');\r\n var ArrayEnumerator_1 = require('./ArrayEnumerator');\r\n var IndexEnumerator_1 = require('./IndexEnumerator');\r\n var EmptyEnumerator = (function () {\r\n function EmptyEnumerator() {\r\n }\r\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\r\n get: function () {\r\n return undefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EmptyEnumerator.prototype.moveNext = function () {\r\n return false;\r\n };\r\n EmptyEnumerator.prototype.reset = function () { };\r\n EmptyEnumerator.prototype.dispose = function () { };\r\n return EmptyEnumerator;\r\n })();\r\n var Empty = new EmptyEnumerator();\r\n function from(source) {\r\n if (!source)\r\n return Empty;\r\n if (Array.isArray(source))\r\n return new ArrayEnumerator_1.default(source);\r\n if (!Types_1.default.isPrimitive(source)) {\r\n if (Types_1.default.isArrayLike(source)) {\r\n return new IndexEnumerator_1.default(function () {\r\n return {\r\n source: source,\r\n length: source.length,\r\n pointer: 0,\r\n step: 1\r\n };\r\n });\r\n }\r\n if (isEnumerable(source))\r\n return source.getEnumerator();\r\n }\r\n throw new Error(\"Unknown enumerable.\");\r\n }\r\n exports.from = from;\r\n function isEnumerable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, \"getEnumerator\", Types_1.default.FUNCTION);\r\n }\r\n exports.isEnumerable = isEnumerable;\r\n function forEach(e, action) {\r\n if (e) {\r\n var index = 0;\r\n while (e.moveNext()) {\r\n if (action(e.current, index++) === false)\r\n break;\r\n }\r\n }\r\n }\r\n exports.forEach = forEach;\r\n});\r\n//# sourceMappingURL=Enumerator.js.map","/*\r\n * @author 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 DisposableBase from '../../Disposable/DisposableBase';\r\nimport ArrayEnumerator from './ArrayEnumerator';\r\nimport IndexEnumerator from './IndexEnumerator';\r\n\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerable | IArray):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\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(Type.isArrayLike(source))\r\n\t\t{\r\n\t\t\treturn new IndexEnumerator(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsource: source,\r\n\t\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\t\tstep: 1\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\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 forEach(\r\n\te:IEnumerator,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tvar index = 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\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\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","from","source","isEnumerable","instance","forEach","e","action","Types_1","ArrayEnumerator_1","IndexEnumerator_1","EmptyEnumerator","get","enumerable","configurable","EmptyEnumerator.moveNext","Empty"],"mappings":"CAAA,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,oBAAqB,qBAAsBN,IAE7F,SAAUI,EAASF,GCHtB,YAgCA,SAAAM,GAAwBC,GAGvBD,IAAIA,EACHA,MAAOA,EAERA,IAAGA,MAAMA,QAAQA,GAChBA,MAAOA,IAAIA,GAAAA,WAAwBA,EAGpCA,KAAIA,EAAAA,WAAKA,YAAYA,GACrBA,CACCA,GAAGA,EAAAA,WAAKA,YAAeA,GAEtBA,MAAOA,IAAIA,GAAAA,WACVA,WAECA,OACCA,OAAQA,EACRA,OAAQA,EAAOA,OACfA,QAASA,EACTA,KAAMA,IAKVA,IAAGA,EAAgBA,GAClBA,MAAOA,GAAOA,gBAIhBA,KAAMA,IAAIA,OAAMA,uBAGjB,QAAAE,GAAgCC,GAE/BD,MAAOA,GAAAA,WAAKA,gBAAgCA,EAAUA,gBAAiBA,EAAAA,WAAKA,UAG7E,QAAAE,GACCC,EACAC,GAEAF,GAAGA,EAIFA,IAFAA,GAAIA,GAAQA,EAENA,EAAEA,YAEJA,EAAOA,EAAEA,QAASA,QAAWA,KA3EnC,GAAAG,GAAAX,EAAiB,eAEjBY,EAAAZ,EAA4B,qBAC5Ba,EAAAb,EAA4B,qBAG5Bc,EAAA,WAAAA,QAAAA,MAeAA,MAbCA,QAAAA,eAAIA,EAAAA,UAAAA,WDFOC,ICEXD,aDCWE,YAAY,EACZC,cAAc,ICGzBH,EAAAA,UAAAA,SAAAA,WAECI,OAAOA,GAGRJ,EAAAA,UAAAA,MAAAA,aAEAA,EAAAA,UAAAA,QAAAA,aACDA,KAEMK,EAAQ,GAAIL,EAGFhB,GAAAM,KAAIA,EAkCJN,EAAAQ,aAAYA,EAKZR,EAAAU,QAAOA","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["(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', './ArrayEnumerator', './IndexEnumerator'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require('../../Types');\n var ArrayEnumerator_1 = require('./ArrayEnumerator');\n var IndexEnumerator_1 = require('./IndexEnumerator');\n var EmptyEnumerator = (function () {\n function EmptyEnumerator() {\n }\n Object.defineProperty(EmptyEnumerator.prototype, \"current\", {\n get: function () {\n return undefined;\n },\n enumerable: true,\n configurable: true\n });\n EmptyEnumerator.prototype.moveNext = function () {\n return false;\n };\n EmptyEnumerator.prototype.reset = function () { };\n EmptyEnumerator.prototype.dispose = function () { };\n return EmptyEnumerator;\n })();\n var Empty = new EmptyEnumerator();\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.isPrimitive(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 (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 forEach(e, action) {\n if (e) {\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\n }\n }\n exports.forEach = forEach;\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase';\r\nimport ArrayEnumerator from './ArrayEnumerator';\r\nimport IndexEnumerator from './IndexEnumerator';\r\n\r\n\r\nclass EmptyEnumerator implements IEnumerator\r\n{\r\n\tget current():any\r\n\t{\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tmoveNext():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\treset():void { }\r\n\r\n\tdispose():void { }\r\n}\r\n\r\nconst Empty = new EmptyEnumerator();\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source:IEnumerable | IArray):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\r\n\tif(!Type.isPrimitive(source))\r\n\t{\r\n\t\tif(Type.isArrayLike(source))\r\n\t\t{\r\n\t\t\treturn new IndexEnumerator(\r\n\t\t\t\t() =>\r\n\t\t\t\t{\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsource: source,\r\n\t\t\t\t\t\tlength: source.length,\r\n\t\t\t\t\t\tpointer: 0,\r\n\t\t\t\t\t\tstep: 1\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\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 forEach(\r\n\te:IEnumerator,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tvar index = 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\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js index c90ab4a9..9918ca20 100644 --- a/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js +++ b/dist/umd.min/System/Collections/Enumeration/EnumeratorBase.js @@ -1,6 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var r=t(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../../Disposable/DisposableBase"],function(e,t){var r,n=e("../../Disposable/DisposableBase"),i=function(){function e(){}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=null,!1},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(r||(r={}));var o=function(e){function t(t,r,n){e.call(this),this.initializer=t,this.tryGetNext=r,this.disposer=n,this.reset()}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e._yielder=new i,e._state=r.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case r.Before:e._state=r.Running;var t=e.initializer;t&&t();case r.Running:return e.tryGetNext(e._yielder)?!0:(this.dispose(),!1);case r.After:return!1}}catch(n){throw this.dispose(),n}},t.prototype._onDispose=function(){var e=this,t=e.disposer;e.initializer=null,e.disposer=null;var n=e._yielder;e._yielder=null,n&&n.yieldBreak();try{t&&t()}finally{this._state=r.After}},t}(n["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 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","../../Disposable/DisposableBase"],e)}(function(e,t){"use strict";var r,n=e("../../Disposable/DisposableBase"),i=function(){function e(){}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=null,!1},e}();!function(e){e[e.Before=0]="Before",e[e.Running=1]="Running",e[e.After=2]="After"}(r||(r={}));var o=function(e){function t(t,r,n){e.call(this),this.initializer=t,this.tryGetNext=r,this.disposer=n,this.reset()}return __extends(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this._yielder.current},enumerable:!0,configurable:!0}),t.prototype.reset=function(){var e=this;e._yielder=new i,e._state=r.Before},t.prototype.moveNext=function(){var e=this;try{switch(e._state){case r.Before:e._state=r.Running;var t=e.initializer;t&&t();case r.Running:return e.tryGetNext(e._yielder)?!0:(this.dispose(),!1);case r.After:return!1}}catch(n){throw this.dispose(),n}},t.prototype._onDispose=function(){var e=this,t=e.disposer;e.initializer=null,e.disposer=null;var n=e._yielder;e._yielder=null,n&&n.yieldBreak();try{t&&t()}finally{this._state=r.After}},t}(n["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o}); //# 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 7ec29698..560115ab 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","deps","factory","module","exports","v","require","undefined","define","amd","EnumeratorState","DisposableBase_1","Yielder","get","Yielder.current","enumerable","configurable","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorBase","_super","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,mCAAoC,SAAUI,EAASF,GCPjF,GAqBKM,GArBLC,EAAAL,EAA2B,mCAI3BM,EAAA,WAAAA,QAAAA,MAcAA,MAXCA,QAAAA,eAAIA,EAAAA,UAAAA,WDMOC,ICNXD,WAAkBE,MAAOA,MAAKA,UDOnBC,YAAY,EACZC,cAAc,ICNzBJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,MADAA,MAAKA,SAAWA,GACTA,GAGRL,EAAAA,UAAAA,WAAAA,WAECM,MADAA,MAAKA,SAAWA,MACTA,GAETN,MAGA,SAAKF,GAAkBA,EAAAA,EAAAA,OAAAA,GAAAA,SAAQA,EAAAA,EAAAA,QAAAA,GAAAA,UAASA,EAAAA,EAAAA,MAAAA,GAAAA,SAAnCA,IAAAA,MAGL,IAAAS,GAAA,SAAAC,GAYCD,QAAAA,GACSA,EACAA,EACAA,GAERE,EAAAA,KAAAA,MAJQA,KAAAA,YAAAA,EACAA,KAAAA,WAAAA,EACAA,KAAAA,SAAAA,EAGRA,KAAKA,QA6DPF,MA9EgCA,WAAAA,EAAAA,GAM/BA,OAAAA,eAAIA,EAAAA,UAAAA,WDYON,ICZXM,WACCG,MAAOA,MAAKA,SAASA,SDcXP,YAAY,EACZC,cAAc,ICDzBG,EAAAA,UAAAA,MAAAA,WACCI,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,GAAIA,GACjBA,EAAEA,OAASA,EAAgBA,QAG5BJ,EAAAA,UAAAA,SAAAA,WACCK,GAAIA,GAAIA,IACRA,KACCA,OAAOA,EAAEA,QACRA,IAAKA,GAAgBA,OACpBA,EAAEA,OAASA,EAAgBA,OAC3BA,IAAIA,GAAcA,EAAEA,WACjBA,IACFA,GAEFA,KAAKA,GAAgBA,QACpBA,MAAGA,GAAEA,WAAWA,EAAEA,WACVA,GAGPA,KAAKA,WACEA,EAETA,KAAKA,GAAgBA,MACpBA,OAAOA,GAGVA,MAAMA,GAELA,KADAA,MAAKA,UACCA,IAIEL,EAAAA,UAAAA,WAAVA,WACCM,GAAIA,GAAIA,KAAMA,EAAWA,EAAEA,QAE3BA,GAAEA,YAAcA,KAChBA,EAAEA,SAAWA,IAEbA,IAAIA,GAAUA,EAAEA,QAChBA,GAAEA,SAAWA,KACVA,GACFA,EAAQA,YAETA,KAEIA,GACFA,IDFQ,QCOTA,KAAKA,OAASA,EAAgBA,QAIjCN,GA9EgCR,EAAAA,WADhCZ,QAAA2B,eAAAtB,EAAA,cAAAuB,OAAA,ID2EIvB,EAAAA,WAAkBe","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Disposable/DisposableBase'], function (require, exports) {\r\n var DisposableBase_1 = require('../../Disposable/DisposableBase');\r\n var Yielder = (function () {\r\n function Yielder() {\r\n }\r\n Object.defineProperty(Yielder.prototype, \"current\", {\r\n get: function () { return this._current; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Yielder.prototype.yieldReturn = function (value) {\r\n this._current = value;\r\n return true;\r\n };\r\n Yielder.prototype.yieldBreak = function () {\r\n this._current = null;\r\n return false;\r\n };\r\n return Yielder;\r\n })();\r\n var EnumeratorState;\r\n (function (EnumeratorState) {\r\n EnumeratorState[EnumeratorState[\"Before\"] = 0] = \"Before\";\r\n EnumeratorState[EnumeratorState[\"Running\"] = 1] = \"Running\";\r\n EnumeratorState[EnumeratorState[\"After\"] = 2] = \"After\";\r\n })(EnumeratorState || (EnumeratorState = {}));\r\n var EnumeratorBase = (function (_super) {\r\n __extends(EnumeratorBase, _super);\r\n function EnumeratorBase(initializer, tryGetNext, disposer) {\r\n _super.call(this);\r\n this.initializer = initializer;\r\n this.tryGetNext = tryGetNext;\r\n this.disposer = disposer;\r\n this.reset();\r\n }\r\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\r\n get: function () {\r\n return this._yielder.current;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EnumeratorBase.prototype.reset = function () {\r\n var _ = this;\r\n _._yielder = new Yielder();\r\n _._state = EnumeratorState.Before;\r\n };\r\n EnumeratorBase.prototype.moveNext = function () {\r\n var _ = this;\r\n try {\r\n switch (_._state) {\r\n case EnumeratorState.Before:\r\n _._state = EnumeratorState.Running;\r\n var initializer = _.initializer;\r\n if (initializer)\r\n initializer();\r\n case EnumeratorState.Running:\r\n if (_.tryGetNext(_._yielder)) {\r\n return true;\r\n }\r\n else {\r\n this.dispose();\r\n return false;\r\n }\r\n case EnumeratorState.After:\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.dispose();\r\n throw e;\r\n }\r\n };\r\n EnumeratorBase.prototype._onDispose = function () {\r\n var _ = this, disposer = _.disposer;\r\n _.initializer = null;\r\n _.disposer = null;\r\n var yielder = _._yielder;\r\n _._yielder = null;\r\n if (yielder)\r\n yielder.yieldBreak();\r\n try {\r\n if (disposer)\r\n disposer();\r\n }\r\n finally {\r\n this._state = EnumeratorState.After;\r\n }\r\n };\r\n return EnumeratorBase;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = EnumeratorBase;\r\n});\r\n//# sourceMappingURL=EnumeratorBase.js.map","/*\r\n * @author 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 DisposableBase from '../../Disposable/DisposableBase'\r\n\r\n\r\n\r\nclass Yielder implements IYield\r\n{\r\n\tprivate _current:T;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean {\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean {\r\n\t\tthis._current = null;\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\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\r\n\tget current():T {\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\t// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n\tconstructor(\r\n\t\tprivate initializer:() => void,\r\n\t\tprivate tryGetNext:(yielder:IYield) => boolean,\r\n\t\tprivate disposer?:() => void)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\r\n\treset():void {\r\n\t\tvar _ = this;\r\n\t\t_._yielder = new Yielder();\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean {\r\n\t\tvar _ = this;\r\n\t\ttry {\r\n\t\t\tswitch(_._state) {\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\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\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\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void {\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\t\tvar yielder = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tif(yielder)\r\n\t\t\tyielder.yieldBreak();\r\n\r\n\t\ttry {\r\n\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\r\n\t\t}\r\n\t\tfinally {\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","EnumeratorState","DisposableBase_1","Yielder","get","Yielder.current","enumerable","configurable","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorBase","_super","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._onDispose","defineProperty","value"],"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,mCAAoCN,IAEvE,SAAUI,EAASF,GCLtB,YAGA,IAqBKM,GArBLC,EAAAL,EAA2B,mCAI3BM,EAAA,WAAAA,QAAAA,MAcAA,MAXCA,QAAAA,eAAIA,EAAAA,UAAAA,WDEOC,ICFXD,WAAkBE,MAAOA,MAAKA,UDGnBC,YAAY,EACZC,cAAc,ICFzBJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,MADAA,MAAKA,SAAWA,GACTA,GAGRL,EAAAA,UAAAA,WAAAA,WAECM,MADAA,MAAKA,SAAWA,MACTA,GAETN,MAGA,SAAKF,GAAkBA,EAAAA,EAAAA,OAAAA,GAAAA,SAAQA,EAAAA,EAAAA,QAAAA,GAAAA,UAASA,EAAAA,EAAAA,MAAAA,GAAAA,SAAnCA,IAAAA,MAGL,IAAAS,GAAA,SAAAC,GAYCD,QAAAA,GACSA,EACAA,EACAA,GAERE,EAAAA,KAAAA,MAJQA,KAAAA,YAAAA,EACAA,KAAAA,WAAAA,EACAA,KAAAA,SAAAA,EAGRA,KAAKA,QA6DPF,MA9EgCA,WAAAA,EAAAA,GAM/BA,OAAAA,eAAIA,EAAAA,UAAAA,WDQON,ICRXM,WACCG,MAAOA,MAAKA,SAASA,SDUXP,YAAY,EACZC,cAAc,ICGzBG,EAAAA,UAAAA,MAAAA,WACCI,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,GAAIA,GACjBA,EAAEA,OAASA,EAAgBA,QAG5BJ,EAAAA,UAAAA,SAAAA,WACCK,GAAIA,GAAIA,IACRA,KACCA,OAAOA,EAAEA,QACRA,IAAKA,GAAgBA,OACpBA,EAAEA,OAASA,EAAgBA,OAC3BA,IAAIA,GAAcA,EAAEA,WACjBA,IACFA,GAEFA,KAAKA,GAAgBA,QACpBA,MAAGA,GAAEA,WAAWA,EAAEA,WACVA,GAGPA,KAAKA,WACEA,EAETA,KAAKA,GAAgBA,MACpBA,OAAOA,GAGVA,MAAMA,GAELA,KADAA,MAAKA,UACCA,IAIEL,EAAAA,UAAAA,WAAVA,WACCM,GAAIA,GAAIA,KAAMA,EAAWA,EAAEA,QAE3BA,GAAEA,YAAcA,KAChBA,EAAEA,SAAWA,IAEbA,IAAIA,GAAUA,EAAEA,QAChBA,GAAEA,SAAWA,KACVA,GACFA,EAAQA,YAETA,KAEIA,GACFA,IDNQ,QCWTA,KAAKA,OAASA,EAAgBA,QAIjCN,GA9EgCR,EAAAA,WADhCX,QAAA0B,eAAAtB,EAAA,cAAAuB,OAAA,IDuEIvB,EAAAA,WAAkBe","file":"System/Collections/Enumeration/EnumeratorBase.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\", '../../Disposable/DisposableBase'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var DisposableBase_1 = require('../../Disposable/DisposableBase');\n var Yielder = (function () {\n function Yielder() {\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 = null;\n return false;\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) {\n _super.call(this);\n this.initializer = initializer;\n this.tryGetNext = tryGetNext;\n this.disposer = disposer;\n this.reset();\n }\n Object.defineProperty(EnumeratorBase.prototype, \"current\", {\n get: function () {\n return this._yielder.current;\n },\n enumerable: true,\n configurable: true\n });\n EnumeratorBase.prototype.reset = function () {\n var _ = this;\n _._yielder = new 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._onDispose = function () {\n var _ = this, disposer = _.disposer;\n _.initializer = null;\n _.disposer = null;\n var yielder = _._yielder;\n _._yielder = null;\n if (yielder)\n yielder.yieldBreak();\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase'\r\n\r\n\r\n\r\nclass Yielder implements IYield\r\n{\r\n\tprivate _current:T;\r\n\tget current():T { return this._current; }\r\n\r\n\tyieldReturn(value:T):boolean {\r\n\t\tthis._current = value;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tyieldBreak():boolean {\r\n\t\tthis._current = null;\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n// IEnumerator State\r\nenum EnumeratorState { Before, Running, After }\r\n\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\r\n\tget current():T {\r\n\t\treturn this._yielder.current;\r\n\t}\r\n\r\n\t// \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n\tconstructor(\r\n\t\tprivate initializer:() => void,\r\n\t\tprivate tryGetNext:(yielder:IYield) => boolean,\r\n\t\tprivate disposer?:() => void)\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\r\n\treset():void {\r\n\t\tvar _ = this;\r\n\t\t_._yielder = new Yielder();\r\n\t\t_._state = EnumeratorState.Before;\r\n\t}\r\n\r\n\tmoveNext():boolean {\r\n\t\tvar _ = this;\r\n\t\ttry {\r\n\t\t\tswitch(_._state) {\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\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\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\tthis.dispose();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _onDispose():void {\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\t\tvar yielder = _._yielder;\r\n\t\t_._yielder = null;\r\n\t\tif(yielder)\r\n\t\t\tyielder.yieldBreak();\r\n\r\n\t\ttry {\r\n\r\n\t\t\tif(disposer)\r\n\t\t\t\tdisposer();\r\n\r\n\t\t}\r\n\t\tfinally {\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 diff --git a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js index 7d07583e..f5d8b444 100644 --- a/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js +++ b/dist/umd.min/System/Collections/Enumeration/IndexEnumerator.js @@ -1,2 +1,2 @@ -var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o]);e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)};!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","./EnumeratorBase"],function(e,r){var t=e("./EnumeratorBase"),o=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){if(t.length&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var e=t.pointer;if(e){if(e!=Math.floor(e))throw new Error("Invalid IndexEnumerator pointer value ("+e+") has decimal.")}else t.pointer=0;t.pointer=e;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else t.step=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r)return e.yieldBreak();var o=t.pointer;return t.pointer+=t.step,r>o&&o>=0?e.yieldReturn(t.source[o]):e.yieldBreak()},function(){t&&(t.source=null)})}return __extends(r,e),r}(t["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); +var __extends=this&&this.__extends||function(e,r){function t(){this.constructor=e}for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o]);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"),o=function(e){function r(r){var t;e.call(this,function(){if(t=r(),t&&t.source){if(t.length&&0===t.step)throw new Error("Invalid IndexEnumerator step value (0).");var e=t.pointer;if(e){if(e!=Math.floor(e))throw new Error("Invalid IndexEnumerator pointer value ("+e+") has decimal.")}else t.pointer=0;t.pointer=e;var o=t.step;if(o){if(o!=Math.floor(o))throw new Error("Invalid IndexEnumerator step value ("+o+") has decimal.")}else t.step=1;t.step=o}},function(e){var r=t&&t.source?t.length:0;if(!r)return e.yieldBreak();var o=t.pointer;return t.pointer+=t.step,r>o&&o>=0?e.yieldReturn(t.source[o]):e.yieldBreak()},function(){t&&(t.source=null)})}return __extends(r,e),r}(t["default"]);Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=o}); //# 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 d5694dc8..ce73556e 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","deps","factory","module","exports","v","require","undefined","define","amd","EnumeratorBase_1","IndexEnumerator","_super","IndexEnumerator.constructor","defineProperty","value"],"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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,oBAAqB,SAAUI,EAASF,GCZlE,GAAAM,GAAAJ,EAA2B,oBAE3BK,EAAA,SAAAC,GAICD,QAAAA,GACCA,GAGAE,GAAIA,EACJA,GAAAA,KAAAA,KACCA,WAGCA,GADAA,EAASA,IACNA,GAAUA,EAAOA,OACpBA,CACCA,GAAGA,EAAOA,QAAwBA,IAAdA,EAAOA,KAC1BA,KAAMA,IAAIA,OAAMA,0CAEjBA,IAAIA,GAAUA,EAAOA,OACrBA,IAAIA,GAECA,GAAGA,GAASA,KAAKA,MAAMA,GAC3BA,KAAMA,IAAIA,OAAMA,0CAA4CA,EAAUA,sBAFtEA,GAAOA,QAAUA,CAGlBA,GAAOA,QAAUA,CAEjBA,IAAIA,GAAOA,EAAOA,IAClBA,IAAIA,GAECA,GAAGA,GAAMA,KAAKA,MAAMA,GACxBA,KAAMA,IAAIA,OAAMA,uCAAyCA,EAAOA,sBAFhEA,GAAOA,KAAOA,CAGfA,GAAOA,KAAOA,IAIhBA,SAACA,GAEAA,GAAIA,GAAOA,GAAUA,EAAOA,OAAUA,EAAOA,OAASA,CACtDA,KAAIA,EACHA,MAAOA,GAAQA,YAChBA,IAAIA,GAAUA,EAAOA,OAErBA,OADAA,GAAOA,SAAWA,EAAOA,KACTA,EAARA,GAAeA,GAASA,EAC7BA,EAAQA,YAAYA,EAAOA,OAAOA,IAClCA,EAAQA,cAGZA,WAEIA,IAEFA,EAAOA,OAASA,QAKrBF,MAtDiCA,WAAAA,EAAAA,GAsDjCA,GAtDiCD,EAAAA,WADjCX,QAAAe,eAAAV,EAAA,cAAAW,OAAA,IDoDIX,EAAAA,WAAkBO","file":"System/Collections/Enumeration/IndexEnumerator.js","sourcesContent":["var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './EnumeratorBase'], function (require, exports) {\r\n var EnumeratorBase_1 = require('./EnumeratorBase');\r\n var IndexEnumerator = (function (_super) {\r\n __extends(IndexEnumerator, _super);\r\n function IndexEnumerator(sourceFactory) {\r\n var source;\r\n _super.call(this, function () {\r\n source = sourceFactory();\r\n if (source && source.source) {\r\n if (source.length && source.step === 0)\r\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\r\n var pointer = source.pointer;\r\n if (!pointer)\r\n source.pointer = 0;\r\n else if (pointer != Math.floor(pointer))\r\n throw new Error(\"Invalid IndexEnumerator pointer value (\" + pointer + \") has decimal.\");\r\n source.pointer = pointer;\r\n var step = source.step;\r\n if (!step)\r\n source.step = 1;\r\n else if (step != Math.floor(step))\r\n throw new Error(\"Invalid IndexEnumerator step value (\" + step + \") has decimal.\");\r\n source.step = step;\r\n }\r\n }, function (yielder) {\r\n var len = (source && source.source) ? source.length : 0;\r\n if (!len)\r\n return yielder.yieldBreak();\r\n var current = source.pointer;\r\n source.pointer += source.step;\r\n return (current < len && current >= 0)\r\n ? yielder.yieldReturn(source.source[current])\r\n : yielder.yieldBreak();\r\n }, function () {\r\n if (source) {\r\n source.source = null;\r\n }\r\n });\r\n }\r\n return IndexEnumerator;\r\n })(EnumeratorBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = IndexEnumerator;\r\n});\r\n//# sourceMappingURL=IndexEnumerator.js.map","import 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\tif(source.length && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\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\tsource.pointer = 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\tsource.step = 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)\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}\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","IndexEnumerator.constructor","defineProperty","value"],"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,oBAAqBN,IAExD,SAAUI,EAASF,GCRtB,YAEA,IAAAM,GAAAJ,EAA2B,oBAE3BK,EAAA,SAAAC,GAICD,QAAAA,GACCA,GAGAE,GAAIA,EACJA,GAAAA,KAAAA,KACCA,WAGCA,GADAA,EAASA,IACNA,GAAUA,EAAOA,OACpBA,CACCA,GAAGA,EAAOA,QAAwBA,IAAdA,EAAOA,KAC1BA,KAAMA,IAAIA,OAAMA,0CAEjBA,IAAIA,GAAUA,EAAOA,OACrBA,IAAIA,GAECA,GAAGA,GAASA,KAAKA,MAAMA,GAC3BA,KAAMA,IAAIA,OAAMA,0CAA4CA,EAAUA,sBAFtEA,GAAOA,QAAUA,CAGlBA,GAAOA,QAAUA,CAEjBA,IAAIA,GAAOA,EAAOA,IAClBA,IAAIA,GAECA,GAAGA,GAAMA,KAAKA,MAAMA,GACxBA,KAAMA,IAAIA,OAAMA,uCAAyCA,EAAOA,sBAFhEA,GAAOA,KAAOA,CAGfA,GAAOA,KAAOA,IAIhBA,SAACA,GAEAA,GAAIA,GAAOA,GAAUA,EAAOA,OAAUA,EAAOA,OAASA,CACtDA,KAAIA,EACHA,MAAOA,GAAQA,YAChBA,IAAIA,GAAUA,EAAOA,OAErBA,OADAA,GAAOA,SAAWA,EAAOA,KACTA,EAARA,GAAeA,GAASA,EAC7BA,EAAQA,YAAYA,EAAOA,OAAOA,IAClCA,EAAQA,cAGZA,WAEIA,IAEFA,EAAOA,OAASA,QAKrBF,MAtDiCA,WAAAA,EAAAA,GAsDjCA,GAtDiCD,EAAAA,WADjCV,QAAAc,eAAAV,EAAA,cAAAW,OAAA,ID+CIX,EAAAA,WAAkBO","file":"System/Collections/Enumeration/IndexEnumerator.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\", './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 if (source.length && source.step === 0)\n throw new Error(\"Invalid IndexEnumerator step value (0).\");\n var pointer = source.pointer;\n if (!pointer)\n source.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 source.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)\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 }\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'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\tif(source.length && source.step===0)\r\n\t\t\t\t\t\tthrow new Error(\"Invalid IndexEnumerator step value (0).\");\r\n\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\tsource.pointer = 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\tsource.step = 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)\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}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Enumeration/forEach.js b/dist/umd.min/System/Collections/Enumeration/forEach.js index c26547af..196ec89c 100644 --- a/dist/umd.min/System/Collections/Enumeration/forEach.js +++ b/dist/umd.min/System/Collections/Enumeration/forEach.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports","../../Disposable/Utility","../../Collections/Enumeration/Enumerator"],function(e,o){function t(e,o){e&&i.using(n.from(e),function(e){n.forEach(e,o)})}var i=e("../../Disposable/Utility"),n=e("../../Collections/Enumeration/Enumerator");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","../../Disposable/Utility","../../Collections/Enumeration/Enumerator"],e)}(function(e,o){function t(e,o){e&&i.using(n.from(e),function(e){n.forEach(e,o)})}var i=e("../../Disposable/Utility"),n=e("../../Collections/Enumeration/Enumerator");Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); //# sourceMappingURL=forEach.js.map diff --git a/dist/umd.min/System/Collections/Enumeration/forEach.js.map b/dist/umd.min/System/Collections/Enumeration/forEach.js.map index 775e3678..c7050642 100644 --- a/dist/umd.min/System/Collections/Enumeration/forEach.js.map +++ b/dist/umd.min/System/Collections/Enumeration/forEach.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/forEach.js","System/Collections/Enumeration/forEach.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","forEach","enumerable","action","Utility_1","Enumerator","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,2BAA4B,4CAA6C,SAAUI,EAASF,GCDtH,QAAAM,GACIC,EACAC,GAEIF,GACAA,EAAAA,MAAMA,EAAWA,KAAKA,GAAaA,SAAAA,GAE/BA,EAAWA,QAAQA,EAAGA,KAVlC,GAAAG,GAAAP,EAAoB,4BACRQ,EAAUR,EAAM,2CAE5BS,QAAAC,eAAAZ,EAAA,cAAAa,OAAA,IDcIb,EAAAA,WAAkBM","file":"System/Collections/Enumeration/forEach.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], function (require, exports) {\r\n ///\r\n ///\r\n var Utility_1 = require('../../Disposable/Utility');\r\n var Enumerator = require('../../Collections/Enumeration/Enumerator');\r\n function forEach(enumerable, action) {\r\n if (enumerable) {\r\n Utility_1.using(Enumerator.from(enumerable), function (e) {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = forEach;\r\n});\r\n//# sourceMappingURL=forEach.js.map","/*\r\n * @author 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 {using} from '../../Disposable/Utility';\r\nimport * as Enumerator from '../../Collections/Enumeration/Enumerator';\r\n\r\nexport default function forEach(\r\n enumerable:IEnumerable | IArray,\r\n action:(element:T, index?:number) => any):void\r\n{\r\n if (enumerable) {\r\n using(Enumerator.from(enumerable), e=>\r\n {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/forEach.js","System/Collections/Enumeration/forEach.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","forEach","enumerable","action","Utility_1","Enumerator","Object","defineProperty","value"],"mappings":"CAAA,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,2BAA4B,4CAA6CN,IAE5G,SAAUI,EAASF,GCGtB,QAAAM,GACIC,EACAC,GAEIF,GACAA,EAAAA,MAAMA,EAAWA,KAAKA,GAAaA,SAAAA,GAE/BA,EAAWA,QAAQA,EAAGA,KAVlC,GAAAG,GAAAP,EAAoB,4BACRQ,EAAUR,EAAM,2CAE5BS,QAAAC,eAAAZ,EAAA,cAAAa,OAAA,IDQIb,EAAAA,WAAkBM","file":"System/Collections/Enumeration/forEach.js","sourcesContent":["(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/Utility', '../../Collections/Enumeration/Enumerator'], factory);\n }\n})(function (require, exports) {\n var Utility_1 = require('../../Disposable/Utility');\n var Enumerator = require('../../Collections/Enumeration/Enumerator');\n function forEach(enumerable, action) {\n if (enumerable) {\n Utility_1.using(Enumerator.from(enumerable), function (e) {\n Enumerator.forEach(e, action);\n });\n }\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = forEach;\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 {using} from '../../Disposable/Utility';\r\nimport * as Enumerator from '../../Collections/Enumeration/Enumerator';\r\n\r\nexport default function forEach(\r\n enumerable:IEnumerable | IArray,\r\n action:(element:T, index?:number) => any):void\r\n{\r\n if (enumerable) {\r\n using(Enumerator.from(enumerable), e=>\r\n {\r\n Enumerator.forEach(e, action);\r\n });\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/LinkedList.js b/dist/umd.min/System/Collections/LinkedList.js index a178c61b..c5cc162e 100644 --- a/dist/umd.min/System/Collections/LinkedList.js +++ b/dist/umd.min/System/Collections/LinkedList.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(t,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(t,e)}(["require","exports","../Compare","../Text/Utility","../Collections/Array/Utility","./Enumeration/Enumerator","./Enumeration/EnumeratorBase","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException","../Exceptions/ArgumentOutOfRangeException"],function(t,e){function n(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new _(e,t)),n}function r(t,e){if(!t)throw new d["default"]("Cannot be null.");if(t.list!=e)throw new f["default"]("Provided node does not belong to this list.");var n=t._node;if(!n)throw new f["default"]("Provided node is not valid.");return n}var o=t("../Compare"),i=t("../Text/Utility"),u=t("../Collections/Array/Utility"),s=t("./Enumeration/Enumerator"),a=t("./Enumeration/EnumeratorBase"),f=t("../Exceptions/InvalidOperationException"),p=t("../Exceptions/ArgumentException"),d=t("../Exceptions/ArgumentNullException"),c=t("../Exceptions/ArgumentOutOfRangeException"),l=function(){function t(t,e,n){this.value=t,this.prev=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.prev)throw new f["default"]("Adding a node that is already placed.")},t}(),h=function(){function t(t){var e=this,n=0,r=null,o=null,i=s.from(t);for(i.moveNext()&&(r=o=new l(i.current),++n);i.moveNext();)o=o.next=new l(i.current,o),++n;e._first=r,e._last=o,e._count=n}return t.prototype._addFirst=function(t){var e=this,n=e._first,r=new l(t,null,n);return n?n.prev=r:e._last=r,e._first=r,e._count+=1,r},t.prototype._addLast=function(t){var e=this,n=e._last,r=new l(t,n);return n?n.next=r:e._first=r,e._last=r,e._count+=1,r},t.prototype._addNodeBefore=function(t,e){e.assertDetached(),e.next=t,e.prev=t.prev,t.prev.next=e,t.prev=e,this._count+=1},t.prototype._addNodeAfter=function(t,e){e.assertDetached(),e.prev=t,e.next=t.next,t.next.prev=e,t.next=e,this._count+=1},t.prototype._findFirst=function(t){for(var e=o.areEqual,n=this._first;n;){if(e(t,n.value))return n;n=n.next}return null},t.prototype._findLast=function(t){for(var e=o.areEqual,n=this._last;n;){if(e(t,n.value))return n;n=n.prev}return null},t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();u.forEach(n,t),n.length=0}else for(var r=this._first,o=0;r&&t(r.value,o++)!==!1;)r=r.next},t.prototype.getEnumerator=function(){var t,e=this;return new a["default"](function(){t=new l(null,null,e._first)},function(e){return(t=t.next)?e.yieldReturn(t.value):e.yieldBreak()})},Object.defineProperty(t.prototype,"count",{get:function(){return this._count},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),t.prototype.add=function(t){this._addLast(t)},t.prototype.clear=function(){var t=this;t._first=null,t._last=null;var e=t._count;return t._count=0,e},t.prototype.contains=function(t){var e=!1,n=o.areEqual;return this.forEach(function(r){return!(e=n(t,r))}),e},t.prototype.copyTo=function(t,e){return void 0===e&&(e=0),this.forEach(function(n,r){t[e+r]=n}),t},t.prototype.toArray=function(){var t=u.initialize(this._count);return this.copyTo(t)},t.prototype.removeOnce=function(t){var e=this,n=e._findFirst(t);if(n){var r=n.prev,o=n.next;r?r.next=o:e._first=o,o?o.prev=r:e._last=r,e._count-=1}return null!=n},t.prototype.remove=function(t){for(var e=this,n=0;e.removeOnce(t);)++n;return n},Object.defineProperty(t.prototype,"first",{get:function(){return n(this._first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return n(this._last,this)},enumerable:!0,configurable:!0}),t.prototype._getNodeAt=function(t){if(0>t)throw new c["default"]("index",t,"Is less than zero.");if(t>=this._count)throw new c["default"]("index",t,"Is greater than count.");for(var e=this._first,n=0;e&&tt)throw new c["default"]("index",t,"Is less than zero.");if(t>=this._count)throw new c["default"]("index",t,"Is greater than count.");for(var e=this._first,n=0;e&&t\r\n ///\r\n var Values = require('../Compare');\r\n var TextUtility = require('../Text/Utility');\r\n var ArrayUtility = require('../Collections/Array/Utility');\r\n var Enumerator = require('./Enumeration/Enumerator');\r\n var EnumeratorBase_1 = require('./Enumeration/EnumeratorBase');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var ArgumentException_1 = require('../Exceptions/ArgumentException');\r\n var ArgumentNullException_1 = require('../Exceptions/ArgumentNullException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var Node = (function () {\r\n function Node(value, prev, next) {\r\n this.value = value;\r\n this.prev = prev;\r\n this.next = next;\r\n }\r\n Node.prototype.assertDetached = function () {\r\n if (this.next || this.prev)\r\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\r\n };\r\n return Node;\r\n })();\r\n function ensureExternal(node, list) {\r\n if (!node)\r\n return null;\r\n var external = node.external;\r\n if (!external)\r\n node.external = external = new LinkedListNode(list, node);\r\n return external;\r\n }\r\n function getInternal(node, list) {\r\n if (!node)\r\n throw new ArgumentNullException_1.default(\"Cannot be null.\");\r\n if (node.list != list)\r\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\r\n var n = node._node;\r\n if (!n)\r\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\r\n return n;\r\n }\r\n var LinkedList = (function () {\r\n function LinkedList(source) {\r\n var _ = this, c = 0, first = null, last = null;\r\n var e = Enumerator.from(source);\r\n if (e.moveNext()) {\r\n first = last = new Node(e.current);\r\n ++c;\r\n }\r\n while (e.moveNext()) {\r\n last = last.next = new Node(e.current, last);\r\n ++c;\r\n }\r\n _._first = first;\r\n _._last = last;\r\n _._count = c;\r\n }\r\n LinkedList.prototype._addFirst = function (entry) {\r\n var _ = this, first = _._first;\r\n var prev = new Node(entry, null, first);\r\n if (first)\r\n first.prev = prev;\r\n else\r\n _._last = prev;\r\n _._first = prev;\r\n _._count += 1;\r\n return prev;\r\n };\r\n LinkedList.prototype._addLast = function (entry) {\r\n var _ = this, last = _._last;\r\n var next = new Node(entry, last);\r\n if (last)\r\n last.next = next;\r\n else\r\n _._first = next;\r\n _._last = next;\r\n _._count += 1;\r\n return next;\r\n };\r\n LinkedList.prototype._addNodeBefore = function (n, inserting) {\r\n inserting.assertDetached();\r\n inserting.next = n;\r\n inserting.prev = n.prev;\r\n n.prev.next = inserting;\r\n n.prev = inserting;\r\n this._count += 1;\r\n };\r\n LinkedList.prototype._addNodeAfter = function (n, inserting) {\r\n inserting.assertDetached();\r\n inserting.prev = n;\r\n inserting.next = n.next;\r\n n.next.prev = inserting;\r\n n.next = inserting;\r\n this._count += 1;\r\n };\r\n LinkedList.prototype._findFirst = function (entry) {\r\n var equals = Values.areEqual, next = this._first;\r\n while (next) {\r\n if (equals(entry, next.value))\r\n return next;\r\n next = next.next;\r\n }\r\n return null;\r\n };\r\n LinkedList.prototype._findLast = function (entry) {\r\n var equals = Values.areEqual, prev = this._last;\r\n while (prev) {\r\n if (equals(entry, prev.value))\r\n return prev;\r\n prev = prev.prev;\r\n }\r\n return null;\r\n };\r\n LinkedList.prototype.forEach = function (action, useCopy) {\r\n if (useCopy === void 0) { useCopy = false; }\r\n if (useCopy) {\r\n var array = this.toArray();\r\n ArrayUtility.forEach(array, action);\r\n array.length = 0;\r\n }\r\n else {\r\n var next = this._first, index = 0;\r\n while (next && action(next.value, index++) !== false) {\r\n next = next.next;\r\n }\r\n }\r\n };\r\n LinkedList.prototype.getEnumerator = function () {\r\n var _ = this, current;\r\n return new EnumeratorBase_1.default(function () {\r\n current = new Node(null, null, _._first);\r\n }, function (yielder) {\r\n return (current = current.next)\r\n ? yielder.yieldReturn(current.value)\r\n : yielder.yieldBreak();\r\n });\r\n };\r\n Object.defineProperty(LinkedList.prototype, \"count\", {\r\n get: function () {\r\n return this._count;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedList.prototype, \"isReadOnly\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedList.prototype.add = function (entry) {\r\n this._addLast(entry);\r\n };\r\n LinkedList.prototype.clear = function () {\r\n var _ = this;\r\n _._first = null;\r\n _._last = null;\r\n var count = _._count;\r\n _._count = 0;\r\n return count;\r\n };\r\n LinkedList.prototype.contains = function (entry) {\r\n var found = false, equals = Values.areEqual;\r\n this.forEach(function (e) { return !(found = equals(entry, e)); });\r\n return found;\r\n };\r\n LinkedList.prototype.copyTo = function (array, index) {\r\n if (index === void 0) { index = 0; }\r\n this.forEach(function (entry, i) {\r\n array[index + i] = entry;\r\n });\r\n return array;\r\n };\r\n LinkedList.prototype.toArray = function () {\r\n var array = ArrayUtility.initialize(this._count);\r\n return this.copyTo(array);\r\n };\r\n LinkedList.prototype.removeOnce = function (entry) {\r\n var _ = this;\r\n var node = _._findFirst(entry);\r\n if (node) {\r\n var prev = node.prev, next = node.next;\r\n if (prev)\r\n prev.next = next;\r\n else\r\n _._first = next;\r\n if (next)\r\n next.prev = prev;\r\n else\r\n _._last = prev;\r\n _._count -= 1;\r\n }\r\n return node != null;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var _ = this, removedCount = 0;\r\n while (_.removeOnce(entry)) {\r\n ++removedCount;\r\n }\r\n return removedCount;\r\n };\r\n Object.defineProperty(LinkedList.prototype, \"first\", {\r\n get: function () {\r\n return ensureExternal(this._first, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedList.prototype, \"last\", {\r\n get: function () {\r\n return ensureExternal(this._last, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedList.prototype._getNodeAt = function (index) {\r\n if (index < 0)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.');\r\n if (index >= this._count)\r\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than count.');\r\n var next = this._first, i = 0;\r\n while (next && index < i++) {\r\n next = next.next;\r\n }\r\n return next;\r\n };\r\n LinkedList.prototype.getValueAt = function (index) {\r\n return this._getNodeAt(index).value;\r\n };\r\n LinkedList.prototype.getNodeAt = function (index) {\r\n return ensureExternal(this._getNodeAt(index), this);\r\n };\r\n LinkedList.prototype.find = function (entry) {\r\n return ensureExternal(this._findFirst(entry), this);\r\n };\r\n LinkedList.prototype.findLast = function (entry) {\r\n return ensureExternal(this._findLast(entry), this);\r\n };\r\n LinkedList.prototype.addFirst = function (entry) {\r\n this._addFirst(entry);\r\n };\r\n LinkedList.prototype.addLast = function (entry) {\r\n this._addLast(entry);\r\n };\r\n LinkedList.prototype.removeFirst = function () {\r\n var _ = this, first = _._first;\r\n if (first) {\r\n var next = first.next;\r\n _._first = next;\r\n if (next)\r\n next.prev = null;\r\n _._count -= 1;\r\n }\r\n };\r\n LinkedList.prototype.removeLast = function () {\r\n var _ = this, last = _._last;\r\n if (last) {\r\n var prev = last.prev;\r\n _._last = prev;\r\n if (prev)\r\n prev.next = null;\r\n _._count -= 1;\r\n }\r\n };\r\n LinkedList.prototype.removeNode = function (node) {\r\n var _ = this;\r\n var n = getInternal(node, _);\r\n var prev = n.prev, next = n.next, a = false, b = false;\r\n if (prev)\r\n prev.next = next;\r\n else if (_._first == n)\r\n _._first = next;\r\n else\r\n a = true;\r\n if (next)\r\n next.prev = prev;\r\n else if (_._last == n)\r\n _._last = prev;\r\n else\r\n b = true;\r\n if (a !== b) {\r\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\"));\r\n }\r\n return !a && !b;\r\n };\r\n LinkedList.prototype.addBefore = function (node, entry) {\r\n this._addNodeBefore(getInternal(node, this), new Node(entry));\r\n };\r\n LinkedList.prototype.addAfter = function (node, entry) {\r\n this._addNodeAfter(getInternal(node, this), new Node(entry));\r\n };\r\n LinkedList.prototype.addNodeBefore = function (node, before) {\r\n this._addNodeBefore(getInternal(node, this), getInternal(before, this));\r\n };\r\n LinkedList.prototype.addNodeAfter = function (node, after) {\r\n this._addNodeAfter(getInternal(node, this), getInternal(after, this));\r\n };\r\n return LinkedList;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = LinkedList;\r\n var LinkedListNode = (function () {\r\n function LinkedListNode(_list, _node) {\r\n this._list = _list;\r\n this._node = _node;\r\n }\r\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\r\n get: function () {\r\n return this._list;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\r\n get: function () {\r\n return ensureExternal(this._node.prev, this._list);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\r\n get: function () {\r\n return ensureExternal(this._node.next, this._list);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\r\n get: function () {\r\n return this._node.value;\r\n },\r\n set: function (v) {\r\n this._node.value = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinkedListNode.prototype.addBefore = function (entry) {\r\n this._list.addBefore(this, entry);\r\n };\r\n LinkedListNode.prototype.addAfter = function (entry) {\r\n this._list.addAfter(this, entry);\r\n };\r\n LinkedListNode.prototype.addNodeBefore = function (before) {\r\n this._list.addNodeBefore(this, before);\r\n };\r\n LinkedListNode.prototype.addNodeAfter = function (after) {\r\n this._list.addNodeAfter(this, after);\r\n };\r\n LinkedListNode.prototype.remove = function () {\r\n this._list.removeNode(this);\r\n };\r\n return LinkedListNode;\r\n })();\r\n});\r\n//# sourceMappingURL=LinkedList.js.map","/*\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\nimport * as Values from '../Compare';\r\nimport * as TextUtility from '../Text/Utility';\r\nimport * as ArrayUtility from '../Collections/Array/Utility';\r\nimport * as Enumerator from './Enumeration/Enumerator';\r\nimport EnumeratorBase from './Enumeration/EnumeratorBase';\r\n\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\nimport ArgumentException from '../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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\nclass Node\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic prev?:Node,\r\n\t\tpublic next?:Node)\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.prev)\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:Node, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\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):Node\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\r\n\t\t\t\"Cannot be null.\");\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:Node = (node)._node;\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\nimplements ILinkedList\r\n{\r\n\tprivate _first:Node;\r\n\tprivate _last:Node;\r\n\tprivate _count:number;\r\n\r\n\tconstructor(source?:IEnumerable);\r\n\tconstructor(source?:IArray);\r\n\tconstructor(source:any)\r\n\t{\r\n\t\tvar _ = this, c = 0, first:Node = null, last:Node = null;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tfirst = last = new Node(e.current);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlast = last.next = new Node(e.current, last);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._first = first;\r\n\t\t_._last = last;\r\n\t\t_._count = c;\r\n\t}\r\n\r\n\t// #region Internals.\r\n\r\n\tprivate _addFirst(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tvar prev = new Node(entry, null, first);\r\n\t\tif(first)\r\n\t\t\tfirst.prev = prev;\r\n\t\telse\r\n\t\t\t_._last = prev;\r\n\r\n\t\t_._first = prev;\r\n\r\n\t\t_._count += 1;\r\n\r\n\t\treturn prev;\r\n\t}\r\n\r\n\tprivate _addLast(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tvar next = new Node(entry, last);\r\n\t\tif(last)\r\n\t\t\tlast.next = next;\r\n\t\telse\r\n\t\t\t_._first = next;\r\n\r\n\t\t_._last = next;\r\n\t\t_._count += 1;\r\n\r\n\t\treturn next;\r\n\t}\r\n\r\n\tprivate _addNodeBefore(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.next = n;\r\n\t\tinserting.prev = n.prev;\r\n\r\n\t\tn.prev.next = inserting;\r\n\t\tn.prev = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\r\n\tprivate _addNodeAfter(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.prev = n;\r\n\t\tinserting.next = n.next;\r\n\r\n\t\tn.next.prev = inserting;\r\n\t\tn.next = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\tprivate _findFirst(entry:T):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._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):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._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.prev;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region IEnumerateEach\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar array = this.toArray();\r\n\t\t\tArrayUtility.forEach(array, action);\r\n\t\t\tarray.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar next = this._first, index:number = 0;\r\n\t\t\twhile(next && action(next.value, index++)!==false)\r\n\t\t\t{\r\n\t\t\t\tnext = next.next;\r\n\t\t\t}\r\n\t\t}\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\tvar _ = this, current:Node;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tcurrent = new Node(null, null, _._first);\r\n\t\t\t}, // Initialize anchor...\r\n\t\t\t(yielder)=>\r\n\t\t\t\t(current = current.next)\r\n\t\t\t\t\t? yielder.yieldReturn(current.value)\r\n\t\t\t\t\t: yielder.yieldBreak()\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._first = null;\r\n\t\t_._last = null;\r\n\t\tvar count = _._count;\r\n\t\t_._count = 0;\r\n\t\treturn count;\r\n\t}\r\n\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tvar found:boolean = false, equals = Values.areEqual;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tcopyTo(array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.forEach(\r\n\t\t\t(entry, i) =>\r\n\t\t\t{\r\n\t\t\t\tarray[index + i] = entry;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar array = ArrayUtility.initialize(this._count);\r\n\t\treturn this.copyTo(array);\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar node:Node = _._findFirst(entry);\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tvar prev = node.prev, next = node.next;\r\n\t\t\tif(prev) prev.next = next;\r\n\t\t\telse _._first = next;\r\n\t\t\tif(next) next.prev = prev;\r\n\t\t\telse _._last = prev;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\r\n\t\treturn node!=null;\r\n\r\n\t}\r\n\r\n\tremove(entry:T):number\r\n\t{\r\n\t\tvar _ = this, removedCount:number = 0;\r\n\t\twhile(_.removeOnce(entry))\r\n\t\t{\r\n\t\t\t++removedCount;\r\n\t\t}\r\n\t\treturn removedCount;\r\n\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._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\tprivate _getNodeAt(index:number):Node\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is less than zero.');\r\n\r\n\t\tif(index>=this._count)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is greater than count.');\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index\r\n\t{\r\n\t\treturn ensureExternal(this._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._addFirst(entry);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tif(first)\r\n\t\t{\r\n\t\t\tvar next = first.next;\r\n\t\t\t_._first = next;\r\n\t\t\tif(next) // Might have been the last.\r\n\t\t\t\tnext.prev = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tif(last)\r\n\t\t{\r\n\t\t\tvar prev = last.prev;\r\n\t\t\t_._last = prev;\r\n\t\t\tif(prev) // Might have been the first.\r\n\t\t\t\tprev.next = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\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\t\tvar n:Node = getInternal(node, _);\r\n\t\tvar prev = n.prev, next = n.next, a:boolean = false, b:boolean = false;\r\n\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==n) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.prev = prev;\r\n\t\telse if(_._last==n) _._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\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\taddBefore(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\r\n\taddAfter(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\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 _node:Node)\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._node.prev, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._node.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._node.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._node.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":["factory","module","exports","v","require","undefined","define","amd","ensureExternal","node","list","getInternal","Values","TextUtility","ArrayUtility","Enumerator","EnumeratorBase_1","InvalidOperationException_1","ArgumentException_1","ArgumentNullException_1","ArgumentOutOfRangeException_1","Node","Node.constructor","Node.assertDetached","LinkedList","LinkedList.constructor","LinkedList._addFirst","LinkedList._addLast","LinkedList._addNodeBefore","LinkedList._addNodeAfter","LinkedList._findFirst","LinkedList._findLast","LinkedList.forEach","LinkedList.getEnumerator","get","LinkedList.count","enumerable","configurable","LinkedList.isReadOnly","LinkedList.add","LinkedList.clear","LinkedList.contains","LinkedList.copyTo","LinkedList.toArray","LinkedList.removeOnce","LinkedList.remove","LinkedList.first","LinkedList.last","LinkedList._getNodeAt","LinkedList.getValueAt","LinkedList.getNodeAt","LinkedList.find","LinkedList.findLast","LinkedList.addFirst","LinkedList.addLast","LinkedList.removeFirst","LinkedList.removeLast","LinkedList.removeNode","LinkedList.addBefore","LinkedList.addAfter","LinkedList.addNodeBefore","LinkedList.addNodeAfter","Object","defineProperty","value","LinkedListNode","LinkedListNode.constructor","LinkedListNode.list","LinkedListNode.previous","LinkedListNode.next","LinkedListNode.value","set","LinkedListNode.addBefore","LinkedListNode.addAfter","LinkedListNode.addNodeBefore","LinkedListNode.addNodeAfter","LinkedListNode.remove"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["(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', '../Text/Utility', '../Collections/Array/Utility', './Enumeration/Enumerator', './Enumeration/EnumeratorBase', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentException', '../Exceptions/ArgumentNullException', '../Exceptions/ArgumentOutOfRangeException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = require('../Compare');\n var TextUtility = require('../Text/Utility');\n var ArrayUtility = require('../Collections/Array/Utility');\n var Enumerator = require('./Enumeration/Enumerator');\n var EnumeratorBase_1 = require('./Enumeration/EnumeratorBase');\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\n var ArgumentException_1 = require('../Exceptions/ArgumentException');\n var ArgumentNullException_1 = require('../Exceptions/ArgumentNullException');\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\n var Node = (function () {\n function Node(value, prev, next) {\n this.value = value;\n this.prev = prev;\n this.next = next;\n }\n Node.prototype.assertDetached = function () {\n if (this.next || this.prev)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return Node;\n })();\n function ensureExternal(node, list) {\n if (!node)\n return null;\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(\"Cannot be null.\");\n if (node.list != list)\n throw new InvalidOperationException_1.default(\"Provided node does not belong to this list.\");\n var n = node._node;\n if (!n)\n throw new InvalidOperationException_1.default(\"Provided node is not valid.\");\n return n;\n }\n var LinkedList = (function () {\n function LinkedList(source) {\n var _ = this, c = 0, first = null, last = null;\n var e = Enumerator.from(source);\n if (e.moveNext()) {\n first = last = new Node(e.current);\n ++c;\n }\n while (e.moveNext()) {\n last = last.next = new Node(e.current, last);\n ++c;\n }\n _._first = first;\n _._last = last;\n _._count = c;\n }\n LinkedList.prototype._addFirst = function (entry) {\n var _ = this, first = _._first;\n var prev = new Node(entry, null, first);\n if (first)\n first.prev = prev;\n else\n _._last = prev;\n _._first = prev;\n _._count += 1;\n return prev;\n };\n LinkedList.prototype._addLast = function (entry) {\n var _ = this, last = _._last;\n var next = new Node(entry, last);\n if (last)\n last.next = next;\n else\n _._first = next;\n _._last = next;\n _._count += 1;\n return next;\n };\n LinkedList.prototype._addNodeBefore = function (n, inserting) {\n inserting.assertDetached();\n inserting.next = n;\n inserting.prev = n.prev;\n n.prev.next = inserting;\n n.prev = inserting;\n this._count += 1;\n };\n LinkedList.prototype._addNodeAfter = function (n, inserting) {\n inserting.assertDetached();\n inserting.prev = n;\n inserting.next = n.next;\n n.next.prev = inserting;\n n.next = inserting;\n this._count += 1;\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._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 equals = Values.areEqual, prev = this._last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.prev;\n }\n return null;\n };\n LinkedList.prototype.forEach = function (action, useCopy) {\n if (useCopy === void 0) { useCopy = false; }\n if (useCopy) {\n var array = this.toArray();\n ArrayUtility.forEach(array, action);\n array.length = 0;\n }\n else {\n var next = this._first, index = 0;\n while (next && action(next.value, index++) !== false) {\n next = next.next;\n }\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n var _ = this, current;\n return new EnumeratorBase_1.default(function () {\n current = new Node(null, null, _._first);\n }, function (yielder) {\n return (current = current.next)\n ? yielder.yieldReturn(current.value)\n : yielder.yieldBreak();\n });\n };\n Object.defineProperty(LinkedList.prototype, \"count\", {\n get: function () {\n return this._count;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"isReadOnly\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.add = function (entry) {\n this._addLast(entry);\n };\n LinkedList.prototype.clear = function () {\n var _ = this;\n _._first = null;\n _._last = null;\n var count = _._count;\n _._count = 0;\n return count;\n };\n LinkedList.prototype.contains = function (entry) {\n var found = false, equals = Values.areEqual;\n this.forEach(function (e) { return !(found = equals(entry, e)); });\n return found;\n };\n LinkedList.prototype.copyTo = function (array, index) {\n if (index === void 0) { index = 0; }\n this.forEach(function (entry, i) {\n array[index + i] = entry;\n });\n return array;\n };\n LinkedList.prototype.toArray = function () {\n var array = ArrayUtility.initialize(this._count);\n return this.copyTo(array);\n };\n LinkedList.prototype.removeOnce = function (entry) {\n var _ = this;\n var node = _._findFirst(entry);\n if (node) {\n var prev = node.prev, next = node.next;\n if (prev)\n prev.next = next;\n else\n _._first = next;\n if (next)\n next.prev = prev;\n else\n _._last = prev;\n _._count -= 1;\n }\n return node != null;\n };\n LinkedList.prototype.remove = function (entry) {\n var _ = this, removedCount = 0;\n while (_.removeOnce(entry)) {\n ++removedCount;\n }\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype._getNodeAt = function (index) {\n if (index < 0)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.');\n if (index >= this._count)\n throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than count.');\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedList.prototype.getValueAt = function (index) {\n return this._getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._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._addFirst(entry);\n };\n LinkedList.prototype.addLast = function (entry) {\n this._addLast(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._first;\n if (first) {\n var next = first.next;\n _._first = next;\n if (next)\n next.prev = null;\n _._count -= 1;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._last;\n if (last) {\n var prev = last.prev;\n _._last = prev;\n if (prev)\n prev.next = null;\n _._count -= 1;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this;\n var n = getInternal(node, _);\n var prev = n.prev, next = n.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == n)\n _._first = next;\n else\n a = true;\n if (next)\n next.prev = prev;\n else if (_._last == n)\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 return !a && !b;\n };\n LinkedList.prototype.addBefore = function (node, entry) {\n this._addNodeBefore(getInternal(node, this), new Node(entry));\n };\n LinkedList.prototype.addAfter = function (node, entry) {\n this._addNodeAfter(getInternal(node, this), new Node(entry));\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._addNodeBefore(getInternal(node, this), getInternal(before, this));\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._addNodeAfter(getInternal(node, this), getInternal(after, this));\n };\n return LinkedList;\n })();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _node) {\n this._list = _list;\n this._node = _node;\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._node.prev, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._node.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._node.value;\n },\n set: function (v) {\n this._node.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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from '../Compare';\r\nimport * as TextUtility from '../Text/Utility';\r\nimport * as ArrayUtility from '../Collections/Array/Utility';\r\nimport * as Enumerator from './Enumeration/Enumerator';\r\nimport EnumeratorBase from './Enumeration/EnumeratorBase';\r\n\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\n\r\nimport ArgumentException from '../Exceptions/ArgumentException';\r\nimport ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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\nclass Node\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic prev?:Node,\r\n\t\tpublic next?:Node)\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.prev)\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:Node, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\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):Node\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\r\n\t\t\t\"Cannot be null.\");\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:Node = (node)._node;\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\nimplements ILinkedList\r\n{\r\n\tprivate _first:Node;\r\n\tprivate _last:Node;\r\n\tprivate _count:number;\r\n\r\n\tconstructor(source?:IEnumerable);\r\n\tconstructor(source?:IArray);\r\n\tconstructor(source:any)\r\n\t{\r\n\t\tvar _ = this, c = 0, first:Node = null, last:Node = null;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tif(e.moveNext())\r\n\t\t{\r\n\t\t\tfirst = last = new Node(e.current);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlast = last.next = new Node(e.current, last);\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._first = first;\r\n\t\t_._last = last;\r\n\t\t_._count = c;\r\n\t}\r\n\r\n\t// #region Internals.\r\n\r\n\tprivate _addFirst(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tvar prev = new Node(entry, null, first);\r\n\t\tif(first)\r\n\t\t\tfirst.prev = prev;\r\n\t\telse\r\n\t\t\t_._last = prev;\r\n\r\n\t\t_._first = prev;\r\n\r\n\t\t_._count += 1;\r\n\r\n\t\treturn prev;\r\n\t}\r\n\r\n\tprivate _addLast(entry:T):Node\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tvar next = new Node(entry, last);\r\n\t\tif(last)\r\n\t\t\tlast.next = next;\r\n\t\telse\r\n\t\t\t_._first = next;\r\n\r\n\t\t_._last = next;\r\n\t\t_._count += 1;\r\n\r\n\t\treturn next;\r\n\t}\r\n\r\n\tprivate _addNodeBefore(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.next = n;\r\n\t\tinserting.prev = n.prev;\r\n\r\n\t\tn.prev.next = inserting;\r\n\t\tn.prev = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\r\n\tprivate _addNodeAfter(n:Node, inserting:Node):void\r\n\t{\r\n\t\tinserting.assertDetached();\r\n\r\n\t\tinserting.prev = n;\r\n\t\tinserting.next = n.next;\r\n\r\n\t\tn.next.prev = inserting;\r\n\t\tn.next = inserting;\r\n\r\n\t\tthis._count += 1;\r\n\t}\r\n\r\n\tprivate _findFirst(entry:T):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._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):Node\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._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.prev;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\t// #region IEnumerateEach\r\n\tforEach(\r\n\t\taction:Predicate | Action,\r\n\t\tuseCopy:boolean = false):void\r\n\t{\r\n\t\tif(useCopy)\r\n\t\t{\r\n\t\t\tvar array = this.toArray();\r\n\t\t\tArrayUtility.forEach(array, action);\r\n\t\t\tarray.length = 0;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar next = this._first, index:number = 0;\r\n\t\t\twhile(next && action(next.value, index++)!==false)\r\n\t\t\t{\r\n\t\t\t\tnext = next.next;\r\n\t\t\t}\r\n\t\t}\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\tvar _ = this, current:Node;\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tcurrent = new Node(null, null, _._first);\r\n\t\t\t}, // Initialize anchor...\r\n\t\t\t(yielder)=>\r\n\t\t\t\t(current = current.next)\r\n\t\t\t\t\t? yielder.yieldReturn(current.value)\r\n\t\t\t\t\t: yielder.yieldBreak()\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_._first = null;\r\n\t\t_._last = null;\r\n\t\tvar count = _._count;\r\n\t\t_._count = 0;\r\n\t\treturn count;\r\n\t}\r\n\r\n\r\n\tcontains(entry:T):boolean\r\n\t{\r\n\t\tvar found:boolean = false, equals = Values.areEqual;\r\n\t\tthis.forEach(e => !(found = equals(entry, e)));\r\n\t\treturn found;\r\n\t}\r\n\r\n\tcopyTo(array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tthis.forEach(\r\n\t\t\t(entry, i) =>\r\n\t\t\t{\r\n\t\t\t\tarray[index + i] = entry;\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar array = ArrayUtility.initialize(this._count);\r\n\t\treturn this.copyTo(array);\r\n\t}\r\n\r\n\tremoveOnce(entry:T):boolean\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar node:Node = _._findFirst(entry);\r\n\t\tif(node)\r\n\t\t{\r\n\t\t\tvar prev = node.prev, next = node.next;\r\n\t\t\tif(prev) prev.next = next;\r\n\t\t\telse _._first = next;\r\n\t\t\tif(next) next.prev = prev;\r\n\t\t\telse _._last = prev;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\r\n\t\treturn node!=null;\r\n\r\n\t}\r\n\r\n\tremove(entry:T):number\r\n\t{\r\n\t\tvar _ = this, removedCount:number = 0;\r\n\t\twhile(_.removeOnce(entry))\r\n\t\t{\r\n\t\t\t++removedCount;\r\n\t\t}\r\n\t\treturn removedCount;\r\n\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\r\n\tget first():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._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\tprivate _getNodeAt(index:number):Node\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is less than zero.');\r\n\r\n\t\tif(index>=this._count)\r\n\t\t\tthrow new ArgumentOutOfRangeException(\r\n\t\t\t\t'index', index, 'Is greater than count.');\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index\r\n\t{\r\n\t\treturn ensureExternal(this._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._addFirst(entry);\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis._addLast(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._first;\r\n\t\tif(first)\r\n\t\t{\r\n\t\t\tvar next = first.next;\r\n\t\t\t_._first = next;\r\n\t\t\tif(next) // Might have been the last.\r\n\t\t\t\tnext.prev = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._last;\r\n\t\tif(last)\r\n\t\t{\r\n\t\t\tvar prev = last.prev;\r\n\t\t\t_._last = prev;\r\n\t\t\tif(prev) // Might have been the first.\r\n\t\t\t\tprev.next = null;\r\n\r\n\t\t\t_._count -= 1;\r\n\t\t}\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\t\tvar n:Node = getInternal(node, _);\r\n\t\tvar prev = n.prev, next = n.next, a:boolean = false, b:boolean = false;\r\n\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==n) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.prev = prev;\r\n\t\telse if(_._last==n) _._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\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\taddBefore(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\r\n\taddAfter(node:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tnew Node(entry)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeBefore(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._addNodeAfter(\r\n\t\t\tgetInternal(node, this),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\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 _node:Node)\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._node.prev, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._node.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._node.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._node.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/Queue.js b/dist/umd.min/System/Collections/Queue.js index 69d83001..05d64dd5 100644 --- a/dist/umd.min/System/Collections/Queue.js +++ b/dist/umd.min/System/Collections/Queue.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var r=t(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Compare","./Array/Utility","../Types","../Integer","./Enumeration/EnumeratorBase","./Enumeration/forEach","../Exceptions/NotImplementedException","../Exceptions/InvalidOperationException","../Exceptions/ArgumentOutOfRangeException"],function(e,t){function r(e,t){if(0>e)throw new _["default"](t,e,"Must be greater than zero")}function a(e,t){u["default"].assert(e,t),r(e,t)}var i=e("../Compare"),n=e("./Array/Utility"),o=e("../Types"),u=e("../Integer"),c=e("./Enumeration/EnumeratorBase"),p=e("./Enumeration/forEach"),y=e("../Exceptions/NotImplementedException"),s=e("../Exceptions/InvalidOperationException"),_=e("../Exceptions/ArgumentOutOfRangeException"),l=4,f=100,d=l,h=[],v=function(){function e(e){var t=this;if(t._head=0,t._tail=0,t._size=0,t._version=0,e)if(o["default"].isNumber(e)){var r=e;a(r,"capacity"),t._array=r?n.initialize(r):h}else{var i=e;t._array=n.initialize(o["default"].isArrayLike(i)?i.length:d),p["default"](i,function(e){return t.enqueue(e)}),t._version=0}else t._array=h;t._capacity=t._array.length}return Object.defineProperty(e.prototype,"count",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.add=function(e){this.enqueue(e)},e.prototype.clear=function(){var e=this,t=e._array,r=e._head,a=e._tail,i=e._size;return a>r?n.clear(t,r,i):(n.clear(t,r,t.length-r),n.clear(t,0,a)),e._head=0,e._tail=0,e._size=0,e._version++,i},e.prototype.contains=function(e){for(var t=this,r=t._array,a=t._head,n=t._size,o=t._capacity;n-->0;){if(i.areEqual(r[a],e))return!0;a=(a+1)%o}return!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),null==e)throw new Error("ArgumentNullException: array cannot be null.");a(t,"arrayIndex");var r=this,i=r._size;if(i){var o=i,u=r._array,c=r._capacity,p=r._head,y=c-p,s=i>y?y:i;return n.copyTo(u,e,p,t,s),o-=s,o>0&&n.copyTo(u,e,0,t+c-p,o),e}},e.prototype.toArray=function(){var e=this,t=e._size,r=n.initialize(t);return t?e.copyTo(r):r},e.prototype.remove=function(e){throw new y["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},e.prototype.dispose=function(){var e=this;e.clear(),e._array!=h&&(e._array.length=e._capacity=0,e._array=h),e._version=0},e.prototype.forEach=function(e){for(var t=this,r=t.toArray(),a=t._size,i=0;a>i&&e(r[i],i)!==!1;i++);},e.prototype.setCapacity=function(e){a(e,"capacity");var t=this,r=t._array,i=t._capacity;if(e!=i){var o=t._head,u=t._tail,c=t._size;if(r!=h&&e>i&&u>o)return r.length=t._capacity=e,void t._version++;var p=n.initialize(e);c>0&&(u>o?n.copyTo(r,p,o,0,c):(n.copyTo(r,p,o,0,i-o),n.copyTo(r,p,0,i-o,u))),t._array=p,t._capacity=e,t._head=0,t._tail=c==e?0:c,t._version++}},e.prototype.enqueue=function(e){var t=this,r=t._array,a=t._size,i=t._capacity;if(a==i){var n=i*f;i+l>n&&(n=i+l),t.setCapacity(n),r=t._array,i=t._capacity}var o=t._tail;r[o]=e,t._tail=(o+1)%i,t._size=a+1,t._version++},e.prototype.dequeue=function(){var e=this;if(0==e._size)throw new s["default"]("Cannot dequeue an empty queue.");var t=e._array,r=e._head,a=e._array[r];return t[r]=null,e._head=(r+1)%e._capacity,e._size--,e._version++,a},e.prototype._getElement=function(e){a(e,"index");var t=this;return t._array[(t._head+e)%t._capacity]},e.prototype.peek=function(){if(0==this._size)throw new s["default"]("Cannot call peek on an empty queue.");return this._array[this._head]},e.prototype.trimExcess=function(){var e=this,t=e._size;te)throw new _["default"](t,e,"Must be greater than zero")}function i(e,t){u["default"].assert(e,t),r(e,t)}var a=e("../Compare"),n=e("./Array/Utility"),o=e("../Types"),u=e("../Integer"),c=e("./Enumeration/EnumeratorBase"),s=e("./Enumeration/forEach"),p=e("../Exceptions/NotImplementedException"),y=e("../Exceptions/InvalidOperationException"),_=e("../Exceptions/ArgumentOutOfRangeException"),f=4,l=32,d=100,h=f,v=[],m=function(){function e(e){var t=this;if(t._head=0,t._tail=0,t._size=0,t._version=0,e)if(o["default"].isNumber(e)){var r=e;i(r,"capacity"),t._array=r?n.initialize(r):v}else{var a=e;t._array=n.initialize(o["default"].isArrayLike(a)?a.length:h),s["default"](a,function(e){return t.enqueue(e)}),t._version=0}else t._array=v;t._capacity=t._array.length}return Object.defineProperty(e.prototype,"count",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isReadOnly",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.add=function(e){this.enqueue(e)},e.prototype.clear=function(){var e=this,t=e._array,r=e._head,i=e._tail,a=e._size;return i>r?n.clear(t,r,a):(n.clear(t,r,t.length-r),n.clear(t,0,i)),e._head=0,e._tail=0,e._size=0,e._version++,e.trimExcess(),a},e.prototype.dump=function(e){if(void 0===e&&(e=1/0),o["default"].isNumber(e,!1)&&0>e)throw new _["default"]("max",e,"must be greater than or equal to 0.");var t=this,r=[];if(isFinite(e))for(u["default"].assert(e,"max");e--&&t._size;)r.push(t.dequeue());else for(;t._size;)r.push(t.dequeue());return t.trimExcess(),r},e.prototype.contains=function(e){for(var t=this,r=t._array,i=t._head,n=t._size,o=t._capacity;n-- >0;){if(a.areEqual(r[i],e))return!0;i=(i+1)%o}return!1},e.prototype.copyTo=function(e,t){if(void 0===t&&(t=0),null==e)throw new Error("ArgumentNullException: array cannot be null.");i(t,"arrayIndex");var r=this,a=r._size;if(a){var o=a,u=r._array,c=r._capacity,s=r._head,p=c-s,y=a>p?p:a;return n.copyTo(u,e,s,t,y),o-=y,o>0&&n.copyTo(u,e,0,t+c-s,o),e}},e.prototype.toArray=function(){var e=this,t=e._size,r=n.initialize(t);return t?e.copyTo(r):r},e.prototype.remove=function(e){throw new p["default"]("ICollection.remove is not implemented in Queue since it would require destroying the underlying array to remove the item.")},e.prototype.dispose=function(){var e=this;e.clear(),e._array!=v&&(e._array.length=e._capacity=0,e._array=v),e._version=0},e.prototype.forEach=function(e){for(var t=this,r=t.toArray(),i=t._size,a=0;i>a&&e(r[a],a)!==!1;a++);},e.prototype.setCapacity=function(e){i(e,"capacity");var t=this,r=t._array,a=t._capacity;if(e!=a){var o=t._head,u=t._tail,c=t._size;if(r!=v&&e>a&&u>o)return r.length=t._capacity=e,void t._version++;var s=n.initialize(e);c>0&&(u>o?n.copyTo(r,s,o,0,c):(n.copyTo(r,s,o,0,a-o),n.copyTo(r,s,0,a-o,u))),t._array=s,t._capacity=e,t._head=0,t._tail=c==e?0:c,t._version++}},e.prototype.enqueue=function(e){var t=this,r=t._array,i=t._size,a=t._capacity;if(i==a){var n=a*d;a+f>n&&(n=a+f),t.setCapacity(n),r=t._array,a=t._capacity}var o=t._tail;r[o]=e,t._tail=(o+1)%a,t._size=i+1,t._version++},e.prototype.dequeue=function(e){void 0===e&&(e=!1);var t=this;{if(0!=t._size){var r=t._array,i=t._head,a=t._array[i];return r[i]=null,t._head=(i+1)%t._capacity,t._size--,t._sizee)&&t.setCapacity(r)},e.prototype.getEnumerator=function(){var e,t,r=this;return new c["default"](function(){t=r._version,e=0},function(i){if(t!=r._version)throw new y["default"]("Collection was changed during enumeration.");return e==r._size?i.yieldBreak():i.yieldReturn(r._getElement(e++))})},e}();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 54ee7c90..d7d5aa4e 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":["deps","factory","module","exports","v","require","undefined","define","amd","assertZeroOrGreater","value","property","assertIntegerZeroOrGreater","Values","AU","Types_1","Integer_1","EnumeratorBase_1","forEach_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","MINIMUM_GROW","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","Queue.constructor","get","Queue.count","enumerable","configurable","Queue.isReadOnly","Queue.add","Queue.clear","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","Object","defineProperty"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../Compare');\r\n var AU = require('./Array/Utility');\r\n var Types_1 = require('../Types');\r\n var Integer_1 = require('../Integer');\r\n var EnumeratorBase_1 = require('./Enumeration/EnumeratorBase');\r\n var forEach_1 = require('./Enumeration/forEach');\r\n var NotImplementedException_1 = require('../Exceptions/NotImplementedException');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var MINIMUM_GROW = 4;\r\n var GROW_FACTOR_HALF = 100;\r\n var DEFAULT_CAPACITY = MINIMUM_GROW;\r\n var emptyArray = [];\r\n var Queue = (function () {\r\n function Queue(source) {\r\n var _ = this;\r\n _._head = 0;\r\n _._tail = 0;\r\n _._size = 0;\r\n _._version = 0;\r\n if (!source)\r\n _._array = emptyArray;\r\n else {\r\n if (Types_1.default.isNumber(source)) {\r\n var capacity = source;\r\n assertIntegerZeroOrGreater(capacity, \"capacity\");\r\n _._array = capacity\r\n ? AU.initialize(capacity)\r\n : emptyArray;\r\n }\r\n else {\r\n var se = source;\r\n _._array = AU.initialize(Types_1.default.isArrayLike(se)\r\n ? se.length\r\n : DEFAULT_CAPACITY);\r\n forEach_1.default(se, function (e) { return _.enqueue(e); });\r\n _._version = 0;\r\n }\r\n }\r\n _._capacity = _._array.length;\r\n }\r\n Object.defineProperty(Queue.prototype, \"count\", {\r\n get: function () {\r\n return this._size;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Queue.prototype, \"isReadOnly\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Queue.prototype.add = function (item) {\r\n this.enqueue(item);\r\n };\r\n Queue.prototype.clear = function () {\r\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n if (head < tail)\r\n AU.clear(array, head, size);\r\n else {\r\n AU.clear(array, head, array.length - head);\r\n AU.clear(array, 0, tail);\r\n }\r\n _._head = 0;\r\n _._tail = 0;\r\n _._size = 0;\r\n _._version++;\r\n return size;\r\n };\r\n Queue.prototype.contains = function (item) {\r\n var _ = this;\r\n var array = _._array, index = _._head, count = _._size, len = _._capacity;\r\n while (count-- > 0) {\r\n if (Values.areEqual(array[index], item))\r\n return true;\r\n index = (index + 1) % len;\r\n }\r\n return false;\r\n };\r\n Queue.prototype.copyTo = function (target, arrayIndex) {\r\n if (arrayIndex === void 0) { arrayIndex = 0; }\r\n if (target == null)\r\n throw new Error(\"ArgumentNullException: array cannot be null.\");\r\n assertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n var _ = this, size = _._size;\r\n if (!size)\r\n return;\r\n var numToCopy = size, source = _._array, len = _._capacity, head = _._head, lh = len - head, firstPart = (lh < size)\r\n ? lh\r\n : size;\r\n AU.copyTo(source, target, head, arrayIndex, firstPart);\r\n numToCopy -= firstPart;\r\n if (numToCopy > 0)\r\n AU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n return target;\r\n };\r\n Queue.prototype.toArray = function () {\r\n var _ = this, size = _._size;\r\n var arr = AU.initialize(size);\r\n return size ? _.copyTo(arr) : arr;\r\n };\r\n Queue.prototype.remove = function (item) {\r\n throw new NotImplementedException_1.default(\"ICollection\\.remove is not implemented in Queue\\\" +\r\n \" since it would require destroying the underlying array to remove the item.\");\r\n };\r\n Queue.prototype.dispose = function () {\r\n var _ = this;\r\n _.clear();\r\n if (_._array != emptyArray) {\r\n _._array.length = _._capacity = 0;\r\n _._array = emptyArray;\r\n }\r\n _._version = 0;\r\n };\r\n Queue.prototype.forEach = function (action) {\r\n var _ = this, copy = _.toArray(), len = _._size;\r\n for (var i = 0; i < len; i++) {\r\n if (action(copy[i], i) === false)\r\n break;\r\n }\r\n };\r\n Queue.prototype.setCapacity = function (capacity) {\r\n assertIntegerZeroOrGreater(capacity, \"capacity\");\r\n var _ = this, array = _._array, len = _._capacity;\r\n if (capacity == len)\r\n return;\r\n var head = _._head, tail = _._tail, size = _._size;\r\n if (array != emptyArray && capacity > len && head < tail) {\r\n array.length = _._capacity = capacity;\r\n _._version++;\r\n return;\r\n }\r\n var newArray = AU.initialize(capacity);\r\n if (size > 0) {\r\n if (head < tail) {\r\n AU.copyTo(array, newArray, head, 0, size);\r\n }\r\n else {\r\n AU.copyTo(array, newArray, head, 0, len - head);\r\n AU.copyTo(array, newArray, 0, len - head, tail);\r\n }\r\n }\r\n _._array = newArray;\r\n _._capacity = capacity;\r\n _._head = 0;\r\n _._tail = (size == capacity) ? 0 : size;\r\n _._version++;\r\n };\r\n Queue.prototype.enqueue = function (item) {\r\n var _ = this, array = _._array, size = _._size, len = _._capacity;\r\n if (size == len) {\r\n var newCapacity = len * GROW_FACTOR_HALF;\r\n if (newCapacity < len + MINIMUM_GROW)\r\n newCapacity = len + MINIMUM_GROW;\r\n _.setCapacity(newCapacity);\r\n array = _._array;\r\n len = _._capacity;\r\n }\r\n var tail = _._tail;\r\n array[tail] = item;\r\n _._tail = (tail + 1) % len;\r\n _._size = size + 1;\r\n _._version++;\r\n };\r\n Queue.prototype.dequeue = function () {\r\n var _ = this;\r\n if (_._size == 0)\r\n throw new InvalidOperationException_1.default(\"Cannot dequeue an empty queue.\");\r\n var array = _._array, head = _._head;\r\n var removed = _._array[head];\r\n array[head] = null;\r\n _._head = (head + 1) % _._capacity;\r\n _._size--;\r\n _._version++;\r\n return removed;\r\n };\r\n Queue.prototype._getElement = function (index) {\r\n assertIntegerZeroOrGreater(index, \"index\");\r\n var _ = this;\r\n return _._array[(_._head + index) % _._capacity];\r\n };\r\n Queue.prototype.peek = function () {\r\n if (this._size == 0)\r\n throw new InvalidOperationException_1.default(\"Cannot call peek on an empty queue.\");\r\n return this._array[this._head];\r\n };\r\n Queue.prototype.trimExcess = function () {\r\n var _ = this;\r\n var size = _._size;\r\n if (size < Math.floor(_._capacity * 0.9))\r\n _.setCapacity(size);\r\n };\r\n Queue.prototype.getEnumerator = function () {\r\n var _ = this;\r\n var index;\r\n var version;\r\n return new EnumeratorBase_1.default(function () {\r\n version = _._version;\r\n index = 0;\r\n }, function (yielder) {\r\n if (version != _._version)\r\n throw new InvalidOperationException_1.default(\"Collection was changed during enumeration.\");\r\n if (index == _._size)\r\n return yielder.yieldBreak();\r\n return yielder.yieldReturn(_._getElement(index++));\r\n });\r\n };\r\n return Queue;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Queue;\r\n function assertZeroOrGreater(value, property) {\r\n if (value < 0)\r\n throw new ArgumentOutOfRangeException_1.default(property, value, \"Must be greater than zero\");\r\n }\r\n function assertIntegerZeroOrGreater(value, property) {\r\n Integer_1.default.assert(value, property);\r\n assertZeroOrGreater(value, property);\r\n }\r\n});\r\n//# sourceMappingURL=Queue.js.map","/*\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\nimport * as Values 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 forEach from './Enumeration/forEach';\r\nimport NotImplementedException from '../Exceptions/NotImplementedException';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\r\n\r\nconst MINIMUM_GROW:number = 4;\r\n// var 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 implements ICollection, IEnumerateEach, IDisposable\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\tprivate _version:number;\r\n\r\n\r\n\tconstructor(source?:IEnumerable | IArray | number)\r\n\t{\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\t\t_._version = 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 = | IArray> source;\r\n\t\t\t\t_._array = AU.initialize(\r\n\t\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\tforEach(se, (e:T)=> _.enqueue(e));\r\n\r\n\t\t\t\t_._version = 0;\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\t// #region ICollection implementation\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(item:T):void\r\n\t{\r\n\t\tthis.enqueue(item);\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head0)\r\n\t\t{\r\n\t\t\tif(Values.areEqual(array[index], item)) // May need a equality compare here.\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tindex = (index + 1)%len;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tcopyTo(target:T[], arrayIndex:number = 0):T[]\r\n\t{\r\n\t\tif(target==null)\r\n\t\t\tthrow new Error(\"ArgumentNullException: array cannot be null.\");\r\n\r\n\t\tassertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n\r\n\t\tvar _ = this, size = _._size;\r\n\r\n\t\tif(!size) return;\r\n\r\n\t\tvar numToCopy = size,\r\n\t\t source = _._array,\r\n\t\t len = _._capacity,\r\n\t\t head = _._head,\r\n\t\t lh = len - head,\r\n\t\t firstPart\r\n\t\t = (lh0)\r\n\t\t\tAU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this, size = _._size;\r\n\t\tvar arr:T[] = AU.initialize(size);\r\n\t\treturn size ? _.copyTo(arr) : arr;\r\n\t}\r\n\r\n\tremove(item:T):number\r\n\t{\r\n\t\tthrow new NotImplementedException(\r\n\t\t\t\"ICollection\\.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\r\n\t// #endregion\r\n\r\n\t// Results in a complete reset. Allows for easy cleanup elsewhere.\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.clear();\r\n\t\tif(_._array!=emptyArray)\r\n\t\t{\r\n\t\t\t_._array.length = _._capacity = 0;\r\n\t\t\t_._array = emptyArray;\r\n\t\t}\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\t// Until implementing a changed enumeration mechanism, a copy needs to be used.\r\n\t\tvar _ = this, copy = _.toArray(), len = _._size;\r\n\t\tfor(let i = 0; iaction(copy[i], i)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\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(head\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\tif(version!=_._version)\r\n\t\t\t\t\tthrow new InvalidOperationException(\"Collection was changed during enumeration.\");\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":["factory","module","exports","v","require","undefined","define","amd","assertZeroOrGreater","value","property","assertIntegerZeroOrGreater","Values","AU","Types_1","Integer_1","EnumeratorBase_1","forEach_1","NotImplementedException_1","InvalidOperationException_1","ArgumentOutOfRangeException_1","MINIMUM_GROW","SHRINK_THRESHOLD","GROW_FACTOR_HALF","DEFAULT_CAPACITY","emptyArray","Queue","Queue.constructor","get","Queue.count","enumerable","configurable","Queue.isReadOnly","Queue.add","Queue.clear","Queue.dump","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue.tryDequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","Object","defineProperty"],"mappings":"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","file":"System/Collections/Queue.js","sourcesContent":["(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', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = 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 forEach_1 = require('./Enumeration/forEach');\n var NotImplementedException_1 = require('../Exceptions/NotImplementedException');\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\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 () {\n function Queue(source) {\n var _ = this;\n _._head = 0;\n _._tail = 0;\n _._size = 0;\n _._version = 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 forEach_1.default(se, function (e) { return _.enqueue(e); });\n _._version = 0;\n }\n }\n _._capacity = _._array.length;\n }\n Object.defineProperty(Queue.prototype, \"count\", {\n get: function () {\n return this._size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Queue.prototype, \"isReadOnly\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Queue.prototype.add = function (item) {\n this.enqueue(item);\n };\n Queue.prototype.clear = function () {\n var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\n if (head < tail)\n AU.clear(array, head, size);\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 _._version++;\n _.trimExcess();\n return size;\n };\n Queue.prototype.dump = function (max) {\n if (max === void 0) { max = Infinity; }\n if (Types_1.default.isNumber(max, false) && max < 0)\n throw new ArgumentOutOfRangeException_1.default('max', max, 'must be greater than or equal to 0.');\n var _ = this, result = [];\n if (isFinite(max)) {\n Integer_1.default.assert(max, 'max');\n while (max-- && _._size) {\n result.push(_.dequeue());\n }\n }\n else {\n while (_._size) {\n result.push(_.dequeue());\n }\n }\n _.trimExcess();\n return result;\n };\n Queue.prototype.contains = function (item) {\n var _ = this;\n var array = _._array, index = _._head, count = _._size, len = _._capacity;\n while (count-- > 0) {\n if (Values.areEqual(array[index], item))\n return true;\n index = (index + 1) % len;\n }\n return false;\n };\n Queue.prototype.copyTo = function (target, arrayIndex) {\n if (arrayIndex === void 0) { arrayIndex = 0; }\n if (target == null)\n throw new Error(\"ArgumentNullException: array cannot be null.\");\n assertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\n var _ = this, size = _._size;\n if (!size)\n return;\n var numToCopy = size, source = _._array, len = _._capacity, head = _._head, lh = len - head, firstPart = (lh < size)\n ? lh\n : size;\n AU.copyTo(source, target, head, arrayIndex, firstPart);\n numToCopy -= firstPart;\n if (numToCopy > 0)\n AU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\n return target;\n };\n Queue.prototype.toArray = function () {\n var _ = this, size = _._size;\n var arr = AU.initialize(size);\n return size ? _.copyTo(arr) : arr;\n };\n Queue.prototype.remove = function (item) {\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.dispose = function () {\n var _ = this;\n _.clear();\n if (_._array != emptyArray) {\n _._array.length = _._capacity = 0;\n _._array = emptyArray;\n }\n _._version = 0;\n };\n Queue.prototype.forEach = function (action) {\n var _ = this, copy = _.toArray(), len = _._size;\n for (var i = 0; i < len; i++) {\n if (action(copy[i], i) === false)\n break;\n }\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 _._version++;\n };\n Queue.prototype.enqueue = 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 _._version++;\n };\n Queue.prototype.dequeue = 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 if (_._size < _._capacity / 2) {\n _.trimExcess(SHRINK_THRESHOLD);\n }\n _._version++;\n return removed;\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 if (version != _._version)\n throw new InvalidOperationException_1.default(\"Collection was changed during enumeration.\");\n if (index == _._size)\n return yielder.yieldBreak();\n return yielder.yieldReturn(_._getElement(index++));\n });\n };\n return Queue;\n })();\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values 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 forEach from './Enumeration/forEach';\r\nimport NotImplementedException from '../Exceptions/NotImplementedException';\r\nimport InvalidOperationException from '../Exceptions/InvalidOperationException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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 implements ICollection, IEnumerateEach, IDisposable\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\tprivate _version:number;\r\n\r\n\r\n\tconstructor(source?:IEnumerable | IArray | number)\r\n\t{\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\t\t_._version = 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 = | IArray> 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\tforEach(se, (e:T)=> _.enqueue(e));\r\n\r\n\t\t\t\t_._version = 0;\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\t// #region ICollection implementation\r\n\r\n\tget count():number\r\n\t{\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\tget isReadOnly():boolean\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tadd(item:T):void\r\n\t{\r\n\t\tthis.enqueue(item);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Clears out the array and returns the number of items that were removed.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size;\r\n\t\tif(head0)\r\n\t\t{\r\n\t\t\tif(Values.areEqual(array[index], item)) // May need a equality compare here.\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tindex = (index + 1)%len;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tcopyTo(target:T[], arrayIndex:number = 0):T[]\r\n\t{\r\n\t\tif(target==null)\r\n\t\t\tthrow new Error(\"ArgumentNullException: array cannot be null.\");\r\n\r\n\t\tassertIntegerZeroOrGreater(arrayIndex, \"arrayIndex\");\r\n\r\n\t\tvar _ = this, size = _._size;\r\n\r\n\t\tif(!size) return;\r\n\r\n\t\tvar numToCopy = size,\r\n\t\t source = _._array,\r\n\t\t len = _._capacity,\r\n\t\t head = _._head,\r\n\t\t lh = len - head,\r\n\t\t firstPart\r\n\t\t = (lh0)\r\n\t\t\tAU.copyTo(source, target, 0, arrayIndex + len - head, numToCopy);\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\r\n\ttoArray():T[]\r\n\t{\r\n\t\tvar _ = this, size = _._size;\r\n\t\tvar arr:T[] = AU.initialize(size);\r\n\t\treturn size ? _.copyTo(arr) : arr;\r\n\t}\r\n\r\n\tremove(item:T):number\r\n\t{\r\n\t\tthrow new NotImplementedException(\r\n\t\t\t\"ICollection\\.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\r\n\t// #endregion\r\n\r\n\t// Results in a complete reset. Allows for easy cleanup elsewhere.\r\n\tdispose():void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\t_.clear();\r\n\t\tif(_._array!=emptyArray)\r\n\t\t{\r\n\t\t\t_._array.length = _._capacity = 0;\r\n\t\t\t_._array = emptyArray;\r\n\t\t}\r\n\t\t_._version = 0;\r\n\t}\r\n\r\n\r\n\tforEach(action:Predicate | Action):void\r\n\t{\r\n\t\t// Until implementing a changed enumeration mechanism, a copy needs to be used.\r\n\t\tvar _ = this, copy = _.toArray(), len = _._size;\r\n\t\tfor(let i = 0; iaction(copy[i], i)===false)\r\n\t\t\t\tbreak;\r\n\t\t}\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\tif(version!=_._version)\r\n\t\t\t\t\tthrow new InvalidOperationException(\"Collection was changed during enumeration.\");\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 diff --git a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js index 564ae44e..950930dc 100644 --- a/dist/umd.min/System/Collections/Sorting/KeySortedContext.js +++ b/dist/umd.min/System/Collections/Sorting/KeySortedContext.js @@ -1,6 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../../Compare","./SortContext","../../Functions"],function(e,t){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["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}); //# 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 9b48ad46..3760d5ab 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","deps","factory","module","exports","v","require","undefined","define","amd","Values","SortContext_1","Functions_1","KeySortedContext","_super","KeySortedContext.constructor","KeySortedContext.compare","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,gBAAiB,gBAAiB,mBAAoB,SAAUI,EAASF,GCPnG,GAAYM,GAAMJ,EAAM,iBAExBK,EAAAL,EAAwB,iBACxBM,EAAAN,EAAsB,mBAItBO,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACUA,EACVA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAyBA,EAAOA,SAEhCA,EAAAA,KAAAA,KAAMA,EAAMA,EAAUA,GAJZA,KAAAA,aAAAA,EAgBZF,MApB2DA,WAAAA,EAAAA,GAW1DA,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZG,GAAIA,GAAIA,KAAMA,EAAKA,EAAEA,YACrBA,KAAIA,GAAMA,GAAIA,EAAAA,WAAUA,SAAUA,MAAOA,GAAAA,UAAMA,QAAOA,KAAAA,KAACA,EAAGA,EAE1DA,IAAIA,GAAIA,EAAOA,QAAaA,EAAGA,GAASA,EAAGA,GAC3CA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBH,GApB2DF,EAAAA,WAD3DZ,QAAAkB,eAAAb,EAAA,cAAAc,OAAA,ID4BId,EAAAA,WAAkBS","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare', \"./SortContext\", \"../../Functions\"], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var SortContext_1 = require(\"./SortContext\");\r\n var Functions_1 = require(\"../../Functions\");\r\n var KeySortedContext = (function (_super) {\r\n __extends(KeySortedContext, _super);\r\n function KeySortedContext(next, _keySelector, order, comparer) {\r\n if (order === void 0) { order = 1; }\r\n if (comparer === void 0) { comparer = Values.compare; }\r\n _super.call(this, next, comparer, order);\r\n this._keySelector = _keySelector;\r\n }\r\n KeySortedContext.prototype.compare = function (a, b) {\r\n var _ = this, ks = _._keySelector;\r\n if (!ks || ks == Functions_1.default.Identity)\r\n return _super.prototype.compare.call(this, a, b);\r\n var d = Values.compare(ks(a), ks(b));\r\n if (d == 0 && _._next)\r\n return _._next.compare(a, b);\r\n return _._order * d;\r\n };\r\n return KeySortedContext;\r\n })(SortContext_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = KeySortedContext;\r\n});\r\n//# sourceMappingURL=KeySortedContext.js.map","/*\r\n * @author 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 Order from './Order'\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\ntype Comparable = Primitive|IComparable\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","KeySortedContext.constructor","KeySortedContext.compare","defineProperty","value"],"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,gBAAiB,gBAAiB,mBAAoBN,IAEzF,SAAUI,EAASF,GCRtB,YAOA,IAAYM,GAAMJ,EAAM,iBACxBK,EAAAL,EAAwB,iBACxBM,EAAAN,EAAsB,mBAItBO,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACUA,EACVA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAyBA,EAAOA,SAEhCA,EAAAA,KAAAA,KAAMA,EAAMA,EAAUA,GAJZA,KAAAA,aAAAA,EAgBZF,MApB2DA,WAAAA,EAAAA,GAW1DA,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZG,GAAIA,GAAIA,KAAMA,EAAKA,EAAEA,YACrBA,KAAIA,GAAMA,GAAIA,EAAAA,WAAUA,SAAUA,MAAOA,GAAAA,UAAMA,QAAOA,KAAAA,KAACA,EAAGA,EAE1DA,IAAIA,GAAIA,EAAOA,QAAaA,EAAGA,GAASA,EAAGA,GAC3CA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBH,GApB2DF,EAAAA,WAD3DX,QAAAiB,eAAAb,EAAA,cAAAc,OAAA,IDoBId,EAAAA,WAAkBS","file":"System/Collections/Sorting/KeySortedContext.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\", '../../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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from '../../Compare'\r\nimport SortContext from \"./SortContext\";\r\nimport Functions from \"../../Functions\";\r\n\r\ntype Comparable = Primitive|IComparable\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 diff --git a/dist/umd.min/System/Collections/Sorting/Order.js b/dist/umd.min/System/Collections/Sorting/Order.js deleted file mode 100644 index f1fbbd42..00000000 --- a/dist/umd.min/System/Collections/Sorting/Order.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){}); -//# sourceMappingURL=Order.js.map diff --git a/dist/umd.min/System/Collections/Sorting/Order.js.map b/dist/umd.min/System/Collections/Sorting/Order.js.map deleted file mode 100644 index b5f12c4e..00000000 --- a/dist/umd.min/System/Collections/Sorting/Order.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Sorting/Order.js"],"names":["deps","factory","module","exports","v","require","undefined","define","amd"],"mappings":"CAAA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF","file":"System/Collections/Sorting/Order.js","sourcesContent":["(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=Order.js.map"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Sorting/SortContext.js b/dist/umd.min/System/Collections/Sorting/SortContext.js index f5aedb98..52b32249 100644 --- a/dist/umd.min/System/Collections/Sorting/SortContext.js +++ b/dist/umd.min/System/Collections/Sorting/SortContext.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../../Compare"],function(e,r){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}();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 93572c4a..70444ed3 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":["deps","factory","module","exports","v","require","undefined","define","amd","Values","SortContext","SortContext.constructor","get","SortContext.order","enumerable","configurable","SortContext.generateSortedIndexes","SortContext.compare","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,iBAAkB,SAAUI,EAASF,GCH/D,GAAYM,GAAMJ,EAAM,iBAKxBK,EAAA,WAWCA,QAAAA,GACWA,EACAA,EACAA,GADVC,SAAAA,IAAAA,EAAoCA,EAAOA,SAC3CA,SAAAA,IAAAA,EAAAA,GAFUA,KAAAA,MAAAA,EACAA,KAAAA,UAAAA,EACAA,KAAAA,OAAAA,EA+BZD,MArCCA,QAAAA,eAAIA,EAAAA,UAAAA,SDIOE,ICJXF,WACEG,MAAOA,MAAKA,QDIHC,YAAY,EACZC,cAAc,ICUzBL,EAAAA,UAAAA,sBAAAA,SAAsBA,GAAtBM,GAAAA,GAAAA,IAECA,IAAWA,MAARA,EAAcA,QACjBA,IAAIA,GAAkBA,EAAOA,IAAIA,SAACA,EAAGA,GAAIA,MAAAA,IAEzCA,OADAA,GAAOA,KAAKA,SAACA,EAAGA,GAAMA,MAAAA,GAAKA,QAAQA,EAAOA,GAAIA,EAAOA,MAC9CA,GASRN,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZO,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,UAAUA,EAAGA,EACvBA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBP,IA7CAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,IDkCIjB,EAAAA,WAAkBO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../../Compare'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Values = require('../../Compare');\r\n var SortContext = (function () {\r\n function SortContext(_next, _comparer, _order) {\r\n if (_comparer === void 0) { _comparer = Values.compare; }\r\n if (_order === void 0) { _order = 1; }\r\n this._next = _next;\r\n this._comparer = _comparer;\r\n this._order = _order;\r\n }\r\n Object.defineProperty(SortContext.prototype, \"order\", {\r\n get: function () { return this._order; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SortContext.prototype.generateSortedIndexes = function (source) {\r\n var _this = this;\r\n if (source == null)\r\n return [];\r\n var result = source.map(function (s, i) { return i; });\r\n result.sort(function (a, b) { return _this.compare(source[a], source[b]); });\r\n return result;\r\n };\r\n SortContext.prototype.compare = function (a, b) {\r\n var _ = this;\r\n var d = _._comparer(a, b);\r\n if (d == 0 && _._next)\r\n return _._next.compare(a, b);\r\n return _._order * d;\r\n };\r\n return SortContext;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SortContext;\r\n});\r\n//# sourceMappingURL=SortContext.js.map","/*\r\n * @author 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 * as Values from '../../Compare'\r\nimport Order from './Order'\r\nimport Integer from '../../Integer'\r\nimport forEach from \"../Enumeration/forEach\"\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","SortContext.constructor","get","SortContext.order","enumerable","configurable","SortContext.generateSortedIndexes","SortContext.compare","Object","defineProperty","value"],"mappings":"CAAA,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,GCHtB,YAMA,IAAYM,GAAMJ,EAAM,iBAIxBK,EAAA,WAWCA,QAAAA,GACWA,EACAA,EACAA,GADVC,SAAAA,IAAAA,EAAoCA,EAAOA,SAC3CA,SAAAA,IAAAA,EAAAA,GAFUA,KAAAA,MAAAA,EACAA,KAAAA,UAAAA,EACAA,KAAAA,OAAAA,EA+BZD,MArCCA,QAAAA,eAAIA,EAAAA,UAAAA,SDHOE,ICGXF,WACEG,MAAOA,MAAKA,QDHHC,YAAY,EACZC,cAAc,ICiBzBL,EAAAA,UAAAA,sBAAAA,SAAsBA,GAAtBM,GAAAA,GAAAA,IAECA,IAAWA,MAARA,EAAcA,QACjBA,IAAIA,GAAkBA,EAAOA,IAAIA,SAACA,EAAGA,GAAIA,MAAAA,IAEzCA,OADAA,GAAOA,KAAKA,SAACA,EAAGA,GAAMA,MAAAA,GAAKA,QAAQA,EAAOA,GAAIA,EAAOA,MAC9CA,GASRN,EAAAA,UAAAA,QAAAA,SAAQA,EAAKA,GAEZO,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,UAAUA,EAAGA,EACvBA,OAAMA,IAAHA,GAAQA,EAAEA,MAAcA,EAAEA,MAAMA,QAAQA,EAAGA,GACvCA,EAAEA,OAAOA,GAElBP,IA7CAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,ID2BIjB,EAAAA,WAAkBO","file":"System/Collections/Sorting/SortContext.js","sourcesContent":["(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport * as Values from '../../Compare'\r\nimport Integer from '../../Integer'\r\nimport forEach from \"../Enumeration/forEach\"\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 diff --git a/dist/umd.min/System/Compare.js b/dist/umd.min/System/Compare.js index be39f9ab..f041a834 100644 --- a/dist/umd.min/System/Compare.js +++ b/dist/umd.min/System/Compare.js @@ -1,8 +1,2 @@ -/// -/// -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var r=o(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports","./Types"],function(e,o){function r(e,o,r){return void 0===r&&(r=!0),e===o||!r&&e==o||a(e)&&a(o)}function t(e,o,t){return void 0===t&&(t=!0),r(e,o,t)?0:e&&u["default"].hasMember(e,i)?e.compareTo(o):o&&u["default"].hasMember(o,i)?-o.compareTo(e):e>o||t&&(0===e&&0==o||null===e&&void 0===o)?1:o>e||t&&(0===o&&0==e||null===o&&void 0===e)?-1:NaN}var u=e("./Types"),a=u["default"].isTrueNaN;o.areEqual=r;var i="compareTo";o.compare=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","./Types"],e)}(function(e,o){function r(e,o,r){return void 0===r&&(r=!0),e===o||!r&&e==o||a(e)&&a(o)}function t(e,o,t){return void 0===t&&(t=!0),r(e,o,t)?0:e&&u["default"].hasMember(e,i)?e.compareTo(o):o&&u["default"].hasMember(o,i)?-o.compareTo(e):e>o||t&&(0===e&&0==o||null===e&&o===n)?1:o>e||t&&(0===o&&0==e||null===o&&e===n)?-1:NaN}var u=e("./Types"),a=u["default"].isTrueNaN,n=void 0;o.areEqual=r;var i="compareTo";o.compare=t}); //# sourceMappingURL=Compare.js.map diff --git a/dist/umd.min/System/Compare.js.map b/dist/umd.min/System/Compare.js.map index 68f02a6d..3e5c3069 100644 --- a/dist/umd.min/System/Compare.js.map +++ b/dist/umd.min/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","areEqual","a","b","strict","compare","Types_1","isTrueNaN","COMPARE_TO"],"mappings":";;;;;;CAMA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,WAAY,SAAUI,EAASF,GCKzD,QAAAM,GAAyBC,EAAOC,EAAOC,GAEtCH,MAFsCA,UAAAA,IAAAA,GAAAA,GAE/BA,IAAIA,IAAMA,GAAUA,GAAGA,GAAKA,EAAUA,IAAMA,EAAUA,GAO9D,QAAAI,GAAwBH,EAAOC,EAAOC,GAGrCC,MAHqCA,UAAAA,IAAAA,GAAAA,GAGlCA,EAASA,EAAGA,EAAGA,GACVA,EAELA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,GAClBA,EAAEA,UAAUA,GACZA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,IACtBA,EAAEA,UAAUA,GAIlBA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAgBA,SAAJA,GAC1CA,EAELA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAgBA,SAAJA,GAC1CA,GAEDA,IAvCR,GAAAC,GAAAT,EAAiB,WACVU,EAAYD,EAAAA,WAAKC,SAURZ,GAAAM,SAAQA,CAKxB,IAAMO,GAAa,WAIHb,GAAAU,QAAOA","file":"System/Compare.js","sourcesContent":["///\r\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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Types'], function (require, exports) {\r\n var Types_1 = require('./Types');\r\n var isTrueNaN = Types_1.default.isTrueNaN;\r\n function areEqual(a, b, strict) {\r\n if (strict === void 0) { strict = true; }\r\n return a === b || !strict && a == b || isTrueNaN(a) && isTrueNaN(b);\r\n }\r\n exports.areEqual = areEqual;\r\n var COMPARE_TO = \"compareTo\";\r\n function compare(a, b, strict) {\r\n if (strict === void 0) { strict = true; }\r\n if (areEqual(a, b, strict))\r\n return 0;\r\n if (a && Types_1.default.hasMember(a, COMPARE_TO))\r\n return a.compareTo(b);\r\n else if (b && Types_1.default.hasMember(b, COMPARE_TO))\r\n return -b.compareTo(a);\r\n if (a > b || strict && (a === 0 && b == 0 || a === null && b === undefined))\r\n return 1;\r\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === undefined))\r\n return -1;\r\n return NaN;\r\n }\r\n exports.compare = compare;\r\n});\r\n//# sourceMappingURL=Compare.js.map","///\r\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 Type from './Types';\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nexport const enum CompareResult {\r\n\tEqual = 0,\r\n\tGreater = 1,\r\n\tLess = -1\r\n}\r\n\r\n\r\n// Used for special equals cases like NaN.\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\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);\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a);\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===undefined))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===undefined))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\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","compare","Types_1","isTrueNaN","VOID0","COMPARE_TO"],"mappings":"CAAA,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,GCQtB,QAAAM,GAAyBC,EAAOC,EAAOC,GAEtCH,MAFsCA,UAAAA,IAAAA,GAAAA,GAE/BA,IAAIA,IAAMA,GAAUA,GAAGA,GAAKA,EAAUA,IAAMA,EAAUA,GAO9D,QAAAI,GAAwBH,EAAOC,EAAOC,GAGrCC,MAHqCA,UAAAA,IAAAA,GAAAA,GAGlCA,EAASA,EAAGA,EAAGA,GACVA,EAELA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,GAClBA,EAAEA,UAAUA,GACZA,GAAKA,EAAAA,WAAKA,UAAUA,EAAGA,IACtBA,EAAEA,UAAUA,GAIlBA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAYA,IAAIA,GAC9CA,EAELA,EAAEA,GAAKA,IAAeA,IAAJA,GAAYA,GAAHA,GAAYA,OAAJA,GAAYA,IAAIA,GAC9CA,GAEDA,IAnCR,GAAAC,GAAAT,EAAiB,WACVU,EAAYD,EAAAA,WAAKC,UAElBC,EAAY,MAIFb,GAAAM,SAAQA,CAKxB,IAAMQ,GAAa,WAIHd,GAAAU,QAAOA","file":"System/Compare.js","sourcesContent":["(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 var Types_1 = require('./Types');\n var isTrueNaN = Types_1.default.isTrueNaN;\n var VOID0 = void 0;\n function areEqual(a, b, strict) {\n if (strict === void 0) { strict = true; }\n return a === b || !strict && a == b || 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.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 }\n exports.compare = compare;\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 equals cases like NaN.\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\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);\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a);\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"]} \ No newline at end of file diff --git a/dist/umd.min/System/Diagnostics/Stopwatch.js b/dist/umd.min/System/Diagnostics/Stopwatch.js index bd5458f4..50b14468 100644 --- a/dist/umd.min/System/Diagnostics/Stopwatch.js +++ b/dist/umd.min/System/Diagnostics/Stopwatch.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Time/TimeSpan"],function(e,t){var n=e("../Time/TimeSpan"),i=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return(new Date).getTime()},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(t){var i=e.getTimestampMilliseconds();return t(),new n["default"](e.getTimestampMilliseconds()-i)},e.prototype.record=function(t){var n=e.measure(t);return this._elapsed+=n.milliseconds,n},e.prototype.start=function(){var t=this;t._isRunning||(t._startTimeStamp=e.getTimestampMilliseconds(),t._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 t=this;if(t._isRunning){var i=e.getTimestampMilliseconds(),r=t._startTimeStamp,s=i-r;return t._startTimeStamp=i,t._elapsed+=s,new n["default"](s)}return n["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?e.getTimestampMilliseconds()-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}); +!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";var n=e("../Time/TimeSpan"),i=function(){function e(){this.reset()}return e.getTimestampMilliseconds=function(){return(new Date).getTime()},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(t){var i=e.getTimestampMilliseconds();return t(),new n["default"](e.getTimestampMilliseconds()-i)},e.prototype.record=function(t){var n=e.measure(t);return this._elapsed+=n.milliseconds,n},e.prototype.start=function(){var t=this;t._isRunning||(t._startTimeStamp=e.getTimestampMilliseconds(),t._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 t=this;if(t._isRunning){var i=e.getTimestampMilliseconds(),r=t._startTimeStamp,s=i-r;return t._startTimeStamp=i,t._elapsed+=s,new n["default"](s)}return n["default"].zero},Object.defineProperty(e.prototype,"currentLapMilliseconds",{get:function(){return this._isRunning?e.getTimestampMilliseconds()-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}); //# 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 ab385c23..168183f9 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":["deps","factory","module","exports","v","require","undefined","define","amd","TimeSpan_1","Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","get","Stopwatch.isRunning","enumerable","configurable","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,oBAAqB,SAAUI,EAASF,GCNlE,GAAAM,GAAAJ,EAAqB,oBAGrBK,EAAA,WAkBCA,QAAAA,KAECC,KAAKA,QAkGPD,MAlHQA,GAAAA,yBAAPA,WAECE,OAAOA,GAAKA,OAAQA,WAOrBF,OAAAA,eAAIA,EAAAA,UAAAA,aDAOG,ICAXH,WAECI,MAAOA,MAAKA,YDCFC,YAAY,EACZC,cAAc,ICMlBN,EAAAA,SAAPA,WAECO,GAAIA,GAAIA,GAAIA,EAEZA,OADAA,GAAEA,QACKA,GAGDP,EAAAA,QAAPA,SAAeA,GAEdQ,GAAIA,GAAQA,EAAUA,0BAEtBA,OADAA,KACOA,GAAIA,GAAAA,WAASA,EAAUA,2BAA6BA,IAG5DR,EAAAA,UAAAA,OAAAA,SAAOA,GAGNS,GAAIA,GAAIA,EAAUA,QAAQA,EAE1BA,OADAA,MAAKA,UAAYA,EAAEA,aACZA,GAGRT,EAAAA,UAAAA,MAAAA,WAECU,GAAIA,GAAIA,IACJA,GAAEA,aACLA,EAAEA,gBAAkBA,EAAUA,2BAC9BA,EAAEA,YAAaA,IAIjBV,EAAAA,UAAAA,KAAAA,WAECW,GAAIA,GAAIA,IACLA,GAAEA,aACJA,EAAEA,UAAYA,EAAEA,uBAChBA,EAAEA,YAAaA,IAIjBX,EAAAA,UAAAA,MAAAA,WAECY,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,EACbA,EAAEA,YAAaA,EACfA,EAAEA,gBAAkBA,KAKrBZ,EAAAA,UAAAA,IAAAA,WAECa,GAAIA,GAAIA,IACRA,IAAGA,EAAEA,WAAYA,CAChBA,GAAIA,GAAIA,EAAUA,2BACdA,EAAIA,EAAEA,gBACNA,EAAIA,EAAIA,CAGZA,OAFAA,GAAEA,gBAAkBA,EACpBA,EAAEA,UAAYA,EACPA,GAAIA,GAAAA,WAASA,GAGpBA,MAAOA,GAAAA,WAASA,MAGlBb,OAAAA,eAAIA,EAAAA,UAAAA,0BDpBOG,ICoBXH,WAECc,MAAOA,MAAKA,WACRA,EAAUA,2BAA6BA,KAAKA,gBAC7CA,GDnBOT,YAAY,EACZC,cAAc,ICqBzBN,OAAAA,eAAIA,EAAAA,UAAAA,cDlBOG,ICkBXH,WAECe,MAAOA,MAAKA,WACTA,GAAIA,GAAAA,WAASA,KAAKA,wBAClBA,EAAAA,WAASA,MDjBFV,YAAY,EACZC,cAAc,ICmBzBN,OAAAA,eAAIA,EAAAA,UAAAA,uBDhBOG,ICgBXH,WAECgB,GAAIA,GAAIA,KACJA,EAAcA,EAAEA,QAKpBA,OAHGA,GAAEA,aACJA,GAAeA,EAAEA,wBAEXA,GDjBGX,YAAY,EACZC,cAAc,ICmBzBN,OAAAA,eAAIA,EAAAA,UAAAA,WDhBOG,ICgBXH,WAECiB,MAAOA,IAAIA,GAAAA,WAASA,KAAKA,sBDffZ,YAAY,EACZC,cAAc,ICiB1BN,IAtHAkB,QAAAC,eAAA1B,EAAA,cAAA2B,OAAA,ID0GI3B,EAAAA,WAAkBO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Time/TimeSpan'], function (require, exports) {\r\n var TimeSpan_1 = require('../Time/TimeSpan');\r\n var Stopwatch = (function () {\r\n function Stopwatch() {\r\n this.reset();\r\n }\r\n Stopwatch.getTimestampMilliseconds = function () {\r\n return (new Date()).getTime();\r\n };\r\n Object.defineProperty(Stopwatch.prototype, \"isRunning\", {\r\n get: function () {\r\n return this._isRunning;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Stopwatch.startNew = function () {\r\n var s = new Stopwatch();\r\n s.start();\r\n return s;\r\n };\r\n Stopwatch.measure = function (closure) {\r\n var start = Stopwatch.getTimestampMilliseconds();\r\n closure();\r\n return new TimeSpan_1.default(Stopwatch.getTimestampMilliseconds() - start);\r\n };\r\n Stopwatch.prototype.record = function (closure) {\r\n var e = Stopwatch.measure(closure);\r\n this._elapsed += e.milliseconds;\r\n return e;\r\n };\r\n Stopwatch.prototype.start = function () {\r\n var _ = this;\r\n if (!_._isRunning) {\r\n _._startTimeStamp = Stopwatch.getTimestampMilliseconds();\r\n _._isRunning = true;\r\n }\r\n };\r\n Stopwatch.prototype.stop = function () {\r\n var _ = this;\r\n if (_._isRunning) {\r\n _._elapsed += _.currentLapMilliseconds;\r\n _._isRunning = false;\r\n }\r\n };\r\n Stopwatch.prototype.reset = function () {\r\n var _ = this;\r\n _._elapsed = 0;\r\n _._isRunning = false;\r\n _._startTimeStamp = NaN;\r\n };\r\n Stopwatch.prototype.lap = function () {\r\n var _ = this;\r\n if (_._isRunning) {\r\n var t = Stopwatch.getTimestampMilliseconds();\r\n var s = _._startTimeStamp;\r\n var e = t - s;\r\n _._startTimeStamp = t;\r\n _._elapsed += e;\r\n return new TimeSpan_1.default(e);\r\n }\r\n else\r\n return TimeSpan_1.default.zero;\r\n };\r\n Object.defineProperty(Stopwatch.prototype, \"currentLapMilliseconds\", {\r\n get: function () {\r\n return this._isRunning\r\n ? (Stopwatch.getTimestampMilliseconds() - this._startTimeStamp)\r\n : 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"currentLap\", {\r\n get: function () {\r\n return this._isRunning\r\n ? new TimeSpan_1.default(this.currentLapMilliseconds)\r\n : TimeSpan_1.default.zero;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"elapsedMilliseconds\", {\r\n get: function () {\r\n var _ = this;\r\n var timeElapsed = _._elapsed;\r\n if (_._isRunning)\r\n timeElapsed += _.currentLapMilliseconds;\r\n return timeElapsed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Stopwatch.prototype, \"elapsed\", {\r\n get: function () {\r\n return new TimeSpan_1.default(this.elapsedMilliseconds);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Stopwatch;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Stopwatch;\r\n});\r\n//# sourceMappingURL=Stopwatch.js.map","/*\r\n * @author 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 TimeSpan from '../Time/TimeSpan';\r\n\r\n\r\nexport default\r\nclass Stopwatch\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(Stopwatch.getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\trecord(closure:() => void):TimeSpan\r\n\t{\r\n\t\t// Although a reasonably thread safe way to record, it may not correctly represent time in an async scenario.\r\n\t\tvar e = Stopwatch.measure(closure);\r\n\t\tthis._elapsed += e.milliseconds;\r\n\t\treturn e;\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\t_._startTimeStamp = Stopwatch.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 = Stopwatch.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? (Stopwatch.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","TimeSpan_1","Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","get","Stopwatch.isRunning","enumerable","configurable","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed","Object","defineProperty","value"],"mappings":"CAAA,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,GCHtB,YAEA,IAAAM,GAAAJ,EAAqB,oBAGrBK,EAAA,WAkBCA,QAAAA,KAECC,KAAKA,QAkGPD,MAlHQA,GAAAA,yBAAPA,WAECE,OAAOA,GAAKA,OAAQA,WAOrBF,OAAAA,eAAIA,EAAAA,UAAAA,aDJOG,ICIXH,WAECI,MAAOA,MAAKA,YDHFC,YAAY,EACZC,cAAc,ICUlBN,EAAAA,SAAPA,WAECO,GAAIA,GAAIA,GAAIA,EAEZA,OADAA,GAAEA,QACKA,GAGDP,EAAAA,QAAPA,SAAeA,GAEdQ,GAAIA,GAAQA,EAAUA,0BAEtBA,OADAA,KACOA,GAAIA,GAAAA,WAASA,EAAUA,2BAA6BA,IAG5DR,EAAAA,UAAAA,OAAAA,SAAOA,GAGNS,GAAIA,GAAIA,EAAUA,QAAQA,EAE1BA,OADAA,MAAKA,UAAYA,EAAEA,aACZA,GAGRT,EAAAA,UAAAA,MAAAA,WAECU,GAAIA,GAAIA,IACJA,GAAEA,aACLA,EAAEA,gBAAkBA,EAAUA,2BAC9BA,EAAEA,YAAaA,IAIjBV,EAAAA,UAAAA,KAAAA,WAECW,GAAIA,GAAIA,IACLA,GAAEA,aACJA,EAAEA,UAAYA,EAAEA,uBAChBA,EAAEA,YAAaA,IAIjBX,EAAAA,UAAAA,MAAAA,WAECY,GAAIA,GAAIA,IACRA,GAAEA,SAAWA,EACbA,EAAEA,YAAaA,EACfA,EAAEA,gBAAkBA,KAKrBZ,EAAAA,UAAAA,IAAAA,WAECa,GAAIA,GAAIA,IACRA,IAAGA,EAAEA,WAAYA,CAChBA,GAAIA,GAAIA,EAAUA,2BACdA,EAAIA,EAAEA,gBACNA,EAAIA,EAAIA,CAGZA,OAFAA,GAAEA,gBAAkBA,EACpBA,EAAEA,UAAYA,EACPA,GAAIA,GAAAA,WAASA,GAGpBA,MAAOA,GAAAA,WAASA,MAGlBb,OAAAA,eAAIA,EAAAA,UAAAA,0BDxBOG,ICwBXH,WAECc,MAAOA,MAAKA,WACRA,EAAUA,2BAA6BA,KAAKA,gBAC7CA,GDvBOT,YAAY,EACZC,cAAc,ICyBzBN,OAAAA,eAAIA,EAAAA,UAAAA,cDtBOG,ICsBXH,WAECe,MAAOA,MAAKA,WACTA,GAAIA,GAAAA,WAASA,KAAKA,wBAClBA,EAAAA,WAASA,MDrBFV,YAAY,EACZC,cAAc,ICuBzBN,OAAAA,eAAIA,EAAAA,UAAAA,uBDpBOG,ICoBXH,WAECgB,GAAIA,GAAIA,KACJA,EAAcA,EAAEA,QAKpBA,OAHGA,GAAEA,aACJA,GAAeA,EAAEA,wBAEXA,GDrBGX,YAAY,EACZC,cAAc,ICuBzBN,OAAAA,eAAIA,EAAAA,UAAAA,WDpBOG,ICoBXH,WAECiB,MAAOA,IAAIA,GAAAA,WAASA,KAAKA,sBDnBfZ,YAAY,EACZC,cAAc,ICqB1BN,IAtHAkB,QAAAC,eAAA1B,EAAA,cAAA2B,OAAA,IDsGI3B,EAAAA,WAAkBO","file":"System/Diagnostics/Stopwatch.js","sourcesContent":["(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 var Stopwatch = (function () {\n function Stopwatch() {\n this.reset();\n }\n Stopwatch.getTimestampMilliseconds = function () {\n return (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\n closure();\n return new TimeSpan_1.default(Stopwatch.getTimestampMilliseconds() - start);\n };\n Stopwatch.prototype.record = function (closure) {\n var e = Stopwatch.measure(closure);\n this._elapsed += e.milliseconds;\n return e;\n };\n Stopwatch.prototype.start = function () {\n var _ = this;\n if (!_._isRunning) {\n _._startTimeStamp = Stopwatch.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 = Stopwatch.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 ? (Stopwatch.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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport TimeSpan from '../Time/TimeSpan';\r\n\r\n\r\nexport default\r\nclass Stopwatch\r\n{\r\n\r\n\tstatic getTimestampMilliseconds():number\r\n\t{\r\n\t\treturn (new Date()).getTime();\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 = Stopwatch.getTimestampMilliseconds();\r\n\t\tclosure();\r\n\t\treturn new TimeSpan(Stopwatch.getTimestampMilliseconds() - start);\r\n\t}\r\n\r\n\trecord(closure:() => void):TimeSpan\r\n\t{\r\n\t\t// Although a reasonably thread safe way to record, it may not correctly represent time in an async scenario.\r\n\t\tvar e = Stopwatch.measure(closure);\r\n\t\tthis._elapsed += e.milliseconds;\r\n\t\treturn e;\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\t_._startTimeStamp = Stopwatch.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 = Stopwatch.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? (Stopwatch.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.js b/dist/umd.min/System/Disposable/DisposableBase.js index 8e509e99..8b4244d9 100644 --- a/dist/umd.min/System/Disposable/DisposableBase.js +++ b/dist/umd.min/System/Disposable/DisposableBase.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var i=o(require,exports);void 0!==i&&(module.exports=i)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports","./ObjectDisposedException"],function(e,o){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["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"]=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","./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}); //# 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 8616539d..b2281820 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":["deps","factory","module","exports","v","require","undefined","define","amd","ObjectDisposedException_1","DisposableBase","DisposableBase.constructor","get","DisposableBase.wasDisposed","enumerable","configurable","DisposableBase.throwIfDisposed","DisposableBase.dispose","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,6BAA8B,SAAUI,EAASF,GCH3E,GAAAM,GAAAJ,EAAoC,6BAEpCK,EAAA,WAGCA,QAAAA,GAAoBA,GAAAC,KAAAA,WAAAA,EAIZA,KAAAA,cAAuBA,EA0ChCD,MAzCCA,QAAAA,eAAIA,EAAAA,UAAAA,eDEOE,ICFXF,WAECG,MAAOA,MAAKA,cDGFC,YAAY,EACZC,cAAc,ICEfL,EAAAA,UAAAA,gBAAVA,SACCA,EACAA,GAEAM,GAFAA,SAAAA,IAAAA,EAAoBA,KAAKA,uBAEtBA,KAAKA,aACPA,KAAMA,IAAIA,GAAAA,WAAwBA,EAAYA,EAC/CA,QAAOA,GAIRN,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAIA,IACRA,KAAIA,EAAEA,aACNA,CAGCA,EAAEA,cAAeA,CACjBA,KAECA,EAAEA,aDPU,QCWTA,EAAEA,YACJA,EAAEA,gBAMIP,EAAAA,UAAAA,WAAVA,aAEDA,IAEAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,IDZIjB,EAAAA,WCYWO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ObjectDisposedException'], function (require, exports) {\r\n ///\r\n var ObjectDisposedException_1 = require('./ObjectDisposedException');\r\n var DisposableBase = (function () {\r\n function DisposableBase(_finalizer) {\r\n this._finalizer = _finalizer;\r\n this._wasDisposed = false;\r\n }\r\n Object.defineProperty(DisposableBase.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return this._wasDisposed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DisposableBase.prototype.throwIfDisposed = function (message, objectName) {\r\n if (objectName === void 0) { objectName = this._disposableObjectName; }\r\n if (this._wasDisposed)\r\n throw new ObjectDisposedException_1.default(objectName, message);\r\n return true;\r\n };\r\n DisposableBase.prototype.dispose = function () {\r\n var _ = this;\r\n if (!_._wasDisposed) {\r\n _._wasDisposed = true;\r\n try {\r\n _._onDispose();\r\n }\r\n finally {\r\n if (_._finalizer)\r\n _._finalizer();\r\n }\r\n }\r\n };\r\n DisposableBase.prototype._onDispose = function () { };\r\n return DisposableBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DisposableBase;\r\n});\r\n//# sourceMappingURL=DisposableBase.js.map","/*\r\n * @author 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 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","DisposableBase.constructor","get","DisposableBase.wasDisposed","enumerable","configurable","DisposableBase.throwIfDisposed","DisposableBase.dispose","Object","defineProperty","value"],"mappings":"CAAA,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,GCFtB,YAEA,IAAAM,GAAAJ,EAAoC,6BAEpCK,EAAA,WAGCA,QAAAA,GAAoBA,GAAAC,KAAAA,WAAAA,EAIZA,KAAAA,cAAuBA,EA0ChCD,MAzCCA,QAAAA,eAAIA,EAAAA,UAAAA,eDDOE,ICCXF,WAECG,MAAOA,MAAKA,cDAFC,YAAY,EACZC,cAAc,ICKfL,EAAAA,UAAAA,gBAAVA,SACCA,EACAA,GAEAM,GAFAA,SAAAA,IAAAA,EAAoBA,KAAKA,uBAEtBA,KAAKA,aACPA,KAAMA,IAAIA,GAAAA,WAAwBA,EAAYA,EAC/CA,QAAOA,GAIRN,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAIA,IACRA,KAAIA,EAAEA,aACNA,CAGCA,EAAEA,cAAeA,CACjBA,KAECA,EAAEA,aDVU,QCcTA,EAAEA,YACJA,EAAEA,gBAMIP,EAAAA,UAAAA,WAAVA,aAEDA,IAEAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,IDfIjB,EAAAA,WCeWO","file":"System/Disposable/DisposableBase.js","sourcesContent":["(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'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 diff --git a/dist/umd.min/System/Disposable/ObjectDisposedException.js b/dist/umd.min/System/Disposable/ObjectDisposedException.js index 843f257f..0cac74b3 100644 --- a/dist/umd.min/System/Disposable/ObjectDisposedException.js +++ b/dist/umd.min/System/Disposable/ObjectDisposedException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Exceptions/InvalidOperationException"],function(e,t){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["default"]);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 2a2bf704..137c10df 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","deps","factory","module","exports","v","require","undefined","define","amd","InvalidOperationException_1","NAME","ObjectDisposedException","_super","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,2CAA4C,SAAUI,EAASF,GCTzF,GAAAM,GAAAJ,EAAsC,2CAGhCK,EAAc,0BAEpBC,EAAA,SAAAC,GAQCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAASA,EAAgBA,SAACA,GAC/BA,EAAEA,WAAaA,IA2BlBF,MAvCQA,WAAAA,EAAAA,GAiBGA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,UAGxBA,OAFAA,GAAQA,EAASA,IAAMA,EAAQA,KAAQA,GAEhCA,IAAMA,EAAEA,KAAOA,KAAOA,EAAQA,EAAEA,QAAUA,KAG3CJ,EAAAA,gBAAPA,SACCA,EACAA,EACAA,GAEAK,GAAGA,EAAWA,YACbA,KAAMA,IAAIA,GAAwBA,EAAYA,IAGjDL,GAvCQF,EAAAA,WAFRX,QAAAmB,eAAAd,EAAA,cAAAe,OAAA,ID+BIf,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Exceptions/InvalidOperationException'], function (require, exports) {\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var NAME = 'ObjectDisposedException';\r\n var ObjectDisposedException = (function (_super) {\r\n __extends(ObjectDisposedException, _super);\r\n function ObjectDisposedException(objectName, message, innerException) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, message, innerException, function (_) {\r\n _.objectName = objectName;\r\n });\r\n }\r\n ObjectDisposedException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n ObjectDisposedException.prototype.toString = function () {\r\n var _ = this, oName = _.objectName;\r\n oName = oName ? ('{' + oName + '} ') : '';\r\n return '[' + _.name + ': ' + oName + _.message + ']';\r\n };\r\n ObjectDisposedException.throwIfDisposed = function (disposable, objectName, message) {\r\n if (disposable.wasDisposed)\r\n throw new ObjectDisposedException(objectName, message);\r\n };\r\n return ObjectDisposedException;\r\n })(InvalidOperationException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ObjectDisposedException;\r\n});\r\n//# sourceMappingURL=ObjectDisposedException.js.map","/*\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 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","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed","defineProperty","value"],"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,2CAA4CN,IAE/E,SAAUI,EAASF,GCNtB,YAGA,IAAAM,GAAAJ,EAAsC,2CAGhCK,EAAc,0BAEpBC,EAAA,SAAAC,GAQCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAASA,EAAgBA,SAACA,GAC/BA,EAAEA,WAAaA,IA2BlBF,MAvCQA,WAAAA,EAAAA,GAiBGA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,KAAMA,EAAQA,EAAEA,UAGxBA,OAFAA,GAAQA,EAASA,IAAMA,EAAQA,KAAQA,GAEhCA,IAAMA,EAAEA,KAAOA,KAAOA,EAAQA,EAAEA,QAAUA,KAG3CJ,EAAAA,gBAAPA,SACCA,EACAA,EACAA,GAEAK,GAAGA,EAAWA,YACbA,KAAMA,IAAIA,GAAwBA,EAAYA,IAGjDL,GAvCQF,EAAAA,WAFRV,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,ID0BIf,EAAAA,WAAkBQ","file":"System/Disposable/ObjectDisposedException.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\", '../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'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 diff --git a/dist/umd.min/System/Disposable/Utility.js b/dist/umd.min/System/Disposable/Utility.js index 56b023f8..99971c0a 100644 --- a/dist/umd.min/System/Disposable/Utility.js +++ b/dist/umd.min/System/Disposable/Utility.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,n){if("object"==typeof module&&"object"==typeof module.exports){var t=n(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,n)}(["require","exports","../Types"],function(e,n){function t(){for(var e=[],n=0;nt;t++){var o=e[t];if(o)if(n){var f=u(o,!0);f&&(r||(r=[]),r.push(f))}else{var l=!1;try{u(o,!1),l=!0}finally{!l&&i>t+1&&s(e,!1,t+1)}if(!l)break}}return r}var f=e("../Types");n.dispose=t,n.disposeWithoutException=r,n.disposeThese=i,n.using=o}); +!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"],e)}(function(e,n){"use strict";function t(){for(var e=[],n=0;nt;t++){var o=e[t];if(o)if(n){var f=s(o,!0);f&&(r||(r=[]),r.push(f))}else{var l=!1;try{s(o,!1),l=!0}finally{!l&&i>t+1&&u(e,!1,t+1)}if(!l)break}}return r}var f=e("../Types");n.dispose=t,n.disposeWithoutException=r,n.disposeThese=i,n.using=o}); //# sourceMappingURL=Utility.js.map diff --git a/dist/umd.min/System/Disposable/Utility.js.map b/dist/umd.min/System/Disposable/Utility.js.map index 92b1d002..4812fb9d 100644 --- a/dist/umd.min/System/Disposable/Utility.js.map +++ b/dist/umd.min/System/Disposable/Utility.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Disposable/Utility.js","System/Disposable/Utility.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","dispose","disposeWithoutException","disposeThese","disposables","trapExceptions","using","disposable","closure","disposeSingle","disposeTheseInternal","index","Types_1"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,YAAa,SAAUI,EAASF,GCM1D,QAAAM,KDCQ,ICDgBA,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGvBA,GAAqBA,GAAaA,GAUnC,QAAAC,KDJQ,ICIgCA,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGvCA,OAAOA,GAAqBA,GAAaA,GAS1C,QAAAC,GAA6BC,EAA2BC,GAEvDF,MAAOA,IAAeA,EAAYA,OAC/BA,EAAqBA,EAAYA,QAASA,GAC1CA,KAkBJ,QAAAG,GACCC,EACAC,GAEAF,IAECA,MAAOA,GAAQA,GD5BT,QCgCNA,EAAcA,GAAYA,IAS5B,QAAAG,GACCF,EACAF,GAEAI,GAAGA,EAAAA,WAAKA,GAAGA,GAAYA,OAAOA,WAAWA,WAExCA,GAAGA,EAEFA,IAECA,EAAWA,UAEZA,MAAMA,GAELA,MAAOA,OAIRA,GAAWA,SAGbA,OAAOA,MAMR,QAAAC,GACCN,EACAC,EACAM,GAAAD,SAAAA,IAAAA,EAAAA,EAKAA,KAHAA,GAAIA,GACAA,EAAMA,EAAYA,OAEVA,EAANA,EAAWA,IACjBA,CACCA,GAAIA,GAAOA,EAAYA,EACvBA,IAAIA,EACJA,GAAGA,EACHA,CACCA,GAAIA,GAAKA,EAAcA,GAAMA,EAC1BA,KAEEA,IAAYA,MAChBA,EAAWA,KAAKA,QAIlBA,CACCA,GAAIA,IAAUA,CACdA,KAECA,EAAcA,GAAMA,GACpBA,GAAUA,EDrDE,SC0DRA,GAAqBA,EAAVA,EAAQA,GAItBA,EAAqBA,GAAaA,EAAOA,EAAQA,GAInDA,IAAIA,EAASA,OAIfA,MAAOA,GAnJR,GAAAE,GAAAf,EAAiB,WAUDF,GAAAM,QAAOA,EAaPN,EAAAO,wBAAuBA,EAYvBP,EAAAQ,aAAYA,EAsBZR,EAAAW,MAAKA","file":"System/Disposable/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n 'use strict';\r\n function dispose() {\r\n var disposables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n disposables[_i - 0] = arguments[_i];\r\n }\r\n disposeTheseInternal(disposables, false);\r\n }\r\n exports.dispose = dispose;\r\n function disposeWithoutException() {\r\n var disposables = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n disposables[_i - 0] = arguments[_i];\r\n }\r\n return disposeTheseInternal(disposables, true);\r\n }\r\n exports.disposeWithoutException = disposeWithoutException;\r\n function disposeThese(disposables, trapExceptions) {\r\n return disposables && disposables.length\r\n ? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n : null;\r\n }\r\n exports.disposeThese = disposeThese;\r\n function using(disposable, closure) {\r\n try {\r\n return closure(disposable);\r\n }\r\n finally {\r\n disposeSingle(disposable, false);\r\n }\r\n }\r\n exports.using = using;\r\n function disposeSingle(disposable, trapExceptions) {\r\n if (Types_1.default.of(disposable).member('dispose').isFunction) {\r\n if (trapExceptions) {\r\n try {\r\n disposable.dispose();\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n else\r\n disposable.dispose();\r\n }\r\n return null;\r\n }\r\n function disposeTheseInternal(disposables, trapExceptions, index) {\r\n if (index === void 0) { index = 0; }\r\n var exceptions;\r\n var len = disposables.length;\r\n for (; index < len; index++) {\r\n var next = disposables[index];\r\n if (!next)\r\n continue;\r\n if (trapExceptions) {\r\n var ex = disposeSingle(next, true);\r\n if (ex) {\r\n if (!exceptions)\r\n exceptions = [];\r\n exceptions.push(ex);\r\n }\r\n }\r\n else {\r\n var success = false;\r\n try {\r\n disposeSingle(next, false);\r\n success = true;\r\n }\r\n finally {\r\n if (!success && index + 1 < len) {\r\n disposeTheseInternal(disposables, false, index + 1);\r\n }\r\n }\r\n if (!success)\r\n break;\r\n }\r\n }\r\n return exceptions;\r\n }\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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\n\r\n'use strict';\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 * @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\n\r\n/**\r\n * Takes any number of disposables and traps any errors that occur when disposing.\r\n * Returns an array of the exceptions thrown.\r\n * @param disposables\r\n * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeWithoutException(...disposables:IDisposable[]):any[]\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\treturn disposeTheseInternal(disposables, true);\r\n}\r\n\r\n/**\r\n * Takes an array of disposable objects and ensures they are disposed.\r\n * @param disposables\r\n * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeThese(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n{\r\n\treturn disposables && disposables.length\r\n\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t: null;\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(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\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 * @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\n\r\n/**\r\n * Takes any number of disposables and traps any errors that occur when disposing.\r\n * Returns an array of the exceptions thrown.\r\n * @param disposables\r\n * @returns {any[]} Returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeWithoutException(...disposables:IDisposable[]):any[]\r\n{\r\n\t// The disposables arguments array is effectively localized so it's safe.\r\n\treturn disposeTheseInternal(disposables, true);\r\n}\r\n\r\n/**\r\n * Takes an array of disposable objects and ensures they are disposed.\r\n * @param disposables\r\n * @param trapExceptions If true, prevents exceptions from being thrown when disposing.\r\n * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any.\r\n */\r\nexport function disposeThese(disposables:IDisposable[], trapExceptions?:boolean):any[]\r\n{\r\n\treturn disposables && disposables.length\r\n\t\t? disposeTheseInternal(disposables.slice(), trapExceptions)\r\n\t\t: null;\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(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\r\n ///\r\n var shallowCopy_1 = require('../Utility/shallowCopy');\r\n var DisposableBase_1 = require('../Disposable/DisposableBase');\r\n var AU = require('../Collections/Array/Utility');\r\n var DISPOSING = 'disposing', DISPOSED = 'disposed';\r\n var EventDispatcherEntry = (function (_super) {\r\n __extends(EventDispatcherEntry, _super);\r\n function EventDispatcherEntry(type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n _super.call(this);\r\n this.type = type;\r\n this.listener = listener;\r\n this.useCapture = useCapture;\r\n this.priority = priority;\r\n var _ = this;\r\n _.type = type;\r\n _.listener = listener;\r\n _.useCapture = useCapture;\r\n _.priority = priority;\r\n }\r\n EventDispatcherEntry.prototype.dispose = function () {\r\n this.listener = null;\r\n };\r\n Object.defineProperty(EventDispatcherEntry.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return this.listener == null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EventDispatcherEntry.prototype.matches = function (type, listener, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var _ = this;\r\n return _.type == type\r\n && _.listener == listener\r\n && _.useCapture == useCapture;\r\n };\r\n EventDispatcherEntry.prototype.equals = function (other) {\r\n var _ = this;\r\n return _.type == other.type\r\n && _.listener == other.listener\r\n && _.useCapture == other.useCapture\r\n && _.priority == other.priority;\r\n };\r\n return EventDispatcherEntry;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = EventDispatcherEntry;\r\n var EventDispatcher = (function (_super) {\r\n __extends(EventDispatcher, _super);\r\n function EventDispatcher() {\r\n _super.apply(this, arguments);\r\n this._isDisposing = false;\r\n }\r\n EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n var l = this._listeners;\r\n if (!l)\r\n this._listeners = l = [];\r\n l.push(new EventDispatcherEntry(type, listener, useCapture, priority));\r\n };\r\n EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (priority === void 0) { priority = 0; }\r\n if (!this.hasEventListener(type, listener, useCapture))\r\n this.addEventListener(type, listener, useCapture, priority);\r\n };\r\n EventDispatcher.prototype.hasEventListener = function (type, listener, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var l = this._listeners;\r\n return l && l.some(function (value) {\r\n return type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture);\r\n });\r\n };\r\n EventDispatcher.prototype.removeEventListener = function (type, listener, userCapture) {\r\n if (userCapture === void 0) { userCapture = false; }\r\n var l = this._listeners;\r\n if (l) {\r\n var i = AU.findIndex(l, function (entry) { return entry.matches(type, listener, userCapture); });\r\n if (i != -1) {\r\n var e = l[i];\r\n l.splice(i, 1);\r\n e.dispose();\r\n }\r\n }\r\n };\r\n EventDispatcher.prototype.dispatchEvent = function (e, params) {\r\n var _this = this;\r\n var _ = this, l = _._listeners;\r\n if (!l || !l.length)\r\n return false;\r\n var event;\r\n if (typeof e == \"string\") {\r\n event = Object.create(Event);\r\n if (!params)\r\n params = {};\r\n event.cancelable = !!params.cancelable;\r\n event.target = _;\r\n event.type = e;\r\n }\r\n else\r\n event = e;\r\n var type = event.type;\r\n var entries = [];\r\n l.forEach(function (e) { if (e.type == type)\r\n entries.push(e); });\r\n if (!entries.length)\r\n return false;\r\n entries.sort(function (a, b) { return b.priority - a.priority; });\r\n entries.forEach(function (entry) {\r\n var newEvent = Object.create(Event);\r\n shallowCopy_1.default(event, newEvent);\r\n newEvent.target = _this;\r\n entry.listener(newEvent);\r\n });\r\n return true;\r\n };\r\n Object.defineProperty(EventDispatcher, \"DISPOSING\", {\r\n get: function () { return DISPOSING; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EventDispatcher, \"DISPOSED\", {\r\n get: function () { return DISPOSED; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EventDispatcher.prototype, \"isDisposing\", {\r\n get: function () {\r\n return this._isDisposing;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EventDispatcher.prototype.dispose = function () {\r\n var _ = this;\r\n if (!_.wasDisposed && !_._isDisposing) {\r\n _._isDisposing = true;\r\n _.dispatchEvent(DISPOSING);\r\n _super.prototype.dispose.call(this);\r\n _.dispatchEvent(DISPOSED);\r\n var l = _._listeners;\r\n if (l) {\r\n this._listeners = null;\r\n l.forEach(function (e) { return e.dispose(); });\r\n }\r\n }\r\n };\r\n return EventDispatcher;\r\n })(DisposableBase_1.default);\r\n});\r\n//# sourceMappingURL=EventDispatcher.js.map","/*\r\n * @author 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 shallowCopy from '../Utility/shallowCopy';\r\nimport DisposableBase from '../Disposable/DisposableBase';\r\nimport * as AU from '../Collections/Array/Utility';\r\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\nexport default\r\nclass EventDispatcherEntry extends DisposableBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:EventListener,\r\n\t\tpublic useCapture:boolean = false,\r\n\t\tpublic priority:number = 0)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.useCapture = useCapture;\r\n\t\t_.priority = priority;\r\n\t\t// _.useWeakReference = useWeakReference;\r\n\t}\r\n\r\n\t// useWeakReference: boolean;\r\n\r\n\tdispose():void {\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\tget wasDisposed():boolean {\r\n\t\treturn this.listener==null;\r\n\t}\r\n\r\n\tmatches(type:string, listener:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t && _.listener==listener\r\n\t\t && _.useCapture==useCapture;\r\n\t}\r\n\r\n\tequals(other:EventDispatcherEntry):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==other.type\r\n\t\t && _.listener==other.listener\r\n\t\t && _.useCapture==other.useCapture\r\n\t\t && _.priority==other.priority\r\n\t\t\t// && this.useWeakReference == other.useWeakReference\r\n\t\t\t;\r\n\t}\r\n}\r\n\r\nclass EventDispatcher extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprivate _listeners:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tvar l:EventDispatcherEntry[] = this._listeners;\r\n\t\tif(!l)\r\n\t\t\tthis._listeners = l = [];\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\tl.push(new EventDispatcherEntry(type, listener, useCapture, priority));//, useWeakReference));\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:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener, useCapture))\r\n\t\t\tthis.addEventListener(type, listener, useCapture, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar l = this._listeners;\r\n\t\treturn l && l.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n type==value.type && (!listener || listener==value.listener && useCapture==value.useCapture)\r\n\t\t\t);\r\n\r\n\t}\r\n\r\n\tremoveEventListener(type:string, listener:EventListener, userCapture:boolean = false):void {\r\n\r\n\t\tvar l = this._listeners;\r\n\r\n\t\tif(l) {\r\n\t\t\tvar i = AU.findIndex(l, entry=> entry.matches(type, listener, userCapture));\r\n\t\t\tif(i!= -1) {\r\n\t\t\t\tvar e = l[i];\r\n\t\t\t\tl.splice(i, 1);\r\n\t\t\t\te.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:Event):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean {\r\n\r\n\t\tvar _ = this, l = _._listeners;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:Event;\r\n\r\n\t\tif(typeof e==\"string\") {\r\n\t\t\tevent = Object.create(Event);\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tevent.cancelable = !!params.cancelable;\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[] = [];//, propagate = true, prevent = false;\r\n\t\tl.forEach((e:EventDispatcherEntry):void => { if(e.type==type) entries.push(e); });\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort(function (a, b) { return b.priority - a.priority; });\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\t\tentry=> {\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.listener(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\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\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\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 = _._listeners;\r\n\t\t\tif(l) {\r\n\t\t\t\tthis._listeners = 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/EventDispatcher.js","System/Events/EventDispatcher.ts"],"names":["__extends","this","d","b","__","constructor","p","hasOwnProperty","prototype","Object","create","factory","module","exports","v","require","undefined","define","amd","shallowCopy_1","DisposableBase_1","AU","DISPOSING","DISPOSED","EventDispatcherEntry","_super","EventDispatcherEntry.constructor","EventDispatcherEntry.dispose","get","EventDispatcherEntry.wasDisposed","enumerable","configurable","EventDispatcherEntry.matches","EventDispatcherEntry.equals","defineProperty","value","EventDispatcher","EventDispatcher.constructor","EventDispatcher.addEventListener","EventDispatcher.registerEventListener","EventDispatcher.hasEventListener","EventDispatcher.removeEventListener","EventDispatcher.dispatchEvent","priority","a","EventDispatcher.DISPOSING","EventDispatcher.DISPOSED","EventDispatcher.isDisposing","EventDispatcher.dispose"],"mappings":"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","file":"System/Events/EventDispatcher.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\", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], 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 DISPOSING = 'disposing', DISPOSED = 'disposed';\n var EventDispatcherEntry = (function (_super) {\n __extends(EventDispatcherEntry, _super);\n function EventDispatcherEntry(type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n _super.call(this);\n this.type = type;\n this.listener = listener;\n this.useCapture = useCapture;\n this.priority = priority;\n var _ = this;\n _.type = type;\n _.listener = listener;\n _.useCapture = useCapture;\n _.priority = priority;\n }\n EventDispatcherEntry.prototype.dispose = function () {\n this.listener = null;\n };\n Object.defineProperty(EventDispatcherEntry.prototype, \"wasDisposed\", {\n get: function () {\n return this.listener == null;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcherEntry.prototype.matches = function (type, listener, useCapture) {\n if (useCapture === void 0) { useCapture = false; }\n var _ = this;\n return _.type == type\n && _.listener == listener\n && _.useCapture == useCapture;\n };\n EventDispatcherEntry.prototype.equals = function (other) {\n var _ = this;\n return _.type == other.type\n && _.listener == other.listener\n && _.useCapture == other.useCapture\n && _.priority == other.priority;\n };\n return EventDispatcherEntry;\n })(DisposableBase_1.default);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = EventDispatcherEntry;\n var EventDispatcher = (function (_super) {\n __extends(EventDispatcher, _super);\n function EventDispatcher() {\n _super.apply(this, arguments);\n this._isDisposing = false;\n }\n EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n var l = this._listeners;\n if (!l)\n this._listeners = l = [];\n l.push(new EventDispatcherEntry(type, listener, useCapture, priority));\n };\n EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n if (!this.hasEventListener(type, listener, useCapture))\n this.addEventListener(type, listener, useCapture, priority);\n };\n EventDispatcher.prototype.hasEventListener = function (type, listener, useCapture) {\n if (useCapture === void 0) { useCapture = false; }\n var l = this._listeners;\n return l && l.some(function (value) {\n return type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture);\n });\n };\n EventDispatcher.prototype.removeEventListener = function (type, listener, userCapture) {\n if (userCapture === void 0) { userCapture = false; }\n var l = this._listeners;\n if (l) {\n var i = AU.findIndex(l, function (entry) { return entry.matches(type, listener, userCapture); });\n if (i != -1) {\n var e = l[i];\n l.splice(i, 1);\n e.dispose();\n }\n }\n };\n EventDispatcher.prototype.dispatchEvent = function (e, params) {\n var _this = this;\n var _ = this, l = _._listeners;\n if (!l || !l.length)\n return false;\n var event;\n if (typeof e == \"string\") {\n event = Object.create(Event);\n if (!params)\n params = {};\n event.cancelable = !!params.cancelable;\n event.target = _;\n event.type = e;\n }\n else\n event = e;\n var type = event.type;\n var entries = [];\n l.forEach(function (e) { if (e.type == type)\n entries.push(e); });\n if (!entries.length)\n return false;\n entries.sort(function (a, b) { return b.priority - a.priority; });\n entries.forEach(function (entry) {\n var newEvent = Object.create(Event);\n shallowCopy_1.default(event, newEvent);\n newEvent.target = _this;\n entry.listener(newEvent);\n });\n return true;\n };\n Object.defineProperty(EventDispatcher, \"DISPOSING\", {\n get: function () { return DISPOSING; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcher, \"DISPOSED\", {\n get: function () { return DISPOSED; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventDispatcher.prototype, \"isDisposing\", {\n get: function () {\n return this._isDisposing;\n },\n enumerable: true,\n configurable: true\n });\n EventDispatcher.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 = _._listeners;\n if (l) {\n this._listeners = null;\n l.forEach(function (e) { return e.dispose(); });\n }\n }\n };\n return EventDispatcher;\n })(DisposableBase_1.default);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\n\r\nconst DISPOSING:string = 'disposing',\r\n DISPOSED:string = 'disposed';\r\n\r\nexport default\r\nclass EventDispatcherEntry extends DisposableBase\r\n{\r\n\r\n\tconstructor(\r\n\t\tpublic type:string,\r\n\t\tpublic listener:EventListener,\r\n\t\tpublic useCapture:boolean = false,\r\n\t\tpublic priority:number = 0)//, useWeakReference: boolean = false)\r\n\t{\r\n\t\tsuper();\r\n\t\tvar _ = this;\r\n\t\t_.type = type;\r\n\t\t_.listener = listener;\r\n\t\t_.useCapture = useCapture;\r\n\t\t_.priority = priority;\r\n\t\t// _.useWeakReference = useWeakReference;\r\n\t}\r\n\r\n\t// useWeakReference: boolean;\r\n\r\n\tdispose():void {\r\n\t\tthis.listener = null;\r\n\t}\r\n\r\n\tget wasDisposed():boolean {\r\n\t\treturn this.listener==null;\r\n\t}\r\n\r\n\tmatches(type:string, listener:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==type\r\n\t\t && _.listener==listener\r\n\t\t && _.useCapture==useCapture;\r\n\t}\r\n\r\n\tequals(other:EventDispatcherEntry):boolean {\r\n\t\tvar _ = this;\r\n\t\treturn _.type==other.type\r\n\t\t && _.listener==other.listener\r\n\t\t && _.useCapture==other.useCapture\r\n\t\t && _.priority==other.priority\r\n\t\t\t// && this.useWeakReference == other.useWeakReference\r\n\t\t\t;\r\n\t}\r\n}\r\n\r\nclass EventDispatcher extends DisposableBase implements IEventDispatcher\r\n{\r\n\r\n\tprivate _listeners:EventDispatcherEntry[];\r\n\r\n\taddEventListener(\r\n\t\ttype:string,\r\n\t\tlistener:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tvar l:EventDispatcherEntry[] = this._listeners;\r\n\t\tif(!l)\r\n\t\t\tthis._listeners = l = [];\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\tl.push(new EventDispatcherEntry(type, listener, useCapture, priority));//, useWeakReference));\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:EventListener,\r\n\t\tuseCapture:boolean = false,\r\n\t\tpriority:number = 0):void//, useWeakReference: boolean= false)\r\n\t{\r\n\t\tif(!this.hasEventListener(type, listener, useCapture))\r\n\t\t\tthis.addEventListener(type, listener, useCapture, priority);\r\n\t}\r\n\r\n\thasEventListener(type:string, listener?:EventListener, useCapture:boolean = false):boolean {\r\n\t\tvar l = this._listeners;\r\n\t\treturn l && l.some(\r\n\t\t\t\t(value:EventDispatcherEntry):boolean =>\r\n type==value.type && (!listener || listener==value.listener && useCapture==value.useCapture)\r\n\t\t\t);\r\n\r\n\t}\r\n\r\n\tremoveEventListener(type:string, listener:EventListener, userCapture:boolean = false):void {\r\n\r\n\t\tvar l = this._listeners;\r\n\r\n\t\tif(l) {\r\n\t\t\tvar i = AU.findIndex(l, entry=> entry.matches(type, listener, userCapture));\r\n\t\t\tif(i!= -1) {\r\n\t\t\t\tvar e = l[i];\r\n\t\t\t\tl.splice(i, 1);\r\n\t\t\t\te.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdispatchEvent(type:string, params?:any):boolean;\r\n\tdispatchEvent(event:Event):boolean;\r\n\tdispatchEvent(e:any, params?:any):boolean {\r\n\r\n\t\tvar _ = this, l = _._listeners;\r\n\t\tif(!l || !l.length)\r\n\t\t\treturn false;\r\n\r\n\t\tvar event:Event;\r\n\r\n\t\tif(typeof e==\"string\") {\r\n\t\t\tevent = Object.create(Event);\r\n\t\t\tif(!params)\r\n\t\t\t\tparams = {};\r\n\t\t\tevent.cancelable = !!params.cancelable;\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[] = [];//, propagate = true, prevent = false;\r\n\t\tl.forEach((e:EventDispatcherEntry):void => { if(e.type==type) entries.push(e); });\r\n\t\tif(!entries.length)\r\n\t\t\treturn false;\r\n\r\n\t\tentries.sort(function (a, b) { return b.priority - a.priority; });\r\n\r\n\t\t// For now... Just use simple...\r\n\t\tentries.forEach(\r\n\t\t\t\tentry=> {\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.listener(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\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\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\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 = _._listeners;\r\n\t\t\tif(l) {\r\n\t\t\t\tthis._listeners = 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/Exception.js b/dist/umd.min/System/Exception.js index 5d08dd3a..99128482 100644 --- a/dist/umd.min/System/Exception.js +++ b/dist/umd.min/System/Exception.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports"],function(e,t){var o="Exception",n=function(){function e(e,t,o){void 0===e&&(e=null),void 0===t&&(t=null),this.message=e;var n=this;n.name=n.getName(),n.data={},t&&(n.data.innerException=t),o&&o(n),Object.freeze(n)}return e.prototype.getName=function(){return o},e.prototype.toString=function(){var e=this,t=e.message;return t=t?": "+t:"","["+e.name+t+"]"},e.prototype.dispose=function(){var e=this.data;for(var t in e)e.hasOwnProperty(t)&&delete e[t]},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"],e)}(function(e,t){"use strict";var o="Exception",n=function(){function e(e,t,o){void 0===e&&(e=null),void 0===t&&(t=null),this.message=e;var n=this;n.name=n.getName(),n.data={},t&&(n.data.innerException=t),o&&o(n),Object.freeze(n)}return e.prototype.getName=function(){return o},e.prototype.toString=function(){var e=this,t=e.message;return t=t?": "+t:"","["+e.name+t+"]"},e.prototype.dispose=function(){var e=this.data;for(var t in e)e.hasOwnProperty(t)&&delete e[t]},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=Exception.js.map diff --git a/dist/umd.min/System/Exception.js.map b/dist/umd.min/System/Exception.js.map index 4ff594a3..e373f452 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":["deps","factory","module","exports","v","require","undefined","define","amd","NAME","Exception","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose","Object","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCF9C,GAAMM,GAAc,YAKpBC,EAAA,WAeCA,QAAAA,GACQA,EACPA,EACAA,GAFAC,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MADOA,KAAAA,QAAAA,CAIPA,IAAIA,GAAIA,IACRA,GAAEA,KAAOA,EAAEA,UACXA,EAAEA,QACCA,IACFA,EAAEA,KAAqBA,eAAIA,GAOzBA,GAAeA,EAAcA,GAChCA,OAAOA,OAAOA,GAoChBD,MA1BWA,GAAAA,UAAAA,QAAVA,WACEE,MAAOA,IAKTF,EAAAA,UAAAA,SAAAA,WAECG,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,OAGpBA,OAFAA,GAAIA,EAAKA,KAAOA,EAAKA,GAEdA,IAAMA,EAAEA,KAAOA,EAAIA,KAM3BH,EAAAA,UAAAA,QAAAA,WAECI,GAAIA,GAAOA,KAAKA,IAChBA,KAAIA,GAAIA,KAAKA,GAETA,EAAKA,eAAeA,UACfA,GAAKA,IAGhBJ,IApEAK,QAAAC,eAAAb,EAAA,cAAAc,OAAA,ID+BId,EAAAA,WAAkBO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n var NAME = 'Exception';\r\n var Exception = (function () {\r\n function Exception(message, innerException, beforeSealing) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n this.message = message;\r\n var _ = this;\r\n _.name = _.getName();\r\n _.data = {};\r\n if (innerException)\r\n _.data['innerException'] = innerException;\r\n if (beforeSealing)\r\n beforeSealing(_);\r\n Object.freeze(_);\r\n }\r\n Exception.prototype.getName = function () { return NAME; };\r\n Exception.prototype.toString = function () {\r\n var _ = this, m = _.message;\r\n m = m ? (': ' + m) : '';\r\n return '[' + _.name + m + ']';\r\n };\r\n Exception.prototype.dispose = function () {\r\n var data = this.data;\r\n for (var k in data) {\r\n if (data.hasOwnProperty(k))\r\n delete data[k];\r\n }\r\n };\r\n return Exception;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Exception;\r\n});\r\n//# sourceMappingURL=Exception.js.map","/*\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\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\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\t\tObject.freeze(_);\r\n\t}\r\n\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\tvar _ = this, m = _.message;\r\n\t\tm = m ? (': ' + m) : '';\r\n\r\n\t\treturn '[' + _.name + 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","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose","Object","defineProperty","value"],"mappings":"CAAA,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,GCFtB,YAMA,IAAMM,GAAc,YAKpBC,EAAA,WAeCA,QAAAA,GACQA,EACPA,EACAA,GAFAC,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MADOA,KAAAA,QAAAA,CAIPA,IAAIA,GAAIA,IACRA,GAAEA,KAAOA,EAAEA,UACXA,EAAEA,QACCA,IACFA,EAAEA,KAAqBA,eAAIA,GAOzBA,GAAeA,EAAcA,GAChCA,OAAOA,OAAOA,GAoChBD,MA1BWA,GAAAA,UAAAA,QAAVA,WACEE,MAAOA,IAKTF,EAAAA,UAAAA,SAAAA,WAECG,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,OAGpBA,OAFAA,GAAIA,EAAKA,KAAOA,EAAKA,GAEdA,IAAMA,EAAEA,KAAOA,EAAIA,KAM3BH,EAAAA,UAAAA,QAAAA,WAECI,GAAIA,GAAOA,KAAKA,IAChBA,KAAIA,GAAIA,KAAKA,GAETA,EAAKA,eAAeA,UACfA,GAAKA,IAGhBJ,IApEAK,QAAAC,eAAAb,EAAA,cAAAc,OAAA,IDwBId,EAAAA,WAAkBO","file":"System/Exception.js","sourcesContent":["(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 Object.freeze(_);\n }\n Exception.prototype.getName = function () { return NAME; };\n Exception.prototype.toString = function () {\n var _ = this, m = _.message;\n m = m ? (': ' + m) : '';\n return '[' + _.name + 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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n\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\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\t\tObject.freeze(_);\r\n\t}\r\n\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\tvar _ = this, m = _.message;\r\n\t\tm = m ? (': ' + m) : '';\r\n\r\n\t\treturn '[' + _.name + 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 diff --git a/dist/umd.min/System/ExceptionType.js b/dist/umd.min/System/ExceptionType.js index 2a14ea99..64f932f2 100644 --- a/dist/umd.min/System/ExceptionType.js +++ b/dist/umd.min/System/ExceptionType.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(r,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(r,e)}(["require","exports"],function(r,e){e.Error="Error",e.EvalError="EvalError",e.RangeError="RangeError",e.ReferenceError="ReferenceError",e.SyntaxError="SyntaxError",e.TypeError="TypeError",e.URIError="URIError"}); +!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"],r)}(function(r,e){e.Error="Error",e.EvalError="EvalError",e.RangeError="RangeError",e.ReferenceError="ReferenceError",e.SyntaxError="SyntaxError",e.TypeError="TypeError",e.URIError="URIError"}); //# sourceMappingURL=ExceptionType.js.map diff --git a/dist/umd.min/System/ExceptionType.js.map b/dist/umd.min/System/ExceptionType.js.map index 5c9e5d89..d086bc70 100644 --- a/dist/umd.min/System/ExceptionType.js.map +++ b/dist/umd.min/System/ExceptionType.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/ExceptionType.js","System/ExceptionType.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCM9CA,EAAAM,MAAQ,QAMRN,EAAAO,UAAY,YAMZP,EAAAQ,WAAa,aAObR,EAAAS,eAAiB,iBAMjBT,EAAAU,YAAc,cAMdV,EAAAW,UAAY,YAMZX,EAAAY,SAAW","file":"System/ExceptionType.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n exports.Error = 'Error';\r\n exports.EvalError = 'EvalError';\r\n exports.RangeError = 'RangeError';\r\n exports.ReferenceError = 'ReferenceError';\r\n exports.SyntaxError = 'SyntaxError';\r\n exports.TypeError = 'TypeError';\r\n exports.URIError = 'URIError';\r\n});\r\n//# sourceMappingURL=ExceptionType.js.map","/*\r\n * @author 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 * Since the 'Error' type in JavaScript is simply {name:string, message:string},\r\n * Exception types provide a means for identifying and properly reusing 'name'.\r\n *\r\n * This is mostly for reference.\r\n */\r\n\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nError = 'Error';\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nEvalError = 'EvalError';\r\n\r\n/**\r\n * Out of range number value has occurred.\r\n */\r\nexport const\r\nRangeError = 'RangeError';\r\n\r\n\r\n/**\r\n * An illegal reference has occurred.\r\n */\r\nexport const\r\nReferenceError = 'ReferenceError';\r\n\r\n/**\r\n * A syntax error within code inside the eval() function has occurred. All other syntax errors are not caught by try/catch/finally, and will trigger the default browser error message associated with the error. To catch actual syntax errors, you may use the onerror event.\r\n */\r\nexport const\r\nSyntaxError = 'SyntaxError';\r\n\r\n/**\r\n * An error in the expected variable type has occurred.\r\n */\r\nexport const\r\nTypeError = 'TypeError';\r\n\r\n/**\r\n * An error when encoding or decoding the URI has occurred (ie: when calling encodeURI()).\r\n */\r\nexport const\r\nURIError = 'URIError';\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/ExceptionType.js","System/ExceptionType.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],"mappings":"CAAA,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,GCUtBA,EAAAM,MAAQ,QAMRN,EAAAO,UAAY,YAMZP,EAAAQ,WAAa,aAObR,EAAAS,eAAiB,iBAMjBT,EAAAU,YAAc,cAMdV,EAAAW,UAAY,YAMZX,EAAAY,SAAW","file":"System/ExceptionType.js","sourcesContent":["(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 exports.Error = 'Error';\n exports.EvalError = 'EvalError';\n exports.RangeError = 'RangeError';\n exports.ReferenceError = 'ReferenceError';\n exports.SyntaxError = 'SyntaxError';\n exports.TypeError = 'TypeError';\n exports.URIError = 'URIError';\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 * Since the 'Error' type in JavaScript is simply {name:string, message:string},\r\n * Exception types provide a means for identifying and properly reusing 'name'.\r\n *\r\n * This is mostly for reference.\r\n */\r\n\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nError = 'Error';\r\n\r\n/**\r\n * An error in the eval() function has occurred.\r\n */\r\nexport const\r\nEvalError = 'EvalError';\r\n\r\n/**\r\n * Out of range number value has occurred.\r\n */\r\nexport const\r\nRangeError = 'RangeError';\r\n\r\n\r\n/**\r\n * An illegal reference has occurred.\r\n */\r\nexport const\r\nReferenceError = 'ReferenceError';\r\n\r\n/**\r\n * A syntax error within code inside the eval() function has occurred. All other syntax errors are not caught by try/catch/finally, and will trigger the default browser error message associated with the error. To catch actual syntax errors, you may use the onerror event.\r\n */\r\nexport const\r\nSyntaxError = 'SyntaxError';\r\n\r\n/**\r\n * An error in the expected variable type has occurred.\r\n */\r\nexport const\r\nTypeError = 'TypeError';\r\n\r\n/**\r\n * An error when encoding or decoding the URI has occurred (ie: when calling encodeURI()).\r\n */\r\nexport const\r\nURIError = 'URIError';\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/ArgumentException.js b/dist/umd.min/System/Exceptions/ArgumentException.js index 312ff864..6fe9ee77 100644 --- a/dist/umd.min/System/Exceptions/ArgumentException.js +++ b/dist/umd.min/System/Exceptions/ArgumentException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./SystemException","../Text/Utility"],function(e,t){var o=e("./SystemException"),n=e("../Text/Utility"),r="ArgumentException",i=function(e){function t(t,o,r,i){void 0===o&&(o=null),void 0===r&&(r=null);var u=t?"{"+t+"} ":"";e.call(this,n.trim(u+o),r,function(e){e.paramName=t,i&&i(e)})}return __extends(t,e),t.prototype.getName=function(){return r},t.prototype.toString=function(){var e=this;return"["+e.name+": "+e.message+"]"},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","./SystemException","../Text/Utility"],e)}(function(e,t){"use strict";var o=e("./SystemException"),n=e("../Text/Utility"),r="ArgumentException",i=function(e){function t(t,o,r,i){void 0===o&&(o=null),void 0===r&&(r=null);var u=t?"{"+t+"} ":"";e.call(this,n.trim(u+o),r,function(e){e.paramName=t,i&&i(e)})}return __extends(t,e),t.prototype.getName=function(){return r},t.prototype.toString=function(){var e=this;return"["+e.name+": "+e.message+"]"},t}(o["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i}); //# 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 0705a235..a2ca83fa 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","deps","factory","module","exports","v","require","undefined","define","amd","SystemException_1","Utility_1","NAME","ArgumentException","_super","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,oBAAqB,mBAAoB,SAAUI,EAASF,GCTtF,GAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAmB,mBAGbM,EAAc,oBAEpBC,EAAA,SAAAC,GAOCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GAFAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,KAGAA,IAAIA,GAAKA,EAAaA,IAAMA,EAAYA,KAAQA,EAEhDA,GAAAA,KAAAA,KAAMA,EAAAA,KAAKA,EAAKA,GAAUA,EAAgBA,SAACA,GAC1CA,EAAEA,UAAYA,EACXA,GAAeA,EAAcA,KAgBnCF,MAhCgCA,WAAAA,EAAAA,GAqBrBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,IACRA,OAAOA,IAAMA,EAAEA,KAAOA,KAAOA,EAAEA,QAAUA,KAG3CJ,GAhCgCH,EAAAA,WADhCX,QAAAmB,eAAAd,EAAA,cAAAe,OAAA,ID6BIf,EAAAA,WAAkBS","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException', '../Text/Utility'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var Utility_1 = require('../Text/Utility');\r\n var NAME = 'ArgumentException';\r\n var ArgumentException = (function (_super) {\r\n __extends(ArgumentException, _super);\r\n function ArgumentException(paramName, message, innerException, beforeSealing) {\r\n if (message === void 0) { message = null; }\r\n if (innerException === void 0) { innerException = null; }\r\n var pn = paramName ? ('{' + paramName + '} ') : '';\r\n _super.call(this, Utility_1.trim(pn + message), innerException, function (_) {\r\n _.paramName = paramName;\r\n if (beforeSealing)\r\n beforeSealing(_);\r\n });\r\n }\r\n ArgumentException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n ArgumentException.prototype.toString = function () {\r\n var _ = this;\r\n return '[' + _.name + ': ' + _.message + ']';\r\n };\r\n return ArgumentException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentException;\r\n});\r\n//# sourceMappingURL=ArgumentException.js.map","/*\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 Type from '../Types';\r\nimport Exception from '../Exception';\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\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\ttoString():string\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn '[' + _.name + ': ' + _.message + ']';\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","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString","defineProperty","value"],"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,oBAAqB,mBAAoBN,IAE5E,SAAUI,EAASF,GCPtB,YAIA,IAAAM,GAAAJ,EAA4B,qBAC5BK,EAAAL,EAAmB,mBAGbM,EAAc,oBAEpBC,EAAA,SAAAC,GAOCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GAFAE,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,KAGAA,IAAIA,GAAKA,EAAaA,IAAMA,EAAYA,KAAQA,EAEhDA,GAAAA,KAAAA,KAAMA,EAAAA,KAAKA,EAAKA,GAAUA,EAAgBA,SAACA,GAC1CA,EAAEA,UAAYA,EACXA,GAAeA,EAAcA,KAgBnCF,MAhCgCA,WAAAA,EAAAA,GAqBrBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGRH,EAAAA,UAAAA,SAAAA,WAECI,GAAIA,GAAIA,IACRA,OAAOA,IAAMA,EAAEA,KAAOA,KAAOA,EAAEA,QAAUA,KAG3CJ,GAhCgCH,EAAAA,WADhCV,QAAAkB,eAAAd,EAAA,cAAAe,OAAA,IDwBIf,EAAAA,WAAkBS","file":"System/Exceptions/ArgumentException.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\", './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 ArgumentException.prototype.toString = function () {\n var _ = this;\n return '[' + _.name + ': ' + _.message + ']';\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../Types';\r\nimport Exception from '../Exception';\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\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\ttoString():string\r\n\t{\r\n\t\tvar _ = this;\r\n\t\treturn '[' + _.name + ': ' + _.message + ']';\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Exceptions/ArgumentNullException.js b/dist/umd.min/System/Exceptions/ArgumentNullException.js index 0fc6e3f6..ec936c4c 100644 --- a/dist/umd.min/System/Exceptions/ArgumentNullException.js +++ b/dist/umd.min/System/Exceptions/ArgumentNullException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./ArgumentException"],function(e,t){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["default"]);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 29e436ea..b2a04319 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","deps","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentNullException","_super","ArgumentNullException.constructor","ArgumentNullException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,uBAAwB,SAAUI,EAASF,GCXrE,GAAAM,GAAAJ,EAA8B,uBAGxBK,EAAc,wBAEpBC,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,IACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,GAQ5BF,MAfoCA,WAAAA,EAAAA,GAUzBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAfoCF,EAAAA,WADpCX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDsBIb,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ArgumentException'], function (require, exports) {\r\n var ArgumentException_1 = require('./ArgumentException');\r\n var NAME = 'ArgumentNullException';\r\n var ArgumentNullException = (function (_super) {\r\n __extends(ArgumentNullException, _super);\r\n function ArgumentNullException(paramName, message, innerException) {\r\n if (message === void 0) { message = ''; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, paramName, message, innerException);\r\n }\r\n ArgumentNullException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return ArgumentNullException;\r\n })(ArgumentException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentNullException;\r\n});\r\n//# sourceMappingURL=ArgumentNullException.js.map","/*\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\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","ArgumentNullException.constructor","ArgumentNullException.getName","defineProperty","value"],"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,uBAAwBN,IAE3D,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAA8B,uBAGxBK,EAAc,wBAEpBC,EAAA,SAAAC,GAGCD,QAAAA,GACCA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,IACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,GAQ5BF,MAfoCA,WAAAA,EAAAA,GAUzBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAfoCF,EAAAA,WADpCV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDiBIb,EAAAA,WAAkBQ","file":"System/Exceptions/ArgumentNullException.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\", './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'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 diff --git a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js index 28d199cd..c0394560 100644 --- a/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js +++ b/dist/umd.min/System/Exceptions/ArgumentOutOfRangeException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./ArgumentException"],function(e,t){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,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 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){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,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}); //# 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 c97072be..0435c54f 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","deps","factory","module","exports","v","require","undefined","define","amd","ArgumentException_1","NAME","ArgumentOutOfRangeException","_super","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,uBAAwB,SAAUI,EAASF,GCTrE,GAAAM,GAAAJ,EAA8B,uBAGxBK,EAAc,8BAEpBC,EAAA,SAAAC,GAKCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,KACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,EAAgBA,SAACA,GAC1CA,EAAEA,YAAcA,IAUnBF,MArB0CA,WAAAA,EAAAA,GAgB/BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GArB0CF,EAAAA,WAD1CX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDsBIb,EAAAA,WAAkBQ","file":"System/Exceptions/ArgumentOutOfRangeException.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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './ArgumentException'], function (require, exports) {\r\n var ArgumentException_1 = require('./ArgumentException');\r\n var NAME = 'ArgumentOutOfRangeException';\r\n var ArgumentOutOfRangeException = (function (_super) {\r\n __extends(ArgumentOutOfRangeException, _super);\r\n function ArgumentOutOfRangeException(paramName, actualValue, message, innerException) {\r\n if (message === void 0) { message = ' '; }\r\n if (innerException === void 0) { innerException = null; }\r\n _super.call(this, paramName, message, innerException, function (_) {\r\n _.actualValue = actualValue;\r\n });\r\n }\r\n ArgumentOutOfRangeException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return ArgumentOutOfRangeException;\r\n })(ArgumentException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ArgumentOutOfRangeException;\r\n});\r\n//# sourceMappingURL=ArgumentOutOfRangeException.js.map","/*\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 Type from '../Types';\r\nimport Exception from '../Exception';\r\nimport ArgumentException from './ArgumentException';\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, 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","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.getName","defineProperty","value"],"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,uBAAwBN,IAE3D,SAAUI,EAASF,GCJtB,GAAAM,GAAAJ,EAA8B,uBAIxBK,EAAc,8BAEpBC,EAAA,SAAAC,GAKCD,QAAAA,GACCA,EACAA,EACAA,EACAA,GADAE,SAAAA,IAAAA,EAAAA,KACAA,SAAAA,IAAAA,EAAAA,MAEAA,EAAAA,KAAAA,KAAMA,EAAWA,EAASA,EAAgBA,SAACA,GAC1CA,EAAEA,YAAcA,IAUnBF,MArB0CA,WAAAA,EAAAA,GAgB/BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GArB0CF,EAAAA,WAD1CV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDiBIb,EAAAA,WAAkBQ","file":"System/Exceptions/ArgumentOutOfRangeException.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\", './ArgumentException'], factory);\n }\n})(function (require, exports) {\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, 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 Type from '../Types';\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, 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 diff --git a/dist/umd.min/System/Exceptions/InvalidOperationException.js b/dist/umd.min/System/Exceptions/InvalidOperationException.js index 5fff3199..61f0224d 100644 --- a/dist/umd.min/System/Exceptions/InvalidOperationException.js +++ b/dist/umd.min/System/Exceptions/InvalidOperationException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./SystemException"],function(e,t){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",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}); //# 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 bf714ca4..83cf3341 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","deps","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","InvalidOperationException","_super","InvalidOperationException.constructor","InvalidOperationException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,qBAAsB,SAAUI,EAASF,GCXnE,GAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,4BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACwCE,EAAAA,MAAAA,KAAAA,WAOxCF,MAPwCA,WAAAA,EAAAA,GAE7BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPwCF,EAAAA,WADxCX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDoBIb,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'InvalidOperationException';\r\n var InvalidOperationException = (function (_super) {\r\n __extends(InvalidOperationException, _super);\r\n function InvalidOperationException() {\r\n _super.apply(this, arguments);\r\n }\r\n InvalidOperationException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return InvalidOperationException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = InvalidOperationException;\r\n});\r\n//# sourceMappingURL=InvalidOperationException.js.map","/*\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\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","InvalidOperationException.constructor","InvalidOperationException.getName","defineProperty","value"],"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,qBAAsBN,IAEzD,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,4BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACwCE,EAAAA,MAAAA,KAAAA,WAOxCF,MAPwCA,WAAAA,EAAAA,GAE7BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPwCF,EAAAA,WADxCV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDeIb,EAAAA,WAAkBQ","file":"System/Exceptions/InvalidOperationException.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\", './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'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 diff --git a/dist/umd.min/System/Exceptions/NotImplementedException.js b/dist/umd.min/System/Exceptions/NotImplementedException.js index cb47dcc9..dd439421 100644 --- a/dist/umd.min/System/Exceptions/NotImplementedException.js +++ b/dist/umd.min/System/Exceptions/NotImplementedException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./SystemException"],function(e,t){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["default"]);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 5e076214..397ab78c 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","deps","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NotImplementedException","_super","NotImplementedException.constructor","NotImplementedException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,qBAAsB,SAAUI,EAASF,GCXnE,GAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,0BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACsCE,EAAAA,MAAAA,KAAAA,WAOtCF,MAPsCA,WAAAA,EAAAA,GAE3BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPsCF,EAAAA,WADtCX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDoBIb,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'NotImplementedException';\r\n var NotImplementedException = (function (_super) {\r\n __extends(NotImplementedException, _super);\r\n function NotImplementedException() {\r\n _super.apply(this, arguments);\r\n }\r\n NotImplementedException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return NotImplementedException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = NotImplementedException;\r\n});\r\n//# sourceMappingURL=NotImplementedException.js.map","/*\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\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","NotImplementedException.constructor","NotImplementedException.getName","defineProperty","value"],"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,qBAAsBN,IAEzD,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,0BAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACsCE,EAAAA,MAAAA,KAAAA,WAOtCF,MAPsCA,WAAAA,EAAAA,GAE3BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPsCF,EAAAA,WADtCV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDeIb,EAAAA,WAAkBQ","file":"System/Exceptions/NotImplementedException.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\", './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'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 diff --git a/dist/umd.min/System/Exceptions/NullReferenceException.js b/dist/umd.min/System/Exceptions/NullReferenceException.js index 0cf9d4df..041d50c6 100644 --- a/dist/umd.min/System/Exceptions/NullReferenceException.js +++ b/dist/umd.min/System/Exceptions/NullReferenceException.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./SystemException"],function(e,t){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["default"]);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 afb5d00f..18896257 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","deps","factory","module","exports","v","require","undefined","define","amd","SystemException_1","NAME","NullReferenceException","_super","NullReferenceException.constructor","NullReferenceException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,qBAAsB,SAAUI,EAASF,GCXnE,GAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,yBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACqCE,EAAAA,MAAAA,KAAAA,WAOrCF,MAPqCA,WAAAA,EAAAA,GAE1BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPqCF,EAAAA,WADrCX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDoBIb,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './SystemException'], function (require, exports) {\r\n var SystemException_1 = require('./SystemException');\r\n var NAME = 'NullReferenceException';\r\n var NullReferenceException = (function (_super) {\r\n __extends(NullReferenceException, _super);\r\n function NullReferenceException() {\r\n _super.apply(this, arguments);\r\n }\r\n NullReferenceException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return NullReferenceException;\r\n })(SystemException_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = NullReferenceException;\r\n});\r\n//# sourceMappingURL=NullReferenceException.js.map","/*\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\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","NullReferenceException.constructor","NullReferenceException.getName","defineProperty","value"],"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,qBAAsBN,IAEzD,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAA4B,qBAGtBK,EAAc,yBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KACqCE,EAAAA,MAAAA,KAAAA,WAOrCF,MAPqCA,WAAAA,EAAAA,GAE1BA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAGTH,GAPqCF,EAAAA,WADrCV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDeIb,EAAAA,WAAkBQ","file":"System/Exceptions/NullReferenceException.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\", './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'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 diff --git a/dist/umd.min/System/Exceptions/SystemException.js b/dist/umd.min/System/Exceptions/SystemException.js index d9eeac97..e3735c6e 100644 --- a/dist/umd.min/System/Exceptions/SystemException.js +++ b/dist/umd.min/System/Exceptions/SystemException.js @@ -1,7 +1,2 @@ -/* - * @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.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,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Exception"],function(e,t){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["default"]);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 b2195cfb..9d0989ac 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","deps","factory","module","exports","v","require","undefined","define","amd","Exception_1","NAME","SystemException","_super","SystemException.constructor","SystemException.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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,gBAAiB,SAAUI,EAASF,GCX9D,GAAAM,GAAAJ,EAAsB,gBAGhBK,EAAc,kBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KAC8BE,EAAAA,MAAAA,KAAAA,WAM9BF,MAN8BA,WAAAA,EAAAA,GAEnBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAETH,GAN8BF,EAAAA,WAD9BX,QAAAiB,eAAAZ,EAAA,cAAAa,OAAA,IDoBIb,EAAAA,WAAkBQ","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Exception'], function (require, exports) {\r\n var Exception_1 = require('../Exception');\r\n var NAME = 'SystemException';\r\n var SystemException = (function (_super) {\r\n __extends(SystemException, _super);\r\n function SystemException() {\r\n _super.apply(this, arguments);\r\n }\r\n SystemException.prototype.getName = function () {\r\n return NAME;\r\n };\r\n return SystemException;\r\n })(Exception_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SystemException;\r\n});\r\n//# sourceMappingURL=SystemException.js.map","/*\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\n\r\nconst NAME:string = 'SystemException';\r\n\r\nexport default\r\nclass SystemException extends Exception {\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","SystemException.constructor","SystemException.getName","defineProperty","value"],"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,gBAAiBN,IAEpD,SAAUI,EAASF,GCPtB,YAEA,IAAAM,GAAAJ,EAAsB,gBAGhBK,EAAc,kBAEpBC,EAAA,SAAAC,GAAAD,QAAAA,KAC8BE,EAAAA,MAAAA,KAAAA,WAgB9BF,MAhB8BA,WAAAA,EAAAA,GAYnBA,EAAAA,UAAAA,QAAVA,WAECG,MAAOA,IAETH,GAhB8BF,EAAAA,WAD9BV,QAAAgB,eAAAZ,EAAA,cAAAa,OAAA,IDeIb,EAAAA,WAAkBQ","file":"System/Exceptions/SystemException.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\", '../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'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 diff --git a/dist/umd.min/System/Functions.js b/dist/umd.min/System/Functions.js index 9ad0a9a6..96e1d2f7 100644 --- a/dist/umd.min/System/Functions.js +++ b/dist/umd.min/System/Functions.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports"],function(e,t){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,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}); //# sourceMappingURL=Functions.js.map diff --git a/dist/umd.min/System/Functions.js.map b/dist/umd.min/System/Functions.js.map index da9ad675..203dbe66 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":["deps","factory","module","exports","v","require","undefined","define","amd","Functions","Functions.Identity","Functions.True","Functions.False","rootFunctions","Object","freeze","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCF9C,GAmCOM,GAnCPA,EAAA,WAAAA,QAAAA,MA6BAA,MAtBCA,GAAAA,UAAAA,SAAAA,SAAYA,GACVC,MAAOA,IAMTD,EAAAA,UAAAA,KAAAA,WACEE,OAAOA,GAMTF,EAAAA,UAAAA,MAAAA,WACEG,OAAOA,GAKTH,EAAAA,UAAAA,MAAAA,aAEDA,KAEMI,EAA0B,GAAIJ,IAIpC,SAAOA,GAMKA,EAAAA,SACRA,EAAcA,SAMNA,EAAAA,KACRA,EAAcA,KAMNA,EAAAA,MACRA,EAAcA,MAKNA,EAAAA,MACRA,EAAcA,OA3BXA,IAAAA,OA+BPK,OAAOC,OAAON,GAEdK,OAAAE,eAAAb,EAAA,cAAAc,OAAA,ID9CId,EAAAA,WC8CWM","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var Functions = (function () {\r\n function Functions() {\r\n }\r\n Functions.prototype.Identity = function (x) { return x; };\r\n Functions.prototype.True = function () { return true; };\r\n Functions.prototype.False = function () { return false; };\r\n Functions.prototype.Blank = function () { };\r\n return Functions;\r\n })();\r\n var rootFunctions = new Functions();\r\n var Functions;\r\n (function (Functions) {\r\n Functions.Identity = rootFunctions.Identity;\r\n Functions.True = rootFunctions.True;\r\n Functions.False = rootFunctions.False;\r\n Functions.Blank = rootFunctions.Blank;\r\n })(Functions || (Functions = {}));\r\n Object.freeze(Functions);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Functions;\r\n});\r\n//# sourceMappingURL=Functions.js.map","/*\r\n * @author 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 * 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","Functions.Identity","Functions.True","Functions.False","rootFunctions","Object","freeze","defineProperty","value"],"mappings":"CAAA,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,IAmCOM,GAnCPA,EAAA,WAAAA,QAAAA,MA6BAA,MAtBCA,GAAAA,UAAAA,SAAAA,SAAYA,GACVC,MAAOA,IAMTD,EAAAA,UAAAA,KAAAA,WACEE,OAAOA,GAMTF,EAAAA,UAAAA,MAAAA,WACEG,OAAOA,GAKTH,EAAAA,UAAAA,MAAAA,aAEDA,KAEMI,EAA0B,GAAIJ,IAIpC,SAAOA,GAMKA,EAAAA,SACRA,EAAcA,SAMNA,EAAAA,KACRA,EAAcA,KAMNA,EAAAA,MACRA,EAAcA,MAKNA,EAAAA,MACRA,EAAcA,OA3BXA,IAAAA,OA+BPK,OAAOC,OAAON,GAEdK,OAAAE,eAAAb,EAAA,cAAAc,OAAA,IDjDId,EAAAA,WCiDWM","file":"System/Functions.js","sourcesContent":["(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'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 diff --git a/dist/umd.min/System/Integer.js b/dist/umd.min/System/Integer.js index 8095afbc..24e7c0b2 100644 --- a/dist/umd.min/System/Integer.js +++ b/dist/umd.min/System/Integer.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,n){if("object"==typeof module&&"object"==typeof module.exports){var t=n(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,n)}(["require","exports","./Types","./Exceptions/ArgumentException"],function(e,n){function t(e){return 0|e}var t,r=e("./Types"),o=e("./Exceptions/ArgumentException");!function(e){function n(e){return Math.random()*e|0}function t(e){return i(e,"max"),0==e?0:(e+=e>0?1:-1,n(e))}function u(e){return r["default"].isNumber(e,!1)&&e==(0|e)}function i(e,n){var t=u(e);if(!t)throw new o["default"](n||"n","Must be an integer.");return t}e.random=t;var t;!function(e){function t(e){return n(e)}e.under=t}(t=e.random||(e.random={})),e.is=u,e.assert=i}(t||(t={})),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); +!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","./Exceptions/ArgumentException"],e)}(function(e,n){function t(e){return 0|e}var t,r=e("./Types"),o=e("./Exceptions/ArgumentException");!function(e){function n(e){return Math.random()*e|0}function t(e){return i(e,"max"),0==e?0:(e+=e>0?1:-1,n(e))}function u(e){return r["default"].isNumber(e,!1)&&e==(0|e)}function i(e,n){var t=u(e);if(!t)throw new o["default"](n||"n","Must be an integer.");return t}e.random=t;var t;!function(e){function t(e){return n(e)}e.under=t}(t=e.random||(e.random={})),e.is=u,e.assert=i}(t||(t={})),Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}); //# sourceMappingURL=Integer.js.map diff --git a/dist/umd.min/System/Integer.js.map b/dist/umd.min/System/Integer.js.map index 6ac7c80c..fd5ef277 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":["deps","factory","module","exports","v","require","undefined","define","amd","Integer","n","Types_1","ArgumentException_1","Integer.r","Integer.random","Integer.is","Integer.assert","Integer.random.under","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,UAAW,kCAAmC,SAAUI,EAASF,GCH3F,QAAAM,GAAiBC,GAEhBD,MAAWA,GAAJA,EALR,GAQOA,GARPE,EAAAN,EAAiB,WACjBO,EAAAP,EAA8B,mCAO9B,SAAOI,GAGNA,QAAAA,GAAWA,GACVI,MAAQA,MAAKA,SAASA,EAAOA,EAc9BJ,QAAAA,GAAuBA,GAGtBK,MADAA,GAAOA,EAAIA,OACHA,GAALA,EAAeA,GAClBA,GAAOA,EAAMA,EAAIA,EAAIA,GACdA,EAAEA,IAwBVL,QAAAA,GAAmBA,GAElBM,MAAOA,GAAAA,WAAKA,SAASA,GAAGA,IAAUA,IAAQA,EAAJA,GAGvCN,QAAAA,GAAuBA,EAAUA,GAEhCO,GAAIA,GAAIA,EAAGA,EACXA,KAAIA,EAEHA,KAAMA,IAAIA,GAAAA,WAAkBA,GAAgBA,IAAKA,sBAElDA,OAAOA,GAzCQP,EAAAA,OAAMA,CAQtBA,IAAcA,IAAdA,SAAcA,GAabK,QAAAA,GAAsBA,GAErBG,MAAOA,GAAEA,GAFMH,EAAAA,MAAKA,GAbRL,EAAAA,EAAAA,SAAAA,EAAAA,YAqBEA,EAAAA,GAAEA,EAKFA,EAAAA,OAAMA,GApDhBA,IAAAA,OAgEPS,OAAAC,eAAAhB,EAAA,cAAAiB,OAAA,ID1BIjB,EAAAA,WC0BWM","file":"System/Integer.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Types', './Exceptions/ArgumentException'], function (require, exports) {\r\n var Types_1 = require('./Types');\r\n var ArgumentException_1 = require('./Exceptions/ArgumentException');\r\n function Integer(n) {\r\n return n | 0;\r\n }\r\n var Integer;\r\n (function (Integer) {\r\n function r(max) {\r\n return (Math.random() * max) | 0;\r\n }\r\n function random(max) {\r\n assert(max, 'max');\r\n if (max == 0)\r\n return 0;\r\n max += max > 0 ? 1 : -1;\r\n return r(max);\r\n }\r\n Integer.random = random;\r\n var random;\r\n (function (random) {\r\n function under(boundary) {\r\n return r(boundary);\r\n }\r\n random.under = under;\r\n })(random = Integer.random || (Integer.random = {}));\r\n function is(n) {\r\n return Types_1.default.isNumber(n, false) && n == (n | 0);\r\n }\r\n Integer.is = is;\r\n function assert(n, argumentName) {\r\n var i = is(n);\r\n if (!i) {\r\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be an integer.\");\r\n }\r\n return i;\r\n }\r\n Integer.assert = assert;\r\n })(Integer || (Integer = {}));\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Integer;\r\n});\r\n//# sourceMappingURL=Integer.js.map","/*\r\n * @author 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 ArgumentException from './Exceptions/ArgumentException';\r\n\r\nfunction Integer(n:number):number\r\n{\r\n\treturn n | 0;\r\n}\r\n\r\nmodule Integer\r\n{\r\n\r\n\tfunction r(max:number):number {\r\n\t\treturn (Math.random()*max) | 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a random integer from zero to the max.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * Examples:
\r\n\t * ```Integer.random(1)``` will return 0 or 1.
\r\n\t * ```Integer.random(-2)``` will return 0, -1, or -2.
\r\n\t *\r\n\t * @param max\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(max:number):number\r\n\t{\r\n\t\tassert(max,'max');\r\n\t\tif(max==0) return 0;\r\n\t\tmax += max > 0 ? 1 : -1;\r\n\t\treturn r(max);\r\n\t}\r\n\r\n\texport module random {\r\n\r\n\t\t/**\r\n\t\t * Returns a random integer from zero up to the boundary value.\r\n\t\t * Negative and fractional numbers are allowed.\r\n\t\t *\r\n\t\t * Example:
\r\n\t\t * ```Integer.random(-2)``` will return 0, or -1.
\r\n\t\t * ```Integer.random(5)``` will return 0, 1, 2, 3 or 4.
\r\n\t\t *\r\n\t\t * @param boundary\r\n\t\t * @returns {number}\r\n\t\t */\r\n\t\texport function under(boundary:number):number\r\n\t\t{\r\n\t\t\treturn r(boundary)\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn Type.isNumber(n, false) && n==(n | 0);\r\n\t}\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{\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be an integer.\");\r\n\t\t}\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","Types_1","ArgumentException_1","Integer.r","Integer.random","Integer.is","Integer.assert","Integer.random.under","Object","defineProperty","value"],"mappings":"CAAA,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,UAAW,kCAAmCN,IAEjF,SAAUI,EAASF,GCCtB,QAAAM,GAAiBC,GAEhBD,MAAWA,GAAJA,EALR,GAQOA,GARPE,EAAAN,EAAiB,WACjBO,EAAAP,EAA8B,mCAO9B,SAAOI,GAGNA,QAAAA,GAAWA,GACVI,MAAQA,MAAKA,SAASA,EAAOA,EAc9BJ,QAAAA,GAAuBA,GAGtBK,MADAA,GAAOA,EAAIA,OACHA,GAALA,EAAeA,GAClBA,GAAOA,EAAMA,EAAIA,EAAIA,GACdA,EAAEA,IAwBVL,QAAAA,GAAmBA,GAElBM,MAAOA,GAAAA,WAAKA,SAASA,GAAGA,IAAUA,IAAQA,EAAJA,GAGvCN,QAAAA,GAAuBA,EAAUA,GAEhCO,GAAIA,GAAIA,EAAGA,EACXA,KAAIA,EAEHA,KAAMA,IAAIA,GAAAA,WAAkBA,GAAgBA,IAAKA,sBAElDA,OAAOA,GAzCQP,EAAAA,OAAMA,CAQtBA,IAAcA,IAAdA,SAAcA,GAabK,QAAAA,GAAsBA,GAErBG,MAAOA,GAAEA,GAFMH,EAAAA,MAAKA,GAbRL,EAAAA,EAAAA,SAAAA,EAAAA,YAqBEA,EAAAA,GAAEA,EAKFA,EAAAA,OAAMA,GApDhBA,IAAAA,OAgEPS,OAAAC,eAAAhB,EAAA,cAAAiB,OAAA,ID9BIjB,EAAAA,WC8BWM","file":"System/Integer.js","sourcesContent":["(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'], factory);\n }\n})(function (require, exports) {\n var Types_1 = require('./Types');\n var ArgumentException_1 = require('./Exceptions/ArgumentException');\n function Integer(n) {\n return n | 0;\n }\n var Integer;\n (function (Integer) {\n function r(max) {\n return (Math.random() * max) | 0;\n }\n function random(max) {\n assert(max, 'max');\n if (max == 0)\n return 0;\n max += max > 0 ? 1 : -1;\n return r(max);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function under(boundary) {\n return r(boundary);\n }\n random.under = under;\n })(random = Integer.random || (Integer.random = {}));\n function is(n) {\n return Types_1.default.isNumber(n, false) && n == (n | 0);\n }\n Integer.is = is;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i) {\n throw new ArgumentException_1.default(argumentName || 'n', \"Must be an integer.\");\n }\n return i;\n }\n Integer.assert = assert;\n })(Integer || (Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\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 ArgumentException from './Exceptions/ArgumentException';\r\n\r\nfunction Integer(n:number):number\r\n{\r\n\treturn n | 0;\r\n}\r\n\r\nmodule Integer\r\n{\r\n\r\n\tfunction r(max:number):number {\r\n\t\treturn (Math.random()*max) | 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a random integer from zero to the max.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * Examples:
\r\n\t * ```Integer.random(1)``` will return 0 or 1.
\r\n\t * ```Integer.random(-2)``` will return 0, -1, or -2.
\r\n\t *\r\n\t * @param max\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(max:number):number\r\n\t{\r\n\t\tassert(max,'max');\r\n\t\tif(max==0) return 0;\r\n\t\tmax += max > 0 ? 1 : -1;\r\n\t\treturn r(max);\r\n\t}\r\n\r\n\texport module random {\r\n\r\n\t\t/**\r\n\t\t * Returns a random integer from zero up to the boundary value.\r\n\t\t * Negative and fractional numbers are allowed.\r\n\t\t *\r\n\t\t * Example:
\r\n\t\t * ```Integer.random(-2)``` will return 0, or -1.
\r\n\t\t * ```Integer.random(5)``` will return 0, 1, 2, 3 or 4.
\r\n\t\t *\r\n\t\t * @param boundary\r\n\t\t * @returns {number}\r\n\t\t */\r\n\t\texport function under(boundary:number):number\r\n\t\t{\r\n\t\t\treturn r(boundary)\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn Type.isNumber(n, false) && n==(n | 0);\r\n\t}\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{\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be an integer.\");\r\n\t\t}\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/Lazy.js b/dist/umd.min/System/Lazy.js index f4a7958e..bd568ecc 100644 --- a/dist/umd.min/System/Lazy.js +++ b/dist/umd.min/System/Lazy.js @@ -1,6 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var r=t(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./Disposable/DisposableBase"],function(e,t){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["default"]);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 a235632c..91f1070f 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","deps","factory","module","exports","v","require","undefined","define","amd","DisposableBase_1","Lazy","_super","Lazy.constructor","get","Lazy.isValueCreated","enumerable","configurable","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals","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,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,+BAAgC,SAAUI,EAASF,GCT7E,GAAAM,GAAAJ,EAA2B,+BAE3BK,EAAA,SAAAC,GAOCD,QAAAA,GAAoBA,GAEnBE,EAAAA,KAAAA,MAFmBA,KAAAA,SAAAA,EAGnBA,KAAKA,sBAAwBA,OA4E/BF,MArFsBA,WAAAA,EAAAA,GAYrBA,OAAAA,eAAIA,EAAAA,UAAAA,kBDMOG,ICNXH,WAECI,MAAOA,MAAKA,iBDOFC,YAAY,EACZC,cAAc,ICJzBN,OAAAA,eAAIA,EAAAA,UAAAA,YDOOG,ICPXH,WAECO,OAAQA,KAAKA,eAAkBA,KAAaA,UDQlCF,YAAY,EACZC,cAAc,ICLzBN,EAAAA,UAAAA,MAAAA,SAAMA,GACLQ,GAAIA,GAAIA,IAKRA,IAHGA,GACFA,EAAEA,kBAECA,EAAEA,SAQLA,MAFAA,GAAEA,iBAAkBA,EACpBA,EAAEA,OAASA,MACJA,CAPPA,IAAGA,EACFA,KAAMA,IAAIA,OAAMA,kEACjBA,QAAOA,GASTR,OAAAA,eAAIA,EAAAA,UAAAA,SDKOG,ICLXH,WAECS,MAAOA,MAAKA,YDMFJ,YAAY,EACZC,cAAc,ICJzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,GAAIA,GAAIA,IAERA,GAAEA,iBAEFA,KACCA,IAAIA,EAAEA,iBAAmBA,EAAEA,SAAUA,CACpCA,GAAIA,GAAIA,EAAEA,UAGVA,OAFAA,GAAEA,OAASA,EACXA,EAAEA,iBAAkBA,EACbA,GDMC,QCFNA,IACFA,EAAEA,SAAWA,MAGfA,MAAOA,GAAEA,QAKAV,EAAAA,UAAAA,WAAVA,WACCW,KAAKA,SAAWA,KAChBA,KAAKA,OAASA,MAGfX,EAAAA,UAAAA,OAAAA,SAAOA,GAENY,MAAOA,OAAMA,GAGdZ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXa,MAAOA,MAAKA,OAAOA,IAAUA,KAAKA,QAAQA,EAAMA,OAElDb,GArFsBD,EAAAA,WADtBX,QAAA0B,eAAArB,EAAA,cAAAsB,OAAA,IDoFItB,EAAAA,WAAkBO","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './Disposable/DisposableBase'], function (require, exports) {\r\n ///\r\n ///\r\n var DisposableBase_1 = require('./Disposable/DisposableBase');\r\n var Lazy = (function (_super) {\r\n __extends(Lazy, _super);\r\n function Lazy(_closure) {\r\n _super.call(this);\r\n this._closure = _closure;\r\n this._disposableObjectName = 'Lazy';\r\n }\r\n Object.defineProperty(Lazy.prototype, \"isValueCreated\", {\r\n get: function () {\r\n return this._isValueCreated;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Lazy.prototype, \"canReset\", {\r\n get: function () {\r\n return !this.wasDisposed && !!(this._closure);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lazy.prototype.reset = function (throwIfCannotReset) {\r\n var _ = this;\r\n if (throwIfCannotReset)\r\n _.throwIfDisposed();\r\n if (!_._closure) {\r\n if (throwIfCannotReset)\r\n throw new Error(\"Cannot reset. This Lazy has already de-referenced its closure.\");\r\n return false;\r\n }\r\n else {\r\n _._isValueCreated = false;\r\n _._value = null;\r\n return true;\r\n }\r\n };\r\n Object.defineProperty(Lazy.prototype, \"value\", {\r\n get: function () {\r\n return this.getValue();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Lazy.prototype.getValue = function (clearClosureReference) {\r\n var _ = this;\r\n _.throwIfDisposed();\r\n try {\r\n if (!_._isValueCreated && _._closure) {\r\n var v = _._closure();\r\n _._value = v;\r\n _._isValueCreated = true;\r\n return v;\r\n }\r\n }\r\n finally {\r\n if (clearClosureReference)\r\n _._closure = null;\r\n }\r\n return _._value;\r\n };\r\n Lazy.prototype._onDispose = function () {\r\n this._closure = null;\r\n this._value = null;\r\n };\r\n Lazy.prototype.equals = function (other) {\r\n return this == other;\r\n };\r\n Lazy.prototype.valueEquals = function (other) {\r\n return this.equals(other) || this.value === other.value;\r\n };\r\n return Lazy;\r\n })(DisposableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Lazy;\r\n});\r\n//# sourceMappingURL=Lazy.js.map","/*\r\n * @author 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 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","Lazy.constructor","get","Lazy.isValueCreated","enumerable","configurable","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals","defineProperty","value"],"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,+BAAgCN,IAEnE,SAAUI,EAASF,GCRtB,YAIA,IAAAM,GAAAJ,EAA2B,+BAE3BK,EAAA,SAAAC,GAOCD,QAAAA,GAAoBA,GAEnBE,EAAAA,KAAAA,MAFmBA,KAAAA,SAAAA,EAGnBA,KAAKA,sBAAwBA,OA4E/BF,MArFsBA,WAAAA,EAAAA,GAYrBA,OAAAA,eAAIA,EAAAA,UAAAA,kBDAOG,ICAXH,WAECI,MAAOA,MAAKA,iBDCFC,YAAY,EACZC,cAAc,ICEzBN,OAAAA,eAAIA,EAAAA,UAAAA,YDCOG,ICDXH,WAECO,OAAQA,KAAKA,eAAkBA,KAAaA,UDElCF,YAAY,EACZC,cAAc,ICCzBN,EAAAA,UAAAA,MAAAA,SAAMA,GACLQ,GAAIA,GAAIA,IAKRA,IAHGA,GACFA,EAAEA,kBAECA,EAAEA,SAQLA,MAFAA,GAAEA,iBAAkBA,EACpBA,EAAEA,OAASA,MACJA,CAPPA,IAAGA,EACFA,KAAMA,IAAIA,OAAMA,kEACjBA,QAAOA,GASTR,OAAAA,eAAIA,EAAAA,UAAAA,SDDOG,ICCXH,WAECS,MAAOA,MAAKA,YDAFJ,YAAY,EACZC,cAAc,ICEzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,GAAIA,GAAIA,IAERA,GAAEA,iBAEFA,KACCA,IAAIA,EAAEA,iBAAmBA,EAAEA,SAAUA,CACpCA,GAAIA,GAAIA,EAAEA,UAGVA,OAFAA,GAAEA,OAASA,EACXA,EAAEA,iBAAkBA,EACbA,GDAC,QCINA,IACFA,EAAEA,SAAWA,MAGfA,MAAOA,GAAEA,QAKAV,EAAAA,UAAAA,WAAVA,WACCW,KAAKA,SAAWA,KAChBA,KAAKA,OAASA,MAGfX,EAAAA,UAAAA,OAAAA,SAAOA,GAENY,MAAOA,OAAMA,GAGdZ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXa,MAAOA,MAAKA,OAAOA,IAAUA,KAAKA,QAAQA,EAAMA,OAElDb,GArFsBD,EAAAA,WADtBV,QAAAyB,eAAArB,EAAA,cAAAsB,OAAA,ID8EItB,EAAAA,WAAkBO","file":"System/Lazy.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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 diff --git a/dist/umd.min/System/Observable/ObservableNodeBase.js b/dist/umd.min/System/Observable/ObservableNodeBase.js index 0865a364..3893baf1 100644 --- a/dist/umd.min/System/Observable/ObservableNodeBase.js +++ b/dist/umd.min/System/Observable/ObservableNodeBase.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -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,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports","./SubscribableBase"],function(e,o){function t(e,o,t){void 0===t&&(t=!0);for(var r=null,n=0;n\r\n ///\r\n var SubscribableBase_1 = require('./SubscribableBase');\r\n var ObservableNodeBase = (function (_super) {\r\n __extends(ObservableNodeBase, _super);\r\n function ObservableNodeBase() {\r\n _super.apply(this, arguments);\r\n }\r\n ObservableNodeBase.prototype.onNext = function (value) {\r\n processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\r\n };\r\n ObservableNodeBase.prototype.onError = function (error) {\r\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\r\n };\r\n ObservableNodeBase.prototype.onCompleted = function () {\r\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\r\n };\r\n return ObservableNodeBase;\r\n })(SubscribableBase_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ObservableNodeBase;\r\n var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.';\r\n function processAction(observers, handler, dispose) {\r\n if (dispose === void 0) { dispose = true; }\r\n var observersErrors = null;\r\n for (var _i = 0; _i < observers.length; _i++) {\r\n var s = observers[_i];\r\n try {\r\n handler(s);\r\n }\r\n catch (ex) {\r\n observersErrors = observersErrors || [];\r\n observersErrors.push({ observer: s, ex: ex });\r\n }\r\n }\r\n if (dispose)\r\n observers.length = 0;\r\n if (observersErrors && observersErrors.length) {\r\n if (console && console.error)\r\n console.error(OBSERVER_ERROR_MESSAGE, observersErrors);\r\n else\r\n throw {\r\n message: OBSERVER_ERROR_MESSAGE,\r\n errors: observersErrors\r\n };\r\n }\r\n }\r\n});\r\n//# sourceMappingURL=ObservableNodeBase.js.map","/*\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\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\nexport default\r\nclass ObservableNodeBase\r\nextends SubscribableBase> implements IObservable, IObserver\r\n{\r\n\r\n\tonNext(value:T):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\t(s) => { s.onNext && s.onNext(value); }\r\n\t\t);\r\n\t}\r\n\r\n\tonError(error:Error):void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._getSubscribers(),\r\n\t\t\t(s) => { s.onError && s.onError(error); }\r\n\t\t);\r\n\t}\r\n\r\n\tonCompleted():void\r\n\t{\r\n\t\tprocessAction(\r\n\t\t\tthis._unsubscribeAll(true),\r\n\t\t\t(s) => { 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\tdispose:boolean = true)\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\tif(dispose)\r\n\t\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"]} \ 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","processAction","observers","handler","SubscribableBase_1","ObservableNodeBase","_super","ObservableNodeBase.constructor","ObservableNodeBase.onNext","ObservableNodeBase.onError","ObservableNodeBase.onCompleted","defineProperty","value","OBSERVER_ERROR_MESSAGE"],"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,sBAAuBN,IAE1D,SAAUI,EAASF,GCNtB,YAuCA,SAAAM,GACCC,EACAC,GAIAF,IAAaA,GAFTA,GAAmDA,KAE1CA,EAAAA,EAATA,EAAAA,EAAAA,OAAAA,IAAmBA,CAAnBA,GAAIA,GAAKA,EAASA,EAErBA,KAECA,EAAQA,GAETA,MAAMA,GAELA,EAAkBA,MAElBA,EAAgBA,MAAMA,SAAUA,EAAGA,GAAIA,KAMzCA,GAFAA,EAAUA,OAASA,EAEhBA,GAAmBA,EAAgBA,OACtCA,CACCA,IAAGA,UAAWA,QAAQA,MAEjBA,MACJA,QAASA,EACTA,OAAQA,EAHRA,SAAQA,MAAMA,EAAwBA,IA5DzC,GAAAG,GAAAP,EAA6B,sBAG7BQ,EAAA,SAAAC,GAAAD,QAAAA,KAEQE,EAAAA,MAAAA,KAAAA,WA0BRF,MA1BQA,WAAAA,EAAAA,GAGPA,EAAAA,UAAAA,OAAAA,SAAOA,GAENG,EACCA,KAAKA,kBACLA,SAAAA,GAAOA,EAAEA,QAAUA,EAAEA,OAAOA,MAI9BH,EAAAA,UAAAA,QAAAA,SAAQA,GAEPI,EACCA,KAAKA,kBACLA,SAAAA,GAAOA,EAAEA,SAAWA,EAAEA,QAAQA,MAIhCJ,EAAAA,UAAAA,YAAAA,WAECK,EACCA,KAAKA,iBAAgBA,GACrBA,SAAAA,GAAOA,EAAEA,aAAeA,EAAEA,iBAG7BL,GA1BQD,EAAAA,WAFRb,QAAAoB,eAAAhB,EAAA,cAAAiB,OAAA,IDmBIjB,EAAAA,WAAkBU,CCWtB,IAAMQ,GAAgC","file":"System/Observable/ObservableNodeBase.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\", './SubscribableBase'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var SubscribableBase_1 = require('./SubscribableBase');\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 processAction(this._getSubscribers(), function (s) { s.onNext && s.onNext(value); });\n };\n ObservableNodeBase.prototype.onError = function (error) {\n processAction(this._getSubscribers(), function (s) { s.onError && s.onError(error); });\n };\n ObservableNodeBase.prototype.onCompleted = function () {\n processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); });\n };\n return ObservableNodeBase;\n })(SubscribableBase_1.default);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = ObservableNodeBase;\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; _i < observers.length; _i++) {\n var s = observers[_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});\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\nexport default\r\nclass ObservableNodeBase\r\nextends SubscribableBase> implements IObservable, IObserver\r\n{\r\n\r\n\tonNext(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\tonError(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\tonCompleted():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"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/SubscribableBase.js b/dist/umd.min/System/Observable/SubscribableBase.js index 29b1ac3e..73fc30c9 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.js +++ b/dist/umd.min/System/Observable/SubscribableBase.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var i=t(require,exports);void 0!==i&&(module.exports=i)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Collections/LinkedList","../Disposable/Utility","./Subscription"],function(e,t){var i=e("../Collections/LinkedList"),r=e("../Disposable/Utility"),o=e("./Subscription"),s=function(){function e(){this.__subscriptions=new i["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.toArray().map(function(e){return e.subscriber})},e.prototype._findEntryNode=function(e){for(var t=this.__subscriptions.first;t&&t.value.subscriber!==e;)t=t.next;return t},e.prototype.subscribe=function(e){var t=this,i=t._findEntryNode(e);if(i)return i.value;var r=new o["default"](t,e);return t.__subscriptions.add(r),r},e.prototype.unsubscribe=function(e){var t=this._findEntryNode(e);if(t){var i=t.value;t.remove(),i.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,i=t.__subscriptions,o=i.toArray(),s=e?o.map(function(e){return e.subscriber}):null;return i.clear(),r.disposeThese(o),s},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=s}); +!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/LinkedList","../Disposable/Utility","./Subscription"],e)}(function(e,t){"use strict";var i=e("../Collections/LinkedList"),r=e("../Disposable/Utility"),s=e("./Subscription"),o=function(){function e(){this.__subscriptions=new i["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.toArray().map(function(e){return e.subscriber})},e.prototype._findEntryNode=function(e){for(var t=this.__subscriptions.first;t&&t.value.subscriber!==e;)t=t.next;return t},e.prototype.subscribe=function(e){var t=this,i=t._findEntryNode(e);if(i)return i.value;var r=new s["default"](t,e);return t.__subscriptions.add(r),r},e.prototype.unsubscribe=function(e){var t=this._findEntryNode(e);if(t){var i=t.value;t.remove(),i.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,i=t.__subscriptions,s=i.toArray(),o=e?s.map(function(e){return e.subscriber}):null;return i.clear(),r.disposeThese(s),o},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["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 1a701cbc..3eec52bd 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":["deps","factory","module","exports","v","require","undefined","define","amd","LinkedList_1","DisposeUtility","Subscription_1","SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose","Object","defineProperty","value"],"mappings":";;;;;;CAMA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,4BAA6B,wBAAyB,kBAAmB,SAAUI,EAASF,GCHtH,GAAAM,GAAAJ,EAAuB,6BACXK,EAAcL,EAAM,yBAChCM,EAAAN,EAAyB,kBAIzBO,EAAA,WAcCA,QAAAA,KAECC,KAAKA,gBAAkBA,GAAIA,GAAAA,WAkE7BD,MA1EWA,GAAAA,UAAAA,gBAAVA,WACCE,MAAOA,MAAKA,gBACVA,UACAA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,cAQJF,EAAAA,UAAAA,eAARA,SACCA,GAGAG,IADAA,GAAIA,GAAOA,KAAKA,gBAAgBA,MAC1BA,GAEFA,EAAKA,MAAMA,aAAaA,GAM1BA,EAAOA,EAAKA,IAIdA,OAAOA,IAIRH,EAAAA,UAAAA,UAAAA,SAAUA,GAETI,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,eAAeA,EACzBA,IAAGA,EACFA,MAAOA,GAAEA,KAEVA,IAAIA,GAAIA,GAAIA,GAAAA,WAAaA,EAAGA,EAG5BA,OAFAA,GAAEA,gBAAgBA,IAAIA,GAEfA,GAGRJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,GAAIA,GAAIA,KAAKA,eAAeA,EAC5BA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,EAAEA,KACVA,GAAEA,SACFA,EAAEA,YAIML,EAAAA,UAAAA,gBAAVA,SAA0BA,GAAAM,SAAAA,IAAAA,GAAAA,EACzBA,IAAIA,GAAIA,KAAMA,EAAKA,EAAEA,gBACjBA,EAAIA,EAAGA,UACPA,EAAIA,EAAoBA,EAAEA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,aAAcA,IAKrDA,OAJAA,GAAGA,QAEHA,EAAeA,aAAaA,GAErBA,GAGRN,EAAAA,UAAAA,eAAAA,WACCO,KAAKA,mBAGNP,EAAAA,UAAAA,QAAAA,WACCQ,KAAKA,mBAGPR,IAlFAS,QAAAC,eAAAnB,EAAA,cAAAoB,OAAA,ID2DIpB,EAAAA,WAAkBS","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Collections/LinkedList', '../Disposable/Utility', './Subscription'], function (require, exports) {\r\n ///\r\n ///\r\n var LinkedList_1 = require('../Collections/LinkedList');\r\n var DisposeUtility = require('../Disposable/Utility');\r\n var Subscription_1 = require('./Subscription');\r\n var SubscribableBase = (function () {\r\n function SubscribableBase() {\r\n this.__subscriptions = new LinkedList_1.default();\r\n }\r\n SubscribableBase.prototype._getSubscribers = function () {\r\n return this.__subscriptions\r\n .toArray()\r\n .map(function (s) { return s.subscriber; });\r\n };\r\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\r\n var node = this.__subscriptions.first;\r\n while (node) {\r\n if (node.value.subscriber === subscriber) {\r\n break;\r\n }\r\n else {\r\n node = node.next;\r\n }\r\n }\r\n return node;\r\n };\r\n SubscribableBase.prototype.subscribe = function (subscriber) {\r\n var _ = this;\r\n var n = _._findEntryNode(subscriber);\r\n if (n)\r\n return n.value;\r\n var s = new Subscription_1.default(_, subscriber);\r\n _.__subscriptions.add(s);\r\n return s;\r\n };\r\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\r\n var n = this._findEntryNode(subscriber);\r\n if (n) {\r\n var s = n.value;\r\n n.remove();\r\n s.dispose();\r\n }\r\n };\r\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\r\n if (returnSubscribers === void 0) { returnSubscribers = false; }\r\n var _ = this, _s = _.__subscriptions;\r\n var s = _s.toArray();\r\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\r\n _s.clear();\r\n DisposeUtility.disposeThese(s);\r\n return u;\r\n };\r\n SubscribableBase.prototype.unsubscribeAll = function () {\r\n this._unsubscribeAll();\r\n };\r\n SubscribableBase.prototype.dispose = function () {\r\n this._unsubscribeAll();\r\n };\r\n return SubscribableBase;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = SubscribableBase;\r\n});\r\n//# sourceMappingURL=SubscribableBase.js.map","/*\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\nimport LinkedList from '../Collections/LinkedList';\r\nimport * as DisposeUtility from '../Disposable/Utility'\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:LinkedList>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[] {\r\n\t\treturn this.__subscriptions\r\n\t\t\t.toArray()\r\n\t\t\t.map(s=>s.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions = new LinkedList>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedListNode>\r\n\t{\r\n\t\tvar node = this.__subscriptions.first;\r\n\t\twhile(node)\r\n\t\t{\r\n\t\t\tif(node.value.subscriber===subscriber)\r\n\t\t\t{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tnode = node.next;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn node;\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.add(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 n = this._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\tn.remove();\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\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.toArray();\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose() {\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","LinkedList_1","DisposeUtility","Subscription_1","SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose","Object","defineProperty","value"],"mappings":"CAAA,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,4BAA6B,wBAAyB,kBAAmBN,IAE5G,SAAUI,EAASF,GCDtB,YAKA,IAAAM,GAAAJ,EAAuB,6BACXK,EAAcL,EAAM,yBAChCM,EAAAN,EAAyB,kBAIzBO,EAAA,WAcCA,QAAAA,KAECC,KAAKA,gBAAkBA,GAAIA,GAAAA,WAkE7BD,MA1EWA,GAAAA,UAAAA,gBAAVA,WACCE,MAAOA,MAAKA,gBACVA,UACAA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,cAQJF,EAAAA,UAAAA,eAARA,SACCA,GAGAG,IADAA,GAAIA,GAAOA,KAAKA,gBAAgBA,MAC1BA,GAEFA,EAAKA,MAAMA,aAAaA,GAM1BA,EAAOA,EAAKA,IAIdA,OAAOA,IAIRH,EAAAA,UAAAA,UAAAA,SAAUA,GAETI,GAAIA,GAAIA,KACJA,EAAIA,EAAEA,eAAeA,EACzBA,IAAGA,EACFA,MAAOA,GAAEA,KAEVA,IAAIA,GAAIA,GAAIA,GAAAA,WAAaA,EAAGA,EAG5BA,OAFAA,GAAEA,gBAAgBA,IAAIA,GAEfA,GAGRJ,EAAAA,UAAAA,YAAAA,SAAYA,GAEXK,GAAIA,GAAIA,KAAKA,eAAeA,EAC5BA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,EAAEA,KACVA,GAAEA,SACFA,EAAEA,YAIML,EAAAA,UAAAA,gBAAVA,SAA0BA,GAAAM,SAAAA,IAAAA,GAAAA,EACzBA,IAAIA,GAAIA,KAAMA,EAAKA,EAAEA,gBACjBA,EAAIA,EAAGA,UACPA,EAAIA,EAAoBA,EAAEA,IAAIA,SAAAA,GAAGA,MAAAA,GAAEA,aAAcA,IAKrDA,OAJAA,GAAGA,QAEHA,EAAeA,aAAaA,GAErBA,GAGRN,EAAAA,UAAAA,eAAAA,WACCO,KAAKA,mBAGNP,EAAAA,UAAAA,QAAAA,WACCQ,KAAKA,mBAGPR,IAlFAS,QAAAC,eAAAnB,EAAA,cAAAoB,OAAA,IDmDIpB,EAAAA,WAAkBS","file":"System/Observable/SubscribableBase.js","sourcesContent":["(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/LinkedList', '../Disposable/Utility', './Subscription'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var LinkedList_1 = require('../Collections/LinkedList');\n var DisposeUtility = require('../Disposable/Utility');\n var Subscription_1 = require('./Subscription');\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions = new LinkedList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this.__subscriptions\n .toArray()\n .map(function (s) { return s.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n var node = this.__subscriptions.first;\n while (node) {\n if (node.value.subscriber === subscriber) {\n break;\n }\n else {\n node = node.next;\n }\n }\n return node;\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.add(s);\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var n = this._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n n.remove();\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.toArray();\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n DisposeUtility.disposeThese(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n\r\nimport LinkedList from '../Collections/LinkedList';\r\nimport * as DisposeUtility from '../Disposable/Utility'\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:LinkedList>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[] {\r\n\t\treturn this.__subscriptions\r\n\t\t\t.toArray()\r\n\t\t\t.map(s=>s.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions = new LinkedList>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedListNode>\r\n\t{\r\n\t\tvar node = this.__subscriptions.first;\r\n\t\twhile(node)\r\n\t\t{\r\n\t\t\tif(node.value.subscriber===subscriber)\r\n\t\t\t{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tnode = node.next;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn node;\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.add(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 n = this._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\tn.remove();\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\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.toArray();\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Observable/Subscription.js b/dist/umd.min/System/Observable/Subscription.js index df80ca9e..e8220329 100644 --- a/dist/umd.min/System/Observable/Subscription.js +++ b/dist/umd.min/System/Observable/Subscription.js @@ -1,8 +1,2 @@ -/* - * @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 - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports"],function(e,r){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}();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 e1679575..79fc0bd2 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":["deps","factory","module","exports","v","require","undefined","define","amd","Subscription","Subscription.constructor","get","Subscription.subscriber","enumerable","configurable","Subscription.wasDisposed","Subscription.dispose","Object","defineProperty","value"],"mappings":";;;;;;CAMA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCE9C,GAAAM,GAAA,WAGCA,QAAAA,GACSA,EACAA,GAERC,GAHQA,KAAAA,cAAAA,EACAA,KAAAA,YAAAA,GAEHA,IAAkBA,EACtBA,KAAMA,8CA0CTD,MAvCCA,QAAAA,eAAIA,EAAAA,UAAAA,cDDOE,ICCXF,WACCG,MAAOA,MAAKA,aDCFC,YAAY,EACZC,cAAc,ICgBzBL,OAAAA,eAAIA,EAAAA,UAAAA,eDbOE,ICaXF,WAECM,OAAQA,KAAKA,gBAAkBA,KAAKA,aDZ1BF,YAAY,EACZC,cAAc,ICczBL,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAaA,KAAKA,WAClBA,EAAeA,KAAKA,aAGxBA,MAAKA,YAAcA,KACnBA,KAAKA,cAAgBA,KAGjBA,GAAcA,GAEjBA,EAAaA,YAAYA,IAG5BP,IAlDAQ,QAAAC,eAAAf,EAAA,cAAAgB,OAAA,IDmCIhB,EAAAA,WAAkBM","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Subscription = (function () {\r\n function Subscription(_subscribable, _subscriber) {\r\n this._subscribable = _subscribable;\r\n this._subscriber = _subscriber;\r\n if (!_subscribable || !_subscriber)\r\n throw 'Subscribable and subscriber cannot be null.';\r\n }\r\n Object.defineProperty(Subscription.prototype, \"subscriber\", {\r\n get: function () {\r\n return this._subscriber;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Subscription.prototype, \"wasDisposed\", {\r\n get: function () {\r\n return !this._subscribable || !this._subscriber;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Subscription.prototype.dispose = function () {\r\n var subscriber = this.subscriber;\r\n var subscribable = this._subscribable;\r\n this._subscriber = null;\r\n this._subscribable = null;\r\n if (subscriber && subscribable) {\r\n subscribable.unsubscribe(subscriber);\r\n }\r\n };\r\n return Subscription;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Subscription;\r\n});\r\n//# sourceMappingURL=Subscription.js.map","/*\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///\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","Subscription.constructor","get","Subscription.subscriber","enumerable","configurable","Subscription.wasDisposed","Subscription.dispose","Object","defineProperty","value"],"mappings":"CAAA,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,GCDtB,YAUA,IAAAM,GAAA,WAGCA,QAAAA,GACSA,EACAA,GAERC,GAHQA,KAAAA,cAAAA,EACAA,KAAAA,YAAAA,GAEHA,IAAkBA,EACtBA,KAAMA,8CA0CTD,MAvCCA,QAAAA,eAAIA,EAAAA,UAAAA,cDVOE,ICUXF,WACCG,MAAOA,MAAKA,aDRFC,YAAY,EACZC,cAAc,ICyBzBL,OAAAA,eAAIA,EAAAA,UAAAA,eDtBOE,ICsBXF,WAECM,OAAQA,KAAKA,gBAAkBA,KAAKA,aDrB1BF,YAAY,EACZC,cAAc,ICuBzBL,EAAAA,UAAAA,QAAAA,WAECO,GAAIA,GAAaA,KAAKA,WAClBA,EAAeA,KAAKA,aAGxBA,MAAKA,YAAcA,KACnBA,KAAKA,cAAgBA,KAGjBA,GAAcA,GAEjBA,EAAaA,YAAYA,IAG5BP,IAlDAQ,QAAAC,eAAAf,EAAA,cAAAgB,OAAA,ID0BIhB,EAAAA,WAAkBM","file":"System/Observable/Subscription.js","sourcesContent":["(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/umd.min/System/Serialization/Utility.js b/dist/umd.min/System/Serialization/Utility.js index 30762b56..31606d61 100644 --- a/dist/umd.min/System/Serialization/Utility.js +++ b/dist/umd.min/System/Serialization/Utility.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var r=t(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Types","../Exceptions/InvalidOperationException"],function(e,t){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?s:l;case n["default"].NUMBER:return f+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 void 0;case s:return!0;case l:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,f);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"),f="",s="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){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?s:l;case n["default"].NUMBER:return f+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 s:return!0;case l:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,f);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"),f="",s="true",l="false";t.toString=r,t.isSerializable=i,t.toPrimitive=a}); //# 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 07d4b3d8..fb4aefa6 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":["deps","factory","module","exports","v","require","undefined","define","amd","toString","value","defaultForUnknown","isSerializable","instance","toPrimitive","caseInsensitive","unknownHandler","Types_1","InvalidOperationException_1","EMPTY","TRUE","FALSE"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,WAAY,2CAA4C,SAAUI,EAASF,GCGrG,QAAAM,GACCC,EACAC,GAGAF,GAAIA,GAASA,CACbA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,UACVA,IAAKA,GAAAA,WAAKA,OACTA,MAAOA,EACRA,KAAKA,GAAAA,WAAKA,QACTA,MAAOA,GAAIA,EAAOA,CACnBA,KAAKA,GAAAA,WAAKA,OACTA,MAAOA,GAAQA,CAChBA,SAECA,GAAOA,OAAJA,EACFA,MAAOA,EAERA,IAAGA,EAAeA,GACjBA,MAAOA,GAAEA,WACLA,IAAGA,UAAUA,OAAOA,EACxBA,MAAOA,EAERA,IAAIA,GAAKA,GAAIA,GAAAA,WAA0BA,+CAEvCA,MADAA,GAAGA,KAAYA,MAAIA,EACbA,GAMT,QAAAG,GAA+BC,GAC9BD,MAAOA,GAAAA,WAAKA,gBAA+BA,EAASA,YAAYA,EAAAA,WAAKA,UAGtE,QAAAE,GACCJ,EACAK,EACAC,GAIAF,GAAGA,EAIFA,OAFGA,IAAiBA,EAAQA,EAAMA,eAE3BA,GAENA,IAAKA,OACJA,MAAOA,KACRA,KAAKA,GAAAA,WAAKA,UACTA,MAAOA,OACRA,KAAKA,GACJA,OAAOA,CACRA,KAAKA,GACJA,OAAOA,CACRA,SAECA,GAAIA,GAAUA,EAAMA,QAAQA,eAAeA,EAC3CA,IAAGA,EAEFA,GAAGA,SAASA,KAAKA,GAAUA,CAC1BA,GAAIA,GAAMA,SAASA,EACnBA,KAAIA,MAAMA,GAAMA,MAAOA,OACjBA,CACNA,GAAIA,GAASA,WAAWA,EACxBA,KAAIA,MAAMA,GAASA,MAAOA,GAQzBA,IAAgBA,EAAQA,EAAeA,IAO7CA,MAAOA,GAzFR,GAAAG,GAAAZ,EAAiB,YACjBa,EAAAb,EAAsC,2CAGhCc,EAAQ,GAAIC,EAAO,OAAQC,EAAQ,OAEzBlB,GAAAM,SAAQA,EAiCRN,EAAAS,eAAcA,EAIdT,EAAAW,YAAWA","file":"System/Serialization/Utility.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', '../Exceptions/InvalidOperationException'], function (require, exports) {\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException');\r\n var EMPTY = '', TRUE = 'true', FALSE = 'false';\r\n function toString(value, defaultForUnknown) {\r\n var v = value;\r\n switch (typeof v) {\r\n case Types_1.default.UNDEFINED:\r\n case Types_1.default.STRING:\r\n return v;\r\n case Types_1.default.BOOLEAN:\r\n return v ? TRUE : FALSE;\r\n case Types_1.default.NUMBER:\r\n return EMPTY + v;\r\n default:\r\n if (v === null)\r\n return v;\r\n if (isSerializable(v))\r\n return v.serialize();\r\n else if (arguments.length > 1)\r\n return defaultForUnknown;\r\n var ex = new InvalidOperationException_1.default('Attempting to serialize unidentifiable type.');\r\n ex.data['value'] = v;\r\n throw ex;\r\n }\r\n }\r\n exports.toString = toString;\r\n function isSerializable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, 'serialize', Types_1.default.FUNCTION);\r\n }\r\n exports.isSerializable = isSerializable;\r\n function toPrimitive(value, caseInsensitive, unknownHandler) {\r\n if (value) {\r\n if (caseInsensitive)\r\n value = value.toLowerCase();\r\n switch (value) {\r\n case 'null':\r\n return null;\r\n case Types_1.default.UNDEFINED:\r\n return undefined;\r\n case TRUE:\r\n return true;\r\n case FALSE:\r\n return false;\r\n default:\r\n var cleaned = value.replace(/^\\s+|,|\\s+$/g, EMPTY);\r\n if (cleaned) {\r\n if (/^\\d+$/g.test(cleaned)) {\r\n var int = parseInt(cleaned);\r\n if (!isNaN(int))\r\n return int;\r\n }\r\n else {\r\n var number = parseFloat(value);\r\n if (!isNaN(number))\r\n return number;\r\n }\r\n }\r\n if (unknownHandler)\r\n value = unknownHandler(value);\r\n break;\r\n }\r\n }\r\n return value;\r\n }\r\n exports.toPrimitive = toPrimitive;\r\n});\r\n//# sourceMappingURL=Utility.js.map","/*\r\n * @author 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","isSerializable","instance","toPrimitive","caseInsensitive","unknownHandler","Types_1","InvalidOperationException_1","EMPTY","TRUE","FALSE"],"mappings":"CAAA,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,GCOtB,QAAAM,GACCC,EACAC,GAGAF,GAAIA,GAASA,CACbA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,UACVA,IAAKA,GAAAA,WAAKA,OACTA,MAAOA,EACRA,KAAKA,GAAAA,WAAKA,QACTA,MAAOA,GAAIA,EAAOA,CACnBA,KAAKA,GAAAA,WAAKA,OACTA,MAAOA,GAAQA,CAChBA,SAECA,GAAOA,OAAJA,EACFA,MAAOA,EAERA,IAAGA,EAAeA,GACjBA,MAAOA,GAAEA,WACLA,IAAGA,UAAUA,OAAOA,EACxBA,MAAOA,EAERA,IAAIA,GAAKA,GAAIA,GAAAA,WAA0BA,+CAEvCA,MADAA,GAAGA,KAAYA,MAAIA,EACbA,GAMT,QAAAG,GAA+BC,GAC9BD,MAAOA,GAAAA,WAAKA,gBAA+BA,EAASA,YAAYA,EAAAA,WAAKA,UAGtE,QAAAE,GACCJ,EACAK,EACAC,GAIAF,GAAGA,EAIFA,OAFGA,IAAiBA,EAAQA,EAAMA,eAE3BA,GAENA,IAAKA,OACJA,MAAOA,KACRA,KAAKA,GAAAA,WAAKA,UACTA,MACDA,KAAKA,GACJA,OAAOA,CACRA,KAAKA,GACJA,OAAOA,CACRA,SAECA,GAAIA,GAAUA,EAAMA,QAAQA,eAAeA,EAC3CA,IAAGA,EAEFA,GAAGA,SAASA,KAAKA,GAAUA,CAC1BA,GAAIA,GAAMA,SAASA,EACnBA,KAAIA,MAAMA,GAAMA,MAAOA,OACjBA,CACNA,GAAIA,GAASA,WAAWA,EACxBA,KAAIA,MAAMA,GAASA,MAAOA,GAQzBA,IAAgBA,EAAQA,EAAeA,IAO7CA,MAAOA,GAzFR,GAAAG,GAAAZ,EAAiB,YACjBa,EAAAb,EAAsC,2CAGhCc,EAAQ,GAAIC,EAAO,OAAQC,EAAQ,OAEzBlB,GAAAM,SAAQA,EAiCRN,EAAAS,eAAcA,EAIdT,EAAAW,YAAWA","file":"System/Serialization/Utility.js","sourcesContent":["(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 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 diff --git a/dist/umd.min/System/Text/StringBuilder.js b/dist/umd.min/System/Text/StringBuilder.js index 41e02c04..068345a9 100644 --- a/dist/umd.min/System/Text/StringBuilder.js +++ b/dist/umd.min/System/Text/StringBuilder.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(t,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(t,e)}(["require","exports","../Types"],function(t,e){var n=t("../Types"),r=function(){function t(){for(var t=[],e=0;e\r\n var Types_1 = require('../Types');\r\n var StringBuilder = (function () {\r\n function StringBuilder() {\r\n var initial = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n initial[_i - 0] = arguments[_i];\r\n }\r\n var _ = this;\r\n _._latest = null;\r\n _._partArray = [];\r\n _.appendThese(initial);\r\n }\r\n StringBuilder.prototype.appendSingle = function (item) {\r\n if (item !== null && item !== undefined) {\r\n var _ = this;\r\n _._latest = null;\r\n switch (typeof item) {\r\n case Types_1.default.OBJECT:\r\n case Types_1.default.FUNCTION:\r\n item = item.toString();\r\n break;\r\n }\r\n _._partArray.push(item);\r\n }\r\n };\r\n StringBuilder.prototype.appendThese = function (items) {\r\n var _ = this;\r\n items.forEach(function (s) { return _.appendSingle(s); });\r\n return _;\r\n };\r\n StringBuilder.prototype.append = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i - 0] = arguments[_i];\r\n }\r\n this.appendThese(items);\r\n return this;\r\n };\r\n StringBuilder.prototype.appendLine = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i - 0] = arguments[_i];\r\n }\r\n this.appendLines(items);\r\n return this;\r\n };\r\n StringBuilder.prototype.appendLines = function (items) {\r\n var _ = this;\r\n items.forEach(function (i) {\r\n if (i !== null && i !== undefined) {\r\n _.appendSingle(i);\r\n _._partArray.push(\"\\r\\n\");\r\n }\r\n });\r\n return _;\r\n };\r\n Object.defineProperty(StringBuilder.prototype, \"isEmpty\", {\r\n get: function () {\r\n return this._partArray.length === 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n StringBuilder.prototype.toString = function () {\r\n var latest = this._latest;\r\n if (!latest === null)\r\n this._latest = latest = this._partArray.join();\r\n return latest;\r\n };\r\n StringBuilder.prototype.join = function (delimiter) {\r\n return this._partArray.join(delimiter);\r\n };\r\n StringBuilder.prototype.clear = function () {\r\n this._partArray.length = 0;\r\n this._latest = null;\r\n };\r\n StringBuilder.prototype.dispose = function () {\r\n this.clear();\r\n };\r\n return StringBuilder;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = StringBuilder;\r\n});\r\n//# sourceMappingURL=StringBuilder.js.map","/*\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\nimport Type from '../Types';\r\nimport LinkedList from '../Collections/LinkedList';\r\n\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!==undefined) {\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!==undefined) {\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","StringBuilder.constructor","StringBuilder.appendSingle","StringBuilder.appendThese","StringBuilder.append","StringBuilder.appendLine","StringBuilder.appendLines","get","StringBuilder.isEmpty","enumerable","configurable","StringBuilder.toString","StringBuilder.join","StringBuilder.clear","StringBuilder.dispose","Object","defineProperty","value"],"mappings":"CAAA,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,YAGA,IAAAM,GAAAJ,EAAiB,YAGXK,EAAY,OAalBC,EAAA,WASCA,QAAAA,KDnBW,ICmBCC,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAEXA,IAAIA,GAAIA,IACRA,GAAEA,QAAUA,KACZA,EAAEA,cACFA,EAAEA,YAAYA,GA+FhBD,MA5FSA,GAAAA,UAAAA,aAARA,SAAqBA,GAEpBE,GAAUA,OAAPA,GAAeA,IAAOA,EAAOA,CAC/BA,GAAIA,GAAIA,IAERA,QADAA,EAAEA,QAAUA,WACEA,IACbA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,SACTA,EAAOA,EAAKA,WAGdA,EAAEA,WAAWA,KAAKA,KAKpBF,EAAAA,UAAAA,YAAAA,SAAYA,GAEXG,GAAIA,GAAIA,IAERA,OADAA,GAAMA,QAAQA,SAAAA,GAAIA,MAAAA,GAAEA,aAAaA,KAC1BA,GAGRH,EAAAA,UAAAA,OAAAA,WDtBW,ICsBJI,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGNA,OADAA,MAAKA,YAAYA,GACVA,MAGRJ,EAAAA,UAAAA,WAAAA,WDpBW,ICoBAK,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAGVA,OADAA,MAAKA,YAAYA,GACVA,MAGRL,EAAAA,UAAAA,YAAAA,SAAYA,GAEXM,GAAIA,GAAIA,IAURA,OATAA,GAAMA,QACJA,SAAAA,GAEOA,OAAJA,GAAYA,IAAIA,IAClBA,EAAEA,aAAaA,GACfA,EAAEA,WAAWA,KAAKA,WAIdA,GAeRN,OAAAA,eAAIA,EAAAA,UAAAA,WDpCOO,ICoCXP,WAECQ,MAAgCA,KAAzBA,KAAKA,WAAWA,QDnCbC,YAAY,EACZC,cAAc,ICqCzBV,EAAAA,UAAAA,SAAAA,WAECW,GAAIA,GAASA,KAAKA,OAIlBA,OAHaA,SAATA,IACHA,KAAKA,QAAUA,EAASA,KAAKA,WAAWA,QAElCA,GAGRX,EAAAA,UAAAA,KAAAA,SAAKA,GAEJY,MAAOA,MAAKA,WAAWA,KAAKA,IAG7BZ,EAAAA,UAAAA,MAAAA,WAECa,KAAKA,WAAWA,OAASA,EACzBA,KAAKA,QAAUA,MAGhBb,EAAAA,UAAAA,QAAAA,WAECc,KAAKA,SAGPd,IA7GAe,QAAAC,eAAAxB,EAAA,cAAAyB,OAAA,IDoEIzB,EAAAA,WAAkBQ","file":"System/Text/StringBuilder.js","sourcesContent":["(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.default.OBJECT:\n case Types_1.default.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 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'use strict'; // For compatibility with (let, const, function, class);\r\n\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 diff --git a/dist/umd.min/System/Text/Utility.js b/dist/umd.min/System/Text/Utility.js index 1ca7cb59..42c22ccd 100644 --- a/dist/umd.min/System/Text/Utility.js +++ b/dist/umd.min/System/Text/Utility.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var t=r(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../Types"],function(e,r){function t(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function n(e,n,a){if(n){if(n===r.EMPTY)return e;var u=t(Array.isArray(n)?n.join():n);return e.replace(new RegExp("^["+u+"]+|["+u+"]+$","g"+(a?"i":"")),r.EMPTY)}return e.replace(/^\s+|\s+$/g,r.EMPTY)}function a(e){for(var r=[],t=1;tchars);\r\n\t\treturn source.replace(new RegExp('^['+escaped+']+|['+escaped+']+$','g'+(ignoreCase?'i':'')),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 a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Text/Utility.js","System/Text/Utility.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","escapeRegExp","source","trim","chars","ignoreCase","format","supplant","params","Types_1","EMPTY"],"mappings":"CAAA,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,GCEtB,QAAAM,GAA6BC,GAC5BD,MAAOA,GAAOA,QAAQA,sCAAuCA,QAW9D,QAAAE,GAAqBD,EAAeE,EAAuBC,GAE1DF,GAAGA,EAAOA,CACTA,GAAGA,IAAQA,EAAAA,MAAOA,MAAOA,EACzBA,IAAIA,GAAUA,EAAaA,MAAMA,QAAQA,GAASA,EAAMA,OAAiBA,EACzEA,OAAOA,GAAOA,QAAQA,GAAIA,QAAOA,KAAKA,EAAQA,OAAOA,EAAQA,MAAMA,KAAKA,EAAWA,IAAIA,KAAKA,EAAAA,OAG7FA,MAAOA,GAAOA,QAAQA,aAAcA,EAAAA,OASrC,QAAAG,GAAuBJ,GDZf,ICY8BI,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAErCA,OAAOA,GAASA,EAAQA,GAczB,QAAAC,GAAyBL,EAAeM,GAEvCD,GAAIA,GAAWA,MAAMA,QAAQA,EAC7BA,OAAOA,GAAOA,QAAQA,gBACrBA,SAACA,EAAUA,GAEVA,GAAIA,GAAQA,CACZA,IAAGA,EACHA,CACCA,GAAIA,GAAIA,SAASA,EACbA,OAAMA,KAAIA,EAAIA,GAGnBA,GAAIA,GAAUA,EAAQA,EACtBA,cAAcA,IAEbA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,OACVA,IAAKA,GAAAA,WAAKA,QACTA,MAAOA,EACRA,SACCA,MAAOA,MAtEZ,GAAAE,GAAAZ,EAAiB,WAEJF,GAAAe,MAAe,GAEZf,EAAAM,aAAYA,EAYZN,EAAAQ,KAAIA,EAiBJR,EAAAW,OAAMA,EAgBNX,EAAAY,SAAQA","file":"System/Text/Utility.js","sourcesContent":["(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 var Types_1 = require('../Types');\n exports.EMPTY = '';\n function escapeRegExp(source) {\n return source.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n }\n exports.escapeRegExp = escapeRegExp;\n function trim(source, chars, ignoreCase) {\n if (chars) {\n if (chars === exports.EMPTY)\n return source;\n var escaped = escapeRegExp(Array.isArray(chars) ? chars.join() : chars);\n return source.replace(new RegExp('^[' + escaped + ']+|[' + escaped + ']+$', 'g' + (ignoreCase ? 'i' : '')), exports.EMPTY);\n }\n return source.replace(/^\\s+|\\s+$/g, exports.EMPTY);\n }\n exports.trim = trim;\n function format(source) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return supplant(source, args);\n }\n exports.format = format;\n function supplant(source, params) {\n var oIsArray = Array.isArray(params);\n return source.replace(/\\{([^{}]*)\\}/g, function (a, b) {\n var n = b;\n if (oIsArray) {\n var 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 a;\n }\n });\n }\n exports.supplant = supplant;\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 const EMPTY:string = '';\r\n\r\nexport function escapeRegExp(source:string):string {\r\n\treturn source.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n}\r\n\r\n/**\r\n * Can trim any character or set of characters from the ends of a string.\r\n * Uses a Regex escapement to replace them with empty.\r\n * @param source\r\n * @param chars A string or array of characters desired to be trimmed.\r\n * @param ignoreCase\r\n * @returns {string}\r\n */\r\nexport function trim(source:string, chars?:string|string[],ignoreCase?:boolean):string\r\n{\r\n\tif(chars) {\r\n\t\tif(chars===EMPTY) return source;\r\n\t\tvar escaped = escapeRegExp(Array.isArray(chars) ? chars.join() : chars);\r\n\t\treturn source.replace(new RegExp('^['+escaped+']+|['+escaped+']+$','g'+(ignoreCase?'i':'')),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 a;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/Calendars.js b/dist/umd.min/System/Time/Calendars.js deleted file mode 100644 index 674179ed..00000000 --- a/dist/umd.min/System/Time/Calendars.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 - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){}); -//# sourceMappingURL=Calendars.js.map diff --git a/dist/umd.min/System/Time/Calendars.js.map b/dist/umd.min/System/Time/Calendars.js.map deleted file mode 100644 index 57e9d8cf..00000000 --- a/dist/umd.min/System/Time/Calendars.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Time/Calendars.js"],"names":["deps","factory","module","exports","v","require","undefined","define","amd"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF","file":"System/Time/Calendars.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=Calendars.js.map"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/ClockTime.js b/dist/umd.min/System/Time/ClockTime.js index c435e6b9..98718710 100644 --- a/dist/umd.min/System/Time/ClockTime.js +++ b/dist/umd.min/System/Time/ClockTime.js @@ -1,7 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./HowMany","./TimeQuantity"],function(e,t){function n(e,t){return 1!==Math.abs(e)&&(t+="s"),t}var o=(e("./HowMany"),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}); +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}); //# 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 7d034ab6..4fbb562d 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","deps","factory","module","exports","v","require","undefined","define","amd","pluralize","value","label","TimeQuantity_1","ClockTime","_super","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","defineProperty"],"mappings":"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","file":"System/Time/ClockTime.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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './HowMany', './TimeQuantity'], function (require, exports) {\r\n var HowMany = require('./HowMany');\r\n var TimeQuantity_1 = require('./TimeQuantity');\r\n var ClockTime = (function (_super) {\r\n __extends(ClockTime, _super);\r\n function ClockTime() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i - 0] = arguments[_i];\r\n }\r\n _super.call(this, args.length > 1\r\n ? ClockTime.millisecondsFromTime(args[0] || 0, args[1] || 0, args.length > 2 && args[2] || 0, args.length > 3 && args[3] || 0)\r\n : (args.length > 0 && args[0] || 0));\r\n var _ = this;\r\n var ms = Math.abs(_.getTotalMilliseconds());\r\n var msi = Math.floor(ms);\r\n _.tick = (ms - msi) * 10000;\r\n _.days = (msi / 86400000) | 0;\r\n msi -= _.days * 86400000;\r\n _.hour = (msi / 3600000) | 0;\r\n msi -= _.hour * 3600000;\r\n _.minute = (msi / 60000) | 0;\r\n msi -= _.minute * 60000;\r\n _.second = (msi / 1000) | 0;\r\n msi -= _.second * 1000;\r\n _.millisecond = msi;\r\n Object.freeze(_);\r\n }\r\n ClockTime.from = function (hours, minutes, seconds, milliseconds) {\r\n if (seconds === void 0) { seconds = 0; }\r\n if (milliseconds === void 0) { milliseconds = 0; }\r\n return new ClockTime(hours, minutes, seconds, milliseconds);\r\n };\r\n ClockTime.millisecondsFromTime = function (hours, minutes, seconds, milliseconds) {\r\n if (seconds === void 0) { seconds = 0; }\r\n if (milliseconds === void 0) { milliseconds = 0; }\r\n var value = hours;\r\n value *= 60;\r\n value += minutes;\r\n value *= 60;\r\n value += seconds;\r\n value *= 1000;\r\n value += milliseconds;\r\n return value;\r\n };\r\n ClockTime.prototype.toString = function () {\r\n /* INSERT CUSTOM FORMATTING CODE HERE */\r\n var _ = this, a = [];\r\n if (_.days)\r\n a.push(pluralize(_.days, \"day\"));\r\n if (_.hour)\r\n a.push(pluralize(_.hour, \"hour\"));\r\n if (_.minute)\r\n a.push(pluralize(_.minute, \"minute\"));\r\n if (_.second)\r\n a.push(pluralize(_.second, \"second\"));\r\n if (a.length > 1)\r\n a.splice(a.length - 1, 0, \"and\");\r\n return a.join(\", \").replace(\", and, \", \" and \");\r\n };\r\n return ClockTime;\r\n })(TimeQuantity_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ClockTime;\r\n function pluralize(value, label) {\r\n if (Math.abs(value) !== 1)\r\n label += \"s\";\r\n return label;\r\n }\r\n});\r\n//# sourceMappingURL=ClockTime.js.map","/*\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///\r\n///\r\n///\r\nimport {areEqual,compare} from '../Compare';\r\nimport * as HowMany from './HowMany';\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","TimeQuantity_1","ClockTime","_super","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","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,GAKhCF,MAHqBA,KAAlBA,KAAKA,IAAIA,KACXA,GAASA,KAEHA,EA7GR,GAAAG,GAAAP,EAAyB,kBAGzBQ,EAAA,SAAAC,GAaCD,QAAAA,KDbW,ICaCE,GAAAA,MAAAA,EAAAA,EAAAA,EAAAA,UAAAA,OAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,EAEXA,GAAAA,KAAAA,KACCA,EAAKA,OAAOA,EACTA,EAAUA,qBACZA,EAAKA,IAAMA,EACXA,EAAKA,IAAMA,EACXA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAC5BA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,GAEzBA,EAAKA,OAAOA,GAAKA,EAAKA,IAAMA,EAGjCA,IAAIA,GAAIA,KACJA,EAAKA,KAAKA,IAAIA,EAAEA,wBAChBA,EAAMA,KAAKA,MAAMA,EAErBA,GAAEA,KAAkBA,KAAVA,EAAKA,GAEfA,EAAEA,KAAQA,EAAIA,MAAgCA,EAC9CA,GAAgBA,MAATA,EAAEA,KAETA,EAAEA,KAAQA,EAAIA,KAAiCA,EAC/CA,GAAgBA,KAATA,EAAEA,KAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,OAAUA,EAAIA,IAAmCA,EACnDA,GAAkBA,IAAXA,EAAEA,OAETA,EAAEA,YAAcA,EAEhBA,OAAOA,OAAOA,GAmDhBF,MAhGwBA,WAAAA,EAAAA,GAkDhBA,EAAAA,KAAPA,SAAYA,EAAcA,EAAgBA,EAAoBA,GAE7DG,MAFyCA,UAAAA,IAAAA,EAAAA,GAAoBA,SAAAA,IAAAA,EAAAA,GAEtDA,GAAIA,GAAUA,EAAOA,EAASA,EAASA,IAGxCH,EAAAA,qBAAPA,SACCA,EACAA,EACAA,EACAA,GADAI,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,EAEAA,IAAIA,GAAQA,CAOZA,OANAA,IAASA,GACTA,GAASA,EACTA,GAASA,GACTA,GAASA,EACTA,GAASA,IACTA,GAASA,GAIVJ,EAAAA,UAAAA,SAAAA,WAKCK,GAAIA,GAAIA,KAAMA,IAiBdA,OAfGA,GAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,QAEvBA,EAAEA,MACJA,EAAEA,KAAKA,EAAUA,EAAEA,KAAMA,SAEvBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,QACJA,EAAEA,KAAKA,EAAUA,EAAEA,OAAQA,WAEzBA,EAAEA,OAAOA,GACXA,EAAEA,OAAOA,EAAEA,OAASA,EAAGA,EAAGA,OAEpBA,EAAEA,KAAKA,MAAMA,QAAQA,UAAWA,UAGzCL,GAhGwBD,EAAAA,WADxBb,QAAAoB,eAAAhB,EAAA,cAAAO,OAAA,IDuDIP,EAAAA,WAAkBU","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 diff --git a/dist/umd.min/System/Time/DateTime.js b/dist/umd.min/System/Time/DateTime.js index 46563894..086f958c 100644 --- a/dist/umd.min/System/Time/DateTime.js +++ b/dist/umd.min/System/Time/DateTime.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Based on .NET DateTime's interface. - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Types","./HowMany","./ClockTime","./TimeSpan","./TimeStamp"],function(e,t){var n=e("../Types"),r=(e("./HowMany"),e("./ClockTime")),o=e("./TimeSpan"),i=e("./TimeStamp"),a=function(){function e(t,r){void 0===t&&(t=new Date),void 0===r&&(r=1);var o=this;o._kind=r,n["default"].isInstanceOf(t,e)?o._value=t.toJsDate():n["default"].isInstanceOf(t,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 r["default"](n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())}return t},enumerable:!0,configurable:!0}),e.prototype.toTimeStamp=function(){return i["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,r){var i=n["default"].isInstanceOf(t,e)?t._value:t,a=n["default"].isInstanceOf(r,e)?r._value:r;return new o["default"](i.getTime()-a.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(a),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=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","./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}); //# 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 fc8b675d..60509bcc 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":["deps","factory","module","exports","v","require","undefined","define","amd","Types_1","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","get","DateTime.kind","enumerable","configurable","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["/*\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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', './HowMany', './ClockTime', './TimeSpan', './TimeStamp'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var HowMany = require('./HowMany');\r\n var ClockTime_1 = require('./ClockTime');\r\n var TimeSpan_1 = require('./TimeSpan');\r\n var TimeStamp_1 = require('./TimeStamp');\r\n var DateTime = (function () {\r\n function DateTime(value, kind) {\r\n if (value === void 0) { value = new Date(); }\r\n if (kind === void 0) { kind = 1; }\r\n var _ = this;\r\n _._kind = kind;\r\n if (Types_1.default.isInstanceOf(value, DateTime))\r\n _._value = value.toJsDate();\r\n else if (Types_1.default.isInstanceOf(value, Date))\r\n _._setJsDate(value);\r\n else\r\n _._value = value == undefined\r\n ? new Date()\r\n : new Date(value);\r\n }\r\n DateTime.prototype.toJsDate = function () {\r\n return new Date(this._value.getTime());\r\n };\r\n DateTime.prototype._setJsDate = function (value) {\r\n this._time = null;\r\n this._value = new Date(value.getTime());\r\n };\r\n Object.defineProperty(DateTime.prototype, \"kind\", {\r\n get: function () {\r\n return this._kind;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"year\", {\r\n get: function () {\r\n return this._value.getFullYear();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"month\", {\r\n get: function () {\r\n return this._value.getMonth();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"day\", {\r\n get: function () {\r\n return this._value.getDate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"dayOfWeek\", {\r\n get: function () {\r\n return this._value.getDay();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.prototype.addMilliseconds = function (ms) {\r\n ms = ms || 0;\r\n return new DateTime(this._value.getTime() + ms, this._kind);\r\n };\r\n DateTime.prototype.addSeconds = function (seconds) {\r\n seconds = seconds || 0;\r\n return this.addMilliseconds(seconds * 1000);\r\n };\r\n DateTime.prototype.addMinutes = function (minutes) {\r\n minutes = minutes || 0;\r\n return this.addMilliseconds(minutes * 60000);\r\n };\r\n DateTime.prototype.addHours = function (hours) {\r\n hours = hours || 0;\r\n return this.addMilliseconds(hours * 3600000);\r\n };\r\n DateTime.prototype.addDays = function (days) {\r\n days = days || 0;\r\n return this.addMilliseconds(days * 86400000);\r\n };\r\n DateTime.prototype.addMonths = function (months) {\r\n months = months || 0;\r\n var d = this.toJsDate();\r\n d.setMonth(d.getMonth() + months);\r\n return new DateTime(d, this._kind);\r\n };\r\n DateTime.prototype.addYears = function (years) {\r\n years = years || 0;\r\n var d = this.toJsDate();\r\n d.setFullYear(d.getFullYear() + years);\r\n return new DateTime(d, this._kind);\r\n };\r\n DateTime.prototype.add = function (time) {\r\n return this.addMilliseconds(time.getTotalMilliseconds());\r\n };\r\n DateTime.prototype.subtract = function (time) {\r\n return this.addMilliseconds(-time.getTotalMilliseconds());\r\n };\r\n DateTime.prototype.timePassedSince = function (previous) {\r\n return DateTime.between(previous, this);\r\n };\r\n Object.defineProperty(DateTime.prototype, \"date\", {\r\n get: function () {\r\n var _ = this;\r\n return new DateTime(new Date(_.year, _.month, _.day), _._kind);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"timeOfDay\", {\r\n get: function () {\r\n var _ = this, t = _._time;\r\n if (!t) {\r\n var d = this._value;\r\n _._time = t = new ClockTime_1.default(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n }\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.prototype.toTimeStamp = function () {\r\n return TimeStamp_1.default.from(this);\r\n };\r\n Object.defineProperty(DateTime, \"now\", {\r\n get: function () {\r\n return new DateTime();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime.prototype, \"toUniversalTime\", {\r\n get: function () {\r\n var _ = this;\r\n if (_._kind != 1)\r\n return new DateTime(_, _._kind);\r\n var d = _._value;\r\n return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime, \"today\", {\r\n get: function () {\r\n return DateTime.now.date;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTime, \"tomorrow\", {\r\n get: function () {\r\n var today = DateTime.today;\r\n return today.addDays(1);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateTime.between = function (first, last) {\r\n var f = Types_1.default.isInstanceOf(first, DateTime) ? first._value : first, l = Types_1.default.isInstanceOf(last, DateTime) ? last._value : last;\r\n return new TimeSpan_1.default(f.getTime() - l.getTime());\r\n };\r\n DateTime.isLeapYear = function (year) {\r\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n };\r\n DateTime.daysInMonth = function (year, month) {\r\n return (new Date(year, month + 1, 0)).getDate();\r\n };\r\n return DateTime;\r\n })();\r\n Object.freeze(DateTime);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = DateTime;\r\n});\r\n//# sourceMappingURL=DateTime.js.map","/*\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\n///\r\n///\r\nimport Type from '../Types';\r\nimport * as HowMany from './HowMany';\r\nimport ClockTime from './ClockTime';\r\nimport TimeSpan from './TimeSpan';\r\nimport TimeStamp from './TimeStamp';\r\nimport {Gregorian} from './Calendars';\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(Type.isInstanceOf(value,DateTime))\r\n\t\t\t_._value = value.toJsDate();\r\n\t\telse if(Type.isInstanceOf(value,Date))\r\n\t\t\t_._setJsDate(value);\r\n\t\telse\r\n\t\t\t_._value = value==undefined\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 = Type.isInstanceOf(first,DateTime) ? first._value : first,\r\n\t\t l:Date = Type.isInstanceOf(last,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","ClockTime_1","TimeSpan_1","TimeStamp_1","DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","get","DateTime.kind","enumerable","configurable","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Time/DateTime.js","sourcesContent":["(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'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 diff --git a/dist/umd.min/System/Time/HowMany.js b/dist/umd.min/System/Time/HowMany.js index de8b69bc..4f70ddc7 100644 --- a/dist/umd.min/System/Time/HowMany.js +++ b/dist/umd.min/System/Time/HowMany.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){}); + //# sourceMappingURL=HowMany.js.map diff --git a/dist/umd.min/System/Time/HowMany.js.map b/dist/umd.min/System/Time/HowMany.js.map index 85c5a34e..8967aff6 100644 --- a/dist/umd.min/System/Time/HowMany.js.map +++ b/dist/umd.min/System/Time/HowMany.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Time/HowMany.js"],"names":["deps","factory","module","exports","v","require","undefined","define","amd"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF","file":"System/Time/HowMany.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n});\r\n//# sourceMappingURL=HowMany.js.map"]} \ No newline at end of file +{"version":3,"sources":["System/Time/HowMany.js"],"names":[],"mappings":"","file":"System/Time/HowMany.js","sourcesContent":["\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Time/TimeQuantity.js b/dist/umd.min/System/Time/TimeQuantity.js index b91578b1..d2eb6ba3 100644 --- a/dist/umd.min/System/Time/TimeQuantity.js +++ b/dist/umd.min/System/Time/TimeQuantity.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Compare","./HowMany","./TimeUnit"],function(e,t){var o=e("../Compare"),i=(e("./HowMany"),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["default"].fromMilliseconds(this.getTotalMilliseconds(),e)},e}();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 521b3da9..efac8898 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":["deps","factory","module","exports","v","require","undefined","define","amd","Compare_1","TimeUnit_1","TimeQuantity","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","get","TimeQuantity.direction","enumerable","configurable","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,aAAc,YAAa,cAAe,SAAUI,EAASF,GCHvF,GAAAM,GAAAJ,EAA+B,cAE/BK,GADmBL,EAAM,aACzBA,EAAqB,eAKrBM,EAAA,WAICA,QAAAA,GAAsBA,GAAVC,SAAAA,IAAAA,EAAAA,GAAUA,KAAAA,UAAAA,EA2EvBD,MAtECA,GAAAA,UAAAA,qBAAAA,WAECE,MAAOA,MAAKA,WAObF,OAAAA,eAAIA,EAAAA,UAAAA,aDNOG,ICMXH,WAECI,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,IDLlCC,YAAY,EACZC,cAAc,ICYzBN,EAAAA,UAAAA,OAAAA,SAAOA,GAENO,MAAOA,GAAAA,SAASA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAQlFP,EAAAA,UAAAA,UAAAA,SAAUA,GAETQ,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAWjFR,OAAAA,eAAIA,EAAAA,UAAAA,SD1BOG,IC0BXH,WAECS,GAAIA,GAAIA,KAAKA,MACbA,KAAIA,EACJA,CACCA,GAAIA,GAAKA,KAAKA,sBAEdA,MAAKA,OAASA,EAAsBA,OAAOA,QAC1CA,MAAUA,IAAHA,EACPA,aAAcA,EACdA,QAASA,EAAGA,IACZA,QAASA,EAAGA,IACZA,MAAOA,EAAGA,KACVA,KAAMA,EAAGA,QAGXA,MAAOA,ID3BGJ,YAAY,EACZC,cAAc,ICkCzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,MAAOA,GAAAA,WAASA,iBAAiBA,KAAKA,uBAAwBA,IAEhEV,IA/EAW,QAAAC,eAAApB,EAAA,cAAAqB,OAAA,IDiDIrB,EAAAA,WAAkBQ","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Compare', './HowMany', './TimeUnit'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Compare_1 = require('../Compare');\r\n var HowMany = require('./HowMany');\r\n var TimeUnit_1 = require('./TimeUnit');\r\n var TimeQuantity = (function () {\r\n function TimeQuantity(_quantity) {\r\n if (_quantity === void 0) { _quantity = 0; }\r\n this._quantity = _quantity;\r\n }\r\n TimeQuantity.prototype.getTotalMilliseconds = function () {\r\n return this._quantity;\r\n };\r\n Object.defineProperty(TimeQuantity.prototype, \"direction\", {\r\n get: function () {\r\n return Compare_1.compare(this.getTotalMilliseconds(), 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeQuantity.prototype.equals = function (other) {\r\n return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n };\r\n TimeQuantity.prototype.compareTo = function (other) {\r\n return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds);\r\n };\r\n Object.defineProperty(TimeQuantity.prototype, \"total\", {\r\n get: function () {\r\n var t = this._total;\r\n if (!t) {\r\n var ms = this.getTotalMilliseconds();\r\n this._total = t = Object.freeze({\r\n ticks: ms * 10000,\r\n milliseconds: ms,\r\n seconds: ms / 1000,\r\n minutes: ms / 60000,\r\n hours: ms / 3600000,\r\n days: ms / 86400000,\r\n });\r\n }\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeQuantity.prototype.getTotal = function (units) {\r\n return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units);\r\n };\r\n return TimeQuantity;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeQuantity;\r\n});\r\n//# sourceMappingURL=TimeQuantity.js.map","/*\r\n * @author 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 {areEqual,compare} from '../Compare';\r\nimport * as HowMany from './HowMany';\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 {CompareResult}\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","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","get","TimeQuantity.direction","enumerable","configurable","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal","Object","defineProperty","value"],"mappings":"CAAA,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,GCHtB,YAMA,IAAAM,GAAAJ,EAA+B,cAC/BK,EAAAL,EAAqB,cAKrBM,EAAA,WAICA,QAAAA,GAAsBA,GAAVC,SAAAA,IAAAA,EAAAA,GAAUA,KAAAA,UAAAA,EA2EvBD,MAtECA,GAAAA,UAAAA,qBAAAA,WAECE,MAAOA,MAAKA,WAObF,OAAAA,eAAIA,EAAAA,UAAAA,aDdOG,ICcXH,WAECI,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,IDblCC,YAAY,EACZC,cAAc,ICoBzBN,EAAAA,UAAAA,OAAAA,SAAOA,GAENO,MAAOA,GAAAA,SAASA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAQlFP,EAAAA,UAAAA,UAAAA,SAAUA,GAETQ,MAAOA,GAAAA,QAAQA,KAAKA,uBAAwBA,GAASA,EAAMA,OAASA,EAAMA,MAAMA,eAWjFR,OAAAA,eAAIA,EAAAA,UAAAA,SDlCOG,ICkCXH,WAECS,GAAIA,GAAIA,KAAKA,MACbA,KAAIA,EACJA,CACCA,GAAIA,GAAKA,KAAKA,sBAEdA,MAAKA,OAASA,EAAsBA,OAAOA,QAC1CA,MAAUA,IAAHA,EACPA,aAAcA,EACdA,QAASA,EAAGA,IACZA,QAASA,EAAGA,IACZA,MAAOA,EAAGA,KACVA,KAAMA,EAAGA,QAGXA,MAAOA,IDnCGJ,YAAY,EACZC,cAAc,IC0CzBN,EAAAA,UAAAA,SAAAA,SAASA,GAERU,MAAOA,GAAAA,WAASA,iBAAiBA,KAAKA,uBAAwBA,IAEhEV,IA/EAW,QAAAC,eAAApB,EAAA,cAAAqB,OAAA,IDyCIrB,EAAAA,WAAkBQ","file":"System/Time/TimeQuantity.js","sourcesContent":["(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/umd.min/System/Time/TimeSpan.js b/dist/umd.min/System/Time/TimeSpan.js index bb5159aa..f7f1978c 100644 --- a/dist/umd.min/System/Time/TimeSpan.js +++ b/dist/umd.min/System/Time/TimeSpan.js @@ -1,7 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var n=t(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Types","./HowMany","./TimeUnit","./ClockTime","./TimeQuantity"],function(e,t){var n=e("../Types"),o=(e("./HowMany"),e("./TimeUnit")),i=e("./ClockTime"),r=e("./TimeQuantity"),u=function(e){function t(t,n){void 0===n&&(n=o["default"].Milliseconds);var i=o["default"].toMilliseconds(t,n);e.call(this,i);var r=this;r.ticks=1e4*i,r.milliseconds=i,r.seconds=i/1e3,r.minutes=i/6e4,r.hours=i/36e5,r.days=i/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 i["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=o["default"].Milliseconds),new t(this.getTotalMilliseconds()+o["default"].toMilliseconds(e,n))},t.from=function(e,n){return new t(e,n)},t.fromDays=function(e){return new t(e,o["default"].Days)},t.fromHours=function(e){return new t(e,o["default"].Hours)},t.fromMinutes=function(e){return new t(e,o["default"].Minutes)},t.fromSeconds=function(e){return new t(e,o["default"].Seconds)},t.fromMilliseconds=function(e){return new t(e,o["default"].Milliseconds)},t.fromTicks=function(e){return new t(e,o["default"].Ticks)},Object.defineProperty(t,"zero",{get:function(){return l||(l=new t(0))},enumerable:!0,configurable:!0}),t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u;var l}); +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}); //# 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 e0c17327..09d4a2fb 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","deps","factory","module","exports","v","require","undefined","define","amd","Types_1","TimeUnit_1","ClockTime_1","TimeQuantity_1","TimeSpan","_super","TimeSpan.constructor","get","TimeSpan.total","enumerable","configurable","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero","defineProperty","value","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,MAEnF,SAAWO,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,WAAY,YAAa,aAAc,cAAe,kBAAmB,SAAUI,EAASF,GCPtH,GAAAM,GAAAJ,EAAiB,YAEjBK,GADmBL,EAAM,aACzBA,EAAqB,eACrBM,EAAAN,EAAsB,eACtBO,EAAAP,EAAyB,kBAKzBQ,EAAA,SAAAC,GAYCD,QAAAA,GAAYA,EAAcA,GAAAE,SAAAA,IAAAA,EAAiBA,EAAAA,WAASA,aAEnDA,IAAIA,GAAKA,EAAAA,WAASA,eAAeA,EAAOA,EACxCA,GAAAA,KAAAA,KAAMA,EAENA,IAAIA,GAAIA,IACRA,GAAEA,MAAWA,IAAHA,EACVA,EAAEA,aAAeA,EACjBA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,MAAQA,EAAGA,KACbA,EAAEA,KAAOA,EAAGA,MA8EdF,MApGuBA,WAAAA,EAAAA,GA6BtBA,OAAAA,eAAIA,EAAAA,UAAAA,SDXOG,ICWXH,WAECI,MAAOA,ODVGC,YAAY,EACZC,cAAc,ICczBN,OAAAA,eAAIA,EAAAA,UAAAA,QDXOG,ICWXH,WAECO,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,KAEpBA,OADIA,KAAGA,EAAEA,MAAQA,EAAIA,GAAIA,GAAAA,WAAUA,EAAEA,yBAC9BA,GDTGF,YAAY,EACZC,cAAc,ICWzBN,EAAAA,UAAAA,IAAAA,SAAIA,GAEHQ,GAAGA,EAAAA,WAAKA,SAASA,GAChBA,KAAMA,IAAIA,OACTA,yKAIFA,OAAOA,IAAIA,GAASA,KAAKA,uBAAyBA,EAAMA,MAAMA,eAG/DR,EAAAA,UAAAA,QAAAA,SAAQA,EAAcA,GAErBS,MAFqBA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAExCA,GAAIA,GAASA,KAAKA,uBAAyBA,EAAAA,WAASA,eAAeA,EAAOA,KAI3ET,EAAAA,KAAPA,SAAYA,EAAcA,GAEzBU,MAAOA,IAAIA,GAASA,EAAOA,IAGrBV,EAAAA,SAAPA,SAAgBA,GAEfW,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,OAG9BX,EAAAA,UAAPA,SAAiBA,GAEhBY,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAG9BZ,EAAAA,YAAPA,SAAmBA,GAElBa,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bb,EAAAA,YAAPA,SAAmBA,GAElBc,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bd,EAAAA,iBAAPA,SAAwBA,GAEvBe,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,eAG9Bf,EAAAA,UAAPA,SAAiBA,GAEhBgB,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAIrChB,OAAAA,eAAWA,EAAAA,QD9BAG,IC8BXH,WAECiB,MAAOA,KAAiBA,EAAeA,GAAIA,GAASA,KD7B1CZ,YAAY,EACZC,cAAc,IC8B1BN,GApGuBD,EAAAA,WADvBd,QAAAiC,eAAA5B,EAAA,cAAA6B,OAAA,ID4EI7B,EAAAA,WAAkBU,CC4BtB,IAAIoB","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\nvar __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', './HowMany', './TimeUnit', './ClockTime', './TimeQuantity'], function (require, exports) {\r\n var Types_1 = require('../Types');\r\n var HowMany = require('./HowMany');\r\n var TimeUnit_1 = require('./TimeUnit');\r\n var ClockTime_1 = require('./ClockTime');\r\n var TimeQuantity_1 = require('./TimeQuantity');\r\n var TimeSpan = (function (_super) {\r\n __extends(TimeSpan, _super);\r\n function TimeSpan(value, units) {\r\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\r\n var ms = TimeUnit_1.default.toMilliseconds(value, units);\r\n _super.call(this, ms);\r\n var _ = this;\r\n _.ticks = ms * 10000;\r\n _.milliseconds = ms;\r\n _.seconds = ms / 1000;\r\n _.minutes = ms / 60000;\r\n _.hours = ms / 3600000;\r\n _.days = ms / 86400000;\r\n }\r\n Object.defineProperty(TimeSpan.prototype, \"total\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TimeSpan.prototype, \"time\", {\r\n get: function () {\r\n var _ = this, t = _._time;\r\n if (!t)\r\n _._time = t = new ClockTime_1.default(_.getTotalMilliseconds());\r\n return t;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeSpan.prototype.add = function (other) {\r\n if (Types_1.default.isNumber(other))\r\n throw new Error(\"Use .addUnit(value:number,units:TimeUnit) to add a numerical value amount. Default units are milliseconds.\\n\" +\r\n \".add only supports quantifiable time values (ITimeTotal).\");\r\n return new TimeSpan(this.getTotalMilliseconds() + other.total.milliseconds);\r\n };\r\n TimeSpan.prototype.addUnit = function (value, units) {\r\n if (units === void 0) { units = TimeUnit_1.default.Milliseconds; }\r\n return new TimeSpan(this.getTotalMilliseconds() + TimeUnit_1.default.toMilliseconds(value, units));\r\n };\r\n TimeSpan.from = function (value, units) {\r\n return new TimeSpan(value, units);\r\n };\r\n TimeSpan.fromDays = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Days);\r\n };\r\n TimeSpan.fromHours = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Hours);\r\n };\r\n TimeSpan.fromMinutes = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Minutes);\r\n };\r\n TimeSpan.fromSeconds = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Seconds);\r\n };\r\n TimeSpan.fromMilliseconds = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Milliseconds);\r\n };\r\n TimeSpan.fromTicks = function (value) {\r\n return new TimeSpan(value, TimeUnit_1.default.Ticks);\r\n };\r\n Object.defineProperty(TimeSpan, \"zero\", {\r\n get: function () {\r\n return timeSpanZero || (timeSpanZero = new TimeSpan(0));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TimeSpan;\r\n })(TimeQuantity_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeSpan;\r\n var timeSpanZero;\r\n});\r\n//# sourceMappingURL=TimeSpan.js.map","/*\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\nimport {areEqual,compare} from '../Compare';\r\nimport Type from '../Types';\r\nimport * as HowMany from './HowMany';\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","TimeSpan.constructor","get","TimeSpan.total","enumerable","configurable","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero","defineProperty","value","timeSpanZero"],"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,WAAY,aAAc,cAAe,kBAAmBN,IAE/F,SAAUI,EAASF,GCPtB,YAOA,IAAAM,GAAAJ,EAAiB,YACjBK,EAAAL,EAAqB,cACrBM,EAAAN,EAAsB,eACtBO,EAAAP,EAAyB,kBAKzBQ,EAAA,SAAAC,GAYCD,QAAAA,GAAYA,EAAcA,GAAAE,SAAAA,IAAAA,EAAiBA,EAAAA,WAASA,aAEnDA,IAAIA,GAAKA,EAAAA,WAASA,eAAeA,EAAOA,EACxCA,GAAAA,KAAAA,KAAMA,EAENA,IAAIA,GAAIA,IACRA,GAAEA,MAAWA,IAAHA,EACVA,EAAEA,aAAeA,EACjBA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,QAAUA,EAAGA,IACfA,EAAEA,MAAQA,EAAGA,KACbA,EAAEA,KAAOA,EAAGA,MA8EdF,MApGuBA,WAAAA,EAAAA,GA6BtBA,OAAAA,eAAIA,EAAAA,UAAAA,SDjBOG,ICiBXH,WAECI,MAAOA,ODhBGC,YAAY,EACZC,cAAc,ICoBzBN,OAAAA,eAAIA,EAAAA,UAAAA,QDjBOG,ICiBXH,WAECO,GAAIA,GAAIA,KAAMA,EAAIA,EAAEA,KAEpBA,OADIA,KAAGA,EAAEA,MAAQA,EAAIA,GAAIA,GAAAA,WAAUA,EAAEA,yBAC9BA,GDfGF,YAAY,EACZC,cAAc,ICiBzBN,EAAAA,UAAAA,IAAAA,SAAIA,GAEHQ,GAAGA,EAAAA,WAAKA,SAASA,GAChBA,KAAMA,IAAIA,OACTA,yKAIFA,OAAOA,IAAIA,GAASA,KAAKA,uBAAyBA,EAAMA,MAAMA,eAG/DR,EAAAA,UAAAA,QAAAA,SAAQA,EAAcA,GAErBS,MAFqBA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAExCA,GAAIA,GAASA,KAAKA,uBAAyBA,EAAAA,WAASA,eAAeA,EAAOA,KAI3ET,EAAAA,KAAPA,SAAYA,EAAcA,GAEzBU,MAAOA,IAAIA,GAASA,EAAOA,IAGrBV,EAAAA,SAAPA,SAAgBA,GAEfW,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,OAG9BX,EAAAA,UAAPA,SAAiBA,GAEhBY,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAG9BZ,EAAAA,YAAPA,SAAmBA,GAElBa,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bb,EAAAA,YAAPA,SAAmBA,GAElBc,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,UAG9Bd,EAAAA,iBAAPA,SAAwBA,GAEvBe,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,eAG9Bf,EAAAA,UAAPA,SAAiBA,GAEhBgB,MAAOA,IAAIA,GAASA,EAAOA,EAAAA,WAASA,QAIrChB,OAAAA,eAAWA,EAAAA,QDpCAG,ICoCXH,WAECiB,MAAOA,KAAiBA,EAAeA,GAAIA,GAASA,KDnC1CZ,YAAY,EACZC,cAAc,ICoC1BN,GApGuBD,EAAAA,WADvBb,QAAAgC,eAAA5B,EAAA,cAAA6B,OAAA,IDsEI7B,EAAAA,WAAkBU,CCkCtB,IAAIoB","file":"System/Time/TimeSpan.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\", '../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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/umd.min/System/Time/TimeStamp.js b/dist/umd.min/System/Time/TimeStamp.js index 1733bcff..95b88734 100644 --- a/dist/umd.min/System/Time/TimeStamp.js +++ b/dist/umd.min/System/Time/TimeStamp.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var o=t(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","./HowMany","../Types"],function(e,t){var o=(e("./HowMany"),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(!o["default"].isInstanceOf(t,Date)&&o["default"].hasMember(t,"toJsDate")&&(t=t.toJsDate()),o["default"].isInstanceOf(t,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["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}); //# 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 4758b719..a1c941da 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":["deps","factory","module","exports","v","require","undefined","define","amd","Types_1","TimeStamp","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,YAAa,YAAa,SAAUI,EAASF,GCHvE,GACAM,IADmBJ,EAAM,aACzBA,EAAiB,aAKjBK,EAAA,WAICA,QAAAA,GACQA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,GALPC,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GAPOA,KAAAA,KAAAA,EACAA,KAAAA,MAAAA,EACAA,KAAAA,IAAAA,EACAA,KAAAA,KAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,YAAAA,EACAA,KAAAA,KAAAA,EAKPA,OAAOA,OAAOA,MA8BhBD,MA3BCA,GAAAA,UAAAA,SAAAA,WAECE,GAAIA,GAAIA,IACRA,OAAOA,IAAIA,MAAKA,EAAEA,KAAMA,EAAEA,MAAOA,EAAEA,IAAKA,EAAEA,KAAMA,EAAEA,OAAQA,EAAEA,OAAQA,EAAEA,YAAcA,EAAEA,KAAKA,MAGrFF,EAAAA,KAAPA,SAAYA,GAIXG,IAFMA,EAAAA,WAAKA,aAAmBA,EAAEA,OAAUA,EAAAA,WAAKA,UAAUA,EAAEA,cAC1DA,EAAgBA,EAAGA,YACjBA,EAAAA,WAAKA,aAAmBA,EAAEA,MAE5BA,MAAOA,IAAIA,GACVA,EAAEA,cACFA,EAAEA,WACFA,EAAEA,UACFA,EAAEA,WACFA,EAAEA,aACFA,EAAEA,aACFA,EAAEA,kBAKHA,MAAMA,OAAMA,uBAGfH,IA/CAI,QAAAC,eAAAZ,EAAA,cAAAa,OAAA,IDoCIb,EAAAA,WAAkBO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", './HowMany', '../Types'], function (require, exports) {\r\n var HowMany = require('./HowMany');\r\n var Types_1 = require('../Types');\r\n var TimeStamp = (function () {\r\n function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) {\r\n // TODO: Add validation or properly carry out of range values...\r\n if (day === void 0) { day = 1; }\r\n if (hour === void 0) { hour = 0; }\r\n if (minute === void 0) { minute = 0; }\r\n if (second === void 0) { second = 0; }\r\n if (millisecond === void 0) { millisecond = 0; }\r\n if (tick === void 0) { tick = 0; }\r\n this.year = year;\r\n this.month = month;\r\n this.day = day;\r\n this.hour = hour;\r\n this.minute = minute;\r\n this.second = second;\r\n this.millisecond = millisecond;\r\n this.tick = tick;\r\n Object.freeze(this);\r\n }\r\n TimeStamp.prototype.toJsDate = function () {\r\n var _ = this;\r\n return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000);\r\n };\r\n TimeStamp.from = function (d) {\r\n if (!(Types_1.default.isInstanceOf(d, Date)) && Types_1.default.hasMember(d, 'toJsDate'))\r\n d = d.toJsDate();\r\n if (Types_1.default.isInstanceOf(d, Date)) {\r\n return new TimeStamp(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n }\r\n else {\r\n throw Error('Invalid date type.');\r\n }\r\n };\r\n return TimeStamp;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeStamp;\r\n});\r\n//# sourceMappingURL=TimeStamp.js.map","/*\r\n * @author 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 {Gregorian} from './Calendars';\r\nimport * as HowMany from './HowMany';\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 (!(Type.isInstanceOf(d,Date)) && Type.hasMember(d,'toJsDate'))\r\n\t\t\td = (d).toJsDate();\r\n\t\tif(Type.isInstanceOf(d,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","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from","Object","defineProperty","value"],"mappings":"CAAA,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,GCHtB,YAMA,IAAAM,GAAAJ,EAAiB,YAKjBK,EAAA,WAICA,QAAAA,GACQA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,GALPC,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GACAA,SAAAA,IAAAA,EAAAA,GAPOA,KAAAA,KAAAA,EACAA,KAAAA,MAAAA,EACAA,KAAAA,IAAAA,EACAA,KAAAA,KAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,OAAAA,EACAA,KAAAA,YAAAA,EACAA,KAAAA,KAAAA,EAKPA,OAAOA,OAAOA,MA8BhBD,MA3BCA,GAAAA,UAAAA,SAAAA,WAECE,GAAIA,GAAIA,IACRA,OAAOA,IAAIA,MAAKA,EAAEA,KAAMA,EAAEA,MAAOA,EAAEA,IAAKA,EAAEA,KAAMA,EAAEA,OAAQA,EAAEA,OAAQA,EAAEA,YAAcA,EAAEA,KAAKA,MAGrFF,EAAAA,KAAPA,SAAYA,GAIXG,GAFMA,YAAaA,QAASA,EAAAA,WAAKA,UAAUA,EAAEA,cAC5CA,EAAgBA,EAAGA,YACjBA,YAAaA,MAEfA,MAAOA,IAAIA,GACVA,EAAEA,cACFA,EAAEA,WACFA,EAAEA,UACFA,EAAEA,WACFA,EAAEA,aACFA,EAAEA,aACFA,EAAEA,kBAKHA,MAAMA,OAAMA,uBAGfH,IA/CAI,QAAAC,eAAAZ,EAAA,cAAAa,OAAA,ID8BIb,EAAAA,WAAkBO","file":"System/Time/TimeStamp.js","sourcesContent":["(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/umd.min/System/Time/TimeUnit.js b/dist/umd.min/System/Time/TimeUnit.js index 469b824c..28af0235 100644 --- a/dist/umd.min/System/Time/TimeUnit.js +++ b/dist/umd.min/System/Time/TimeUnit.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(e,s){if("object"==typeof module&&"object"==typeof module.exports){var n=s(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,s)}(["require","exports","./HowMany"],function(e,s){var n;e("./HowMany");!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"}(n||(n={}));var n;!function(e){function s(s,n){switch(void 0===n&&(n=e.Milliseconds),n){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 n(s,n){switch(n){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 i(e,s){return e&&n(e.getTotalMilliseconds(),s)}function o(s){if(isNaN(s)||s>e.Days||se.Days||s\r\n var HowMany = require('./HowMany');\r\n var TimeUnit;\r\n (function (TimeUnit) {\r\n TimeUnit[TimeUnit[\"Ticks\"] = 0] = \"Ticks\";\r\n TimeUnit[TimeUnit[\"Milliseconds\"] = 1] = \"Milliseconds\";\r\n TimeUnit[TimeUnit[\"Seconds\"] = 2] = \"Seconds\";\r\n TimeUnit[TimeUnit[\"Minutes\"] = 3] = \"Minutes\";\r\n TimeUnit[TimeUnit[\"Hours\"] = 4] = \"Hours\";\r\n TimeUnit[TimeUnit[\"Days\"] = 5] = \"Days\";\r\n })(TimeUnit || (TimeUnit = {}));\r\n var TimeUnit;\r\n (function (TimeUnit) {\r\n function toMilliseconds(value, units) {\r\n if (units === void 0) { units = TimeUnit.Milliseconds; }\r\n switch (units) {\r\n case TimeUnit.Days:\r\n value *= 24;\r\n case TimeUnit.Hours:\r\n value *= 60;\r\n case TimeUnit.Minutes:\r\n value *= 60;\r\n case TimeUnit.Seconds:\r\n value *= 1000;\r\n case TimeUnit.Milliseconds:\r\n return value;\r\n case TimeUnit.Ticks:\r\n return value / 10000;\r\n default:\r\n throw new Error(\"Invalid TimeUnit.\");\r\n }\r\n }\r\n TimeUnit.toMilliseconds = toMilliseconds;\r\n function fromMilliseconds(ms, units) {\r\n switch (units) {\r\n case TimeUnit.Days:\r\n return ms / 86400000;\r\n case TimeUnit.Hours:\r\n return ms / 3600000;\r\n case TimeUnit.Minutes:\r\n return ms / 60000;\r\n case TimeUnit.Seconds:\r\n return ms / 1000;\r\n case TimeUnit.Milliseconds:\r\n return ms;\r\n case TimeUnit.Ticks:\r\n return ms * 10000;\r\n default:\r\n throw new Error(\"Invalid TimeUnit.\");\r\n }\r\n }\r\n TimeUnit.fromMilliseconds = fromMilliseconds;\r\n function from(quantity, unit) {\r\n return quantity && fromMilliseconds(quantity.getTotalMilliseconds(), unit);\r\n }\r\n TimeUnit.from = from;\r\n function assertValid(unit) {\r\n if (isNaN(unit) || unit > TimeUnit.Days || unit < TimeUnit.Ticks || Math.floor(unit) !== unit)\r\n throw new Error(\"Invalid TimeUnit.\");\r\n return true;\r\n }\r\n TimeUnit.assertValid = assertValid;\r\n })(TimeUnit || (TimeUnit = {}));\r\n Object.freeze(TimeUnit);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = TimeUnit;\r\n});\r\n//# sourceMappingURL=TimeUnit.js.map","/*\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\nimport * as HowMany from './HowMany';\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 || (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\r\n///\r\n///\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","TimeQuantity_1","TimeUnitValue","_super","TimeUnitValue.constructor","get","TimeUnitValue.value","set","enumerable","configurable","TimeUnitValue.getTotalMilliseconds","TimeUnitValue.units","TimeUnitValue.to","TimeUnitValue.from","defineProperty","value"],"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,aAAc,kBAAmBN,IAEpE,SAAUI,EAASF,GCRtB,YA2DA,SAAAM,GAA6BC,EAAiBC,GAE7CF,MAAOA,GAAAA,WAASA,iBAAiBA,EAAEA,uBAAwBA,GAtD5D,GAAAG,GAAAP,EAAqB,cACrBQ,EAAAR,EAAyB,kBAKzBS,EAAA,SAAAC,GAICD,QAAAA,GAAYA,EAAoCA,GAE/CE,EAAAA,KAAAA,KAAqBA,gBAATA,GACDA,EACRA,EAAmCA,EAAOA,IAJEA,KAAAA,OAAAA,EAK/CA,EAAAA,WAASA,YAAYA,GAmCvBF,MA3C4BA,WAAAA,EAAAA,GAW3BA,OAAAA,eAAIA,EAAAA,UAAAA,SDHOG,ICGXH,WAECI,MAAOA,MAAKA,WDFFC,ICKXL,SAAUA,GAETI,KAAKA,OAASA,KACdA,KAAKA,UAAYA,GDJPE,YAAY,EACZC,cAAc,ICMzBP,EAAAA,UAAAA,qBAAAA,WAECQ,MAAOA,GAAAA,WAASA,eAAeA,KAAKA,UAAWA,KAAKA,SAIrDR,OAAAA,eAAIA,EAAAA,UAAAA,SDNOG,ICMXH,WAECS,MAAOA,MAAKA,QDLFH,YAAY,EACZC,cAAc,ICOzBP,EAAAA,UAAAA,GAAAA,SAAGA,GAEFU,MAFEA,UAAAA,IAAAA,EAAiBA,KAAKA,OAEjBA,EAAcA,KAAKA,KAAKA,IAGzBV,EAAAA,KAAPA,SAAYA,EAA4BA,GAEvCW,MAFuCA,UAAAA,IAAAA,EAAiBA,EAAAA,WAASA,cAE1DA,GAAIA,GAAcA,EAAOA,IAGlCX,GA3C4BD,EAAAA,WAD5Bd,QAAA2B,eAAAvB,EAAA,cAAAwB,OAAA,IDwCIxB,EAAAA,WAAkBW","file":"System/Time/TimeUnitValue.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\", './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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\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 diff --git a/dist/umd.min/System/Types.js b/dist/umd.min/System/Types.js index 1023fae0..9be8acc7 100644 --- a/dist/umd.min/System/Types.js +++ b/dist/umd.min/System/Types.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,i){if("object"==typeof module&&"object"==typeof module.exports){var t=i(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,i)}(["require","exports"],function(e,i){var t=typeof!0,n="number",r="string",s=typeof{},o="undefined",u="function",a={},f=function(){function e(e){var i=this;switch(i.isBoolean=!1,i.isNumber=!1,i.isString=!1,i.isTrueNaN=!1,i.isObject=!1,i.isFunction=!1,i.isUndefined=!1,i.isNull=!1,i.isPrimitive=!1,i.type=typeof e){case t:i.isBoolean=!0,i.isPrimitive=!0;break;case n:i.isNumber=!0,i.isTrueNaN=isNaN(e),i.isFinite=isFinite(e),i.isValidNumber=!i.isTrueNaN,i.isPrimitive=!0;break;case r:i.isString=!0,i.isPrimitive=!0;break;case s:i.target=e,null===e?(i.isNull=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0):i.isObject=!0;break;case u:i.target=e,i.isString=!0;break;case o:i.isUndefined=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0;break;default:throw"Fatal type failure. Unknown type: "+i.type}Object.freeze(i)}return e.prototype.member=function(i){var t=this.target;return e.getFor(t&&i in t?t[i]:void 0)},e.getFor=function(i){var t=typeof i;switch(t){case s:case u:return new e(i)}var n=a[t];return n||(a[t]=n=new e(i)),n},e}();i.TypeInfo=f;var c;!function(e){function i(e){return typeof e===t}function a(e,i){return void 0===i&&(i=!0),typeof e===n&&(i||!isNaN(e))}function c(e){return typeof e===n&&isNaN(e)}function N(e){return typeof e===r}function p(e){var i=typeof e;switch(i){case t:case r:case n:case o:return!0;case s:return null===e}return!1}function l(e){return typeof e===u}function d(e){return typeof e===s}function y(e){return isNaN(e)?NaN:e}function b(e){return f.getFor(e)}function m(e,i){return e&&!p(e)&&i in e}function v(e,i,t){return m(e,i)&&typeof e[i]===t}function O(e,i){return e instanceof i}function g(e){return e instanceof Array||m(e,"length")}e.BOOLEAN=t,e.NUMBER=n,e.STRING=r,e.OBJECT=s,e.UNDEFINED=o,e.FUNCTION=u,e.isBoolean=i,e.isNumber=a,e.isTrueNaN=c,e.isString=N,e.isPrimitive=p,e.isFunction=l,e.isObject=d,e.numberOrNaN=y,e.of=b,e.hasMember=m,e.hasMemberOfType=v,e.isInstanceOf=O,e.isArrayLike=g}(c||(c={})),Object.freeze(c),Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=c}); +!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"],e)}(function(e,i){"use strict";var t=void 0,r=typeof!0,n="number",s="string",o=typeof{},u=typeof t,a="function",f={},c=function(){function e(e){var i=this;switch(i.isBoolean=!1,i.isNumber=!1,i.isString=!1,i.isTrueNaN=!1,i.isObject=!1,i.isFunction=!1,i.isUndefined=!1,i.isNull=!1,i.isPrimitive=!1,i.type=typeof e){case r:i.isBoolean=!0,i.isPrimitive=!0;break;case n:i.isNumber=!0,i.isTrueNaN=isNaN(e),i.isFinite=isFinite(e),i.isValidNumber=!i.isTrueNaN,i.isPrimitive=!0;break;case s:i.isString=!0,i.isPrimitive=!0;break;case o:i.target=e,null===e?(i.isNull=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0):i.isObject=!0;break;case a:i.target=e,i.isString=!0;break;case u:i.isUndefined=!0,i.isNullOrUndefined=!0,i.isPrimitive=!0;break;default:throw"Fatal type failure. Unknown type: "+i.type}Object.freeze(i)}return e.prototype.member=function(i){var t=this.target;return e.getFor(t&&i in t?t[i]:void 0)},e.getFor=function(i){var t=typeof i;switch(t){case o:case a:return new e(i)}var r=f[t];return r||(f[t]=r=new e(i)),r},e}();i.TypeInfo=c;var N;!function(e){function i(e){return typeof e===r}function f(e,i){return i===t&&(i=!0),typeof e===n&&(i||!isNaN(e))}function N(e){return typeof e===n&&isNaN(e)}function p(e){return typeof e===s}function l(e){var i=typeof e;switch(i){case r:case s:case n:case u:return!0;case o:return null===e}return!1}function y(e){return typeof e===a}function b(e){return typeof e===o}function d(e){return isNaN(e)?NaN:e}function m(e){return c.getFor(e)}function v(e,i){return e&&!l(e)&&i in e}function O(e,i,t){return v(e,i)&&typeof e[i]===t}function g(e){return e instanceof Array||v(e,"length")}e.BOOLEAN=r,e.NUMBER=n,e.STRING=s,e.OBJECT=o,e.UNDEFINED=u,e.FUNCTION=a,e.isBoolean=i,e.isNumber=f,e.isTrueNaN=N,e.isString=p,e.isPrimitive=l,e.isFunction=y,e.isObject=b,e.numberOrNaN=d,e.of=m,e.hasMember=v,e.hasMemberOfType=O,e.isArrayLike=g}(N||(N={})),Object.freeze(N),Object.defineProperty(i,"__esModule",{value:!0}),i["default"]=N}); //# sourceMappingURL=Types.js.map diff --git a/dist/umd.min/System/Types.js.map b/dist/umd.min/System/Types.js.map index 245f6f06..6b051dbd 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":["deps","factory","module","exports","v","require","undefined","define","amd","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","typeInfoRegistry","TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isInstanceOf","Type.isArrayLike","Object","freeze","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n ///\r\n ///\r\n var _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof undefined, _FUNCTION = typeof function () { };\r\n var typeInfoRegistry = {};\r\n var TypeInfo = (function () {\r\n function TypeInfo(target) {\r\n var _ = this;\r\n _.isBoolean = false;\r\n _.isNumber = false;\r\n _.isString = false;\r\n _.isTrueNaN = false;\r\n _.isObject = false;\r\n _.isFunction = false;\r\n _.isUndefined = false;\r\n _.isNull = false;\r\n _.isPrimitive = false;\r\n switch (_.type = typeof target) {\r\n case _BOOLEAN:\r\n _.isBoolean = true;\r\n _.isPrimitive = true;\r\n break;\r\n case _NUMBER:\r\n _.isNumber = true;\r\n _.isTrueNaN = isNaN(target);\r\n _.isFinite = isFinite(target);\r\n _.isValidNumber = !_.isTrueNaN;\r\n _.isPrimitive = true;\r\n break;\r\n case _STRING:\r\n _.isString = true;\r\n _.isPrimitive = true;\r\n break;\r\n case _OBJECT:\r\n _.target = target;\r\n if (target === null) {\r\n _.isNull = true;\r\n _.isNullOrUndefined = true;\r\n _.isPrimitive = true;\r\n }\r\n else {\r\n _.isObject = true;\r\n }\r\n break;\r\n case _FUNCTION:\r\n _.target = target;\r\n _.isString = true;\r\n break;\r\n case _UNDEFINED:\r\n _.isUndefined = true;\r\n _.isNullOrUndefined = true;\r\n _.isPrimitive = true;\r\n break;\r\n default:\r\n throw \"Fatal type failure. Unknown type: \" + _.type;\r\n }\r\n Object.freeze(_);\r\n }\r\n TypeInfo.prototype.member = function (name) {\r\n var t = this.target;\r\n return TypeInfo.getFor(t && (name) in (t)\r\n ? t[name]\r\n : undefined);\r\n };\r\n TypeInfo.getFor = function (target) {\r\n var type = typeof target;\r\n switch (type) {\r\n case _OBJECT:\r\n case _FUNCTION:\r\n return new TypeInfo(target);\r\n }\r\n var info = typeInfoRegistry[type];\r\n if (!info)\r\n typeInfoRegistry[type] = info = new TypeInfo(target);\r\n return info;\r\n };\r\n return TypeInfo;\r\n })();\r\n exports.TypeInfo = TypeInfo;\r\n var Type;\r\n (function (Type) {\r\n Type.BOOLEAN = _BOOLEAN;\r\n Type.NUMBER = _NUMBER;\r\n Type.STRING = _STRING;\r\n Type.OBJECT = _OBJECT;\r\n Type.UNDEFINED = _UNDEFINED;\r\n Type.FUNCTION = _FUNCTION;\r\n function isBoolean(value) {\r\n return typeof value === _BOOLEAN;\r\n }\r\n Type.isBoolean = isBoolean;\r\n function isNumber(value, allowNaN) {\r\n if (allowNaN === void 0) { allowNaN = true; }\r\n return typeof value === _NUMBER && (allowNaN || !isNaN(value));\r\n }\r\n Type.isNumber = isNumber;\r\n function isTrueNaN(value) {\r\n return typeof value === _NUMBER && isNaN(value);\r\n }\r\n Type.isTrueNaN = isTrueNaN;\r\n function isString(value) {\r\n return typeof value === _STRING;\r\n }\r\n Type.isString = isString;\r\n function isPrimitive(value) {\r\n var t = typeof value;\r\n switch (t) {\r\n case _BOOLEAN:\r\n case _STRING:\r\n case _NUMBER:\r\n case _UNDEFINED:\r\n return true;\r\n case _OBJECT:\r\n return value === null;\r\n }\r\n return false;\r\n }\r\n Type.isPrimitive = isPrimitive;\r\n function isFunction(value) {\r\n return typeof value === _FUNCTION;\r\n }\r\n Type.isFunction = isFunction;\r\n function isObject(value) {\r\n return typeof value === _OBJECT;\r\n }\r\n Type.isObject = isObject;\r\n function numberOrNaN(value) {\r\n return isNaN(value) ? NaN : value;\r\n }\r\n Type.numberOrNaN = numberOrNaN;\r\n function of(target) {\r\n return TypeInfo.getFor(target);\r\n }\r\n Type.of = of;\r\n function hasMember(value, property) {\r\n return value && !isPrimitive(value) && (property) in (value);\r\n }\r\n Type.hasMember = hasMember;\r\n function hasMemberOfType(instance, property, type) {\r\n return hasMember(instance, property) && typeof (instance[property]) === type;\r\n }\r\n Type.hasMemberOfType = hasMemberOfType;\r\n function isInstanceOf(instance, type) {\r\n return (instance) instanceof (type);\r\n }\r\n Type.isInstanceOf = isInstanceOf;\r\n function isArrayLike(instance) {\r\n return (instance) instanceof (Array) || hasMember(instance, \"length\");\r\n }\r\n Type.isArrayLike = isArrayLike;\r\n })(Type || (Type = {}));\r\n Object.freeze(Type);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Type;\r\n});\r\n//# sourceMappingURL=Types.js.map","/*\r\n * @author 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\nconst\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 undefined,\r\n\t_FUNCTION:string = typeof function() {};\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_.isString = 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\nmodule 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\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isNumber(value:any, allowNaN:boolean = true):value is number\r\n\t{\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 * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT;\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\t// Substitute 'instanceof' until WebStorm's reformatting is fixed.\r\n\texport function isInstanceOf(instance:any, type:any):instance is T\r\n\t{\r\n\t\treturn (instance)instanceof(type);\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\treturn (instance)instanceof(Array) || hasMember(instance, \"length\");\r\n\t}\r\n\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\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","typeInfoRegistry","TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isArrayLike","Object","freeze","defineProperty","value"],"mappings":"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","file":"System/Types.js","sourcesContent":["(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 () { };\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 _.isString = 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) {\n return typeof value === _OBJECT;\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 || hasMember(instance, \"length\");\n }\n Type.isArrayLike = isArrayLike;\n })(Type || (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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\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\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_.isString = 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\nmodule 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 * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT;\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\treturn instance instanceof Array || hasMember(instance, \"length\");\r\n\t}\r\n}\r\n\r\nObject.freeze(Type);\r\n\r\nexport default Type;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/HostNameType.js b/dist/umd.min/System/Uri/HostNameType.js index f6fe3f6e..3aa1c8b0 100644 --- a/dist/umd.min/System/Uri/HostNameType.js +++ b/dist/umd.min/System/Uri/HostNameType.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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,o){if("object"==typeof module&&"object"==typeof module.exports){var n=o(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){var n;!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||(n={})),Object.freeze(n),Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=n}); +!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){var n;!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||(n={})),Object.freeze(n),Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=n}); //# 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 1854f832..e6adc864 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":["deps","factory","module","exports","v","require","undefined","define","amd","UriHostNameType","Object","freeze","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCL9C,GAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAT,EAAA,cAAAU,OAAA,IDbIV,EAAAA,WCaWM","file":"System/Uri/HostNameType.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://msdn.microsoft.com/en-us/library/system.UriHostNameType%28v=vs.110%29.aspx\r\n */\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var UriHostNameType;\r\n (function (UriHostNameType) {\r\n UriHostNameType[UriHostNameType[\"Basic\"] = 0] = \"Basic\";\r\n UriHostNameType[UriHostNameType[\"DNS\"] = 1] = \"DNS\";\r\n UriHostNameType[UriHostNameType[\"IPv4\"] = 2] = \"IPv4\";\r\n UriHostNameType[UriHostNameType[\"IPv6\"] = 3] = \"IPv6\";\r\n UriHostNameType[UriHostNameType[\"Unknown\"] = 4] = \"Unknown\";\r\n })(UriHostNameType || (UriHostNameType = {}));\r\n Object.freeze(UriHostNameType);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = UriHostNameType;\r\n});\r\n//# sourceMappingURL=HostNameType.js.map","/*\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":"CAAA,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,GCAtB,GAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,WAxBIA,IAAAA,OA2BLC,OAAOC,OAAOF,GAEdC,OAAAE,eAAAT,EAAA,cAAAU,OAAA,IDlBIV,EAAAA,WCkBWM","file":"System/Uri/HostNameType.js","sourcesContent":["(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 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 diff --git a/dist/umd.min/System/Uri/QueryBuilder.js b/dist/umd.min/System/Uri/QueryBuilder.js index 31a9c45d..664646c2 100644 --- a/dist/umd.min/System/Uri/QueryBuilder.js +++ b/dist/umd.min/System/Uri/QueryBuilder.js @@ -1,6 +1,2 @@ -/* - * @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,t){if("object"==typeof module&&"object"==typeof module.exports){var r=t(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports","../Types","./QueryParams","../Collections/Dictionaries/OrderedStringKeyDictionary"],function(e,t){var r=e("../Types"),o=e("./QueryParams"),i=e("../Collections/Dictionaries/OrderedStringKeyDictionary"),n="&",s="=",u=function(e){function t(t,o){void 0===o&&(o=!0),e.call(this),r["default"].isString(t)?this.importFromString(t,o):this.importMap(t)}return __extends(t,e),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.init=function(e,r){return void 0===r&&(r=!0),new t(e,r)},t.prototype.encode=function(e){for(var t=[],r=this.keys,i=0;i\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var QueryParams = require('./QueryParams');\r\n var OrderedStringKeyDictionary_1 = require('../Collections/Dictionaries/OrderedStringKeyDictionary');\r\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\r\n var QueryBuilder = (function (_super) {\r\n __extends(QueryBuilder, _super);\r\n function QueryBuilder(query, decodeValues) {\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n _super.call(this);\r\n if (Types_1.default.isString(query)) {\r\n this.importFromString(query, decodeValues);\r\n }\r\n else {\r\n this.importMap(query);\r\n }\r\n }\r\n QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var _ = this;\r\n QueryParams.parse(values, function (key, value) {\r\n if (_.containsKey(key)) {\r\n var prev = _.getValue(key);\r\n if (Array.isArray(prev))\r\n prev.push(value);\r\n else\r\n _.setValue(key, [prev, value]);\r\n }\r\n else\r\n _.setValue(key, value);\r\n }, deserialize, decodeValues);\r\n return this;\r\n };\r\n QueryBuilder.init = function (query, decodeValues) {\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n return new QueryBuilder(query, decodeValues);\r\n };\r\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\r\n var entries = [];\r\n var keys = this.keys;\r\n for (var _i = 0; _i < keys.length; _i++) {\r\n var k = keys[_i];\r\n var value = this.getValue(k);\r\n for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) {\r\n var v = _b[_a];\r\n entries.push(k + KEY_VALUE_SEPARATOR\r\n + QueryParams.encodeValue(v));\r\n }\r\n }\r\n return (entries.length && prefixIfNotEmpty ? '?' : '')\r\n + entries.join(ENTRY_SEPARATOR);\r\n };\r\n QueryBuilder.prototype.toString = function () {\r\n return this.encode();\r\n };\r\n return QueryBuilder;\r\n })(OrderedStringKeyDictionary_1.default);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = QueryBuilder;\r\n});\r\n//# sourceMappingURL=QueryBuilder.js.map","/*\r\n * @author 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 * as Serialization from '../Serialization/Utility';\r\nimport * as QueryParams from './QueryParams';\r\nimport OrderedStringKeyDictionary from '../Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nconst\r\nENTRY_SEPARATOR = \"&\",\r\nKEY_VALUE_SEPARATOR = \"=\";\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:string|IUriComponentMap,\r\n\t\tdecodeValues:boolean = true)\r\n\t{\r\n\t\tsuper();\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\r\n\t\t{\r\n\t\t\tthis.importMap(query);\r\n\t\t}\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\tstatic init(\r\n\t\tquery:string|IUriComponentMap,\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\t/**\r\n\t * Returns the encoded URI string\r\n\t */\r\n\tencode(prefixIfNotEmpty?:boolean):string\r\n\t{\r\n\t\tvar entries:string[] = [];\r\n\t\tvar keys = this.keys;\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tvar value = this.getValue(k);\r\n\t\t\t// Since the values can either be UriComponentValues or an array of UriComponentValues..\r\n\t\t\t// This creates a single code path for both options.\r\n\t\t\tfor(let v of Array.isArray(value) ? value : [value])\r\n\t\t\t{\r\n\t\t\t\tentries.push(\r\n\t\t\t\t\tk + KEY_VALUE_SEPARATOR\r\n\t\t\t\t\t+ QueryParams.encodeValue(v));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t\t+ entries.join(ENTRY_SEPARATOR);\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","QueryParams","OrderedStringKeyDictionary_1","ENTRY_SEPARATOR","KEY_VALUE_SEPARATOR","QueryBuilder","_super","QueryBuilder.constructor","QueryBuilder.importQuery","QueryBuilder.importFromString","QueryBuilder.init","QueryBuilder.encode","QueryBuilder.toString","defineProperty","value"],"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,WAAY,gBAAiB,0DAA2DN,IAE3H,SAAUI,EAASF,GCRtB,YAMA,IAAAM,GAAAJ,EAAiB,YAELK,EAAWL,EAAM,iBAC7BM,EAAAN,EAAuC,0DAGvCO,EAAsB,IACtBC,EAAsB,IAOtBC,EAAA,SAAAC,GAICD,QAAAA,GACCA,EACAA,GAAAE,SAAAA,IAAAA,GAAAA,GAEAA,EAAAA,KAAAA,MAEAA,KAAKA,YAAYA,EAAMA,GA4FzBF,MArG2BA,WAAAA,EAAAA,GAY1BA,EAAAA,UAAAA,YAAAA,SACCA,EACAA,GAeAG,MAfAA,UAAAA,IAAAA,GAAAA,GAEGA,EAAAA,WAAKA,SAASA,GAEhBA,KAAKA,iBAAyBA,EAAOA,GAE9BA,MAAMA,QAAQA,GAErBA,KAAKA,YAAYA,GAIjBA,KAAKA,UAA4BA,GAG3BA,MAURH,EAAAA,UAAAA,iBAAAA,SACCA,EACAA,EACAA,GADAI,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,GAAIA,IAkBRA,OAjBAA,GAAYA,MAAMA,EACjBA,SAACA,EAAKA,GAELA,GAAGA,EAAEA,YAAYA,GACjBA,CACCA,GAAIA,GAAOA,EAAEA,SAASA,EACnBA,OAAMA,QAAQA,GAChBA,EAAKA,KAAKA,GAEVA,EAAEA,SAASA,GAAyBA,EAAMA,QAG3CA,GAAEA,SAASA,EAAKA,IAElBA,EACAA,GAEMA,MAGDJ,EAAAA,KAAPA,SACCA,EACAA,GAEAK,MAFAA,UAAAA,IAAAA,GAAAA,GAEOA,GAAIA,GAAaA,EAAOA,IAOhCL,EAAAA,UAAAA,OAAAA,SAAOA,GAINM,IAAaA,GAFTA,MACAA,EAAOA,KAAKA,KACHA,EAAAA,EAATA,EAAAA,EAAAA,OAAAA,IAKHA,IAAaA,GALNA,GAAKA,EAAIA,GAEZA,EAAQA,KAAKA,SAASA,GAGbA,EAAAA,EAAAA,EAAAA,MAAMA,QAAQA,GAASA,GAASA,GAAzCA,EAAAA,EAAAA,OAAAA,IAAgDA,CAAhDA,GAAIA,GAACA,EAAAA,EAERA,GAAQA,KACPA,EAAIA,EACFA,EAAYA,YAA+BA,IAIhDA,OAAQA,EAAQA,QAAUA,EAAmBA,IAAMA,IAChDA,EAAQA,KAAKA,IAGjBN,EAAAA,UAAAA,SAAAA,WAECO,MAAOA,MAAKA,UAEdP,GArG2BH,EAAAA,WAD3BZ,QAAAuB,eAAAnB,EAAA,cAAAoB,OAAA,IDwDIpB,EAAAA,WAAkBW","file":"System/Uri/QueryBuilder.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\", '../Types', './QueryParams', '../Collections/Dictionaries/OrderedStringKeyDictionary'], 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 ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\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.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 (Array.isArray(query)) {\n this.importPairs(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.init = function (query, decodeValues) {\n if (decodeValues === void 0) { decodeValues = true; }\n return new QueryBuilder(query, decodeValues);\n };\n QueryBuilder.prototype.encode = function (prefixIfNotEmpty) {\n var entries = [];\n var keys = this.keys;\n for (var _i = 0; _i < keys.length; _i++) {\n var k = keys[_i];\n var value = this.getValue(k);\n for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) {\n var v = _b[_a];\n entries.push(k + KEY_VALUE_SEPARATOR\n + QueryParams.encodeValue(v));\n }\n }\n return (entries.length && prefixIfNotEmpty ? '?' : '')\n + entries.join(ENTRY_SEPARATOR);\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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n///\r\n///\r\n///\r\n///\r\nimport Type from '../Types';\r\nimport * as Serialization from '../Serialization/Utility';\r\nimport * as QueryParams from './QueryParams';\r\nimport OrderedStringKeyDictionary from '../Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nconst\r\nENTRY_SEPARATOR = \"&\",\r\nKEY_VALUE_SEPARATOR = \"=\";\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:string|IUriComponentMap|StringKeyValuePair[],\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\timportQuery(\r\n\t\tquery:string|IUriComponentMap|StringKeyValuePair[],\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(Array.isArray(query))\r\n\t\t{\r\n\t\t\tthis.importPairs(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\tstatic init(\r\n\t\tquery:string|IUriComponentMap|StringKeyValuePair[],\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\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\tvar entries:string[] = [];\r\n\t\tvar keys = this.keys;\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tvar value = this.getValue(k);\r\n\t\t\t// Since the values can either be UriComponentValues or an array of UriComponentValues..\r\n\t\t\t// This creates a single code path for both options.\r\n\t\t\tfor(let v of Array.isArray(value) ? value : [value])\r\n\t\t\t{\r\n\t\t\t\tentries.push(\r\n\t\t\t\t\tk + KEY_VALUE_SEPARATOR\r\n\t\t\t\t\t+ QueryParams.encodeValue(v));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (entries.length && prefixIfNotEmpty ? '?' : '')\r\n\t\t\t+ entries.join(ENTRY_SEPARATOR);\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 diff --git a/dist/umd.min/System/Uri/QueryParams.js b/dist/umd.min/System/Uri/QueryParams.js index 7b008e61..7b376eb5 100644 --- a/dist/umd.min/System/Uri/QueryParams.js +++ b/dist/umd.min/System/Uri/QueryParams.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var o=r(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../Types","../Serialization/Utility"],function(e,r){function o(e,r){if(!e)return"";var o=[];if(Array.isArray(e))for(var t=0;t\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var Serialization = require('../Serialization/Utility');\r\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\r\n function encode(values, prefixIfNotEmpty) {\r\n if (!values)\r\n return '';\r\n var entries = [];\r\n if (Array.isArray(values)) {\r\n for (var _i = 0; _i < values.length; _i++) {\r\n var kvp = values[_i];\r\n if (kvp)\r\n entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value));\r\n }\r\n }\r\n else {\r\n var keys = Object.keys(values);\r\n for (var _a = 0; _a < keys.length; _a++) {\r\n var k = keys[_a];\r\n entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k]));\r\n }\r\n }\r\n return (entries.length && prefixIfNotEmpty ? '?' : '')\r\n + entries.join(ENTRY_SEPARATOR);\r\n }\r\n exports.encode = encode;\r\n function encodeValue(value) {\r\n var v = null;\r\n if (isUriComponentFormattable(value)) {\r\n v = value.toUriComponent();\r\n if (v && v.indexOf('&') != 1)\r\n throw '.toUriComponent() did not encode the value.';\r\n }\r\n else {\r\n v = encodeURIComponent(Serialization.toString(v));\r\n }\r\n return v;\r\n }\r\n exports.encodeValue = encodeValue;\r\n function isUriComponentFormattable(instance) {\r\n return Types_1.default.hasMemberOfType(instance, \"toUriComponent\", Types_1.default.FUNCTION);\r\n }\r\n exports.isUriComponentFormattable = isUriComponentFormattable;\r\n function parse(query, entryHandler, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n if (query && (query = query.replace(/^\\s*\\?+/, ''))) {\r\n var entries = query.split(ENTRY_SEPARATOR);\r\n for (var _i = 0; _i < entries.length; _i++) {\r\n var entry = entries[_i];\r\n var si = entry.indexOf(KEY_VALUE_SEPARATOR);\r\n if (si != -1) {\r\n var key = entry.substring(0, si);\r\n var value = entry.substring(si + 1);\r\n if (decodeValues)\r\n value = decodeURIComponent(value);\r\n if (deserialize)\r\n value = Serialization.toPrimitive(value);\r\n entryHandler(key, value);\r\n }\r\n }\r\n }\r\n }\r\n exports.parse = parse;\r\n function parseToMap(query, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var result = {};\r\n parse(query, function (key, value) {\r\n if ((key) in (result)) {\r\n var prev = result[key];\r\n if (!(Array.isArray(prev)))\r\n result[key] = prev = [prev];\r\n prev.push(value);\r\n }\r\n else\r\n result[key] = value;\r\n }, deserialize, decodeValues);\r\n return result;\r\n }\r\n exports.parseToMap = parseToMap;\r\n function parseToArray(query, deserialize, decodeValues) {\r\n if (deserialize === void 0) { deserialize = true; }\r\n if (decodeValues === void 0) { decodeValues = true; }\r\n var result = [];\r\n parse(query, function (key, value) { result.push({ key: key, value: value }); }, deserialize, decodeValues);\r\n return result;\r\n }\r\n exports.parseToArray = parseToArray;\r\n var Separator;\r\n (function (Separator) {\r\n Separator.Entry = ENTRY_SEPARATOR;\r\n Separator.KeyValue = KEY_VALUE_SEPARATOR;\r\n })(Separator = exports.Separator || (exports.Separator = {}));\r\n Object.freeze(Separator);\r\n});\r\n//# sourceMappingURL=QueryParams.js.map","/*\r\n * @author 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 * as Serialization from '../Serialization/Utility';\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 * Returns the encoded URI string\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap|IKeyValuePair[],\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[] = [];\r\n\r\n\tif(Array.isArray(values))\r\n\t{\r\n\t\tfor(let kvp of values)\r\n\t\t{\r\n\t\t\tif(kvp) entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value));\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\tvar keys = Object.keys(values);\r\n\t\tfor(let k of keys)\r\n\t\t{\r\n\t\t\tentries.push(k + KEY_VALUE_SEPARATOR + encodeValue((values)[k]));\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\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:Primitive|ISerializable|IUriComponentFormattable):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\r\n * @param decodeValues\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\r\n * @param decodeValues\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\r\n * @param decodeValues\r\n * @returns {IKeyValuePair[]}\r\n */\r\nexport function parseToArray(\r\n\tquery:string,\r\n\tdeserialize:boolean = true,\r\n\tdecodeValues:boolean = true):IKeyValuePair[]\r\n{\r\n\tvar result:IKeyValuePair[] = [];\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\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","encodeValue","value","isUriComponentFormattable","instance","parse","query","entryHandler","deserialize","decodeValues","parseToMap","parseToArray","Types_1","Serialization","KeyValueExtract_1","ENTRY_SEPARATOR","KEY_VALUE_SEPARATOR","Separator","Object","freeze"],"mappings":"CAAA,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,2BAA4B,sBAAuBN,IAElG,SAAUI,EAASF,GCAtB,YAkBA,SAAAM,GACCC,EACAC,GAEAF,IAAIA,EAAQA,MAAOA,EACnBA,IAAIA,EAiBJA,OAbCA,GAFEA,MAAMA,QAAQA,GAENA,EAAOA,IAChBA,SAAAA,GAAKA,MAAAA,GAAAA,WAAgBA,EACpBA,SAACA,EAAKA,GAAQA,MAAAA,GAAMA,EAAsBA,EAAYA,OAM9CA,OAAOA,KAAKA,GAAQA,IAC7BA,SAAAA,GAAMA,MAAAA,GAAMA,EAAsBA,EAAkBA,EAAQA,OAItDA,EAAQA,QAAUA,EAAmBA,IAAMA,IAChDA,EAAQA,KAAKA,GAQjB,QAAAG,GAA4BC,GAE3BD,GAAIA,GAAWA,IACfA,IAAGA,EAA0BA,IAG5BA,GADAA,EAAIA,EAAMA,iBACPA,GAAqBA,GAAhBA,EAAEA,QAAQA,KACjBA,KAAMA,kDAIPA,GAAIA,mBAAmBA,EAAcA,SAASA,GAE/CA,OAAOA,GAQR,QAAAE,GAA0CC,GAEzCD,MAAOA,GAAAA,WAAKA,gBAA0CA,EAAUA,iBAAkBA,EAAAA,WAAKA,UAUxF,QAAAE,GACCC,EACAC,EACAC,EACAC,GAEAJ,GAHAA,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,GAEGA,IAAUA,EAAQA,EAAMA,QAAQA,UAAWA,KAG7CA,IAAiBA,GADbA,GAAUA,EAAMA,MAAMA,GACTA,EAAAA,EAAbA,EAAAA,EAAAA,OAAAA,IAAqBA,CAArBA,GAAIA,GAASA,EAAOA,GAMnBA,EAAKA,EAAMA,QAAQA,EACvBA,IAAQA,IAALA,EACHA,CACCA,GAAIA,GAAMA,EAAMA,UAAUA,EAAGA,GACzBA,EAAaA,EAAMA,UAAUA,EAAKA,EACnCA,KAAcA,EAAQA,mBAAmBA,IACzCA,IAAaA,EAAQA,EAAcA,YAAYA,IAClDA,EAAaA,EAAKA,KAatB,QAAAK,GACCJ,EACAE,EACAC,GADAC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,KAgBJA,OAfAA,GAAMA,EACLA,SAACA,EAAKA,GAELA,GAAGA,IAAOA,GACVA,CACCA,GAAIA,GAAWA,EAAOA,EACjBA,OAAMA,QAAQA,KAClBA,EAAOA,GAAOA,GAAQA,IACvBA,EAAKA,KAAKA,OAGVA,GAAOA,GAAOA,GAEhBA,EACAA,GACMA,EAUR,QAAAC,GACCL,EACAE,EACAC,GADAE,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,GAAAA,EAEAA,IAAIA,KAMJA,OALAA,GAAMA,EACLA,SAACA,EAAKA,GAAUA,EAAOA,MAAMA,IAAKA,EAAKA,MAAOA,KAC9CA,EACAA,GAEMA,EA7JR,GAAAC,GAAAlB,EAAiB,YACLmB,EAAanB,EAAM,4BAC/BoB,EAAApB,EAA4B,sBAQ3BqB,EAAsB,IACtBC,EAAsB,GAKPxB,GAAAM,OAAMA,EA+BNN,EAAAS,YAAWA,EAqBXT,EAAAW,0BAAyBA,EAYzBX,EAAAa,MAAKA,EAmCLb,EAAAkB,WAAUA,EA+BVlB,EAAAmB,aAAYA,CAe5B,IAAcM,IAAd,SAAcA,GAEAA,EAAAA,MAAeA,EACfA,EAAAA,SAAkBA,GAHlBA,EAAAzB,EAAAyB,YAAAzB,EAAAyB,eAKdC,OAAOC,OAAOF","file":"System/Uri/QueryParams.js","sourcesContent":["(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', '../Serialization/Utility', '../KeyValueExtract'], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Types_1 = require('../Types');\n var Serialization = require('../Serialization/Utility');\n var KeyValueExtract_1 = require('../KeyValueExtract');\n var ENTRY_SEPARATOR = \"&\", KEY_VALUE_SEPARATOR = \"=\";\n function encode(values, prefixIfNotEmpty) {\n if (!values)\n return '';\n var entries;\n if (Array.isArray(values)) {\n entries = values.map(function (kvp) { return KeyValueExtract_1.default(kvp, function (key, value) { return key + KEY_VALUE_SEPARATOR + encodeValue(value); }); });\n }\n else {\n entries = Object.keys(values).map(function (key) { return key + KEY_VALUE_SEPARATOR + encodeValue(values[key]); });\n }\n return (entries.length && prefixIfNotEmpty ? '?' : '')\n + entries.join(ENTRY_SEPARATOR);\n }\n exports.encode = encode;\n function encodeValue(value) {\n var v = null;\n if (isUriComponentFormattable(value)) {\n v = value.toUriComponent();\n if (v && v.indexOf('&') != 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.default.hasMemberOfType(instance, \"toUriComponent\", Types_1.default.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; _i < entries.length; _i++) {\n var entry = entries[_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.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\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\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 * Returns the encoded URI string\r\n */\r\nexport function encode(\r\n\tvalues:IUriComponentMap|StringKeyValuePair[],\r\n\tprefixIfNotEmpty?:boolean):string\r\n{\r\n\tif(!values) return '';\r\n\tvar entries:string[];\r\n\r\n\tif(Array.isArray(values))\r\n\t{\r\n\t\tentries = values.map(\r\n\t\t\tkvp=>extractKeyValue(kvp,\r\n\t\t\t\t(key, value)=>key + KEY_VALUE_SEPARATOR + encodeValue(value)\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tentries = Object.keys(values).map(\r\n\t\t\tkey=> key + KEY_VALUE_SEPARATOR + encodeValue((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\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:Primitive|ISerializable|IUriComponentFormattable):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 diff --git a/dist/umd.min/System/Uri/Scheme.js b/dist/umd.min/System/Uri/Scheme.js index e46bcbdb..fd0b93b3 100644 --- a/dist/umd.min/System/Uri/Scheme.js +++ b/dist/umd.min/System/Uri/Scheme.js @@ -1,7 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * 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,t){if("object"==typeof module&&"object"==typeof module.exports){var p=t(require,exports);void 0!==p&&(module.exports=p)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports"],function(e,t){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){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}); //# 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 de730ca8..3392f246 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":["deps","factory","module","exports","v","require","undefined","define","amd","UriScheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":";;;;;CAKA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCL9C,GAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,MAAAA,GAAAA,QAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,KAAAA,IAAAA,OAMAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,KAAAA,IAAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAUA,EAAUG,MAAQF,EAC5BD,EAAUA,EAAUI,KAAOF,EAErBF,EAAWC,GAAQD,EAAUG,KAC7BH,EAAWE,GAAOF,EAAUI,IAElCC,OAAOC,OAAON,GAEdK,OAAAE,eAAAb,EAAA,cAAAc,OAAA,ID5DId,EAAAA,WC4DWM","file":"System/Uri/Scheme.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://msdn.microsoft.com/en-us/library/system.uri.scheme%28v=vs.110%29.aspx\r\n */\r\n(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n var UriScheme;\r\n (function (UriScheme) {\r\n UriScheme[UriScheme[\"file\"] = 0] = \"file\";\r\n UriScheme[UriScheme[\"ftp\"] = 1] = \"ftp\";\r\n UriScheme[UriScheme[\"gopher\"] = 2] = \"gopher\";\r\n UriScheme[UriScheme[\"http\"] = 3] = \"http\";\r\n UriScheme[UriScheme[\"https\"] = 4] = \"https\";\r\n UriScheme[UriScheme[\"ldap\"] = 5] = \"ldap\";\r\n UriScheme[UriScheme[\"mailto\"] = 6] = \"mailto\";\r\n UriScheme[UriScheme[\"pipe\"] = 7] = \"pipe\";\r\n UriScheme[UriScheme[\"tcp\"] = 8] = \"tcp\";\r\n UriScheme[UriScheme[\"news\"] = 9] = \"news\";\r\n UriScheme[UriScheme[\"nntp\"] = 10] = \"nntp\";\r\n UriScheme[UriScheme[\"telnet\"] = 11] = \"telnet\";\r\n UriScheme[UriScheme[\"uuid\"] = 12] = \"uuid\";\r\n })(UriScheme || (UriScheme = {}));\r\n var PIPE = 'net.pipe';\r\n var TCP = 'net.tcp';\r\n UriScheme[UriScheme.pipe] = PIPE;\r\n UriScheme[UriScheme.tcp] = TCP;\r\n UriScheme[PIPE] = UriScheme.pipe;\r\n UriScheme[TCP] = UriScheme.tcp;\r\n Object.freeze(UriScheme);\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = UriScheme;\r\n});\r\n//# sourceMappingURL=Scheme.js.map","/*\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\r\nenum UriScheme {\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\nUriScheme[UriScheme.pipe] = PIPE;\r\nUriScheme[UriScheme.tcp] = TCP;\r\n\r\n(UriScheme)[PIPE] = UriScheme.pipe;\r\n(UriScheme)[TCP] = UriScheme.tcp;\r\n\r\nObject.freeze(UriScheme);\r\n\r\nexport default UriScheme;\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","UriScheme","PIPE","TCP","pipe","tcp","Object","freeze","defineProperty","value"],"mappings":"CAAA,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,GCDtB,GAAKM,IAAL,SAAKA,GAIJA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,MAAAA,GAAAA,QAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,OAAAA,GAAAA,SAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,IAAAA,GAAAA,MAMAA,EAAAA,EAAAA,KAAAA,GAAAA,OAMAA,EAAAA,EAAAA,KAAAA,IAAAA,OAMAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,KAAAA,IAAAA,QA3EIA,IAAAA,MA+EL,IAAMC,GAAO,WACPC,EAAM,SAEZF,GAAUA,EAAUG,MAAQF,EAC5BD,EAAUA,EAAUI,KAAOF,EAErBF,EAAWC,GAAQD,EAAUG,KAC7BH,EAAWE,GAAOF,EAAUI,IAElCC,OAAOC,OAAON,GAEdK,OAAAE,eAAAb,EAAA,cAAAc,OAAA,IDhEId,EAAAA,WCgEWM","file":"System/Uri/Scheme.js","sourcesContent":["(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 var UriScheme;\n (function (UriScheme) {\n UriScheme[UriScheme[\"file\"] = 0] = \"file\";\n UriScheme[UriScheme[\"ftp\"] = 1] = \"ftp\";\n UriScheme[UriScheme[\"gopher\"] = 2] = \"gopher\";\n UriScheme[UriScheme[\"http\"] = 3] = \"http\";\n UriScheme[UriScheme[\"https\"] = 4] = \"https\";\n UriScheme[UriScheme[\"ldap\"] = 5] = \"ldap\";\n UriScheme[UriScheme[\"mailto\"] = 6] = \"mailto\";\n UriScheme[UriScheme[\"pipe\"] = 7] = \"pipe\";\n UriScheme[UriScheme[\"tcp\"] = 8] = \"tcp\";\n UriScheme[UriScheme[\"news\"] = 9] = \"news\";\n UriScheme[UriScheme[\"nntp\"] = 10] = \"nntp\";\n UriScheme[UriScheme[\"telnet\"] = 11] = \"telnet\";\n UriScheme[UriScheme[\"uuid\"] = 12] = \"uuid\";\n })(UriScheme || (UriScheme = {}));\n var PIPE = 'net.pipe';\n var TCP = 'net.tcp';\n UriScheme[UriScheme.pipe] = PIPE;\n UriScheme[UriScheme.tcp] = TCP;\n UriScheme[PIPE] = UriScheme.pipe;\n UriScheme[TCP] = UriScheme.tcp;\n Object.freeze(UriScheme);\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = UriScheme;\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\nenum UriScheme {\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\nUriScheme[UriScheme.pipe] = PIPE;\r\nUriScheme[UriScheme.tcp] = TCP;\r\n\r\n(UriScheme)[PIPE] = UriScheme.pipe;\r\n(UriScheme)[TCP] = UriScheme.tcp;\r\n\r\nObject.freeze(UriScheme);\r\n\r\nexport default UriScheme;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Uri/Uri.js b/dist/umd.min/System/Uri/Uri.js index 74736f4e..eae4e213 100644 --- a/dist/umd.min/System/Uri/Uri.js +++ b/dist/umd.min/System/Uri/Uri.js @@ -1,7 +1,2 @@ -/* - * @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 - */ -!function(t,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(t,e)}(["require","exports","../Types","../Uri/QueryParams","../Text/Utility","../Uri/Scheme","../Exceptions/ArgumentException","../Exceptions/ArgumentOutOfRangeException"],function(t,e){function r(t,e){void 0===e&&(e={});for(var r,n=0;r=l.Fields[n++];){var i=t[r];i&&(e[r]=i)}return e}function n(t){var e=t;if(c["default"].isString(e)){if(!e)return void 0;if(e=d["default"][h.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,O)],isNaN(e))throw new m["default"]("scheme",t,"Invalid scheme.")}if(c["default"].isNumber(e,!1)){if(e=d["default"][e],!e)throw new m["default"]("scheme",t,"Invalid scheme.");return e}return void 0}function i(t){if(!t.host){if(t.userInfo)throw new g["default"]("host","Cannot include user info when there is no host.");if(c["default"].isNumber(t.port,!1))throw new g["default"]("host","Cannot include a port when there is no host.")}var e=t.host||O;return e&&(t.userInfo&&(e=t.userInfo+w+e),isNaN(t.port)||(e+=":"+t.port),e=b+e),e}function u(t){return t&&(-1==t.indexOf(v)?v:O)+t}function o(t){return t&&(-1==t.indexOf(x)?x:O)+t}function s(t){var e=t.path,r=t.query;return O+(e&&(-1==e.indexOf(y)?y:O)+e||O)+(u(r)||O)}function f(t){var e=n(t.scheme),r=i(t),u=s(t),f=o(t.fragment);return O+(e&&e+":"||O)+(r||O)+(u||O)+(f||O)}function a(t,e){if(!t)return new g["default"]("url","Nothing to parse.");var n,i={};if(n=t.indexOf(x),-1!=n&&(i.fragment=t.substring(n),t=t.substring(0,n)),n=t.indexOf(v),-1!=n&&(i.query=t.substring(n),t=t.substring(0,n)),n=t.indexOf(b),-1!=n){var u=h.trim(t.substring(0,n)),o=/:$/;if(!o.test(u))return new g["default"]("url","Scheme was improperly formatted");u=h.trim(u.replace(o,O)),i.scheme=u||void 0,t=t.substring(n+2)}if(n=t.indexOf(y),-1!=n&&(i.path=t.substring(n)||void 0,t=t.substring(0,n)),n=t.indexOf(w),-1!=n&&(i.userInfo=t.substring(0,n)||void 0,t=t.substring(n+1)),n=t.indexOf(":"),-1!=n){var s=parseInt(h.trim(t.substring(n+1)));if(isNaN(s))return new g["default"]("url","Port was invalid.");i.port=s,t=t.substring(0,n)}return t=h.trim(t),t&&(i.host=t),e(r(i)),null}var l,c=t("../Types"),p=t("../Uri/QueryParams"),h=t("../Text/Utility"),d=t("../Uri/Scheme"),g=t("../Exceptions/ArgumentException"),m=t("../Exceptions/ArgumentOutOfRangeException"),l=function(){function t(t,e,r,i,s,f,a){var l=this;l.scheme=n(t)||null,l.userInfo=e||null,l.host=r||null,l.port=i||null,l.authority=l.getAuthority()||null,l.path=s||null,c["default"].isString(f)||(f=p.encode(f)),l.query=u(f)||null,Object.freeze(l.queryParams=l.query?p.parseToMap(l.query):{}),l.pathAndQuery=l.getPathAndQuery()||null,l.fragment=o(a)||null,l.absoluteUri=l.getAbsoluteUri(),Object.freeze(l)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e){var r=!e||c["default"].isString(e)?t.parse(e):e;return new t(r.scheme,r.userInfo,r.host,r.port,r.path,r.query,r.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=a(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!a(t,e)},t.copyOf=function(t){return r(t)},t.prototype.copyTo=function(t){return r(this,t)},t.prototype.getAbsoluteUri=function(){return f(this)},t.prototype.getAuthority=function(){return i(this)},t.prototype.getPathAndQuery=function(){return s(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 c["default"].isInstanceOf(e,t)?e.absoluteUri:f(e)},t.getAuthority=function(t){return i(t)},t}();!function(t){!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"}(t.Fields||(t.Fields={}));var e=t.Fields;Object.freeze(e)}(l||(l={}));var y="/",b="//",v="?",x="#",O="",w="@";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=l}); +!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=y[n++];){var u=t[r];u&&(e[r]=u)}return e}function n(t){var e=t;if(p["default"].isString(e)){if(!e)return;if(e=h["default"][l.trim(e).toLowerCase().replace(/[^a-z0-9+.-]+$/g,w)],isNaN(e))throw new m["default"]("scheme",t,"Invalid scheme.")}if(p["default"].isNumber(e,!1)){if(e=h["default"][e],!e)throw new m["default"]("scheme",t,"Invalid scheme.");return e}}function u(t){if(!t.host){if(t.userInfo)throw new d["default"]("host","Cannot include user info when there is no host.");if(p["default"].isNumber(t.port,!1))throw new d["default"]("host","Cannot include a port when there is no host.")}var e=t.host||w;return e&&(t.userInfo&&(e=t.userInfo+q+e),isNaN(t.port)||(e+=":"+t.port),e=v+e),e}function i(t){return t&&(-1==t.indexOf(x)?x:w)+t}function o(t){return t&&(-1==t.indexOf(O)?O:w)+t}function s(t){var e=t.path,r=t.query;return w+(e&&(-1==e.indexOf(b)?b:w)+e||w)+(i(r)||w)}function f(t){var e=n(t.scheme),r=u(t),i=s(t),f=o(t.fragment);return w+(e&&e+":"||w)+(r||w)+(i||w)+(f||w)}function a(t,e){if(!t)return new d["default"]("url","Nothing to parse.");var n,u={};if(n=t.indexOf(O),-1!=n&&(u.fragment=t.substring(n),t=t.substring(0,n)),n=t.indexOf(x),-1!=n&&(u.query=t.substring(n),t=t.substring(0,n)),n=t.indexOf(v),-1!=n){var i=l.trim(t.substring(0,n)),o=/:$/;if(!o.test(i))return new d["default"]("url","Scheme was improperly formatted");i=l.trim(i.replace(o,w)),u.scheme=i||void 0,t=t.substring(n+2)}if(n=t.indexOf(b),-1!=n&&(u.path=t.substring(n)||void 0,t=t.substring(0,n)),n=t.indexOf(q),-1!=n&&(u.userInfo=t.substring(0,n)||void 0,t=t.substring(n+1)),n=t.indexOf(":"),-1!=n){var s=parseInt(l.trim(t.substring(n+1)));if(isNaN(s))return new d["default"]("url","Port was invalid.");u.port=s,t=t.substring(0,n)}return t=l.trim(t),t&&(u.host=t),e(r(u)),null}var p=t("../Types"),c=t("../Uri/QueryParams"),l=t("../Text/Utility"),h=t("../Uri/Scheme"),d=t("../Exceptions/ArgumentException"),m=t("../Exceptions/ArgumentOutOfRangeException"),g=function(){function t(t,e,r,u,s,f,a){var l=this;l.scheme=n(t)||null,l.userInfo=e||null,l.host=r||null,l.port=u||null,l.authority=l.getAuthority()||null,l.path=s||null,p["default"].isString(f)||(f=c.encode(f)),l.query=i(f)||null,Object.freeze(l.queryParams=l.query?c.parseToMap(l.query):{}),l.pathAndQuery=l.getPathAndQuery()||null,l.fragment=o(a)||null,l.absoluteUri=l.getAbsoluteUri(),Object.freeze(l)}return t.prototype.equals=function(e){return this===e||this.absoluteUri==t.toString(e)},t.from=function(e){var r=!e||p["default"].isString(e)?t.parse(e):e;return new t(r.scheme,r.userInfo,r.host,r.port,r.path,r.query,r.fragment)},t.parse=function(t,e){void 0===e&&(e=!0);var r=null,n=a(t,function(t){r=t});if(e&&n)throw n;return r},t.tryParse=function(t,e){return!a(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 f(this)},t.prototype.getAuthority=function(){return u(this)},t.prototype.getPathAndQuery=function(){return s(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:f(e)},t.getAuthority=function(t){return u(t)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=g,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 y=e.Fields;Object.freeze(y);var b="/",v="//",x="?",O="#",w="",q="@"}); //# 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 a622007b..fdfbf950 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":["deps","factory","module","exports","v","require","undefined","define","amd","copyUri","from","to","getScheme","scheme","getAuthority","uri","formatQuery","query","formatFragment","fragment","getPathAndQuery","uriToString","tryParse","url","out","Uri","Types_1","QueryParams","Utility_1","Scheme_1","ArgumentException_1","ArgumentOutOfRangeException_1","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","get","Uri.pathSegments","enumerable","configurable","Uri.toMap","Uri.toString","Uri.Fields","SLASH","SLASH2","QM","HASH","EMPTY","AT","Object","defineProperty","value"],"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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Scheme', '../Exceptions/ArgumentException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) {\r\n ///\r\n ///\r\n ///\r\n var Types_1 = require('../Types');\r\n var QueryParams = require('../Uri/QueryParams');\r\n var Utility_1 = require('../Text/Utility');\r\n var Scheme_1 = require('../Uri/Scheme');\r\n var ArgumentException_1 = require('../Exceptions/ArgumentException');\r\n var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException');\r\n var Uri = (function () {\r\n function Uri(scheme, userInfo, host, port, path, query, fragment) {\r\n var _ = this;\r\n _.scheme = getScheme(scheme) || null;\r\n _.userInfo = userInfo || null;\r\n _.host = host || null;\r\n _.port = port || null;\r\n _.authority = _.getAuthority() || null;\r\n _.path = path || null;\r\n if (!Types_1.default.isString(query))\r\n query = QueryParams.encode(query);\r\n _.query = formatQuery(query) || null;\r\n Object.freeze(_.queryParams\r\n = _.query\r\n ? QueryParams.parseToMap(_.query)\r\n : {});\r\n _.pathAndQuery = _.getPathAndQuery() || null;\r\n _.fragment = formatFragment(fragment) || null;\r\n _.absoluteUri = _.getAbsoluteUri();\r\n Object.freeze(_);\r\n }\r\n Uri.prototype.equals = function (other) {\r\n return this === other || this.absoluteUri == Uri.toString(other);\r\n };\r\n Uri.from = function (url) {\r\n var uri = (!url || Types_1.default.isString(url))\r\n ? Uri.parse(url) : url;\r\n return new Uri(uri.scheme, uri.userInfo, uri.host, uri.port, uri.path, uri.query, uri.fragment);\r\n };\r\n Uri.parse = function (url, throwIfInvalid) {\r\n if (throwIfInvalid === void 0) { throwIfInvalid = true; }\r\n var result = null;\r\n var ex = tryParse(url, function (out) { result = out; });\r\n if (throwIfInvalid && ex)\r\n throw ex;\r\n return result;\r\n };\r\n Uri.tryParse = function (url, out) {\r\n return !tryParse(url, out);\r\n };\r\n Uri.copyOf = function (map) {\r\n return copyUri(map);\r\n };\r\n Uri.prototype.copyTo = function (map) {\r\n return copyUri(this, map);\r\n };\r\n Uri.prototype.getAbsoluteUri = function () {\r\n return uriToString(this);\r\n };\r\n Uri.prototype.getAuthority = function () {\r\n return getAuthority(this);\r\n };\r\n Uri.prototype.getPathAndQuery = function () {\r\n return getPathAndQuery(this);\r\n };\r\n Object.defineProperty(Uri.prototype, \"pathSegments\", {\r\n get: function () {\r\n return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Uri.prototype.toMap = function () {\r\n return this.copyTo({});\r\n };\r\n Uri.prototype.toString = function () {\r\n return this.absoluteUri;\r\n };\r\n Uri.toString = function (uri) {\r\n return Types_1.default.isInstanceOf(uri, Uri)\r\n ? uri.absoluteUri\r\n : uriToString(uri);\r\n };\r\n Uri.getAuthority = function (uri) {\r\n return getAuthority(uri);\r\n };\r\n return Uri;\r\n })();\r\n var Uri;\r\n (function (Uri) {\r\n (function (Fields) {\r\n Fields[Fields[\"scheme\"] = 0] = \"scheme\";\r\n Fields[Fields[\"userInfo\"] = 1] = \"userInfo\";\r\n Fields[Fields[\"host\"] = 2] = \"host\";\r\n Fields[Fields[\"port\"] = 3] = \"port\";\r\n Fields[Fields[\"path\"] = 4] = \"path\";\r\n Fields[Fields[\"query\"] = 5] = \"query\";\r\n Fields[Fields[\"fragment\"] = 6] = \"fragment\";\r\n })(Uri.Fields || (Uri.Fields = {}));\r\n var Fields = Uri.Fields;\r\n Object.freeze(Fields);\r\n })(Uri || (Uri = {}));\r\n function copyUri(from, to) {\r\n if (to === void 0) { to = {}; }\r\n var i = 0, field;\r\n while (field = Uri.Fields[i++]) {\r\n var value = from[field];\r\n if (value)\r\n to[field] = value;\r\n }\r\n return to;\r\n }\r\n var SLASH = '/', SLASH2 = '//', QM = '?', HASH = '#', EMPTY = '', AT = '@';\r\n function getScheme(scheme) {\r\n var s = scheme;\r\n if (Types_1.default.isString(s)) {\r\n if (!s)\r\n return undefined;\r\n s = Scheme_1.default[Utility_1.trim(s).toLowerCase().replace(/[^a-z0-9+.-]+$/g, EMPTY)];\r\n if (isNaN(s))\r\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\r\n }\r\n if (Types_1.default.isNumber(s, false)) {\r\n s = Scheme_1.default[s];\r\n if (!s)\r\n throw new ArgumentOutOfRangeException_1.default('scheme', scheme, 'Invalid scheme.');\r\n return s;\r\n }\r\n return undefined;\r\n }\r\n function getAuthority(uri) {\r\n if (!uri.host) {\r\n if (uri.userInfo)\r\n throw new ArgumentException_1.default('host', 'Cannot include user info when there is no host.');\r\n if (Types_1.default.isNumber(uri.port, false))\r\n throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.');\r\n }\r\n var result = uri.host || EMPTY;\r\n if (result) {\r\n if (uri.userInfo)\r\n result = uri.userInfo + AT + result;\r\n if (!isNaN(uri.port))\r\n result += ':' + uri.port;\r\n result = SLASH2 + result;\r\n }\r\n return result;\r\n }\r\n function formatQuery(query) {\r\n return query && ((query.indexOf(QM) == -1 ? QM : EMPTY) + query);\r\n }\r\n function formatFragment(fragment) {\r\n return fragment && ((fragment.indexOf(HASH) == -1 ? HASH : EMPTY) + fragment);\r\n }\r\n function getPathAndQuery(uri) {\r\n var path = uri.path, query = uri.query;\r\n return EMPTY\r\n + (path && ((path.indexOf(SLASH) == -1 ? SLASH : EMPTY) + path) || EMPTY)\r\n + (formatQuery(query) || EMPTY);\r\n }\r\n function uriToString(uri) {\r\n // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment]\r\n // {scheme}{authority}{path}{query}{fragment}\r\n var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment);\r\n return EMPTY\r\n + ((scheme && (scheme + ':')) || EMPTY)\r\n + (authority || EMPTY)\r\n + (pathAndQuery || EMPTY)\r\n + (fragment || EMPTY);\r\n }\r\n function tryParse(url, out) {\r\n if (!url)\r\n return new ArgumentException_1.default('url', 'Nothing to parse.');\r\n var i, result = {};\r\n i = url.indexOf(HASH);\r\n if (i != -1) {\r\n result.fragment = url.substring(i);\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(QM);\r\n if (i != -1) {\r\n result.query = url.substring(i);\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(SLASH2);\r\n if (i != -1) {\r\n var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/;\r\n if (!c.test(scheme))\r\n return new ArgumentException_1.default('url', 'Scheme was improperly formatted');\r\n scheme = Utility_1.trim(scheme.replace(c, EMPTY));\r\n result.scheme = scheme || undefined;\r\n url = url.substring(i + 2);\r\n }\r\n i = url.indexOf(SLASH);\r\n if (i != -1) {\r\n result.path = url.substring(i) || undefined;\r\n url = url.substring(0, i);\r\n }\r\n i = url.indexOf(AT);\r\n if (i != -1) {\r\n result.userInfo = url.substring(0, i) || undefined;\r\n url = url.substring(i + 1);\r\n }\r\n i = url.indexOf(':');\r\n if (i != -1) {\r\n var port = parseInt(Utility_1.trim(url.substring(i + 1)));\r\n if (isNaN(port))\r\n return new ArgumentException_1.default('url', 'Port was invalid.');\r\n result.port = port;\r\n url = url.substring(0, i);\r\n }\r\n url = Utility_1.trim(url);\r\n if (url)\r\n result.host = url;\r\n out(copyUri(result));\r\n return null;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = Uri;\r\n});\r\n//# sourceMappingURL=Uri.js.map","/*\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\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 ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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 */\r\nclass Uri implements IUri, IEquatable\r\n{\r\n\r\n\tscheme:string;\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|string,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery:string|IUriComponentMap|IKeyValuePair[],\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\t\t_.port = port || null;\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// 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 url\r\n\t * @returns {Uri} An validated Uri object with the values.\r\n\t */\r\n\tstatic from(url:string|IUri):Uri\r\n\t{\r\n\t\tvar uri = (!url || Type.isString(url))\r\n\t\t\t? Uri.parse(url) : url;\r\n\r\n\t\treturn new Uri(\r\n\t\t\turi.scheme,\r\n\t\t\turi.userInfo,\r\n\t\t\turi.host,\r\n\t\t\turi.port,\r\n\t\t\turi.path,\r\n\t\t\turi.query,\r\n\t\t\turi.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\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\treturn !tryParse(url,out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri {\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\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 * 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 Type.isInstanceOf(uri,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\nmodule Uri {\r\n\texport enum Fields {\r\n\t\tscheme,\r\n\t\tuserInfo,\r\n\t\thost,\r\n\t\tport,\r\n\t\tpath,\r\n\t\tquery,\r\n\t\tfragment\r\n\t}\r\n\tObject.freeze(Fields);\r\n}\r\n\r\nfunction copyUri(from:IUri, to:IUri = {}) {\r\n\tvar i = 0, field:string;\r\n\twhile(field = Uri.Fields[i++]) {\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):string\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return undefined;\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 undefined;\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)== -1 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)== -1 ? 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 && ((path.indexOf(SLASH)== -1 ? SLASH : EMPTY) + 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\treturn EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY)\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY)\r\n\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);\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);\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\tresult.scheme = scheme || undefined;\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) || undefined;\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) || undefined;\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;\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","getScheme","scheme","getAuthority","uri","formatQuery","query","formatFragment","fragment","getPathAndQuery","uriToString","tryParse","url","out","Types_1","QueryParams","Utility_1","Scheme_1","ArgumentException_1","ArgumentOutOfRangeException_1","Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.updateQuery","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","get","Uri.pathSegments","enumerable","configurable","Uri.toMap","Uri.toString","Object","defineProperty","value","Fields","freeze","SLASH","SLASH2","QM","HASH","EMPTY","AT"],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["(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 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 = port || null;\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 Object.freeze(_);\n }\n Uri.prototype.equals = function (other) {\n return this === other || this.absoluteUri == Uri.toString(other);\n };\n Uri.from = function (url) {\n var uri = (!url || Types_1.default.isString(url))\n ? Uri.parse(url) : url;\n return new Uri(uri.scheme, uri.userInfo, uri.host, uri.port, uri.path, uri.query, uri.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 undefined;\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 undefined;\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) == -1 ? QM : EMPTY) + query);\n }\n function formatFragment(fragment) {\n return fragment && ((fragment.indexOf(HASH) == -1 ? HASH : EMPTY) + fragment);\n }\n function getPathAndQuery(uri) {\n var path = uri.path, query = uri.query;\n return EMPTY\n + (path && ((path.indexOf(SLASH) == -1 ? SLASH : EMPTY) + 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 return EMPTY\n + ((scheme && (scheme + ':')) || EMPTY)\n + (authority || EMPTY)\n + (pathAndQuery || EMPTY)\n + (fragment || EMPTY);\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);\n url = url.substring(0, i);\n }\n i = url.indexOf(QM);\n if (i != -1) {\n result.query = url.substring(i);\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 result.scheme = scheme || undefined;\n url = url.substring(i + 2);\n }\n i = url.indexOf(SLASH);\n if (i != -1) {\n result.path = url.substring(i) || undefined;\n url = url.substring(0, i);\n }\n i = url.indexOf(AT);\n if (i != -1) {\n result.userInfo = url.substring(0, i) || undefined;\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///\r\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 * Based on: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier\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 ArgumentNullException from '../Exceptions/ArgumentNullException';\r\nimport ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeException';\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:string;\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|string,\r\n\t\tuserInfo:string,\r\n\t\thost:string,\r\n\t\tport:number,\r\n\t\tpath:string,\r\n\t\tquery?:string|IUriComponentMap|StringKeyValuePair[],\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\t\t_.port = port || null;\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// 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 url\r\n\t * @returns {Uri} An validated Uri object with the values.\r\n\t */\r\n\tstatic from(url:string|IUri):Uri\r\n\t{\r\n\t\tvar uri = (!url || Type.isString(url))\r\n\t\t\t? Uri.parse(url) : url;\r\n\r\n\t\treturn new Uri(\r\n\t\t\turi.scheme,\r\n\t\t\turi.userInfo,\r\n\t\t\turi.host,\r\n\t\t\turi.port,\r\n\t\t\turi.path,\r\n\t\t\turi.query,\r\n\t\t\turi.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\treturn !tryParse(url,out); // return type is Exception.\r\n\t}\r\n\r\n\tstatic copyOf(map:IUri):IUri {\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:string|IUriComponentMap|StringKeyValuePair[]):Uri {\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 * 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\tvar i = 0, field:string;\r\n\tif(!to) to = {};\r\n\twhile(field = Fields[i++]) {\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):string\r\n{\r\n\tvar s:any = scheme;\r\n\tif(Type.isString(s))\r\n\t{\r\n\t\tif(!s) return undefined;\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 undefined;\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)== -1 ? QM : EMPTY) + query);\r\n}\r\n\r\nfunction formatFragment(fragment:string):string\r\n{\r\n\treturn fragment && ((fragment.indexOf(HASH)== -1 ? 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 && ((path.indexOf(SLASH)== -1 ? SLASH : EMPTY) + 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\treturn EMPTY\r\n\t\t+ ((scheme && (scheme + ':')) || EMPTY)\r\n\t\t+ (authority || EMPTY)\r\n\t\t+ (pathAndQuery || EMPTY)\r\n\t\t+ (fragment || EMPTY)\r\n\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);\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);\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\tresult.scheme = scheme || undefined;\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) || undefined;\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) || undefined;\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 diff --git a/dist/umd.min/System/Utility/applyMixins.js b/dist/umd.min/System/Utility/applyMixins.js index 78defc55..5027e6fd 100644 --- a/dist/umd.min/System/Utility/applyMixins.js +++ b/dist/umd.min/System/Utility/applyMixins.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){function t(e,o){o.forEach(function(o){Object.getOwnPropertyNames(o.prototype).forEach(function(t){e.prototype[t]=o.prototype[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){function t(e,o){o.forEach(function(o){Object.getOwnPropertyNames(o.prototype).forEach(function(t){e.prototype[t]=o.prototype[t]})})}Object.defineProperty(o,"__esModule",{value:!0}),o["default"]=t}); //# sourceMappingURL=applyMixins.js.map diff --git a/dist/umd.min/System/Utility/applyMixins.js.map b/dist/umd.min/System/Utility/applyMixins.js.map index 7f3158ae..2b7f0013 100644 --- a/dist/umd.min/System/Utility/applyMixins.js.map +++ b/dist/umd.min/System/Utility/applyMixins.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Utility/applyMixins.js","System/Utility/applyMixins.ts"],"names":["deps","factory","module","exports","v","require","undefined","define","amd","applyMixins","derivedConstructor","baseConstructors","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCN9C,QAAAM,GAAoCC,EAAwBC,GAE3DF,EACEA,QAAQA,SAAAA,GAERA,OAAOA,oBAAoBA,EAAGA,WAAWA,QACvCA,SAAAA,GAEAA,EAAmBA,UAAUA,GAAQA,EAAGA,UAAUA,OARvDG,OAAAC,eAAAV,EAAA,cAAAW,OAAA,IDgBIX,EAAAA,WAAkBM","file":"System/Utility/applyMixins.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function applyMixins(derivedConstructor, baseConstructors) {\r\n baseConstructors\r\n .forEach(function (bc) {\r\n Object.getOwnPropertyNames(bc.prototype).forEach(function (name) {\r\n derivedConstructor.prototype[name] = bc.prototype[name];\r\n });\r\n });\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = applyMixins;\r\n});\r\n//# sourceMappingURL=applyMixins.js.map","/*\r\n * @author 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 applyMixins(derivedConstructor:any, baseConstructors:any[]):void\r\n{\r\n\tbaseConstructors\r\n\t\t.forEach(bc =>\r\n\t\t{\r\n\t\t\tObject.getOwnPropertyNames(bc.prototype).forEach(\r\n\t\t\t\t\tname =>\r\n\t\t\t\t{\r\n\t\t\t\t\tderivedConstructor.prototype[name] = bc.prototype[name];\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Utility/applyMixins.js","System/Utility/applyMixins.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","applyMixins","derivedConstructor","baseConstructors","Object","defineProperty","value"],"mappings":"CAAA,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,GCFtB,QAAAM,GAAoCC,EAAwBC,GAE3DF,EACEA,QAAQA,SAAAA,GAERA,OAAOA,oBAAoBA,EAAGA,WAAWA,QACvCA,SAAAA,GAEAA,EAAmBA,UAAUA,GAAQA,EAAGA,UAAUA,OARvDG,OAAAC,eAAAV,EAAA,cAAAW,OAAA,IDYIX,EAAAA,WAAkBM","file":"System/Utility/applyMixins.js","sourcesContent":["(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 function applyMixins(derivedConstructor, baseConstructors) {\n baseConstructors\n .forEach(function (bc) {\n Object.getOwnPropertyNames(bc.prototype).forEach(function (name) {\n derivedConstructor.prototype[name] = bc.prototype[name];\n });\n });\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = applyMixins;\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 applyMixins(derivedConstructor:any, baseConstructors:any[]):void\r\n{\r\n\tbaseConstructors\r\n\t\t.forEach(bc =>\r\n\t\t{\r\n\t\t\tObject.getOwnPropertyNames(bc.prototype).forEach(\r\n\t\t\t\t\tname =>\r\n\t\t\t\t{\r\n\t\t\t\t\tderivedConstructor.prototype[name] = bc.prototype[name];\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n"]} \ 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 2b7633f9..7639aede 100644 --- a/dist/umd.min/System/Utility/clone.js +++ b/dist/umd.min/System/Utility/clone.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,r){if("object"==typeof module&&"object"==typeof module.exports){var i=r(require,exports);void 0!==i&&(module.exports=i)}else"function"==typeof define&&define.amd&&define(e,r)}(["require","exports","../Types"],function(e,r){function i(e,r){if(void 0===r&&(r=0),0>r)return e;if(!o["default"].isObject(e))return e;var t;if(Array.isArray(e)){if(t=e.slice(),r>0)for(var f=0;f0)for(var n in e)t[n]=i(e[n],r-1);return t}var o=e("../Types");Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=i}); +!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){function i(e,r){if(void 0===r&&(r=0),0>r)return e;if(!o["default"].isObject(e))return e;var t;if(Array.isArray(e)){if(t=e.slice(),r>0)for(var f=0;f0)for(var n in e)t[n]=i(e[n],r-1);return t}var o=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 965f25b8..5c99d2cb 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":["deps","factory","module","exports","v","require","undefined","define","amd","clone","source","depth","Types_1","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,UAAW,YAAa,SAAUI,EAASF,GCJ1D,QAAAM,GAA8BC,EAAYC,GAEzCF,GAFyCA,SAAAA,IAAAA,EAAAA,GAEhCA,EAANA,EACFA,MAAOA,EAGRA,KAAIA,EAAAA,WAAKA,SAASA,GAASA,MAAOA,EAElCA,IAAIA,EACJA,IAAGA,MAAMA,QAAQA,IAGhBA,GADAA,EAAeA,EAAQA,QACpBA,EAAMA,EAERA,IAAIA,GAAIA,GAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE/BA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,OAOvCA,IADAA,KACGA,EAAMA,EAAGA,IAAIA,GAAIA,KAAKA,GAGxBA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,EAIvCA,OAAOA,GAhCR,GAAAG,GAAAP,EAAiB,WAEjBQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,ID+BIZ,EAAAA,WAAkBM","file":"System/Utility/clone.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\", '../Types'], function (require, exports) {\r\n var Types_1 = require('../Types');\r\n function clone(source, depth) {\r\n if (depth === void 0) { depth = 0; }\r\n if (depth < 0)\r\n return source;\r\n if (!Types_1.default.isObject(source))\r\n return source;\r\n var result;\r\n if (Array.isArray(source)) {\r\n result = source.slice();\r\n if (depth > 0) {\r\n for (var i = 0; i < result.length; i++) {\r\n result[i] = clone(result[i], depth - 1);\r\n }\r\n }\r\n }\r\n else {\r\n result = {};\r\n if (depth > 0)\r\n for (var k in source) {\r\n result[k] = clone(source[k], depth - 1);\r\n }\r\n }\r\n return result;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = clone;\r\n});\r\n//# sourceMappingURL=clone.js.map","/*\r\n * @author 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","Object","defineProperty","value"],"mappings":"CAAA,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,GCAtB,QAAAM,GAA8BC,EAAYC,GAEzCF,GAFyCA,SAAAA,IAAAA,EAAAA,GAEhCA,EAANA,EACFA,MAAOA,EAGRA,KAAIA,EAAAA,WAAKA,SAASA,GAASA,MAAOA,EAElCA,IAAIA,EACJA,IAAGA,MAAMA,QAAQA,IAGhBA,GADAA,EAAeA,EAAQA,QACpBA,EAAMA,EAERA,IAAIA,GAAIA,GAAIA,EAAGA,EAAEA,EAAOA,OAAQA,IAE/BA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,OAOvCA,IADAA,KACGA,EAAMA,EAAGA,IAAIA,GAAIA,KAAKA,GAGxBA,EAAOA,GAAKA,EAAMA,EAAOA,GAAIA,EAAQA,EAIvCA,OAAOA,GAhCR,GAAAG,GAAAP,EAAiB,WAEjBQ,QAAAC,eAAAX,EAAA,cAAAY,OAAA,ID2BIZ,EAAAA,WAAkBM","file":"System/Utility/clone.js","sourcesContent":["(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 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 diff --git a/dist/umd.min/System/Utility/shallowCopy.js b/dist/umd.min/System/Utility/shallowCopy.js index 0ba67559..7fe5cd65 100644 --- a/dist/umd.min/System/Utility/shallowCopy.js +++ b/dist/umd.min/System/Utility/shallowCopy.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,o){if("object"==typeof module&&"object"==typeof module.exports){var t=o(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(e,o)}(["require","exports"],function(e,o){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){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}); //# 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 36b23227..ccdff9f3 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":["deps","factory","module","exports","v","require","undefined","define","amd","shallowCopy","source","target","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCN9C,QAAAM,GAAoCC,EAAYC,GAE/CF,GAF+CA,SAAAA,IAAAA,MAE5CA,EAEFA,IAAIA,GAAIA,KAAKA,GAGZA,EAAOA,GAAKA,EAAOA,EAIrBA,OAAOA,GAXRG,OAAAC,eAAAV,EAAA,cAAAW,OAAA,IDiBIX,EAAAA,WAAkBM","file":"System/Utility/shallowCopy.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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n function shallowCopy(source, target) {\r\n if (target === void 0) { target = {}; }\r\n if (target) {\r\n for (var k in source) {\r\n target[k] = source[k];\r\n }\r\n }\r\n return target;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = shallowCopy;\r\n});\r\n//# sourceMappingURL=shallowCopy.js.map","/*\r\n * @author 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","Object","defineProperty","value"],"mappings":"CAAA,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,GCFtB,QAAAM,GAAoCC,EAAYC,GAE/CF,GAF+CA,SAAAA,IAAAA,MAE5CA,EAEFA,IAAIA,GAAIA,KAAKA,GAGZA,EAAOA,GAAKA,EAAOA,EAIrBA,OAAOA,GAXRG,OAAAC,eAAAV,EAAA,cAAAW,OAAA,IDaIX,EAAAA,WAAkBM","file":"System/Utility/shallowCopy.js","sourcesContent":["(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 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 diff --git a/dist/umd.min/System/Validation/ValidationResult.js b/dist/umd.min/System/Validation/ValidationResult.js index 63c2962d..8b2204ee 100644 --- a/dist/umd.min/System/Validation/ValidationResult.js +++ b/dist/umd.min/System/Validation/ValidationResult.js @@ -1,6 +1,2 @@ -/* - * @author electricessence / https://github.com/electricessence/ - * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md - */ -!function(e,t){if("object"==typeof module&&"object"==typeof module.exports){var i=t(require,exports);void 0!==i&&(module.exports=i)}else"function"==typeof define&&define.amd&&define(e,t)}(["require","exports"],function(e,t){var i=new n(!0),n=function(){function e(e,t,i){void 0===e&&(e=!1),void 0===t&&(t=null),void 0===i&&(i=null),this.isValid=e,this.message=t,this.data=i,Object.freeze(this)}return e.prototype.equals=function(e){var t=this;return t.isValid===e.isValid&&t.message==t.message&&t.data==t.data},Object.defineProperty(e,"valid",{get:function(){return i},enumerable:!0,configurable:!0}),e.invalid=function(t,i){return void 0===i&&(i=null),new e(!1,t,i)},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"],e)}(function(e,t){"use strict";var i=new n(!0),n=function(){function e(e,t,i){void 0===e&&(e=!1),void 0===t&&(t=null),void 0===i&&(i=null),this.isValid=e,this.message=t,this.data=i,Object.freeze(this)}return e.prototype.equals=function(e){var t=this;return t.isValid===e.isValid&&t.message==t.message&&t.data==t.data},Object.defineProperty(e,"valid",{get:function(){return i},enumerable:!0,configurable:!0}),e.invalid=function(t,i){return void 0===i&&(i=null),new e(!1,t,i)},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); //# sourceMappingURL=ValidationResult.js.map diff --git a/dist/umd.min/System/Validation/ValidationResult.js.map b/dist/umd.min/System/Validation/ValidationResult.js.map index eb1da307..23695a7f 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":["deps","factory","module","exports","v","require","undefined","define","amd","valid","ValidationResult","ValidationResult.constructor","ValidationResult.equals","get","ValidationResult.valid","enumerable","configurable","ValidationResult.invalid","Object","defineProperty","value"],"mappings":";;;;CAIA,SAAWA,EAAMC,GACb,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,OAAOP,EAAMC,KAEjB,UAAW,WAAY,SAAUI,EAASF,GCH9C,GAAMM,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOCA,QAAAA,GACQA,EACAA,EACAA,GAFPC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAFOA,KAAAA,QAAAA,EACAA,KAAAA,QAAAA,EACAA,KAAAA,KAAAA,EAIPA,OAAOA,OAAOA,MAgChBD,MA1BCA,GAAAA,UAAAA,OAAAA,SAAOA,GAENE,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,UAAUA,EAAMA,SACrBA,EAAEA,SAASA,EAAEA,SACbA,EAAEA,MAAMA,EAAEA,MAQfF,OAAAA,eAAWA,EAAAA,SDdAG,ICcXH,WACCI,MAAOA,IDZGC,YAAY,EACZC,cAAc,ICiBlBN,EAAAA,QAAPA,SACCA,EACAA,GAEAO,MAFAA,UAAAA,IAAAA,EAAAA,MAEOA,GAAIA,IAAiBA,EAAOA,EAASA,IAE9CP,IA9CAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,IDgCIjB,EAAAA,WAAkBO","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(function (deps, factory) {\r\n if (typeof module === 'object' && typeof module.exports === 'object') {\r\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === 'function' && define.amd) {\r\n define(deps, factory);\r\n }\r\n})([\"require\", \"exports\"], function (require, exports) {\r\n /// \r\n ///\r\n var valid = new ValidationResult(true);\r\n var ValidationResult = (function () {\r\n function ValidationResult(isValid, message, data) {\r\n if (isValid === void 0) { isValid = false; }\r\n if (message === void 0) { message = null; }\r\n if (data === void 0) { data = null; }\r\n this.isValid = isValid;\r\n this.message = message;\r\n this.data = data;\r\n Object.freeze(this);\r\n }\r\n ValidationResult.prototype.equals = function (other) {\r\n var _ = this;\r\n return _.isValid === other.isValid\r\n && _.message == _.message\r\n && _.data == _.data;\r\n };\r\n Object.defineProperty(ValidationResult, \"valid\", {\r\n get: function () {\r\n return valid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ValidationResult.invalid = function (message, data) {\r\n if (data === void 0) { data = null; }\r\n return new ValidationResult(false, message, data);\r\n };\r\n return ValidationResult;\r\n })();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = ValidationResult;\r\n});\r\n//# sourceMappingURL=ValidationResult.js.map","/*\r\n * @author 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\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","ValidationResult.constructor","ValidationResult.equals","get","ValidationResult.valid","enumerable","configurable","ValidationResult.invalid","Object","defineProperty","value"],"mappings":"CAAA,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,IAAMM,GAAQ,GAAIC,IAAiB,GAKnCA,EAAA,WAOCA,QAAAA,GACQA,EACAA,EACAA,GAFPC,SAAAA,IAAAA,GAAAA,GACAA,SAAAA,IAAAA,EAAAA,MACAA,SAAAA,IAAAA,EAAAA,MAFOA,KAAAA,QAAAA,EACAA,KAAAA,QAAAA,EACAA,KAAAA,KAAAA,EAIPA,OAAOA,OAAOA,MAgChBD,MA1BCA,GAAAA,UAAAA,OAAAA,SAAOA,GAENE,GAAIA,GAAIA,IACRA,OAAOA,GAAEA,UAAUA,EAAMA,SACrBA,EAAEA,SAASA,EAAEA,SACbA,EAAEA,MAAMA,EAAEA,MAQfF,OAAAA,eAAWA,EAAAA,SDpBAG,ICoBXH,WACCI,MAAOA,IDlBGC,YAAY,EACZC,cAAc,ICuBlBN,EAAAA,QAAPA,SACCA,EACAA,GAEAO,MAFAA,UAAAA,IAAAA,EAAAA,MAEOA,GAAIA,IAAiBA,EAAOA,EAASA,IAE9CP,IA9CAQ,QAAAC,eAAAhB,EAAA,cAAAiB,OAAA,ID0BIjB,EAAAA,WAAkBO","file":"System/Validation/ValidationResult.js","sourcesContent":["(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'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n/// \r\n///\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 824a40c0..41308e01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.5.19", + "version": "2.6.0", "license": "MIT", "author": "electricessence ", "description": "A JavaScript-Friendly .NET Based TypeScript Library.", diff --git a/source/System.Linq/Linq.js b/source/System.Linq/Linq.js index f24382dc..ec5581c0 100644 --- a/source/System.Linq/Linq.js +++ b/source/System.Linq/Linq.js @@ -1,17 +1,30 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Original: http://linqjs.codeplex.com/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +/// +/// +/// +/// +/// +/// +/// +/// +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && 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/Utility', '../System/Disposable/DisposableBase', "../System/Exception", '../System/Disposable/ObjectDisposedException', "../System/Collections/Sorting/KeySortedContext"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["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/Utility', '../System/Disposable/DisposableBase', "../System/Exception", '../System/Disposable/ObjectDisposedException', "../System/Collections/Sorting/KeySortedContext"], function (require, exports) { var Values = require('../System/Compare'); var Arrays = require('../System/Collections/Array/Compare'); var ArrayUtility = require('../System/Collections/Array/Utility'); @@ -28,7 +41,9 @@ var __extends = (this && this.__extends) || function (d, b) { var Exception_1 = require("../System/Exception"); var ObjectDisposedException_1 = require('../System/Disposable/ObjectDisposedException'); var KeySortedContext_1 = require("../System/Collections/Sorting/KeySortedContext"); + // #region Local Constants. var VOID0 = void 0; + // Leave internal to avoid accidental overwriting. var LinqFunctions = (function (_super) { __extends(LinqFunctions, _super); function LinqFunctions() { @@ -41,25 +56,40 @@ var __extends = (this && this.__extends) || function (d, b) { return a < b ? a : b; }; return LinqFunctions; - }(Functions_1.default)); + })(Functions_1.default); var Functions = new LinqFunctions(); Object.freeze(Functions); + // #endregion var UnsupportedEnumerableException = (function (_super) { __extends(UnsupportedEnumerableException, _super); function UnsupportedEnumerableException() { _super.call(this, "Unsupported enumerable."); } return UnsupportedEnumerableException; - }(Exception_1.default)); + })(Exception_1.default); + /** + * Enumerable is a wrapper class that allows more primitive enumerables to exhibit LINQ behavior. + * + * In C# Enumerable is not an instance but has extensions for IEnumerable. + * In this case, we use Enumerable as the underlying class that is being chained. + */ var Enumerable = (function (_super) { __extends(Enumerable, _super); function Enumerable(_enumeratorFactory, finalizer) { _super.call(this, finalizer); this._enumeratorFactory = _enumeratorFactory; } + /** + * Static shortcut for creating an ArrayEnumerable. + */ Enumerable.fromArray = function (array) { return new ArrayEnumerable(array); }; + /** + * Universal method for converting a primitive enumerables into a LINQ enabled ones. + * + * Is not limited to TypeScript usages. + */ Enumerable.from = function (source) { if (Types_1.default.isObject(source)) { if (source instanceof Enumerable) @@ -91,14 +121,20 @@ var __extends = (this && this.__extends) || function (d, b) { } throw new UnsupportedEnumerableException(); }; + // #region IEnumerable Implementation... Enumerable.prototype.getEnumerator = function () { this.throwIfDisposed(); return this._enumeratorFactory(); }; + // #endregion + // #region IDisposable override... Enumerable.prototype._onDispose = function () { - _super.prototype._onDispose.call(this); + _super.prototype._onDispose.call(this); // Just in case. this._enumeratorFactory = null; }; + // #endregion + ////////////////////////////////////////// + // #region Static Methods... Enumerable.choice = function (values) { return new Enumerable(function () { return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(values[Integer_1.default.random(values.length)]); @@ -106,10 +142,11 @@ var __extends = (this && this.__extends) || function (d, b) { }; Enumerable.cycle = function (values) { return new Enumerable(function () { - var index = 0; + var index = 0; // Let the compiler know this is an int. return new EnumeratorBase_1.default(function () { index = 0; - }, function (yielder) { + }, // Reinitialize the value just in case the enumerator is restarted. + function (yielder) { if (index >= values.length) index = 0; return yielder.yieldReturn(values[index++]); @@ -135,6 +172,7 @@ var __extends = (this && this.__extends) || function (d, b) { return new EnumeratorBase_1.default(null, function (yielder) { return yielder.yieldReturn(element); }); }); }; + // Note: this enumeration does not break. Enumerable.repeatWithFinalize = function (initializer, finalizer) { return new Enumerable(function () { var element; @@ -148,6 +186,7 @@ var __extends = (this && this.__extends) || function (d, b) { Enumerable.make = function (element) { return Enumerable.repeat(element, 1); }; + // start and step can be other than integer. Enumerable.range = function (start, count, step) { if (start === void 0) { start = 0; } if (count === void 0) { count = Infinity; } @@ -161,7 +200,7 @@ var __extends = (this && this.__extends) || function (d, b) { return isFinite(count) && Integer_1.default.assert(count, "count") ? new Enumerable(function () { var value; - var c = count; + var c = count; // Force integer evaluation. var index = 0; return new EnumeratorBase_1.default(function () { index = 0; @@ -192,6 +231,7 @@ var __extends = (this && this.__extends) || function (d, b) { step = Math.abs(step) * -1; return Enumerable.range(start, count, step); }; + // step = -1 behaves the same as toNegativeInfinity; Enumerable.toInfinity = function (start, step) { if (start === void 0) { start = 0; } if (step === void 0) { step = 1; } @@ -212,7 +252,9 @@ var __extends = (this && this.__extends) || function (d, b) { throw new Error("Must have a valid 'to' value."); if (!isFinite(step)) throw new Error("Must have a valid 'step' value."); + // This way we adjust for the delta from start and to so the user can say +/- step and it will work as expected. step = Math.abs(step); + // Range to infinity has a more efficient mechanism. if (!isFinite(to)) return Enumerable.range(start, Infinity, (start < to) ? (+step) : (-step)); return new Enumerable(function () { @@ -253,6 +295,7 @@ var __extends = (this && this.__extends) || function (d, b) { return new EnumeratorBase_1.default(function () { regex = new RegExp(pattern, flags); }, function (yielder) { + // Calling regex.exec consecutively on the same input uses the lastIndex to start the next match. var match = regex.exec(input); return (match !== null) ? yielder.yieldReturn(match) : false; }); @@ -326,6 +369,7 @@ var __extends = (this && this.__extends) || function (d, b) { return result; }); }; + // Slightly optimized versions for numbers. Enumerable.max = function (values) { return values .takeUntil(function (v) { return v == +Infinity; }, true) @@ -336,17 +380,23 @@ var __extends = (this && this.__extends) || function (d, b) { .takeUntil(function (v) { return v == -Infinity; }, true) .aggregate(Functions.Lesser); }; + // #endregion + ////////////////////////////////////////// + // #region Instance methods... Enumerable.prototype.forEach = function (action) { var _ = this; _.throwIfDisposed(); var index = 0; + // Return value of action can be anything, but if it is (===) false then the forEach will discontinue. Utility_1.using(_.getEnumerator(), function (e) { + // It is possible that subsequently 'action' could cause the enumeration to dispose, so we have to check each time. while (_.throwIfDisposed() && e.moveNext()) { if (action(e.current, index++) === false) break; } }); }; + // #region Conversion Methods Enumerable.prototype.toArray = function (predicate) { var result = []; if (predicate) @@ -356,6 +406,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); return result; }; + // Return a default (unfiltered) enumerable. Enumerable.prototype.asEnumerable = function () { var _ = this; return new Enumerable(function () { return _.getEnumerator(); }); @@ -393,6 +444,13 @@ var __extends = (this && this.__extends) || function (d, b) { if (selector === void 0) { selector = Functions.Identity; } return this.select(selector).toArray().join(separator); }; + // #endregion + /** + * Similar to forEach, but executes an action for each time a value is enumerated. + * If the action explicitly returns false or 0 (EnumerationAction.Break), the enumeration will complete. + * If it returns a 2 (EnumerationAction.Skip) it will move on to the next item. + * This also automatically handles disposing the enumerator. + */ Enumerable.prototype.doAction = function (action) { var _ = this, disposed = !_.throwIfDisposed(); return new Enumerable(function () { @@ -406,24 +464,30 @@ var __extends = (this && this.__extends) || function (d, b) { throwIfDisposed(disposed); while (enumerator.moveNext()) { var actionResult = action(enumerator.current, index++); - if (actionResult === false || actionResult === 0) + if (actionResult === false || actionResult === 0 /* Break */) return yielder.yieldBreak(); - if (actionResult !== 2) + if (actionResult !== 2 /* Skip */) return yielder.yieldReturn(enumerator.current); } return false; }, function () { Utility_1.dispose(enumerator); }); - }, function () { + }, + // Using a finalizer value reduces the chance of a circular reference + // since we could simply reference the enumeration and check e.wasDisposed. + // Using a finalizer value reduces the chance of a circular reference + // since we could simply reference the enumeration and check e.wasDisposed. + function () { disposed = true; }); }; Enumerable.prototype.force = function (defaultAction) { - if (defaultAction === void 0) { defaultAction = 0; } + if (defaultAction === void 0) { defaultAction = 0 /* Break */; } this.throwIfDisposed(); this.doAction(function (element) { return defaultAction; }); }; + // #region Indexing/Paging methods. Enumerable.prototype.skip = function (count) { var _ = this; _.throwIfDisposed(); @@ -435,8 +499,8 @@ var __extends = (this && this.__extends) || function (d, b) { var c = count; return this.doAction(function (element, index) { return index < c - ? 2 - : 1; + ? 2 /* Skip */ + : 1 /* Return */; }); }; Enumerable.prototype.skipWhile = function (predicate) { @@ -446,8 +510,8 @@ var __extends = (this && this.__extends) || function (d, b) { if (skipping) skipping = predicate(element, index); return skipping - ? 2 - : 1; + ? 2 /* Skip */ + : 1 /* Return */; }); }; Enumerable.prototype.take = function (count) { @@ -459,30 +523,32 @@ var __extends = (this && this.__extends) || function (d, b) { return _; Integer_1.default.assert(count, "count"); var c = count; + // Once action returns false, the enumeration will stop. return _.doAction(function (element, index) { return index < c; }); }; Enumerable.prototype.takeWhile = function (predicate) { this.throwIfDisposed(); return this.doAction(function (element, index) { return predicate(element, index) - ? 1 - : 0; + ? 1 /* Return */ + : 0 /* Break */; }); }; + // Is like the inverse of take While with the ability to return the value identified by the predicate. Enumerable.prototype.takeUntil = function (predicate, includeUntilValue) { this.throwIfDisposed(); if (!includeUntilValue) return this.doAction(function (element, index) { return predicate(element, index) - ? 0 - : 1; + ? 0 /* Break */ + : 1 /* Return */; }); var found = false; return this.doAction(function (element, index) { if (found) - return 0; + return 0 /* Break */; found = predicate(element, index); - return 1; + return 1 /* Return */; }); }; Enumerable.prototype.takeExceptLast = function (count) { @@ -502,8 +568,11 @@ var __extends = (this && this.__extends) || function (d, b) { q = new Queue_1.default(); }, function (yielder) { while (enumerator.moveNext()) { + // Add the next one to the queue. q.enqueue(enumerator.current); + // Did we reach our quota? if (q.count > c) + // Okay then, start returning results. return yielder.yieldReturn(q.dequeue()); } return false; @@ -521,6 +590,8 @@ var __extends = (this && this.__extends) || function (d, b) { Integer_1.default.assert(count, "count"); return _.reverse().take(count); }; + // #endregion + // #region Projection and Filtering Methods Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) { var _ = this; return new Enumerable(function () { @@ -563,9 +634,10 @@ var __extends = (this && this.__extends) || function (d, b) { Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) { var _ = this; return new Enumerable(function () { + // Dev Note: May want to consider using an actual stack and not an array. var enumeratorStack = []; var enumerator; - var len; + var len; // Avoid using push/pop since they query .length every time and can be slower. return new EnumeratorBase_1.default(function () { enumerator = _.getEnumerator(); len = 0; @@ -648,7 +720,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); }; Enumerable.prototype.scan = function (func, seed) { - var isUseSeed = seed !== VOID0; + var isUseSeed = seed !== VOID0; // For now... var _ = this; return new Enumerable(function () { var enumerator; @@ -660,6 +732,7 @@ var __extends = (this && this.__extends) || function (d, b) { }, function (yielder) { if (isFirst) { isFirst = false; + //noinspection JSUnusedAssignment return isUseSeed ? yielder.yieldReturn(value = seed) : enumerator.moveNext() && yielder.yieldReturn(value @@ -673,6 +746,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); }); }; + // #endregion Enumerable.prototype.select = function (selector) { var _ = this, disposed = !_.throwIfDisposed(); if (selector.length < 2) @@ -709,17 +783,22 @@ var __extends = (this && this.__extends) || function (d, b) { middleEnumerator = undefined; index = 0; }, function (yielder) { + // Just started, and nothing to enumerate? End. if (middleEnumerator === VOID0 && !enumerator.moveNext()) return false; + // moveNext has been called at least once... do { + // Initialize middle if there isn't one. if (!middleEnumerator) { var middleSeq = collectionSelector(enumerator.current, index++); + // Collection is null? Skip it... if (!middleSeq) continue; middleEnumerator = Enumerator_1.from(middleSeq); } if (middleEnumerator.moveNext()) return yielder.yieldReturn(resultSelector(enumerator.current, middleEnumerator.current)); + // else no more in this middle? Then clear and reset for next... middleEnumerator.dispose(); middleEnumerator = null; } while (enumerator.moveNext()); @@ -834,6 +913,7 @@ var __extends = (this && this.__extends) || function (d, b) { Enumerable.prototype.distinct = function (compareSelector) { return this.except(null, compareSelector); }; + // [0,0,0,1,1,1,2,2,2,0,0,0] results in [0,1,2,0]; Enumerable.prototype.distinctUntilChanged = function (compareSelector) { var _ = this, disposed = !_.throwIfDisposed(); return new Enumerable(function () { @@ -894,12 +974,13 @@ var __extends = (this && this.__extends) || function (d, b) { buffer = _.toArray(); capacity = len = buffer.length; }, function (yielder) { + // Avoid using major array operations like .slice(); if (!len) return yielder.yieldBreak(); var selectedIndex = Integer_1.default.random(len); var selectedValue = buffer[selectedIndex]; - buffer[selectedIndex] = buffer[--len]; - buffer[len] = null; + buffer[selectedIndex] = buffer[--len]; // Take the last one and put it here. + buffer[len] = null; // clear possible reference. if (len % 32 == 0) buffer.length = len; return yielder.yieldReturn(selectedValue); @@ -927,24 +1008,29 @@ var __extends = (this && this.__extends) || function (d, b) { } return count; }; + // Akin to '.every' on an array. Enumerable.prototype.all = function (predicate) { var result = true; this.forEach(function (x) { if (!predicate(x)) { result = false; - return false; + return false; // break } }); return result; }; + // 'every' has been added here for parity/compatibility with an array. Enumerable.prototype.every = function (predicate) { return this.all(predicate); }; + // Akin to '.some' on an array. Enumerable.prototype.any = function (predicate) { var result = false; + // Splitting the forEach up this way reduces iterative processing. + // forEach handles the generation and disposal of the enumerator. if (predicate) { this.forEach(function (x) { - result = predicate(x); + result = predicate(x); // false = not found and therefore it should continue. true = found and break; return !result; }); } @@ -956,6 +1042,7 @@ var __extends = (this && this.__extends) || function (d, b) { } return result; }; + // 'some' has been added here for parity/compatibility with an array. Enumerable.prototype.some = function (predicate) { return this.any(predicate); }; @@ -967,6 +1054,9 @@ var __extends = (this && this.__extends) || function (d, b) { ? this.any(function (v) { return compareSelector(v) === compareSelector(value); }) : this.any(function (v) { return v === value; }); }; + // Originally has an overload for a predicate, + // but that's a bad idea since this could be an enumeration of functions and therefore fail the intent. + // Better to chain a where statement first to be more explicit. Enumerable.prototype.indexOf = function (value, compareSelector) { var found = -1; if (compareSelector) @@ -978,6 +1068,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); else this.forEach(function (element, i) { + // Why? Because NaN doesn't equal NaN. :P if (Values.areEqual(element, value, true)) { found = i; return false; @@ -1082,6 +1173,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); }); }; + // #region Join Methods Enumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) { if (compareSelector === void 0) { compareSelector = Functions.Identity; } var _ = this; @@ -1167,12 +1259,13 @@ var __extends = (this && this.__extends) || function (d, b) { var enumerator; var queue; return new EnumeratorBase_1.default(function () { + // 1) First get our values... enumerator = _.getEnumerator(); queue = new Queue_1.default(enumerables); }, function (yielder) { while (true) { while (!enumerator && queue.count) { - enumerator = Enumerator_1.from(queue.dequeue()); + enumerator = Enumerator_1.from(queue.dequeue()); // 4) Keep going and on to step 2. Else fall through to yieldBreak(). } if (enumerator && enumerator.moveNext()) return yielder.yieldReturn(enumerator.current); @@ -1184,7 +1277,7 @@ var __extends = (this && this.__extends) || function (d, b) { return yielder.yieldBreak(); } }, function () { - Utility_1.dispose(enumerator, queue); + Utility_1.dispose(enumerator, queue); // Just in case this gets disposed early. }); }); }; @@ -1240,30 +1333,33 @@ var __extends = (this && this.__extends) || function (d, b) { return new Enumerable(function () { var buffer, mode, enumerator, alternateEnumerator; return new EnumeratorBase_1.default(function () { - alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence)); + // Instead of recalling getEnumerator every time, just reset the existing one. + alternateEnumerator = new ArrayEnumerator_1.default(Enumerable.toArray(sequence)); // Freeze enumerator = _.getEnumerator(); var hasAtLeastOne = enumerator.moveNext(); mode = hasAtLeastOne - ? 1 - : 0; + ? 1 /* Return */ + : 0 /* Break */; if (hasAtLeastOne) buffer = enumerator.current; }, function (yielder) { switch (mode) { - case 0: + case 0 /* Break */: return yielder.yieldBreak(); - case 2: + case 2 /* Skip */: if (alternateEnumerator.moveNext()) return yielder.yieldReturn(alternateEnumerator.current); alternateEnumerator.reset(); - mode = 1; + mode = 1 /* Return */; break; } var latest = buffer; + // Set up the next round... + // Is there another one? Set the buffer and setup instruct for the next one to be the alternate. var another = enumerator.moveNext(); mode = another - ? 2 - : 0; + ? 2 /* Skip */ + : 0 /* Break */; if (another) buffer = enumerator.current; return yielder.yieldReturn(latest); @@ -1307,7 +1403,7 @@ var __extends = (this && this.__extends) || function (d, b) { return yielder.yieldBreak(); }, function () { Utility_1.dispose(enumerator); - }); + }); // Should Dictionary be IDisposable? }); }; Enumerable.prototype.sequenceEqual = function (second, equalityComparer) { @@ -1320,6 +1416,13 @@ var __extends = (this && this.__extends) || function (d, b) { return !e2.moveNext(); }); }); }; + //isEquivalent(second:IEnumerable | IArray, + // equalityComparer:EqualityComparison = Values.areEqual):boolean + //{ + // return this + // .orderBy(keySelector) + // .sequenceEqual(Enumerable.from(second).orderBy(keySelector)) + //} Enumerable.prototype.union = function (second, compareSelector) { if (compareSelector === void 0) { compareSelector = Functions.Identity; } var _ = this; @@ -1355,24 +1458,26 @@ var __extends = (this && this.__extends) || function (d, b) { }); }); }; + // #endregion + // #region Ordering Methods Enumerable.prototype.orderBy = function (keySelector) { if (keySelector === void 0) { keySelector = Functions.Identity; } - return new OrderedEnumerable(this, keySelector, 1); + return new OrderedEnumerable(this, keySelector, 1 /* Ascending */); }; Enumerable.prototype.orderUsing = function (comparison) { - return new OrderedEnumerable(this, null, 1, null, comparison); + return new OrderedEnumerable(this, null, 1 /* Ascending */, null, comparison); }; Enumerable.prototype.orderUsingReversed = function (comparison) { - return new OrderedEnumerable(this, null, -1, null, comparison); + return new OrderedEnumerable(this, null, -1 /* Descending */, null, comparison); }; Enumerable.prototype.orderByDescending = function (keySelector) { if (keySelector === void 0) { keySelector = Functions.Identity; } - return new OrderedEnumerable(this, keySelector, -1); + return new OrderedEnumerable(this, keySelector, -1 /* Descending */); }; Enumerable.prototype.groupBy = function (keySelector, elementSelector, compareSelector) { var _ = this; if (!elementSelector) - elementSelector = Functions.Identity; + elementSelector = Functions.Identity; // Allow for 'null' and not just undefined. return new Enumerable(function () { return _.toLookup(keySelector, elementSelector, compareSelector) .getEnumerator(); }); }; @@ -1381,7 +1486,7 @@ var __extends = (this && this.__extends) || function (d, b) { if (compareSelector === void 0) { compareSelector = Functions.Identity; } var _ = this; if (!elementSelector) - elementSelector = Functions.Identity; + elementSelector = Functions.Identity; // Allow for 'null' and not just undefined. return new Enumerable(function () { var enumerator; var key; @@ -1427,6 +1532,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); }); }; + // #endregion Enumerable.prototype.buffer = function (size) { if (size < 1 || !isFinite(size)) throw new Error("Invalid buffer size."); @@ -1449,14 +1555,16 @@ var __extends = (this && this.__extends) || function (d, b) { }); }); }; + // #region Aggregate Methods Enumerable.prototype.aggregate = function (func, seed) { return this.scan(func, seed).lastOrDefault(); }; Enumerable.prototype.average = function (selector) { if (selector === void 0) { selector = Types_1.default.numberOrNaN; } var sum = 0; - var sumInfinite = 0; - var count = 0; + // This allows for infinity math that doesn't destroy the other values. + var sumInfinite = 0; // Needs more investigation since we are really trying to retain signs. + var count = 0; // No need to make integer if the result could be a float. this.forEach(function (x) { var value = selector(x); if (isNaN(value)) { @@ -1475,6 +1583,7 @@ var __extends = (this && this.__extends) || function (d, b) { ? NaN : (sum / count); }; + // If using numbers, it may be useful to call .takeUntil(v=>v==Infinity,true) before calling max. See static versions for numbers. Enumerable.prototype.max = function () { return this.aggregate(Functions.Greater); }; @@ -1489,10 +1598,12 @@ var __extends = (this && this.__extends) || function (d, b) { if (keySelector === void 0) { keySelector = Functions.Identity; } return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; }); }; + // Addition... Only works with numerical enumerations. Enumerable.prototype.sum = function (selector) { if (selector === void 0) { selector = Types_1.default.numberOrNaN; } var sum = 0; - var sumInfinite = 0; + // This allows for infinity math that doesn't destroy the other values. + var sumInfinite = 0; // Needs more investigation since we are really trying to retain signs. this.forEach(function (x) { var value = selector(x); if (isNaN(value)) { @@ -1506,6 +1617,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); return isNaN(sum) ? NaN : (sumInfinite ? (sumInfinite * Infinity) : sum); }; + // Multiplication... Enumerable.prototype.product = function (selector) { if (selector === void 0) { selector = Types_1.default.numberOrNaN; } var result = 1, exists = false; @@ -1517,13 +1629,17 @@ var __extends = (this && this.__extends) || function (d, b) { return false; } if (value == 0) { - result = 0; + result = 0; // Multiplying by zero will always end in zero. return false; } + // Multiplication can never recover from infinity and simply must retain signs. + // You could cancel out infinity with 1/infinity but no available representation exists. result *= value; }); return (exists && isNaN(result)) ? NaN : result; }; + // #endregion + // #region Single Value Return... Enumerable.prototype.elementAt = function (index) { if (isNaN(index) || index < 0 || !isFinite(index)) throw new Error("'index' is invalid or out of bounds."); @@ -1563,6 +1679,14 @@ var __extends = (this && this.__extends) || function (d, b) { }); return (!found) ? defaultValue : value; }; + /* Note: Unlike previous implementations, you could pass a predicate into these methods. + * But since under the hood it ends up calling .where(predicate) anyway, + * it may be better to remove this to allow for a cleaner signature/override. + * JavaScript/TypeScript does not easily allow for a strict method interface like C#. + * Having to write extra override logic is error prone and confusing to the consumer. + * Removing the predicate here may also cause the consumer of this method to think more about how they structure their query. + * The end all difference is that the user must declare .where(predicate) before .first(), .single(), or .last(). + * */ Enumerable.prototype.first = function () { var _ = this; _.throwIfDisposed(); @@ -1648,12 +1772,14 @@ var __extends = (this && this.__extends) || function (d, b) { }); return (!found) ? defaultValue : value; }; + // #endregion Enumerable.prototype.share = function () { var _ = this; _.throwIfDisposed(); var sharedEnumerator; return new Enumerable(function () { return new EnumeratorBase_1.default(function () { + // assertIsNotDisposed(disposed); This doesn't need an assertion since disposing the underlying enumerable disposes the enumerator. if (!sharedEnumerator) sharedEnumerator = _.getEnumerator(); }, function (yielder) { @@ -1696,6 +1822,7 @@ var __extends = (this && this.__extends) || function (d, b) { enumerator = null; }); }; + // #region Error Handling Enumerable.prototype.catchError = function (handler) { var _ = this, disposed = !_.throwIfDisposed(); return new Enumerable(function () { @@ -1745,7 +1872,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); }; return Enumerable; - }(DisposableBase_1.default)); + })(DisposableBase_1.default); exports.Enumerable = Enumerable; var ArrayEnumerable = (function (_super) { __extends(ArrayEnumerable, _super); @@ -1754,7 +1881,7 @@ var __extends = (this && this.__extends) || function (d, b) { _.throwIfDisposed(); return new ArrayEnumerator_1.default(function () { _.throwIfDisposed("The underlying ArrayEnumerable was disposed.", "ArrayEnumerator"); - return _._source; + return _._source; // Could possibly be null, but ArrayEnumerable if not disposed simply treats null as empty array. }); }); var _ = this; @@ -1787,17 +1914,21 @@ var __extends = (this && this.__extends) || function (d, b) { ArrayEnumerable.prototype.asEnumerable = function () { return new ArrayEnumerable(this._source); }; + // Optimize forEach so that subsequent usage is optimized. ArrayEnumerable.prototype.forEach = function (action) { var _ = this; _.throwIfDisposed(); var source = _._source; if (source) { + // Return value of action can be anything, but if it is (===) false then the forEach will discontinue. for (var i = 0; i < source.length; ++i) { + // _.assertIsNotDisposed(); // Assertion here is unnecessary since we already have a reference to the source array. if (action(source[i], i) === false) break; } } }; + // These methods should ALWAYS check for array length before attempting anything. ArrayEnumerable.prototype.any = function (predicate) { var _ = this; _.throwIfDisposed(); @@ -1906,7 +2037,7 @@ var __extends = (this && this.__extends) || function (d, b) { : _super.prototype.toJoinedString.call(this, separator, selector); }; return ArrayEnumerable; - }(Enumerable)); + })(Enumerable); var Grouping = (function (_super) { __extends(Grouping, _super); function Grouping(_groupKey, elements) { @@ -1921,7 +2052,7 @@ var __extends = (this && this.__extends) || function (d, b) { configurable: true }); return Grouping; - }(ArrayEnumerable)); + })(ArrayEnumerable); var Lookup = (function () { function Lookup(_dictionary) { this._dictionary = _dictionary; @@ -1954,10 +2085,11 @@ var __extends = (this && this.__extends) || function (d, b) { }); }; return Lookup; - }()); + })(); var WhereEnumerable = (function (_super) { __extends(WhereEnumerable, _super); - function WhereEnumerable(prevSource, prevPredicate) { + function WhereEnumerable(prevSource, prevPredicate // predicate.length always <= 1 + ) { _super.call(this, null); this.prevSource = prevSource; this.prevPredicate = prevPredicate; @@ -1996,10 +2128,12 @@ var __extends = (this && this.__extends) || function (d, b) { this.prevSource = null; }; return WhereEnumerable; - }(Enumerable)); + })(Enumerable); var WhereSelectEnumerable = (function (_super) { __extends(WhereSelectEnumerable, _super); - function WhereSelectEnumerable(prevSource, prevPredicate, prevSelector) { + function WhereSelectEnumerable(prevSource, prevPredicate, // predicate.length always <= 1 + prevSelector // selector.length always <= 1 + ) { _super.call(this, null); this.prevSource = prevSource; this.prevPredicate = prevPredicate; @@ -2012,6 +2146,7 @@ var __extends = (this && this.__extends) || function (d, b) { }; WhereSelectEnumerable.prototype.select = function (selector) { if (selector.length > 1) + // if selector use index, can't compose return _super.prototype.select.call(this, selector); var _ = this; var prevSelector = _.prevSelector; @@ -2019,7 +2154,8 @@ var __extends = (this && this.__extends) || function (d, b) { return new WhereSelectEnumerable(_.prevSource, _.prevPredicate, composedSelector); }; WhereSelectEnumerable.prototype.getEnumerator = function () { - var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, enumerator; + var _ = this, predicate = _.prevPredicate, source = _.prevSource, selector = _.prevSelector, // Type definition needed for correct inference. + enumerator; return new EnumeratorBase_1.default(function () { enumerator = source.getEnumerator(); }, function (yielder) { @@ -2042,7 +2178,7 @@ var __extends = (this && this.__extends) || function (d, b) { _.prevSelector = null; }; return WhereSelectEnumerable; - }(Enumerable)); + })(Enumerable); var OrderedEnumerable = (function (_super) { __extends(OrderedEnumerable, _super); function OrderedEnumerable(source, keySelector, order, parent, comparer) { @@ -2058,16 +2194,16 @@ var __extends = (this && this.__extends) || function (d, b) { return new OrderedEnumerable(this.source, keySelector, order, this); }; OrderedEnumerable.prototype.thenBy = function (keySelector) { - return this.createOrderedEnumerable(keySelector, 1); + return this.createOrderedEnumerable(keySelector, 1 /* Ascending */); }; OrderedEnumerable.prototype.thenUsing = function (comparison) { - return new OrderedEnumerable(this.source, null, 1, this, comparison); + return new OrderedEnumerable(this.source, null, 1 /* Ascending */, this, comparison); }; OrderedEnumerable.prototype.thenByDescending = function (keySelector) { - return this.createOrderedEnumerable(keySelector, -1); + return this.createOrderedEnumerable(keySelector, -1 /* Descending */); }; OrderedEnumerable.prototype.thenUsingReversed = function (comparison) { - return new OrderedEnumerable(this.source, null, -1, this, comparison); + return new OrderedEnumerable(this.source, null, -1 /* Descending */, this, comparison); }; OrderedEnumerable.prototype.getEnumerator = function () { var _ = this; @@ -2099,7 +2235,13 @@ var __extends = (this && this.__extends) || function (d, b) { this.parent = null; }; return OrderedEnumerable; - }(Enumerable)); + })(Enumerable); + /** + * Recursively builds a SortContext chain. + * @param orderedEnumerable + * @param currentContext + * @returns {any} + */ function createSortContext(orderedEnumerable, currentContext) { if (currentContext === void 0) { currentContext = null; } var context = new KeySortedContext_1.default(currentContext, orderedEnumerable.keySelector, orderedEnumerable.order, orderedEnumerable.comparer); @@ -2107,6 +2249,9 @@ var __extends = (this && this.__extends) || function (d, b) { return createSortContext(orderedEnumerable.parent, context); return context; } + // #region Helper Functions... + // This allows for the use of a boolean instead of calling this.throwIfDisposed() + // since there is a strong chance of introducing a circular reference. function throwIfDisposed(disposed, className) { if (className === void 0) { className = "Enumerable"; } if (disposed) diff --git a/source/System.Linq/Linq.js.map b/source/System.Linq/Linq.js.map index 7cd871ee..ddd86540 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":";;;;;;;;;;;;;IAaA,YAAY,CAAC;IAEb,IAAY,MAAM,WAAM,mBAAmB,CAAC,CAAA;IAC5C,IAAY,MAAM,WAAM,qCAAqC,CAAC,CAAA;IAC9D,IAAY,YAAY,WAAM,qCAAqC,CAAC,CAAA;IACpE,2BAAiF,8CAA8C,CAAC,CAAA;IAChI,sBAAiB,iBAAiB,CAAC,CAAA;IACnC,wBAAoB,mBAAmB,CAAC,CAAA;IACxC,0BAA0B,qBAAqB,CAAC,CAAA;IAChD,gCAA4B,mDAAmD,CAAC,CAAA;IAChF,+BAA2B,kDAAkD,CAAC,CAAA;IAC9E,2BAAuB,+CAA+C,CAAC,CAAA;IACvE,sBAAkB,6BAA6B,CAAC,CAAA;IAChD,wBAA2C,8BAA8B,CAAC,CAAA;IAC1E,+BAA2B,qCAAqC,CAAC,CAAA;IACjE,0BAAsB,qBAAqB,CAAC,CAAA;IAE5C,wCAAoC,8CAA8C,CAAC,CAAA;IACnF,iCAA6B,gDAAgD,CAAC,CAAA;IAK9E,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAGzB;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,mBAAa,GAWxC;IAED,IAAI,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAIzB;QAA6C,kDAAS;QAErD;YAEC,kBAAM,yBAAyB,CAAC,CAAC;QAClC,CAAC;QACF,qCAAC;IAAD,CAAC,AAND,CAA6C,mBAAS,GAMrD;IAmBD;QACQ,8BAAc;QAGrB,oBACW,kBAAuC,EACjD,SAAqB;YAErB,kBAAM,SAAS,CAAC,CAAC;YAHP,uBAAkB,GAAlB,kBAAkB,CAAqB;QAIlD,CAAC;QAKM,oBAAS,GAAhB,UAAoB,KAAe;YAElC,MAAM,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC;QACtC,CAAC;QAOM,eAAI,GAAX,UAAe,MAAiC;YAE/C,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,YAAY,UAAU,CAAC;oBAC/B,MAAM,CAAC,MAAM,CAAC;gBAEf,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACxB,MAAM,CAAC,IAAI,eAAe,CAAI,MAAM,CAAC,CAAC;gBAEvC,EAAE,CAAA,CAAC,yBAAY,CAAI,MAAM,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,UAAU,CAAC,cAAI,OAAA,MAAM,CAAC,aAAa,EAAE,EAAtB,CAAsB,CAAC,CAAC;gBAEnD,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;oBAC9B,MAAM,CAAC,IAAI,eAAe,CAAI,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,IAAI,8BAA8B,EAAE,CAAC;QAC5C,CAAC;QAEM,kBAAO,GAAd,UAAkB,MAAiC;YAElD,EAAE,CAAA,CAAC,eAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACzB,CAAC;gBACA,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEvB,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;oBAC9B,MAAM,GAAG,IAAI,eAAe,CAAe,MAAM,CAAC,CAAC;gBAEpD,EAAE,CAAA,CAAC,MAAM,YAAa,UAAU,CAAC;oBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAEzB,EAAE,CAAA,CAAC,yBAAY,CAAI,MAAM,CAAC,CAAC,CAC3B,CAAC;oBACA,IAAI,MAAM,GAAO,EAAE,CAAC;oBACpB,oBAAiB,CAChB,MAAM,CAAC,aAAa,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC;wBAE5B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC,CACD,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;YACF,CAAC;YAED,MAAM,IAAI,8BAA8B,EAAE,CAAC;QAC5C,CAAC;QAID,kCAAa,GAAb;YAGC,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QAKS,+BAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAChC,CAAC;QAMM,iBAAM,GAAb,UAAiB,MAAgB;YAEhC,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,wBAAc,CACvB,IAAI,EACJ,UAAC,OAAO;gBACP,OAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAA1D,CAA0D,CAC3D,EAJK,CAIL,CACD,CAAC;QACH,CAAC;QAEM,gBAAK,GAAZ,UAAgB,MAAgB;YAE/B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,gBAAK,GAAZ;YAEC,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,wBAAc,CACvB,IAAI,EACJ,SAAS,CAAC,KAAK,CACf,EAHK,CAGL,CACD,CAAC;QACH,CAAC;QAEM,iBAAM,GAAb,UAAiB,OAAS,EAAE,KAAuB;YAAvB,qBAAuB,GAAvB,gBAAuB;YAElD,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;kBACrD,IAAI,UAAU,CAChB;oBAEC,IAAI,CAAC,GAAU,KAAK,CAAC;oBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA3C,CAA2C,CACvD,CAAC;gBACH,CAAC,CACD;kBACE,IAAI,UAAU,CAChB;oBACC,OAAA,IAAI,wBAAc,CACjB,IAAI,EACJ,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAA5B,CAA4B,CACxC;gBAHD,CAGC,CACF,CAAC;QACH,CAAC;QAGM,6BAAkB,GAAzB,UACC,WAAmB,EACnB,SAA6B;YAG7B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,OAAS,CAAC;gBACd,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,eAAI,GAAX,UAAe,OAAS;YAEvB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAI,OAAO,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAGM,gBAAK,GAAZ,UACC,KAAgB,EAChB,KAAuB,EACvB,IAAe;YAFf,qBAAgB,GAAhB,SAAgB;YAChB,qBAAuB,GAAvB,gBAAuB;YACvB,oBAAe,GAAf,QAAe;YAGf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAErD,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAU,CAAC;YAEnC,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAEpD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;kBACrD,IAAI,UAAU,CAChB;oBAEC,IAAI,KAAY,CAAC;oBACjB,IAAI,CAAC,GAAU,KAAK,CAAC;oBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,GAAG,KAAK,CAAC;oBACf,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,MAAM,GACL,KAAK,EAAE,GAAC,CAAC;+BACN,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAEnC,EAAE,CAAA,CAAC,MAAM,IAAI,KAAK,GAAC,KAAK,CAAC;4BACxB,KAAK,IAAI,IAAI,CAAC;wBAEf,MAAM,CAAC,MAAM,CAAC;oBACf,CAAC,CACD,CAAC;gBACH,CAAC,CAAC;kBAEA,IAAI,UAAU,CAChB;oBAEC,IAAI,KAAY,CAAC;oBAEjB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,KAAK,CAAC;oBACf,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,OAAO,GAAU,KAAK,CAAC;wBAC3B,KAAK,IAAI,IAAI,CAAC;wBACd,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC,CACD,CAAC;gBACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,oBAAS,GAAhB,UACC,KAAgB,EAChB,KAAuB,EACvB,IAAe;YAFf,qBAAgB,GAAhB,SAAgB;YAChB,qBAAuB,GAAvB,gBAAuB;YACvB,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,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAEM,6BAAkB,GAAzB,UACC,KAAgB,EAChB,IAAe;YADf,qBAAgB,GAAhB,SAAgB;YAChB,oBAAe,GAAf,QAAe;YAEf,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QAEM,kBAAO,GAAd,UACC,KAAgB,EAChB,EAAoB,EACpB,IAAe;YAFf,qBAAgB,GAAhB,SAAgB;YAChB,kBAAoB,GAApB,aAAoB;YACpB,oBAAe,GAAf,QAAe;YAEf,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAErD,EAAE,CAAA,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAElD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAGpD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAGtB,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,KAAK,GAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1E,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,KAAY,CAAC;gBAEjB,MAAM,CAAC,KAAK,GAAC,EAAE;sBAEZ,IAAI,wBAAc,CACpB;wBAEC,KAAK,GAAG,KAAK,CAAC;oBACf,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;4BACT,KAAK,IAAI,IAAI,CAAC;wBAEf,MAAM,CAAC,MAAM,CAAC;oBACf,CAAC,CAAC;sBAEA,IAAI,wBAAc,CACpB;wBAEC,KAAK,GAAG,KAAK,CAAC;oBACf,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,MAAM,GAAW,KAAK,IAAE,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAE7D,EAAE,CAAA,CAAC,MAAM,CAAC;4BACT,KAAK,IAAI,IAAI,CAAC;wBAEf,MAAM,CAAC,MAAM,CAAC;oBACf,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,kBAAO,GAAd,UAAe,KAAY,EAAE,OAAW,EAAE,KAAiB;YAAjB,qBAAiB,GAAjB,UAAiB;YAG1D,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;YACxB,EAAE,CAAA,CAAC,IAAI,IAAE,eAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAEvE,EAAE,CAAA,CAAC,OAAO,YAAa,MAAM,CAAC,CAC9B,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,UAAU,CACpB;gBAEC,IAAI,KAAY,CAAC;gBACjB,MAAM,CAAC,IAAI,wBAAc,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;QAEM,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;kBAErD,IAAI,UAAU,CAChB;oBAEC,IAAI,CAAC,GAAU,KAAK,CAAC;oBACrB,IAAI,KAAK,GAAU,CAAC,CAAC;oBAErB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,EAED,UAAC,OAAO;wBAEP,IAAI,OAAO,GAAU,KAAK,EAAE,CAAC;wBAC7B,MAAM,CAAC,OAAO,GAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3D,CAAC,CACD,CAAC;gBACH,CAAC,CAAC;kBAEA,IAAI,UAAU,CAChB;oBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;oBACrB,MAAM,CAAC,IAAI,wBAAc,CACxB;wBAEC,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAArC,CAAqC,CACjD,CAAC;gBACH,CAAC,CAAC,CAAC;QACL,CAAC;QAEM,iBAAM,GAAb,UAAiB,IAAM,EAAE,YAA2B,EAAE,QAAwB;YAAxB,wBAAwB,GAAxB,gBAAwB;YAE7E,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,IAAI,KAAO,CAAC;gBACZ,IAAI,OAAe,CAAC;gBACpB,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,gBAAK,GAAZ,UAAgB,iBAAsC;YAGrD,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAE9B,MAAM,CAAC,IAAI,wBAAc,CACxB;oBAEC,UAAU,GAAG,iBAAiB,EAAE,CAAC,aAAa,EAAE,CAAC;gBAClD,CAAC,EAED,UAAC,OAAO,IAAI,OAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAhE,CAAgE,EAC5E;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAEM,kBAAO,GAAd,UACC,UAAqC,EACrC,MAAwC;YAExC,EAAE,CAAA,CAAC,UAAU,CAAC,CACd,CAAC;gBACA,eAAK,CAAC,iBAAc,CAAC,UAAU,CAAC,EAAE,UAAA,CAAC;oBAElC,oBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAEM,cAAG,GAAV,UACC,UAAqC,EACrC,QAA4B;YAG5B,MAAM,CAAC,UAAU,IAAI,eAAK,CAAC,iBAAc,CAAC,UAAU,CAAC,EAAE,UAAA,CAAC;gBAEtD,IAAI,MAAM,GAAa,EAAE,CAAC;gBAC1B,oBAAiB,CAAC,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;oBAEzB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC;YACf,CAAC,CAAC,CAAC;QAEL,CAAC;QAGM,cAAG,GAAV,UAAW,MAAyB;YAEnC,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,MAAyB;YAEnC,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;QAOD,4BAAO,GAAP,UAAQ,MAA+B;YAGtC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAU,CAAC,CAAC;YAErB,eAAK,CACJ,CAAC,CAAC,aAAa,EAAE,EAAE,UAAA,CAAC;gBAGnB,OAAM,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EACzC,CAAC;oBACA,EAAE,CAAA,CAAM,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;wBAC1C,KAAK,CAAC;gBACR,CAAC;YACF,CAAC,CACD,CAAC;QACH,CAAC;QAGD,4BAAO,GAAP,UAAQ,SAAuB;YAE9B,IAAI,MAAM,GAAO,EAAE,CAAC;YAEpB,EAAE,CAAA,CAAC,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAErD,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;gBAEjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAGD,iCAAY,GAAZ;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,UAAU,CAAI,cAAM,OAAA,CAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC,CAAC;QACnD,CAAC;QAGD,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,oBAAU,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,UAAA,CAAC;gBAEb,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,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,oBAAU,CAAe,eAAe,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC,IAAG,OAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAtD,CAAsD,CAAC,CAAC;YACzE,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;QAWD,6BAAQ,GAAR,UACC,MAAqF;YAGrF,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,wBAAc,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,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,CACD,CAAC;YAEH,CAAC,EAGD;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QAED,0BAAK,GAAL,UAAM,aAAuD;YAAvD,6BAAuD,GAAvD,iBAAuD;YAG5D,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,IAAI,CAAC,QAAQ,CAAC,UAAA,OAAO,IAAI,OAAA,aAAa,EAAb,CAAa,CAAC,CAAC;QACzC,CAAC;QAGD,yBAAI,GAAJ,UAAK,KAAY;YAEhB,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,EAAE,CAAA,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC;gBACpC,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;YAE/B,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBACxB,OAAA,KAAK,GAAC,CAAC;sBACJ,CAAqB;sBACrB,CAAuB;YAF1B,CAE0B,CAC3B,CAAC;QACH,CAAC;QAED,8BAAS,GAAT,UAAU,SAAsB;YAG/B,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,IAAI,QAAQ,GAAW,IAAI,CAAC;YAE5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBAExB,EAAE,CAAA,CAAC,QAAQ,CAAC;oBACX,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAEtC,MAAM,CAAC,QAAQ;sBACZ,CAAqB;sBACrB,CAAuB,CAAC;YAC5B,CAAC,CACD,CAAC;QACH,CAAC;QAED,yBAAI,GAAJ,UAAK,KAAY;YAEhB,EAAE,CAAA,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,CAAC;gBACpC,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,CAAC,CAAC,CAAC;YAEV,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,KAAK,CAAC;YAGd,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAC,OAAS,EAAE,KAAa,IAAK,OAAA,KAAK,GAAC,CAAC,EAAP,CAAO,CAAC,CAAC;QAC1D,CAAC;QAED,8BAAS,GAAT,UAAU,SAAsB;YAG/B,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACnB,UAAC,OAAS,EAAE,KAAa;gBACxB,OAAA,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;sBACtB,CAAuB;sBACvB,CAAsB;YAFzB,CAEyB,CAC1B,CAAC;QACH,CAAC;QAGD,8BAAS,GAAT,UAAU,SAAsB,EAAE,iBAA0B;YAG3D,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,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,CAC3B,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;gBAElC,MAAM,CAAC,CAAuB,CAAC;YAChC,CAAC,CACD,CAAC;QACH,CAAC;QAED,mCAAc,GAAd,UAAe,KAAgB;YAAhB,qBAAgB,GAAhB,SAAgB;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC,CAAC;gBACrC,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,wBAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,CAAC,GAAG,IAAI,eAAK,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,iCAAY,GAAZ,UAAa,KAAY;YAExB,EAAE,CAAA,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC,CAAC;gBACrC,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,OAAO,EAAE,CAAC;YAEpB,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAE/B,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAMD,yCAAoB,GAApB,UACC,IAAsC,EACtC,cAAuD;YAEvD,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,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,wBAAc,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,SAAS,CAAI,MAAM,CAAC;6BACpB,UAAU,CAAC,IAAI,CAAC,CAAC;wBAEnB,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,uCAAkB,GAAlB,UACC,IAAsC,EACtC,cAAuD;YAEvD,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAGC,IAAI,eAAe,GAAsB,EAAE,CAAC;gBAC5C,IAAI,UAA2B,CAAC;gBAChC,IAAI,GAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,wBAAc,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,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;4BACtD,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,sBAAY,CAAC,eAAe,CAAC,CAAC;oBAC/B,CAAC;gBACF,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,4BAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAA2B,CAAC;gBAChC,IAAI,gBAAgB,GAAoB,IAAI,CAAC;gBAE7C,MAAM,CAAC,IAAI,wBAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChC,CAAC,EAED,UAAC,OAAO;oBAEP,OAAM,IAAI,EACV,CAAC;wBACA,EAAE,CAAA,CAAC,gBAAgB,IAAE,IAAI,CAAC,CAC1B,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,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;4BAC3B,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;gCACA,gBAAgB,CAAC,OAAO,EAAE,CAAC;gCAC3B,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAM,CAAC,CAAC;qCAC7C,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;qCAC9B,OAAO,EAAE;qCACT,aAAa,EAAE,CAAC;gCAClB,QAAQ,CAAC;4BACV,CAAC;4BACD,IAAI,CACJ,CAAC;gCACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BAChD,CAAC;wBACF,CAAC;wBAED,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;gBACF,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBACvC,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,6BAAQ,GAAR,UAAkB,QAAuC;YAExD,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAE9B,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,yBAAI,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,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAKD,2BAAM,GAAN,UAAgB,QAA6B;YAG5C,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,EAAE,CAAA,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAErD,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,wBAAc,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,KAAK,CAAC;gBACV,CAAC,EAED;oBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QASD,+BAAU,GAAV,UACC,kBAAmC,EACnC,cAAuD;YAEvD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,cAAc,CAAC;gBAClB,cAAc,GAAG,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;YAE9B,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,gBAAiC,CAAC;gBACtC,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,2BAAM,GAAN,UAAgB,QAA6B;YAG5C,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,wBAAc,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,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QAED,0BAAK,GAAL,UAAM,SAAsB;YAG3B,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAE9C,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAE1C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,wBAAc,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,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QAEH,CAAC;QAGD,2BAAM,GAAN,UAAc,IAAQ;YAErB,IAAI,QAAe,CAAC;YACpB,MAAM,CAAA,CAAM,IAAI,CAAC,CACjB,CAAC;gBACA,KAAK,MAAM;oBACV,QAAQ,GAAG,eAAI,CAAC,MAAM,CAAC;oBACvB,KAAK,CAAC;gBACP,KAAK,MAAM;oBACV,QAAQ,GAAG,eAAI,CAAC,MAAM,CAAC;oBACvB,KAAK,CAAC;gBACP,KAAK,OAAO;oBACX,QAAQ,GAAG,eAAI,CAAC,OAAO,CAAC;oBACxB,KAAK,CAAC;gBACP,KAAK,QAAQ;oBACZ,QAAQ,GAAG,eAAI,CAAC,QAAQ,CAAC;oBACzB,KAAK,CAAC;gBACP;oBACC,MAAM,CAAkB,IAAI;yBAC1B,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,YAAa,IAAI,EAAlB,CAAkB,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,CAAkB,IAAI;iBAC1B,KAAK,CAAC,UAAA,CAAC,IAAE,OAAA,OAAO,CAAC,KAAG,QAAQ,EAAnB,CAAmB,CAAC,CAAC;QACjC,CAAC;QAED,2BAAM,GAAN,UACC,MAAqB,EACrB,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,wBAAc,CACxB;oBAEC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;oBACnD,EAAE,CAAA,CAAC,MAAM,CAAC;wBACT,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAA7B,CAA6B,CAAC,CAAC;gBACnE,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,CACD,CAAC;YACH,CAAC,EAED;gBAEC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CACD,CAAC;QACH,CAAC;QAED,6BAAQ,GAAR,UAAS,eAA+B;YAEvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC3C,CAAC;QAGD,yCAAoB,GAApB,UAA+B,eAAsC;YAGpE,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,wBAAc,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,UAAU,KAAG,GAAG,CAAC,CACzB,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,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;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,MAAU,CAAC;gBACf,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,wBAAc,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;oBACR,OAAA,KAAK,GAAC,CAAC;2BACJ,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBADvC,CACuC,EAEvC;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;YAE9C,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,MAAU,CAAC;gBACf,IAAI,QAAe,CAAC;gBACpB,IAAI,GAAU,CAAC;gBAEf,MAAM,CAAC,IAAI,wBAAc,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;YAG5B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAU,CAAC,CAAC;YACrB,EAAE,CAAA,CAAC,SAAS,CAAC,CACb,CAAC;gBACA,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;oBAEd,EAAE,CAAA,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAAA,EAAE,KAAK,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,CAAC,CAAC,OAAO,CAAC;oBAET,EAAE,KAAK,CAAC;gBACT,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,wBAAG,GAAH,UAAI,SAAsB;YAEzB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;gBAEb,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACjB,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,IAAI,MAAM,GAAG,KAAK,CAAC;YAInB,EAAE,CAAA,CAAC,SAAS,CAAC,CACb,CAAC;gBACA,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;oBAEb,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,CAAC,CAAC,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CACJ,CAAC;gBACA,IAAI,CAAC,OAAO,CAAC;oBAEZ,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,MAAM,CAAC;QAEf,CAAC;QAGD,yBAAI,GAAJ,UAAK,SAAsB;YAE1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAED,4BAAO,GAAP;YAEC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,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;YAEtB,EAAE,CAAA,CAAC,eAAe,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,UAAC,OAAS,EAAE,CAAS;oBAEjC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAC3E,CAAC;wBACA,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,IAAI;gBACH,IAAI,CAAC,OAAO,CAAC,UAAC,OAAS,EAAE,CAAS;oBAGjC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CACzC,CAAC;wBACA,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC;oBACd,CAAC;gBACF,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,gCAAW,GAAX,UAAsB,KAAO,EAAE,eAAsC;YAEpE,IAAI,MAAM,GAAU,CAAC,CAAC,CAAC;YAEvB,EAAE,CAAA,CAAC,eAAe,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,UAAC,OAAS,EAAE,CAAS;oBAEjC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;wBAAC,MAAM;8BAC/E,CAAC,CAAC;gBACN,CAAC,CAAC,CAAC;YACJ,IAAI;gBACH,IAAI,CAAC,OAAO,CAAC,UAAC,OAAS,EAAE,CAAS;oBAEjC,EAAE,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAED,mCAAc,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,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,wBAAG,GAAH,UACC,MAA6C,EAC7C,cAAkE;YAElE,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAAqC,CAAC;gBAC1C,IAAI,KAAK,GAAU,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,wBAAc,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;oBACR,OAAA,eAAe,CAAC,QAAQ,EAAE,IAAI,gBAAgB,CAAC,QAAQ,EAAE;2BACtD,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBADlG,CACkG,EAClG;oBAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,gCAAW,GAAX,UACC,MAAqD,EACrD,cAAkE;YAElE,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,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,wBAAc,CACxB;oBAEC,UAAU,GAAG,IAAI,eAAK,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;QAID,yBAAI,GAAJ,UACC,KAA0C,EAC1C,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,wBAAc,CACxB;oBAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAS,KAAK,CAAC;yBACrC,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,8BAAS,GAAT,UACC,KAA0C,EAC1C,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,wBAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,MAAM,GAAG,UAAU,CAAC,IAAI,CAAS,KAAK,CAAC;yBACrC,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;QAED,+BAAU,GAAV,UAAW,KAAgC;YAE1C,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAA+B,CAAC;gBAEpC,MAAM,CAAC,IAAI,wBAAc,CACxB;oBAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrC,CAAC,EAED,UAAC,OAAO;oBAEP,EAAE,CAAA,CAAC,eAAe,IAAE,IAAI,CAAC,CACzB,CAAC;wBACA,EAAE,CAAA,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;4BAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;wBACnF,gBAAgB,GAAG,iBAAc,CAAI,KAAK,CAAC,CAAC;wBAC5C,eAAe,CAAC,OAAO,EAAE,CAAC;wBAC1B,eAAe,GAAG,IAAI,CAAC;oBACxB,CAAC;oBACD,EAAE,CAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;wBAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACrF,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC,EAED;oBAEC,iBAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,0BAAK,GAAL,UAAM,WAA8C;YAEnD,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC;YAEV,EAAE,CAAA,CAAC,WAAW,CAAC,MAAM,IAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,UAAyB,CAAC;gBAC9B,IAAI,KAAuC,CAAC;gBAE5C,MAAM,CAAC,IAAI,wBAAc,CACxB;oBAGC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/B,KAAK,GAAG,IAAI,eAAK,CAA6B,WAAW,CAAC,CAAC;gBAC5D,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,2BAAM,GAAN;YAAO,qBAAgD;iBAAhD,WAAgD,CAAhD,sBAAgD,CAAhD,IAAgD;gBAAhD,oCAAgD;;YAEtD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,WAAW,CAAC,MAAM,IAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC;YAEV,EAAE,CAAA,CAAC,WAAW,CAAC,MAAM,IAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QAGD,6BAAQ,GAAR,UAAS,KAAY,EAAE,KAAgC;YAEtD,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAEzD,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,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,wBAAc,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAGD,sCAAiB,GAAjB,UAAkB,QAAmC;YAEpD,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,wBAAc,CACxB;oBAGC,mBAAmB,GAAG,IAAI,yBAAe,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,oCAAe,GAAf,UAAgB,KAAO;YAEtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,8BAAS,GAAT;YAAU,kBAAe;iBAAf,WAAe,CAAf,sBAAe,CAAf,IAAe;gBAAf,iCAAe;;YAExB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAGD,8BAAS,GAAT,UACC,MAAiC,EACjC,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,wBAAc,CACxB;oBAEC,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBAE/B,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;oBACnD,IAAI,GAAG,IAAI,oBAAU,CAAa,eAAe,CAAC,CAAC;oBAEnD,UAAU,CAAC,IAAI,CAAI,MAAM,CAAC;yBACxB,OAAO,CAAC,UAAA,GAAG;wBAEX,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACL,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,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAED,kCAAa,GAAb,UACC,MAAiC,EACjC,gBAAwD;YAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;YAExD,MAAM,CAAC,eAAK,CACX,IAAI,CAAC,aAAa,EAAE,EACpB,UAAA,EAAE,IAAG,OAAA,eAAK,CACT,UAAU,CAAC,IAAI,CAAI,MAAM,CAAC,CAAC,aAAa,EAAE,EAC1C,UAAA,EAAE;gBAED,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,EAZI,CAYJ,CACD,CAAC;QACH,CAAC;QAUD,0BAAK,GAAL,UACC,MAAiC,EACjC,eAA0D;YAA1D,+BAA0D,GAA1D,kBAAwC,SAAS,CAAC,QAAQ;YAE1D,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,UAAU,CACpB;gBAEC,IAAI,eAA8B,CAAC;gBACnC,IAAI,gBAA+B,CAAC;gBACpC,IAAI,IAAuB,CAAC;gBAE5B,MAAM,CAAC,IAAI,wBAAc,CACxB;oBAEC,eAAe,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpC,IAAI,GAAG,IAAI,oBAAU,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,UAAU,CAAC,IAAI,CAAI,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC/D,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAMD,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;QA4DD,4BAAO,GAAP,UACC,WAA6B,EAC7B,eAAsC,EACtC,eAAyC;YAEzC,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,cAAM,OAAA,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC;iBAC7D,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,wBAAc,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;QAID,2BAAM,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,wBAAc,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,EACrC,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,CACD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;QAID,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,eAAI,CAAC,WAAW;YAEtD,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,IAAI,CAAC,OAAO,CACX,UAAS,CAAC;gBAET,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,IAAI,KAAK,GAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,EAAE,KAAK,CAAC;YACT,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,WAAW,CAAC;gBACd,MAAM,CAAC,WAAW,GAAC,QAAQ,CAAC;YAE7B,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,eAAI,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,IAAI,KAAK,GAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,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,eAAI,CAAC,WAAW;YAEtD,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAW,KAAK,CAAC;YAEvC,IAAI,CAAC,OAAO,CACX,UAAA,CAAC;gBAEA,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxB,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;QAMD,8BAAS,GAAT,UAAU,KAAY;YAErB,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAEzD,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;YACxB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,CAAC,CAAC,OAAO,CACR,UAAC,CAAG,EAAE,CAAQ;gBAEb,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC,CACR,CAAC;oBACA,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;YACF,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACjH,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,uCAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAGrD,EAAE,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAEzD,iBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAU,KAAK,CAAC;YAErB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;YACxB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,CAAC,CAAC,OAAO,CACR,UAAC,CAAG,EAAE,CAAQ;gBAEb,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC,CACR,CAAC;oBACA,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;YACF,CAAC,CACD,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;QACxC,CAAC;QAWD,0BAAK,GAAL;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,CAAC,CAAC;gBACV,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC;YACd,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,mCAAc,GAAd,UAAe,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,KAAK,GAAK,SAAS,CAAC;YACxB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,CAAC,CAAC,OAAO,CACR,UAAA,CAAC;gBAEA,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC;YACd,CAAC,CACD,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;QACxC,CAAC;QAED,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;QAED,2BAAM,GAAN;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,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,CACV,CAAC;oBACA,KAAK,GAAG,IAAI,CAAC;oBACb,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBACD,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACzE,CAAC,CACD,CAAC;YAEF,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,oCAAe,GAAf,UAAgB,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAGpC,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,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC,CACV,CAAC;oBACA,KAAK,GAAG,IAAI,CAAC;oBACb,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBACD,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACzE,CAAC,CACD,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;QACxC,CAAC;QAID,0BAAK,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,IAAI,wBAAc,CACxB;oBAIC,EAAE,CAAA,CAAC,CAAC,gBAAgB,CAAC;wBACpB,gBAAgB,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBACvC,CAAC,EAED,UAAC,OAAO;oBACR,OAAA,gBAAgB,CAAC,QAAQ,EAAE;2BACxB,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBADhD,CACgD,CAChD,CAAC;YACH,CAAC,EAED;gBAEC,iBAAO,CAAC,gBAAgB,CAAC,CAAC;YAC3B,CAAC,CACD,CAAC;QACH,CAAC;QAGD,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,wBAAc,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;QAGD,+BAAU,GAAV,UAAW,OAAyB;YAEnC,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,wBAAc,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,kCAAa,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,wBAAc,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;QAEF,iBAAC;IAAD,CAAC,AA3gGD,CACQ,wBAAc,GA0gGrB;IA3gGY,kBAAU,aA2gGtB,CAAA;IAGD;QACQ,mCAAa;QAIpB,yBAAY,MAAgB;YAE3B,kBAAM;gBAEL,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,yBAAe,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,MAAM,CAAC;YACpB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;gBACL,MAAM,CAAC,EAAE,CAAC;YAEX,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAO,CAAE,CAAC,KAAK,EAAE,CAAC;YAEzB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,GAAO,YAAY,CAAC,UAAU,CAAI,GAAG,CAAC,CAAC;YACjE,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,EAAE,CAAC,EACzB,CAAC;gBACA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,CAAC,MAAM,CAAC;QACf,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,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;gBAGA,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EACnC,CAAC;oBAEA,EAAE,CAAA,CAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC;wBACpC,KAAK,CAAC;gBACR,CAAC;YACF,CAAC;QACF,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,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACzD,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,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,mCAAS,GAAT,UAAU,KAAY;YAErB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,CAAC,KAAK,GAAC,MAAM,CAAC,MAAM,IAAI,KAAK,IAAE,CAAC,CAAC;kBACrC,MAAM,CAAC,KAAK,CAAC;kBACb,gBAAK,CAAC,SAAS,YAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,4CAAkB,GAAlB,UAAmB,KAAY,EAAE,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAErD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,CAAC,KAAK,GAAC,MAAM,CAAC,MAAM,IAAI,KAAK,IAAE,CAAC,CAAC;kBACrC,MAAM,CAAC,KAAK,CAAC;kBACb,YAAY,CAAC;QACjB,CAAC;QAED,+BAAK,GAAL;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;kBAC7B,MAAM,CAAC,CAAC,CAAC;kBACT,gBAAK,CAAC,KAAK,WAAE,CAAC;QAClB,CAAC;QAED,wCAAc,GAAd,UAAe,YAAqB;YAArB,4BAAqB,GAArB,mBAAqB;YAEnC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;kBAC7B,MAAM,CAAC,CAAC,CAAC;kBACT,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,KAAK,IAAI,KAAK,GAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;YAEzB,MAAM,CAAC,IAAI,UAAU,CACpB,cAAM,OAAA,IAAI,yBAAe,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,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,sCAAY,GAAZ,UAAa,KAAY;YAExB,EAAE,CAAA,CAAC,CAAC,KAAK,IAAI,KAAK,GAAC,CAAC,CAAC;gBAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAK,CAAC;YAEnD,IAAI,CAAC,GAAK,IAAI,EACV,GAAG,GAAG,CAAC,CAAC,OAAO;kBACZ,CAAC,CAAC,OAAO,CAAC,MAAM;kBAChB,CAAC,CAAC;YAET,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,yBAAe,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,eAAe,CAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,uCAAa,GAAb,UACC,MAAiC,EACjC,gBAAwD;YAAxD,gCAAwD,GAAxD,mBAAyC,MAAM,CAAC,QAAQ;YAExD,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAa,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAEhF,EAAE,CAAA,CAAC,MAAM,YAAa,eAAe,CAAC;gBACrC,MAAM,CAAsB,MAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAElF,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,AA3OD,CACQ,UAAU,GA0OjB;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,wBAAc,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;IAGD;QACQ,mCAAa;QAEpB,yBACS,UAAyB,EACzB,aAA0B;YAGlC,kBAAM,IAAI,CAAC,CAAC;YAJJ,eAAU,GAAV,UAAU,CAAe;YACzB,kBAAa,GAAb,aAAa,CAAa;QAInC,CAAC;QAED,+BAAK,GAAL,UAAM,SAAsB;YAG3B,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,CAAC;YAE/B,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,iBAAiB,GAAG,UAAC,CAAG,IAAK,OAAA,aAAa,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAhC,CAAgC,CAAC;YAClE,MAAM,CAAC,IAAI,eAAe,CAAI,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,gCAAM,GAAN,UAAgB,QAA6B;YAG5C,EAAE,CAAA,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,QAAQ,CAAC,CAAC;YAE/B,MAAM,CAAC,IAAI,qBAAqB,CAC/B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,QAAQ,CACR,CAAC;QACH,CAAC;QAED,uCAAa,GAAb;YAEC,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACnC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,UAAyB,CAAC;YAE9B,MAAM,CAAC,IAAI,wBAAc,CACxB;gBAEC,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACrC,CAAC,EAED,UAAC,OAAO;gBAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;oBACA,EAAE,CAAA,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC;YACd,CAAC,EAED;gBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC;QAES,oCAAU,GAApB;YAEC,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC;QACF,sBAAC;IAAD,CAAC,AAvED,CACQ,UAAU,GAsEjB;IAED;QACQ,yCAAa;QAEpB,+BACS,UAA+B,EAC/B,aAAgC,EAChC,YAAiC;YAGzC,kBAAM,IAAI,CAAC,CAAC;YALJ,eAAU,GAAV,UAAU,CAAqB;YAC/B,kBAAa,GAAb,aAAa,CAAmB;YAChC,iBAAY,GAAZ,YAAY,CAAqB;QAI1C,CAAC;QAED,qCAAK,GAAL,UAAM,SAA6C;YAElD,EAAE,CAAA,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,gBAAK,CAAC,KAAK,YAAC,SAAS,CAAC,CAAC;YAE/B,MAAM,CAAC,IAAI,eAAe,CAAI,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,sCAAM,GAAN,UAAgB,QAA6B;YAG5C,EAAE,CAAA,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC;gBAEpB,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,QAAQ,CAAC,CAAC;YAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;YAClC,IAAI,gBAAgB,GAAG,UAAC,CAAS,IAAK,OAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAzB,CAAyB,CAAC;YAChE,MAAM,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACnF,CAAC;QAED,6CAAa,GAAb;YAEC,IAAI,CAAC,GAA+B,IAAI,EACpC,SAAS,GAAuB,CAAC,CAAC,aAAa,EAC/C,MAAM,GAA0B,CAAC,CAAC,UAAU,EAC5C,QAAQ,GAAwB,CAAC,CAAC,YAAY,EAC9C,UAA+B,CAAC;YAEpC,MAAM,CAAC,IAAI,wBAAc,CACxB;gBAEC,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACrC,CAAC,EAED,UAAC,OAAO;gBAEP,OAAM,UAAU,CAAC,QAAQ,EAAE,EAC3B,CAAC;oBACA,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;oBAC3B,EAAE,CAAA,CAAC,SAAS,IAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;wBACA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC;YACd,CAAC,EAED;gBAEC,iBAAO,CAAC,UAAU,CAAC,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC;QAES,0CAAU,GAApB;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,gBAAK,CAAC,UAAU,WAAE,CAAC;YACnB,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,CAAC;QACF,4BAAC;IAAD,CAAC,AA3ED,CACQ,UAAU,GA0EjB;IAWD;QACQ,qCAAa;QAGpB,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;QAG/C,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,wBAAc,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,CACD,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,AApFD,CACQ,UAAU,GAmFjB;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,EAAE,SAA+B;QAA/B,yBAA+B,GAA/B,wBAA+B;QAEzE,EAAE,CAAA,CAAC,QAAQ,CAAC;YAAC,MAAM,IAAI,iCAAuB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAGD;sBAAe,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"Linq.js","sourceRoot":"","sources":["Linq.ts"],"names":["LinqFunctions","LinqFunctions.constructor","LinqFunctions.Greater","LinqFunctions.Lesser","UnsupportedEnumerableException","UnsupportedEnumerableException.constructor","Enumerable","Enumerable.constructor","Enumerable.fromArray","Enumerable.from","Enumerable.toArray","Enumerable.getEnumerator","Enumerable._onDispose","Enumerable.choice","Enumerable.cycle","Enumerable.empty","Enumerable.repeat","Enumerable.repeatWithFinalize","Enumerable.make","Enumerable.range","Enumerable.rangeDown","Enumerable.toInfinity","Enumerable.toNegativeInfinity","Enumerable.rangeTo","Enumerable.matches","Enumerable.generate","Enumerable.unfold","Enumerable.defer","Enumerable.forEach","Enumerable.map","Enumerable.max","Enumerable.min","Enumerable.asEnumerable","Enumerable.toLookup","Enumerable.toMap","Enumerable.toDictionary","Enumerable.toJoinedString","Enumerable.doAction","Enumerable.force","Enumerable.skip","Enumerable.skipWhile","Enumerable.take","Enumerable.takeWhile","Enumerable.takeUntil","Enumerable.takeExceptLast","Enumerable.takeFromLast","Enumerable.traverseBreadthFirst","Enumerable.traverseDepthFirst","Enumerable.flatten","Enumerable.pairwise","Enumerable.scan","Enumerable.select","Enumerable.selectMany","Enumerable.choose","Enumerable.where","Enumerable.ofType","Enumerable.except","Enumerable.distinct","Enumerable.distinctUntilChanged","Enumerable.reverse","Enumerable.shuffle","Enumerable.count","Enumerable.all","Enumerable.every","Enumerable.any","Enumerable.some","Enumerable.isEmpty","Enumerable.contains","Enumerable.indexOf","Enumerable.lastIndexOf","Enumerable.defaultIfEmpty","Enumerable.zip","Enumerable.zipMultiple","Enumerable.join","Enumerable.groupJoin","Enumerable.concatWith","Enumerable.merge","Enumerable.concat","Enumerable.insertAt","Enumerable.alternateMultiple","Enumerable.alternateSingle","Enumerable.alternate","Enumerable.intersect","Enumerable.sequenceEqual","Enumerable.union","Enumerable.orderBy","Enumerable.orderUsing","Enumerable.orderUsingReversed","Enumerable.orderByDescending","Enumerable.groupBy","Enumerable.partitionBy","Enumerable.buffer","Enumerable.aggregate","Enumerable.average","Enumerable.maxBy","Enumerable.minBy","Enumerable.sum","Enumerable.product","Enumerable.elementAt","Enumerable.elementAtOrDefault","Enumerable.first","Enumerable.firstOrDefault","Enumerable.last","Enumerable.lastOrDefault","Enumerable.single","Enumerable.singleOrDefault","Enumerable.share","Enumerable.memoize","Enumerable.catchError","Enumerable.finallyAction","ArrayEnumerable","ArrayEnumerable.constructor","ArrayEnumerable._onDispose","ArrayEnumerable.source","ArrayEnumerable.toArray","ArrayEnumerable.asEnumerable","ArrayEnumerable.forEach","ArrayEnumerable.any","ArrayEnumerable.count","ArrayEnumerable.elementAt","ArrayEnumerable.elementAtOrDefault","ArrayEnumerable.first","ArrayEnumerable.firstOrDefault","ArrayEnumerable.last","ArrayEnumerable.lastOrDefault","ArrayEnumerable.skip","ArrayEnumerable.takeExceptLast","ArrayEnumerable.takeFromLast","ArrayEnumerable.reverse","ArrayEnumerable.memoize","ArrayEnumerable.sequenceEqual","ArrayEnumerable.toJoinedString","Grouping","Grouping.constructor","Grouping.key","Lookup","Lookup.constructor","Lookup.count","Lookup.get","Lookup.contains","Lookup.getEnumerator","WhereEnumerable","WhereEnumerable.constructor","WhereEnumerable.where","WhereEnumerable.select","WhereEnumerable.getEnumerator","WhereEnumerable._onDispose","WhereSelectEnumerable","WhereSelectEnumerable.constructor","WhereSelectEnumerable.where","WhereSelectEnumerable.select","WhereSelectEnumerable.getEnumerator","WhereSelectEnumerable._onDispose","OrderedEnumerable","OrderedEnumerable.constructor","OrderedEnumerable.createOrderedEnumerable","OrderedEnumerable.thenBy","OrderedEnumerable.thenUsing","OrderedEnumerable.thenByDescending","OrderedEnumerable.thenUsingReversed","OrderedEnumerable.getEnumerator","OrderedEnumerable._onDispose","createSortContext","throwIfDisposed"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Array/Compare.js b/source/System/Collections/Array/Compare.js index 6ea5a7a3..543056ce 100644 --- a/source/System/Collections/Array/Compare.js +++ b/source/System/Collections/Array/Compare.js @@ -1,24 +1,38 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare', '../../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../../Compare', '../../Types'], function (require, exports) { + /// + /// + /// + /// var Values = require('../../Compare'); var Types_1 = require('../../Types'); + /* validateSize: Utility for quick validation/invalidation of array equality. + Why this way? Why not pass a closure for the last return? + Reason: Performance and avoiding the creation of new functions/closures. */ function validateSize(a, b) { + // Both valid and are same object, or both are null/undefined. if (a && b && a === b || !a && !b) return true; + // At this point, at least one has to be non-null. if (!a || !b) return false; var len = a.length; if (len !== b.length) return false; + // If both are arrays and have zero length, they are equal. if (len === 0) return true; + // Return the length for downstream processing. return len; } function areAllEqual(arrays, strict, equalityComparer) { @@ -69,6 +83,8 @@ var len = validateSize(a, b); if (Types_1.default.isBoolean(len)) return len; + // There might be a better more performant way to do this, but for the moment, this + // works quite well. a = copyAndSort(a, comparer); b = copyAndSort(b, comparer); for (var i = 0; i < len; ++i) { diff --git a/source/System/Collections/Array/Compare.js.map b/source/System/Collections/Array/Compare.js.map index 81d2945d..fe53352c 100644 --- a/source/System/Collections/Array/Compare.js.map +++ b/source/System/Collections/Array/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":["validateSize","areAllEqual","areEqual","copyAndSort","areEquivalent"],"mappings":"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AKA,CAACA,GAAGA,CAACA,CAACA;QACjCA,IAAIA,CACJA,CAACA;YACAA,CAACA,GAAGA,EAAEA,CAACA;YACPA,CAACA,CAACA,MAAMA,GAAGA,GAAGA,CAACA;QAChBA,CAACA;QACDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,CAACA,EAAEA;YAAEA,CAACA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACvCA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;QACjBA,MAAMA,CAACA,CAACA,CAACA;IACVA,CAACA;IAKD,uBACC,CAAW,EAAE,CAAW,EACxB,QAAuC;QAAvCC,wBAAuCA,GAAvCA,WAAyBA,MAAMA,CAACA,OAAOA;QAEvCA,IAAIA,GAAGA,GAAGA,YAAYA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7BA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,SAASA,CAACA,GAAGA,CAACA,CAACA;YAACA,MAAMA,CAAUA,GAAGA,CAACA;QAE5CA,mFAAmFA;QACnFA,oBAAoBA;QACpBA,CAACA,GAAGA,WAAWA,CAACA,CAACA,EAAEA,QAAQA,CAACA,CAACA;QAC7BA,CAACA,GAAGA,WAAWA,CAACA,CAACA,EAAEA,QAAQA,CAACA,CAACA;QAE7BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,EAAEA,CAACA,EACzBA,CAACA;YACAA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,KAAGA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,KAAKA,CAACA;QACfA,CAACA;QAEDA,MAAMA,CAACA,IAAIA,CAACA;IAEbA,CAACA;IApBe,qBAAa,gBAoB5B,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Array/Procedure.js b/source/System/Collections/Array/Procedure.js index 4c076520..672cca6d 100644 --- a/source/System/Collections/Array/Procedure.js +++ b/source/System/Collections/Array/Procedure.js @@ -1,12 +1,15 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { function sum(source, ignoreNaN) { if (ignoreNaN === void 0) { ignoreNaN = false; } if (!source || !source.length) diff --git a/source/System/Collections/Array/Procedure.js.map b/source/System/Collections/Array/Procedure.js.map index 6c8bf834..ec1764cc 100644 --- a/source/System/Collections/Array/Procedure.js.map +++ b/source/System/Collections/Array/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,"file":"Procedure.js","sourceRoot":"","sources":["Procedure.ts"],"names":["sum","average","product","ifSet","min","max"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAGH,aAAoB,MAAe,EAAE,SAAyB;QAAzBA,yBAAyBA,GAAzBA,iBAAyBA;QAE7DA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;YAC5BA,MAAMA,CAACA,CAACA,CAACA;QAEVA,IAAIA,MAAMA,GAAGA,CAACA,CAACA;QACfA,EAAEA,CAAAA,CAACA,SAASA,CAACA;YACZA,MAAMA,CAACA,OAAOA,CAACA,UAAAA,CAACA;gBAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAACA,MAAMA,IAAIA,CAACA,CAACA;YAC3BA,CAACA,CAACA,CAACA;QACJA,IAAIA;YACHA,MAAMA,CAACA,KAAKA,CAACA,UAAAA,CAACA;gBAEbA,MAAMA,IAAIA,CAACA,CAACA;gBACZA,MAAMA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YACvBA,CAACA,CAACA,CAACA;QAEJA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAnBe,WAAG,MAmBlB,CAAA;IAED,iBAAwB,MAAe,EAAE,SAAyB;QAAzBC,yBAAyBA,GAAzBA,iBAAyBA;QAEjEA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;YAC5BA,MAAMA,CAACA,GAAGA,CAACA;QAEZA,IAAIA,MAAMA,GAAGA,CAACA,EAAEA,KAAYA,CAACA;QAC7BA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;YACAA,KAAKA,GAAGA,CAACA,CAACA;YACVA,MAAMA,CAACA,OAAOA,CAACA,UAAAA,CAACA;gBAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;oBACAA,MAAMA,IAAIA,CAACA,CAACA;oBACZA,KAAKA,EAAEA,CAACA;gBACTA,CAACA;YACFA,CAACA,CAACA,CAACA;QAEJA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,KAAKA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACtBA,MAAMA,CAACA,KAAKA,CAACA,UAAAA,CAACA;gBAEbA,MAAMA,IAAIA,CAACA,CAACA;gBACZA,MAAMA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YACvBA,CAACA,CAACA,CAACA;QAEJA,CAACA;QAEDA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,MAAMA,CAACA,CAACA,GAAGA,GAAGA,GAAGA,CAACA,MAAMA,GAACA,KAAKA,CAACA,CAACA;IACzDA,CAACA;IA/Be,eAAO,UA+BtB,CAAA;IAED,iBAAwB,MAAe,EAAE,SAAyB;QAAzBC,yBAAyBA,GAAzBA,iBAAyBA;QAEjEA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;YAC5BA,MAAMA,CAACA,GAAGA,CAACA;QAEZA,IAAIA,MAAMA,GAAGA,CAACA,CAACA;QACfA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;YACAA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;YAClBA,MAAMA,CAACA,OAAOA,CAACA,UAAAA,CAACA;gBAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;oBACAA,MAAMA,IAAIA,CAACA,CAACA;oBACZA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;wBAACA,KAAKA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;YACFA,CAACA,CAACA,CAACA;YAEHA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;gBACTA,MAAMA,GAAGA,GAAGA,CAACA;QACfA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,MAAMA,CAACA,KAAKA,CAACA,UAAAA,CAACA;gBAEbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACZA,CAACA;oBACAA,MAAMA,GAAGA,GAAGA,CAACA;oBACbA,MAAMA,CAACA,KAAKA,CAACA;gBACdA,CAACA;gBAEDA,MAAMA,IAAIA,CAACA,CAACA;gBAEZA,MAAMA,CAACA,IAAIA,CAACA;YACbA,CAACA,CAACA,CAACA;QACJA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAtCe,eAAO,UAsCtB,CAAA;IAED,eACC,MAAe,EACf,KAAY,EACZ,SAAiB,EACjB,SAA8C;QAE9CC,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;YAC5BA,MAAMA,CAACA,GAAGA,CAACA;QAEZA,IAAIA,MAAMA,GAAGA,KAAKA,CAACA;QACnBA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CACbA,CAACA;YACAA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;YAClBA,MAAMA,CAACA,OAAOA,CAACA,UAAAA,CAACA;gBAEfA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACbA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;wBACvBA,MAAMA,GAAGA,CAACA,CAACA;oBACZA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;wBAACA,KAAKA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;YACFA,CAACA,CAACA,CAACA;YAEHA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA;gBACTA,MAAMA,GAAGA,GAAGA,CAACA;QACfA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,MAAMA,CAACA,KAAKA,CAACA,UAAAA,CAACA;gBAEbA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACZA,CAACA;oBACAA,MAAMA,GAAGA,GAAGA,CAACA;oBACbA,MAAMA,CAACA,KAAKA,CAACA;gBACdA,CAACA;gBAEDA,EAAEA,CAAAA,CAACA,SAASA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;oBACvBA,MAAMA,GAAGA,CAACA,CAACA;gBAEZA,MAAMA,CAACA,IAAIA,CAACA;YACbA,CAACA,CAACA,CAACA;QACJA,CAACA;QACDA,MAAMA,CAACA,MAAMA,CAACA;IAEfA,CAACA;IAED,aAAoB,MAAe,EAAE,SAAyB;QAAzBC,yBAAyBA,GAAzBA,iBAAyBA;QAE7DA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,QAAQA,EAAEA,SAASA,EAAEA,UAACA,CAACA,EAAEA,MAAMA,IAAKA,OAAAA,CAACA,GAACA,MAAMA,EAARA,CAAQA,CAACA,CAACA;IACrEA,CAACA;IAHe,WAAG,MAGlB,CAAA;IAED,aAAoB,MAAe,EAAE,SAAyB;QAAzBC,yBAAyBA,GAAzBA,iBAAyBA;QAE7DA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,QAAQA,EAAEA,SAASA,EAAEA,UAACA,CAACA,EAAEA,MAAMA,IAAKA,OAAAA,CAACA,GAACA,MAAMA,EAARA,CAAQA,CAACA,CAACA;IACrEA,CAACA;IAHe,WAAG,MAGlB,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Array/Sort.js b/source/System/Collections/Array/Sort.js index 6f22679f..a8a5de18 100644 --- a/source/System/Collections/Array/Sort.js +++ b/source/System/Collections/Array/Sort.js @@ -1,12 +1,18 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Types', '../../Compare'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../../Types', '../../Compare'], function (require, exports) { + /// + /// + /// var Types_1 = require('../../Types'); var Compare_1 = require('../../Compare'); function ensureArray(value) { @@ -14,18 +20,42 @@ ? value : [value]; } + /** + * A factory function that creates a comparer to be used in multi-dimensional sorting. + * + *

Example

+ * ```typescript + * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}]; + * + * // First sort by a, then by b. + * myArray.sort( + * createComparer( + * (e)=> [e.a, e.b], + * [Order.Ascending, Order.Descending] + * ) + * ); + * + * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}] + * ``` + * + * @param selector + * @param order + * @param equivalentToNaN + * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult} + */ function createComparer(selector, order, equivalentToNaN) { - if (order === void 0) { order = 1; } + if (order === void 0) { order = 1 /* Ascending */; } if (equivalentToNaN === void 0) { equivalentToNaN = NaN; } var nanHasEquivalent = !Types_1.default.isTrueNaN(equivalentToNaN); return function (a, b) { + // Use an array always to ensure a single code path. var aValue = ensureArray(selector(a)); var bValue = ensureArray(selector(b)); var len = Math.min(aValue.length, bValue.length); var oArray = Array.isArray(order) ? order : null; for (var i = 0; i < len; i++) { var vA = aValue[i], vB = bValue[i], o = oArray - ? (i < oArray.length ? oArray[i] : 1) + ? (i < oArray.length ? oArray[i] : 1 /* Ascending */) : order; if (nanHasEquivalent) { if (Types_1.default.isTrueNaN(vA)) @@ -34,7 +64,7 @@ vB = equivalentToNaN; } var r = Compare_1.compare(vA, vB); - if (r !== 0) + if (r !== 0 /* Equal */) return o * r; } return 0; diff --git a/source/System/Collections/Array/Sort.js.map b/source/System/Collections/Array/Sort.js.map index e265477f..0226087c 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":";;;;;;;;;IASA,sBAAiB,aAAa,CAAC,CAAA;IAC/B,wBAAsB,eAAe,CAAC,CAAA;IAEtC,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;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":["ensureArray","createComparer"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,+CAA+C;IAC/C,4CAA4C;IAC5C,+CAA+C;IAE/C,sBAAiB,aAAa,CAAC,CAAA;IAC/B,wBAAsB,eAAe,CAAC,CAAA;IAEtC,qBAAwB,KAAW;QAElCA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA;cACnBA,KAAKA;cACVA,CAAIA,KAAKA,CAACA,CAACA;IACfA,CAACA;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzBC,qBAAuCA,GAAvCA,yBAAuCA;QACvCA,+BAAyBA,GAAzBA,qBAAyBA;QAEzBA,IAAIA,gBAAgBA,GAAGA,CAACA,eAAIA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA;QAExDA,MAAMA,CAACA,UAACA,CAAmBA,EAAEA,CAAmBA;YAE/CA,oDAAoDA;YACpDA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;YACtCA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA;YACtCA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,MAAMA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAEjDA,IAAIA,MAAMA,GAAWA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA;YACzDA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,CAACA,EAAEA,EACzBA,CAACA;gBACAA,IAAIA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAAEA,EAAEA,GAAGA,MAAMA,CAACA,CAACA,CAACA,EAC9BA,CAACA,GAAIA,MAAMA;sBACRA,CAACA,CAACA,GAACA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA,CAACA,CAACA,GAAGA,iBAAeA,CAACA;sBACxCA,KAAKA,CAACA;gBAEpBA,EAAEA,CAAAA,CAACA,gBAAgBA,CAACA,CACpBA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;wBACrBA,EAAEA,GAAGA,eAAeA,CAACA;oBACtBA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;wBACrBA,EAAEA,GAAGA,eAAeA,CAACA;gBAEvBA,CAACA;gBAEDA,IAAIA,CAACA,GAAGA,iBAAOA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,CAACA;gBACxBA,EAAEA,CAAAA,CAACA,CAACA,KAAGA,aAAmBA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAACA,CAACA,CAACA;YAEbA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA;QACVA,CAACA,CAACA;IACHA,CAACA;IAvCe,sBAAc,iBAuC7B;IAGkB,eAAO;IACP,UAAE,kBAJpB;IAKA"} \ No newline at end of file diff --git a/source/System/Collections/Array/Utility.js b/source/System/Collections/Array/Utility.js index d1c58fb9..274cbe01 100644 --- a/source/System/Collections/Array/Utility.js +++ b/source/System/Collections/Array/Utility.js @@ -1,20 +1,32 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function (require, exports) { + /// + /// var Types_1 = require('../../Types'); var Integer_1 = require('../../Integer'); var Compare_1 = require('../../Compare'); var ArgumentException_1 = require('../../Exceptions/ArgumentException'); var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException'); var ArgumentOutOfRangeException_1 = require('../../Exceptions/ArgumentOutOfRangeException'); + /** + * Initializes an array depending on the requested capacity. + * The returned array will have a .length equal to the value provided. + * @param length + * @returns {T[]} + */ function initialize(length) { Integer_1.default.assert(length, 'length'); + // This logic is based upon JS performance tests that show a significant difference at the level of 65536. var array; if (length > 65536) array = new Array(length); @@ -25,15 +37,31 @@ return array; } exports.initialize = initialize; + /** + * + * @param source + * @param sourceIndex + * @param length + * @returns {any} + */ function copy(source, sourceIndex, length) { if (sourceIndex === void 0) { sourceIndex = 0; } if (length === void 0) { length = Infinity; } if (!source) - return source; + return source; // may have passed zero? undefined? or null? return copyTo(source, initialize(Math.min(length, Math.max(source.length - sourceIndex, 0))), sourceIndex, 0, length); } exports.copy = copy; var CBN = 'Cannot be null.', CBL0 = 'Cannot be less than zero.'; + /** + * Copies one array to another. + * @param source + * @param destination + * @param sourceIndex + * @param destinationIndex + * @param length An optional limit to stop copying. + * @returns The destination array. + */ function copyTo(source, destination, sourceIndex, destinationIndex, length) { if (sourceIndex === void 0) { sourceIndex = 0; } if (destinationIndex === void 0) { destinationIndex = 0; } @@ -59,12 +87,21 @@ return destination; } exports.copyTo = copyTo; + /** + * Checks to see if the provided array contains an item. + * If the array value is null, then false is returned. + * @param array + * @param item + * @param {function?} equalityComparer + * @returns {boolean} + */ function contains(array, item, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } if (array && array.length) { if (Array.isArray(array)) return array.indexOf(item) != -1; for (var i = 0; i < array.length; ++i) { + // 'areEqual' includes NaN==NaN evaluation. if (equalityComparer(array[i], item)) return true; } @@ -72,6 +109,14 @@ return false; } exports.contains = contains; + /** + * Finds and replaces a value from an array. Will replaces all instances unless a maximum is specified. + * @param array + * @param old + * @param newValue + * @param max + * @returns {number} + */ function replace(array, old, newValue, max) { var count = 0; if (max !== 0) { @@ -91,6 +136,13 @@ return count; } exports.replace = replace; + /** + * Replaces values of an array across a range of indexes. + * @param array + * @param value + * @param index + * @param length + */ function updateRange(array, value, index, length) { Integer_1.default.assert(index, 'index'); Integer_1.default.assert(index, 'length'); @@ -100,21 +152,41 @@ } } exports.updateRange = updateRange; + /** + * Clears (sets to null) values of an array across a range of indexes. + * @param array + * @param index + * @param length + */ function clear(array, index, length) { updateRange(array, null, index, length); } exports.clear = clear; + /** + * Ensures a value exists within an array. If not found, adds to the end. + * @param array + * @param item + * @param {function?} equalityComparer + * @returns {boolean} + */ function register(array, item, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } if (!array) throw new ArgumentNullException_1.default('array', CBN); - var len = array.length; + var len = array.length; // avoid querying .length more than once. * var ok = !len || !contains(array, item, equalityComparer); if (ok) - array[len] = item; + array[len] = item; // * push would query length again. return ok; } exports.register = register; + /** + * Returns the first index of which the provided predicate returns true. + * Returns -1 if always false. + * @param array + * @param predicate + * @returns {number} + */ function findIndex(array, predicate) { if (!array) throw new ArgumentNullException_1.default('array', CBN); @@ -128,6 +200,13 @@ return -1; } exports.findIndex = findIndex; + /** + * Allows for using "false" to cause forEach to break. + * Can also be applied to a structure that indexes like an array, but may not be. + * @param source + * @param fn + * @returns {IArray} + */ function forEach(source, fn) { if (!source) throw new ArgumentNullException_1.default('source', CBN); @@ -140,6 +219,13 @@ return source; } exports.forEach = forEach; + /** + * Is similar to Array.map() but instead of returning a new array, it updates the existing indexes. + * Can also be applied to a structure that indexes like an array, but may not be. + * @param target + * @param fn + * @returns {IArray} + */ function applyTo(target, fn) { if (!target) throw new ArgumentNullException_1.default('target', CBN); @@ -151,6 +237,12 @@ return target; } exports.applyTo = applyTo; + /** + * Removes an entry at a specified index. + * @param array + * @param index + * @returns {boolean} True if the value was able to be removed. + */ function removeIndex(array, index) { if (!array) throw new ArgumentNullException_1.default('array', CBN); @@ -163,6 +255,14 @@ return exists; } exports.removeIndex = removeIndex; + /** + * Finds and removes a value from an array. Will remove all instances unless a maximum is specified. + * @param array + * @param value + * @param max + * @param {function?} equalityComparer + * @returns {number} The number of times the value was found and removed. + */ function remove(array, value, max, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; } if (!array) @@ -185,6 +285,12 @@ return count; } exports.remove = remove; + /** + * Simply repeats a value the number of times specified. + * @param element + * @param count + * @returns {T[]} + */ function repeat(element, count) { Integer_1.default.assert(count, 'count'); if (count < 0) @@ -196,6 +302,13 @@ return result; } exports.repeat = repeat; + /** + * Takes any arrays within an array and inserts the values contained within in place of that array. + * For every count higher than 0 in recurseDepth it will attempt an additional pass. Passing Infinity will flatten all arrays contained. + * @param a + * @param recurseDepth + * @returns {any[]} + */ function flatten(a, recurseDepth) { if (recurseDepth === void 0) { recurseDepth = 0; } var result = []; @@ -213,12 +326,33 @@ return result; } exports.flatten = flatten; + /** + * Simply takes a payload and passes it to all the listeners. + * + * While dispatching: + * * This is an unsafe method if by chance any of the listeners modify the array. + * * It cannot prevent changes to the payload. + * + * Improving safety: + * * Only use a local array that isn't exposed to the listeners. + * * Use the dispatch method instead as it makes a copy of the listeners array. + * * Freeze the listeners array so it can't be modified. + * * Freeze the payload. + * + * Specifying trap will catch any errors and pass them along if trap is a function. + * A payload is used instead of arguments for easy typing. + * + * + * @param listeners + * @param payload + * @param trap + */ function dispatchUnsafe(listeners, payload, trap) { if (listeners && listeners.length) { for (var i = 0, len = listeners.length; i < len; i++) { var fn = listeners[i]; if (!fn) - continue; + continue; // Ignore null refs. try { fn(payload); } @@ -232,19 +366,37 @@ } } exports.dispatchUnsafe = dispatchUnsafe; + /** + * Simply takes a payload and passes it to all the listeners. + * Makes a copy of the listeners before calling dispatchUnsafe. + * + * @param listeners + * @param payload + * @param trap + */ function dispatch(listeners, payload, trap) { dispatchUnsafe(copy(listeners), payload, trap); } exports.dispatch = dispatch; + /** + * Simply takes a payload and passes it to all the listeners. + * Returns the results in an array that matches the indexes of the listeners. + * + * @param listeners + * @param payload + * @param trap + * @returns {any} + */ function dispatchMapped(listeners, payload, trap) { if (!listeners) return null; + // Reuse the copy as the array result. var result = copy(listeners); if (listeners.length) { for (var i = 0, len = result.length; i < len; i++) { var fn = result[i]; try { - result[i] = fn + result[i] = fn // Ignore null refs. ? fn(payload) : undefined; } diff --git a/source/System/Collections/Array/Utility.js.map b/source/System/Collections/Array/Utility.js.map index 4a88691f..ce89e29e 100644 --- a/source/System/Collections/Array/Utility.js.map +++ b/source/System/Collections/Array/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,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":["initialize","copy","copyTo","contains","replace","updateRange","clear","register","findIndex","forEach","applyTo","removeIndex","remove","repeat","flatten","dispatchUnsafe","dispatch","dispatchMapped"],"mappings":"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A,GAASA,IAAIA,CAACA,SAASA,CAACA,CAACA;QACnCA,EAAEA,CAAAA,CAACA,SAASA,CAACA,MAAMA,CAACA,CACpBA,CAACA;YAEAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAACA,GAAGA,EAAEA,CAACA,EAAEA,EAC9CA,CAACA;gBACAA,IAAIA,EAAEA,GAAYA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,IACAA,CAACA;oBACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,oBAAoBA;0BAChCA,EAAEA,CAACA,OAAOA,CAACA;0BACXA,SAASA,CAACA;gBACdA,CACAA;gBAAAA,KAAKA,CAAAA,CAACA,EAAEA,CAACA,CACTA,CAACA;oBACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,SAASA,CAACA;oBACtBA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA;wBACRA,MAAMA,EAAEA,CAACA;oBACVA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;wBAC7BA,IAAIA,CAACA,EAAEA,EAAEA,CAACA,CAACA,CAACA;gBACdA,CAACA;YACFA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IAEfA,CAACA;IAjCe,sBAAc,iBAiC7B,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/Dictionary.js b/source/System/Collections/Dictionaries/Dictionary.js index 28aaaf67..c6dae1e1 100644 --- a/source/System/Collections/Dictionaries/Dictionary.js +++ b/source/System/Collections/Dictionaries/Dictionary.js @@ -1,23 +1,30 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Original: http://linqjs.codeplex.com/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Compare', '../../Types', '../../Functions', './DictionaryBase', '../Enumeration/EnumeratorBase'], function (require, exports) { + /// var Compare_1 = require('../../Compare'); var Types_1 = require('../../Types'); var Functions_1 = require('../../Functions'); var DictionaryBase_1 = require('./DictionaryBase'); var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase'); var VOID0 = void 0; + // LinkedList for Dictionary var HashEntry = (function () { function HashEntry(key, value, prev, next) { this.key = key; @@ -26,7 +33,7 @@ var __extends = (this && this.__extends) || function (d, b) { this.next = next; } return HashEntry; - }()); + })(); var EntryList = (function () { function EntryList(first, last) { this.first = first; @@ -82,7 +89,8 @@ var __extends = (this && this.__extends) || function (d, b) { } }; return EntryList; - }()); + })(); + // static utility methods function callHasOwnProperty(target, key) { return Object.prototype.hasOwnProperty.call(target, key); } @@ -162,8 +170,8 @@ var __extends = (this && this.__extends) || function (d, b) { if (!callHasOwnProperty(buckets, hash)) return undefined; var array = buckets[hash]; - for (var _i = 0, array_1 = array; _i < array_1.length; _i++) { - var entry = array_1[_i]; + for (var _i = 0; _i < array.length; _i++) { + var entry = array[_i]; if (comparer(entry.key) === compareKey) return entry.value; } @@ -186,7 +194,8 @@ var __extends = (this && this.__extends) || function (d, b) { return false; }; Dictionary.prototype.clear = function () { - var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this); + var _ = this, buckets = _._buckets, count = _super.prototype.clear.call(this); // Remove one by one to allow for signaling. + // Ensure reset and clean... _._count = 0; for (var key in buckets) { if (buckets.hasOwnProperty(key)) @@ -220,7 +229,7 @@ var __extends = (this && this.__extends) || function (d, b) { return result; }; return Dictionary; - }(DictionaryBase_1.default)); + })(DictionaryBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Dictionary; }); diff --git a/source/System/Collections/Dictionaries/Dictionary.js.map b/source/System/Collections/Dictionaries/Dictionary.js.map index 149be0b3..5db09099 100644 --- a/source/System/Collections/Dictionaries/Dictionary.js.map +++ b/source/System/Collections/Dictionaries/Dictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["Dictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["Dictionary.ts"],"names":["HashEntry","HashEntry.constructor","EntryList","EntryList.constructor","EntryList.addLast","EntryList.replace","EntryList.remove","EntryList.clear","EntryList.forEach","callHasOwnProperty","computeHashCode","Dictionary","Dictionary.constructor","Dictionary.setKV","Dictionary.addByKeyValue","Dictionary.getValue","Dictionary.setValue","Dictionary.containsKey","Dictionary.clear","Dictionary.getCount","Dictionary.getEnumerator","Dictionary.getKeys","Dictionary.getValues"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/DictionaryBase.js b/source/System/Collections/Dictionaries/DictionaryBase.js index 0bfa86fc..b8478df1 100644 --- a/source/System/Collections/Dictionaries/DictionaryBase.js +++ b/source/System/Collections/Dictionaries/DictionaryBase.js @@ -1,18 +1,24 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Compare', '../Enumeration/EnumeratorBase', '../../Exceptions/ArgumentNullException', '../../Exceptions/InvalidOperationException', '../../KeyValueExtract'], function (require, exports) { + /// var Compare_1 = require('../../Compare'); var EnumeratorBase_1 = require('../Enumeration/EnumeratorBase'); - var ArgumentException_1 = require('../../Exceptions/ArgumentException'); var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException'); var InvalidOperationException_1 = require('../../Exceptions/InvalidOperationException'); - 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.'; + var KeyValueExtract_1 = require('../../KeyValueExtract'); + var VOID0 = void (0); + // Design Note: Should DictionaryAbstractBase be IDisposable? var DictionaryBase = (function () { function DictionaryBase() { this._updateRecursion = 0; @@ -27,6 +33,7 @@ var _ = this; if (_.onValueChanged) _.onValueChanged(key, value, old); + // If the update recursion is zero, then we are finished with updates. if (_._updateRecursion == 0) _._onUpdated(); } @@ -36,6 +43,7 @@ if (_.onUpdated) _.onUpdated(); }; + // Takes a closure that if returning true will propagate an update signal. DictionaryBase.prototype.handleUpdate = function (closure) { var _ = this, result; if (closure) { @@ -54,6 +62,9 @@ return result; }; Object.defineProperty(DictionaryBase.prototype, "isReadOnly", { + ///////////////////////////////////////// + // ICollection + ///////////////////////////////////////// get: function () { return false; }, enumerable: true, configurable: true @@ -66,8 +77,8 @@ DictionaryBase.prototype.add = 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.'); - extractKeyValue(item, function (key, value) { return _this.addByKeyValue(key, value); }); + throw new ArgumentNullException_1.default('item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.'); + KeyValueExtract_1.default(item, function (key, value) { return _this.addByKeyValue(key, value); }); }; DictionaryBase.prototype.clear = function () { var _ = this, keys = _.keys, count = keys.length; @@ -82,9 +93,11 @@ }; DictionaryBase.prototype.contains = function (item) { var _this = this; + // Should never have a null object in the collection. if (!item) return false; - return extractKeyValue(item, function (key, value) { + return KeyValueExtract_1.default(item, function (key, value) { + // Leave as variable for debugging... var v = _this.getValue(key); return Compare_1.areEqual(value, v); }); @@ -93,6 +106,8 @@ if (index === void 0) { index = 0; } if (!array) throw new ArgumentNullException_1.default('array'); + // This is a generic implementation that will work for all derived classes. + // It can be overridden and optimized. var e = this.getEnumerator(); while (e.moveNext()) { array[index++] = e.current; @@ -106,7 +121,8 @@ var _this = this; if (!item) return 0; - return extractKeyValue(item, function (key, value) { + return KeyValueExtract_1.default(item, function (key, value) { + // Leave as variable for debugging... var v = _this.getValue(key); return (Compare_1.areEqual(value, v) && _this.removeByKey(key)) ? 1 : 0; @@ -163,7 +179,7 @@ var _ = this; return _.handleUpdate(function () { var changed = false; - pairs.forEach(function (pair) { return extractKeyValue(pair, function (key, value) { + pairs.forEach(function (pair) { return KeyValueExtract_1.default(pair, function (key, value) { _.setValue(key, value); changed = true; }); }); @@ -186,44 +202,7 @@ }); }; return DictionaryBase; - }()); - function isKVP(kvp) { - return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); - } - function assertKey(key, name) { - if (name === void 0) { name = ITEM; } - assertNotUndefined(key, name + DOT + KEY); - if (key === null) - throw new ArgumentNullException_1.default(name + DOT + KEY); - return key; - } - 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.'); - assertKey(tuple[0], name); - } - function assertNotUndefined(value, name) { - if (value === VOID0) - throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED); - return value; - } - function extractKeyValue(item, to) { - var _ = this, key, value; - if (item instanceof Array) { - assertTuple(item); - key = item[0]; - value = assertNotUndefined(item[1], ITEM_1); - } - else if (isKVP(item)) { - key = assertKey(item.key); - value = assertNotUndefined(item.value, ITEM_VALUE); - } - else { - throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE); - } - return to(key, value); - } + })(); 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 f63d7e55..e54aab8a 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":["DictionaryBase","DictionaryBase.constructor","DictionaryBase.isUpdating","DictionaryBase._onValueUpdate","DictionaryBase._onUpdated","DictionaryBase.handleUpdate","DictionaryBase.isReadOnly","DictionaryBase.count","DictionaryBase.add","DictionaryBase.clear","DictionaryBase.contains","DictionaryBase.copyTo","DictionaryBase.toArray","DictionaryBase.remove","DictionaryBase.keys","DictionaryBase.values","DictionaryBase.addByKeyValue","DictionaryBase.containsKey","DictionaryBase.containsValue","DictionaryBase.removeByKey","DictionaryBase.removeByValue","DictionaryBase.importPairs","DictionaryBase.getEnumerator"],"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 e4b4f41e..5bea738b 100644 --- a/source/System/Collections/Dictionaries/DictionaryBase.ts +++ b/source/System/Collections/Dictionaries/DictionaryBase.ts @@ -10,19 +10,9 @@ import EnumeratorBase from '../Enumeration/EnumeratorBase'; import ArgumentException from '../../Exceptions/ArgumentException'; import ArgumentNullException from '../../Exceptions/ArgumentNullException'; import InvalidOperationException from '../../Exceptions/InvalidOperationException'; +import extractKeyValue from '../../KeyValueExtract'; -const - VOID0:any = void 0, - DOT:string = '.', - KEY:string = 'key', - VALUE:string = 'value', - ITEM:string = 'item', - ITEM_1:string = ITEM + '[1]', - ITEM_KEY:string = ITEM + DOT + KEY, - ITEM_VALUE:string = ITEM + DOT + VALUE, - INVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', - CANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.'; - +const VOID0:any = void(0); // Design Note: Should DictionaryAbstractBase be IDisposable? abstract class DictionaryBase @@ -107,7 +97,7 @@ implements IDictionary { if(!item) throw new ArgumentNullException( - ITEM, 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.' + 'item', 'Dictionaries must use a valid key/value pair. \'' + item + '\' is not allowed.' ); extractKeyValue(item, @@ -303,63 +293,4 @@ implements IDictionary } -function isKVP(kvp:any):kvp is IKeyValuePair -{ - return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); -} - -function assertKey(key:TKey, name:string = ITEM):TKey -{ - assertNotUndefined(key, name + DOT + KEY); - if(key===null) - throw new ArgumentNullException(name + DOT + KEY); - - return key; -} - - -function assertTuple(tuple:IArray, name:string = ITEM):void -{ - if(tuple.length!=2) - throw new ArgumentException(name, 'KeyValuePair tuples must be of length 2.'); - - assertKey(tuple[0], name); -} - - -function assertNotUndefined(value:T, name:string):T -{ - if(value===VOID0) - throw new ArgumentException(name, CANNOT_BE_UNDEFINED); - - return value; -} - - -function extractKeyValue( - item:KeyValuePair, - to:(key:TKey, value:TValue)=>TResult):TResult -{ - - var _ = this, key:TKey, value:TValue; - if(item instanceof Array) - { - assertTuple(item); - key = item[0]; - value = assertNotUndefined(item[1], ITEM_1); - } - else if(isKVP(item)) - { - key = assertKey(item.key); - value = assertNotUndefined(item.value, ITEM_VALUE); - } - else - { - throw new ArgumentException(ITEM, INVALID_KVP_MESSAGE); - } - - return to(key, value); -} - - export default DictionaryBase; \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/IDictionary.d.ts b/source/System/Collections/Dictionaries/IDictionary.d.ts index 2ed321fb..c304744c 100644 --- a/source/System/Collections/Dictionaries/IDictionary.d.ts +++ b/source/System/Collections/Dictionaries/IDictionary.d.ts @@ -4,25 +4,13 @@ */ /// +/// interface IMap { [key: string]: TValue } -interface IKeyValuePair -{ - key: TKey; - value: TValue; -} - -declare type KeyValuePair = IKeyValuePair | [TKey,TValue]; - -interface IStringKeyValuePair extends IKeyValuePair -{ } - -declare type StringKeyValuePair = IStringKeyValuePair | [string,TValue]; - interface IDictionary extends ICollection> { keys: TKey[]; diff --git a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js index 9a502645..ea84be84 100644 --- a/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js +++ b/source/System/Collections/Dictionaries/OrderedStringKeyDictionary.js @@ -1,17 +1,21 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Array/Utility', './StringKeyDictionary', '../../Exceptions/ArgumentOutOfRangeException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Array/Utility', './StringKeyDictionary', '../../Exceptions/ArgumentOutOfRangeException'], function (require, exports) { var ArrayUtility = require('../Array/Utility'); var StringKeyDictionary_1 = require('./StringKeyDictionary'); var ArgumentOutOfRangeException_1 = require('../../Exceptions/ArgumentOutOfRangeException'); @@ -20,7 +24,8 @@ var __extends = (this && this.__extends) || function (d, b) { __extends(OrderedStringKeyDictionary, _super); function OrderedStringKeyDictionary() { _super.call(this); - this._order = []; + // noinspection JSMismatchedCollectionQueryUpdate + this._order = []; // Maintains indexes. } OrderedStringKeyDictionary.prototype.indexOfKey = function (key) { return this._order.indexOf(key, 0); @@ -28,6 +33,7 @@ var __extends = (this && this.__extends) || function (d, b) { OrderedStringKeyDictionary.prototype.getValueByIndex = function (index) { return this.getValue(this._order[index]); }; + // adding keepIndex allows for clearing a value while still retaining it's index. OrderedStringKeyDictionary.prototype.setValue = function (key, value, keepIndex) { var _ = this, exists = _.indexOfKey(key) != -1; if (!exists && (value !== VOID0 || keepIndex)) @@ -44,6 +50,7 @@ var __extends = (this && this.__extends) || function (d, b) { throw new ArgumentOutOfRangeException_1.default('index', index, 'Is greater than the count.'); return _.setValue(order[index], value); }; + // importValues([x,y,z]); OrderedStringKeyDictionary.prototype.importValues = function (values) { var _ = this; return _.handleUpdate(function () { @@ -55,6 +62,7 @@ var __extends = (this && this.__extends) || function (d, b) { return changed; }); }; + // setValues(x,y,z); OrderedStringKeyDictionary.prototype.setValues = function () { var values = []; for (var _i = 0; _i < arguments.length; _i++) { @@ -70,7 +78,7 @@ var __extends = (this && this.__extends) || function (d, b) { return _._order.filter(function (key) { return _.containsKey(key); }); }; return OrderedStringKeyDictionary; - }(StringKeyDictionary_1.default)); + })(StringKeyDictionary_1.default); 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 acfaf3ac..656e2684 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":["OrderedStringKeyDictionary","OrderedStringKeyDictionary.constructor","OrderedStringKeyDictionary.indexOfKey","OrderedStringKeyDictionary.getValueByIndex","OrderedStringKeyDictionary.setValue","OrderedStringKeyDictionary.setByIndex","OrderedStringKeyDictionary.importValues","OrderedStringKeyDictionary.setValues","OrderedStringKeyDictionary.removeByIndex","OrderedStringKeyDictionary.getKeys"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,IAAY,YAAY,WAAM,kBAAkB,CAAC,CAAA;IACjD,oCAAgC,uBAAuB,CAAC,CAAA;IACxD,4CAAwC,8CAExC,CAAC,CAFqF;IAEtF,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAEzB;QAEQA,8CAA2BA;QAMlCA;YAECC,iBAAOA,CAACA;YALTA,iDAAiDA;YACzCA,WAAMA,GAAYA,EAAEA,CAACA,CAACA,qBAAqBA;QAKnDA,CAACA;QAEDD,+CAAUA,GAAVA,UAAWA,GAAUA;YAEpBE,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;QACpCA,CAACA;QAEDF,oDAAeA,GAAfA,UAAgBA,KAAYA;YAE3BG,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA;QAC1CA,CAACA;QAEDH,iFAAiFA;QACjFA,6CAAQA,GAARA,UAASA,GAAUA,EAAEA,KAAYA,EAAEA,SAAkBA;YAEpDI,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,MAAMA,GAAGA,CAACA,CAACA,UAAUA,CAACA,GAAGA,CAACA,IAAGA,CAACA,CAACA,CAACA;YAC9CA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,IAAIA,CAACA,KAAKA,KAAGA,KAAKA,IAAIA,SAASA,CAACA,CAACA;gBAC1CA,CAACA,CAACA,MAAMA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YACpBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,MAAMA,IAAIA,KAAKA,KAAGA,KAAKA,IAAIA,CAACA,SAASA,CAACA;gBAC7CA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,CAACA,CAACA;YAEpCA,MAAMA,CAACA,gBAAKA,CAACA,QAAQA,YAACA,GAAGA,EAAEA,KAAKA,CAACA,CAACA;QACnCA,CAACA;QAEDJ,+CAAUA,GAAVA,UAAWA,KAAYA,EAAEA,KAAYA;YAEpCK,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,MAAMA,CAACA;YAC/BA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;gBACVA,MAAMA,IAAIA,qCAA2BA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,oBAAoBA,CAACA,CAACA;YAC7EA,EAAEA,CAAAA,CAACA,KAAKA,IAAEA,KAAKA,CAACA,MAAMA,CAACA;gBACtBA,MAAMA,IAAIA,qCAA2BA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,4BAA4BA,CAACA,CAACA;YACrFA,MAAMA,CAACA,CAACA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,CAACA,EAAEA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QAEDL,yBAAyBA;QACzBA,iDAAYA,GAAZA,UAAaA,MAAeA;YAE3BM,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,CAACA,CAACA,YAAYA,CACpBA;gBAECA,IAAIA,OAAOA,GAAWA,KAAKA,CAACA;gBAC5BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EACnCA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7BA,OAAOA,GAAGA,IAAIA,CAACA;gBACjBA,CAACA;gBACDA,MAAMA,CAACA,OAAOA,CAACA;YAChBA,CAACA,CACDA,CAACA;QAEHA,CAACA;QAEDN,oBAAoBA;QACpBA,8CAASA,GAATA;YAAUO,gBAAkBA;iBAAlBA,WAAkBA,CAAlBA,sBAAkBA,CAAlBA,IAAkBA;gBAAlBA,+BAAkBA;;YAE3BA,MAAMA,CAACA,IAAIA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA;QAClCA,CAACA;QAEDP,kDAAaA,GAAbA,UAAcA,KAAYA;YAEzBQ,MAAMA,CAACA,IAAIA,CAACA,UAAUA,CAACA,KAAKA,EAAEA,SAASA,CAACA,CAACA;QAC1CA,CAACA;QAESR,4CAAOA,GAAjBA;YAECS,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,UAAAA,GAAGA,IAAGA,OAAAA,CAACA,CAACA,WAAWA,CAACA,GAAGA,CAACA,EAAlBA,CAAkBA,CAACA,CAACA;QAClDA,CAACA;QAEFT,iCAACA;IAADA,CAACA,AAjFD,EAEQ,6BAAmB,EA+E1B;IAjFD;gDAiFC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Dictionaries/StringKeyDictionary.js b/source/System/Collections/Dictionaries/StringKeyDictionary.js index aa2d2f0f..17a0271c 100644 --- a/source/System/Collections/Dictionaries/StringKeyDictionary.js +++ b/source/System/Collections/Dictionaries/StringKeyDictionary.js @@ -1,17 +1,22 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare', './DictionaryBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Compare', './DictionaryBase'], function (require, exports) { + /// var Compare_1 = require('../../Compare'); var DictionaryBase_1 = require('./DictionaryBase'); var VOID0 = void 0; @@ -55,6 +60,7 @@ var __extends = (this && this.__extends) || function (d, b) { } return false; }; + // Returns true if any value is updated... StringKeyDictionary.prototype.importMap = function (values) { var _ = this; return _.handleUpdate(function () { @@ -99,7 +105,7 @@ var __extends = (this && this.__extends) || function (d, b) { return this._count; }; return StringKeyDictionary; - }(DictionaryBase_1.default)); + })(DictionaryBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = StringKeyDictionary; }); diff --git a/source/System/Collections/Dictionaries/StringKeyDictionary.js.map b/source/System/Collections/Dictionaries/StringKeyDictionary.js.map index fc3e2f3b..f1915481 100644 --- a/source/System/Collections/Dictionaries/StringKeyDictionary.js.map +++ b/source/System/Collections/Dictionaries/StringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["StringKeyDictionary.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StringKeyDictionary.js","sourceRoot":"","sources":["StringKeyDictionary.ts"],"names":["StringKeyDictionary","StringKeyDictionary.constructor","StringKeyDictionary.containsKey","StringKeyDictionary.containsValue","StringKeyDictionary.getValue","StringKeyDictionary.setValue","StringKeyDictionary.importMap","StringKeyDictionary.toMap","StringKeyDictionary.getKeys","StringKeyDictionary.getValues","StringKeyDictionary.getCount"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,uCAAuC;IACvC,wBAAuB,eAAe,CAAC,CAAA;IACvC,+BAA2B,kBAAkB,CAAC,CAAA;IAG9C,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAEzB;QAEQA,uCAA8BA;QAFtCA;YAEQC,8BAA8BA;YAE7BA,WAAMA,GAAUA,CAACA,CAACA;YAClBA,SAAIA,GAAgBA,EAAEA,CAACA;QAwHhCA,CAACA;QArHAD,yCAAWA,GAAXA,UAAYA,GAAUA;YAErBE,MAAMA,CAACA,CAACA,GAAGA,CAACA,IAAEA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;QAC3BA,CAACA;QAEDF,2CAAaA,GAAbA,UAAcA,KAAYA;YAEzBG,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,IAAIA,EAAEA,KAAKA,GAA8CA,kBAAQA,CAACA;YACjFA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,GAAGA,CAACA,CACnBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,GAAGA,CAACA,cAAcA,CAACA,GAAGA,CAACA,IAAIA,KAAKA,CAACA,GAAGA,CAACA,GAAGA,CAACA,EAAEA,KAAKA,CAACA,CAACA;oBACpDA,MAAMA,CAACA,IAAIA,CAACA;YACdA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QAGDH,sCAAQA,GAARA,UAASA,GAAUA;YAElBI,MAAMA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;QACvBA,CAACA;QAEDJ,sCAAQA,GAARA,UAASA,GAAUA,EAAEA,KAAYA;YAEhCK,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,EAAEA,GAAGA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,CAACA;YAC3CA,EAAEA,CAAAA,CAACA,GAAGA,KAAGA,KAAKA,CAACA,CACfA,CAACA;gBAEAA,EAAEA,CAAAA,CAACA,KAAKA,KAAGA,KAAKA,CAACA,CACjBA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,CAACA,GAAGA,CAACA,IAAEA,CAACA,GAAGA,CAACA,CAACA,CAChBA,CAACA;wBACAA,OAAOA,GAAGA,CAACA,GAAGA,CAACA,CAACA;wBAChBA,EAAEA,CAACA,CAACA,MAAMA,CAACA;oBACZA,CAACA;gBACFA,CAACA;gBACDA,IAAIA,CACJA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,GAAGA,CAACA,IAAEA,CAACA,GAAGA,CAACA,CAACA,CAACA;wBAClBA,EAAEA,CAACA,CAACA,MAAMA,CAACA;oBACZA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,KAAKA,CAACA;gBAClBA,CAACA;gBAEDA,CAACA,CAACA,cAAcA,CAACA,GAAGA,EAAEA,KAAKA,EAAEA,GAAGA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,IAAIA,CAACA;YACbA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QAEDL,0CAA0CA;QAC1CA,uCAASA,GAATA,UAAUA,MAAmBA;YAE5BM,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,CAACA,CAACA,YAAYA,CACpBA;gBAECA,IAAIA,OAAOA,GAAWA,KAAKA,CAACA;gBAC5BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,MAAMA,CAACA,CACtBA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,cAAcA,CAACA,GAAGA,CAACA,IAAIA,CAACA,CAACA,QAAQA,CAACA,GAAGA,EAAEA,MAAMA,CAACA,GAAGA,CAACA,CAACA,CAACA;wBAC7DA,OAAOA,GAAGA,IAAIA,CAACA;gBACjBA,CAACA;gBACDA,MAAMA,CAACA,OAAOA,CAACA;YAChBA,CAACA,CACDA,CAACA;QACHA,CAACA;QAEDN,mCAAKA,GAALA,UAAMA,QAA8CA;YAEnDO,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,MAAMA,GAAgBA,EAAEA,CAACA;YACvCA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,CAACA,CAACA,IAAIA,CAACA,CACtBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,CAACA,CAACA,CAC9BA,CAACA;oBACAA,IAAIA,KAAKA,GAAGA,CAACA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBACxBA,EAAEA,CAAAA,CAACA,QAAQA,CAACA;wBACXA,KAAKA,GAAGA,QAAQA,CAACA,GAAGA,EAAEA,KAAKA,CAACA,CAACA;oBAC9BA,EAAEA,CAAAA,CAACA,KAAKA,KAAGA,KAAKA,CAACA;wBAChBA,MAAMA,CAACA,GAAGA,CAACA,GAAGA,KAAKA,CAACA;gBACtBA,CAACA;YACFA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QACfA,CAACA;QAESP,qCAAOA,GAAjBA;YAGCQ,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,MAAMA,GAAYA,EAAEA,CAACA;YACnCA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,CAACA,CAACA,IAAIA,CAACA,CACtBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,CAACA,CAACA;oBAC7BA,MAAMA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YACnBA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAEfA,CAACA;QAESR,uCAASA,GAAnBA;YAGCS,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,MAAMA,GAAYA,EAAEA,CAACA;YACnCA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,CAACA,CAACA,IAAIA,CAACA,CACtBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,CAACA,CAACA;oBAC7BA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA;YAC3BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QACfA,CAACA;QAEST,sCAAQA,GAAlBA;YAECU,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA;QACpBA,CAACA;QAGFV,0BAACA;IAADA,CAACA,AA7HD,EAEQ,wBAAc,EA2HrB;IA7HD;yCA6HC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/ArrayEnumerator.js b/source/System/Collections/Enumeration/ArrayEnumerator.js index 31bc51ab..98243199 100644 --- a/source/System/Collections/Enumeration/ArrayEnumerator.js +++ b/source/System/Collections/Enumeration/ArrayEnumerator.js @@ -1,17 +1,22 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './IndexEnumerator', '../../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './IndexEnumerator', '../../Types'], function (require, exports) { + /// var IndexEnumerator_1 = require('./IndexEnumerator'); var Types_1 = require('../../Types'); var ArrayEnumerator = (function (_super) { @@ -25,7 +30,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); } return ArrayEnumerator; - }(IndexEnumerator_1.default)); + })(IndexEnumerator_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArrayEnumerator; }); diff --git a/source/System/Collections/Enumeration/ArrayEnumerator.js.map b/source/System/Collections/Enumeration/ArrayEnumerator.js.map index e2fc6884..47af75e0 100644 --- a/source/System/Collections/Enumeration/ArrayEnumerator.js.map +++ b/source/System/Collections/Enumeration/ArrayEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["ArrayEnumerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAIA,YAAY,CAAC;IAGb,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,sBAAiB,aAAa,CAAC,CAAA;IAE/B;QACiC,mCAAkB;QAIlD,yBAAY,cAAkB,EAAE,KAAgB,EAAE,IAAe;YAAjC,qBAAgB,GAAhB,SAAgB;YAAE,oBAAe,GAAf,QAAe;YAEhE,kBACC;gBAEC,IAAI,KAAK,GAAG,eAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;gBAChF,MAAM,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;YACxF,CAAC,CACD,CAAC;QACH,CAAC;QACF,sBAAC;IAAD,CAAC,AAfD,CACiC,yBAAe,GAc/C;IAfD;qCAeC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArrayEnumerator.js","sourceRoot":"","sources":["ArrayEnumerator.ts"],"names":["ArrayEnumerator","ArrayEnumerator.constructor"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,2CAA2C;IAC3C,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,sBAAiB,aAAa,CAAC,CAAA;IAE/B;QACiCA,mCAAkBA;QAIlDA,yBAAYA,cAAkBA,EAAEA,KAAgBA,EAAEA,IAAeA;YAAjCC,qBAAgBA,GAAhBA,SAAgBA;YAAEA,oBAAeA,GAAfA,QAAeA;YAEhEA,kBACCA;gBAECA,IAAIA,KAAKA,GAAGA,eAAIA,CAACA,UAAUA,CAACA,cAAcA,CAACA,GAAGA,cAAcA,EAAEA,GAAGA,cAAcA,CAACA;gBAChFA,MAAMA,CAACA,EAACA,MAAMA,EAAEA,KAAKA,EAAEA,OAAOA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,CAACA,KAAKA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAIA,EAACA,CAACA;YACxFA,CAACA,CACDA,CAACA;QACHA,CAACA;QACFD,sBAACA;IAADA,CAACA,AAfD,EACiC,yBAAe,EAc/C;IAfD;qCAeC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/Enumerator.js b/source/System/Collections/Enumeration/Enumerator.js index 9599e597..06a89d6d 100644 --- a/source/System/Collections/Enumeration/Enumerator.js +++ b/source/System/Collections/Enumeration/Enumerator.js @@ -1,12 +1,20 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Types', './ArrayEnumerator', './IndexEnumerator'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Types', './ArrayEnumerator', './IndexEnumerator'], function (require, exports) { + /// + /// + /// + /// var Types_1 = require('../../Types'); var ArrayEnumerator_1 = require('./ArrayEnumerator'); var IndexEnumerator_1 = require('./IndexEnumerator'); @@ -26,9 +34,11 @@ EmptyEnumerator.prototype.reset = function () { }; EmptyEnumerator.prototype.dispose = function () { }; return EmptyEnumerator; - }()); + })(); var Empty = new EmptyEnumerator(); + // Could be array, or IEnumerable... function from(source) { + // To simplify and prevent null reference exceptions: if (!source) return Empty; if (Array.isArray(source)) @@ -57,6 +67,7 @@ function forEach(e, action) { if (e) { var index = 0; + // Return value of action can be anything, but if it is (===) false then the forEach will discontinue. while (e.moveNext()) { if (action(e.current, index++) === false) break; diff --git a/source/System/Collections/Enumeration/Enumerator.js.map b/source/System/Collections/Enumeration/Enumerator.js.map index c3c0b1de..c45d77f8 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":";;;;;;;;IAIA,YAAY,CAAC;IAMb,sBAAiB,aAAa,CAAC,CAAA;IAE/B,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD;QAAA;QAeA,CAAC;QAbA,sBAAI,oCAAO;iBAAX;gBAEC,MAAM,CAAC,SAAS,CAAC;YAClB,CAAC;;;WAAA;QAED,kCAAQ,GAAR;YAEC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,+BAAK,GAAL,cAAe,CAAC;QAEhB,iCAAO,GAAP,cAAiB,CAAC;QACnB,sBAAC;IAAD,CAAC,AAfD,IAeC;IAED,IAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAGpC,cAAwB,MAAiC;QAGxD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YACV,MAAM,CAAC,KAAK,CAAC;QAEd,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,yBAAe,CAAS,MAAM,CAAC,CAAC;QAG5C,EAAE,CAAA,CAAC,CAAC,eAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAC7B,CAAC;YACA,EAAE,CAAA,CAAC,eAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC,CAC/B,CAAC;gBACA,MAAM,CAAC,IAAI,yBAAe,CACzB;oBAEC,MAAM,CAAC;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,CAAC;qBACP,CAAA;gBACF,CAAC,CACD,CAAC;YACH,CAAC;YACD,EAAE,CAAA,CAAC,YAAY,CAAI,MAAM,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAEhC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IAhCe,YAAI,OAgCnB,CAAA;IAED,sBAAgC,QAAY;QAE3C,MAAM,CAAC,eAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,eAAe,EAAE,eAAI,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAHe,oBAAY,eAG3B,CAAA;IAED,iBACC,CAAgB,EAChB,MAAwC;QAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;oBACrC,KAAK,CAAC;YACR,CAAC;QACF,CAAC;IACF,CAAC;IAde,eAAO,UActB,CAAA"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":["EmptyEnumerator","EmptyEnumerator.constructor","EmptyEnumerator.current","EmptyEnumerator.moveNext","EmptyEnumerator.reset","EmptyEnumerator.dispose","from","isEnumerable","forEach"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,wDAAwD;IACxD,uCAAuC;IACvC,uCAAuC;IACvC,kCAAkC;IAClC,sBAAiB,aAAa,CAAC,CAAA;IAE/B,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD;QAAAA;QAeAC,CAACA;QAbAD,sBAAIA,oCAAOA;iBAAXA;gBAECE,MAAMA,CAACA,SAASA,CAACA;YAClBA,CAACA;;;WAAAF;QAEDA,kCAAQA,GAARA;YAECG,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QAEDH,+BAAKA,GAALA,cAAeI,CAACA;QAEhBJ,iCAAOA,GAAPA,cAAiBK,CAACA;QACnBL,sBAACA;IAADA,CAACA,AAfD,IAeC;IAED,IAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAEpC,oCAAoC;IACpC,cAAwB,MAAiC;QAExDM,qDAAqDA;QACrDA,EAAEA,CAAAA,CAACA,CAACA,MAAMA,CAACA;YACVA,MAAMA,CAACA,KAAKA,CAACA;QAEdA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;YACxBA,MAAMA,CAACA,IAAIA,yBAAeA,CAASA,MAAMA,CAACA,CAACA;QAG5CA,EAAEA,CAAAA,CAACA,CAACA,eAAIA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA,CAC7BA,CAACA;YACAA,EAAEA,CAAAA,CAACA,eAAIA,CAACA,WAAWA,CAAIA,MAAMA,CAACA,CAACA,CAC/BA,CAACA;gBACAA,MAAMA,CAACA,IAAIA,yBAAeA,CACzBA;oBAECA,MAAMA,CAACA;wBACNA,MAAMA,EAAEA,MAAMA;wBACdA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA;wBACrBA,OAAOA,EAAEA,CAACA;wBACVA,IAAIA,EAAEA,CAACA;qBACPA,CAAAA;gBACFA,CAACA,CACDA,CAACA;YACHA,CAACA;YACDA,EAAEA,CAAAA,CAACA,YAAYA,CAAIA,MAAMA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,MAAMA,CAACA,aAAaA,EAAEA,CAACA;QAEhCA,CAACA;QAEDA,MAAMA,IAAIA,KAAKA,CAACA,qBAAqBA,CAACA,CAACA;IACxCA,CAACA;IAhCe,YAAI,OAgCnB,CAAA;IAED,sBAAgC,QAAY;QAE3CC,MAAMA,CAACA,eAAIA,CAACA,eAAeA,CAAiBA,QAAQA,EAAEA,eAAeA,EAAEA,eAAIA,CAACA,QAAQA,CAACA,CAACA;IACvFA,CAACA;IAHe,oBAAY,eAG3B,CAAA;IAED,iBACC,CAAgB,EAChB,MAAwC;QAExCC,EAAEA,CAAAA,CAACA,CAACA,CAACA,CACLA,CAACA;YACAA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YACdA,sGAAsGA;YACtGA,OAAMA,CAACA,CAACA,QAAQA,EAAEA,EAClBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CAACA,CAACA,OAAOA,EAAEA,KAAKA,EAAEA,CAACA,KAAGA,KAAKA,CAACA;oBACrCA,KAAKA,CAACA;YACRA,CAACA;QACFA,CAACA;IACFA,CAACA;IAde,eAAO,UActB,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/EnumeratorBase.js b/source/System/Collections/Enumeration/EnumeratorBase.js index 403e9a82..e5f5fc4b 100644 --- a/source/System/Collections/Enumeration/EnumeratorBase.js +++ b/source/System/Collections/Enumeration/EnumeratorBase.js @@ -1,17 +1,24 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +/// +/// +/// +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Disposable/DisposableBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Disposable/DisposableBase'], function (require, exports) { var DisposableBase_1 = require('../../Disposable/DisposableBase'); var Yielder = (function () { function Yielder() { @@ -30,15 +37,18 @@ var __extends = (this && this.__extends) || function (d, b) { return false; }; return Yielder; - }()); + })(); + // IEnumerator State var EnumeratorState; (function (EnumeratorState) { EnumeratorState[EnumeratorState["Before"] = 0] = "Before"; EnumeratorState[EnumeratorState["Running"] = 1] = "Running"; EnumeratorState[EnumeratorState["After"] = 2] = "After"; })(EnumeratorState || (EnumeratorState = {})); + // Naming this class EnumeratorBase to avoid collision with IE. var EnumeratorBase = (function (_super) { __extends(EnumeratorBase, _super); + // "Enumerator" is conflict JScript's "Enumerator" function EnumeratorBase(initializer, tryGetNext, disposer) { _super.call(this); this.initializer = initializer; @@ -67,6 +77,7 @@ var __extends = (this && this.__extends) || function (d, b) { var initializer = _.initializer; if (initializer) initializer(); + // fall through case EnumeratorState.Running: if (_.tryGetNext(_._yielder)) { return true; @@ -97,11 +108,12 @@ var __extends = (this && this.__extends) || function (d, b) { disposer(); } finally { + //if(this._state==EnumeratorState.Running) this._state = EnumeratorState.After; } }; return EnumeratorBase; - }(DisposableBase_1.default)); + })(DisposableBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = EnumeratorBase; }); diff --git a/source/System/Collections/Enumeration/EnumeratorBase.js.map b/source/System/Collections/Enumeration/EnumeratorBase.js.map index 5f04eed1..a9b3be40 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":["Yielder","Yielder.constructor","Yielder.current","Yielder.yieldReturn","Yielder.yieldBreak","EnumeratorState","EnumeratorBase","EnumeratorBase.constructor","EnumeratorBase.current","EnumeratorBase.reset","EnumeratorBase.moveNext","EnumeratorBase._onDispose"],"mappings":"AAAA;;;GAGG;AACH,wDAAwD;AACxD,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAGtE,+BAA2B,iCAI3B,CAAC,CAJ2D;IAI5D;QAAAA;QAcAC,CAACA;QAXAD,sBAAIA,4BAAOA;iBAAXA,cAAkBE,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;;;WAAAF;QAEzCA,6BAAWA,GAAXA,UAAYA,KAAOA;YAClBG,IAAIA,CAACA,QAAQA,GAAGA,KAAKA,CAACA;YACtBA,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEDH,4BAAUA,GAAVA;YACCI,IAAIA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;YACrBA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QACFJ,cAACA;IAADA,CAACA,AAdD,IAcC;IAED,oBAAoB;IACpB,IAAK,eAA0C;IAA/C,WAAK,eAAe;QAAGK,yDAAMA,CAAAA;QAAEA,2DAAOA,CAAAA;QAAEA,uDAAKA,CAAAA;IAACA,CAACA,EAA1C,eAAe,KAAf,eAAe,QAA2B;IAE/C,+DAA+D;IAC/D;QACgCC,kCAAcA;QAU7CA,kDAAkDA;QAClDA,wBACSA,WAAsBA,EACtBA,UAAyCA,EACzCA,QAAoBA;YAE5BC,iBAAOA,CAACA;YAJAA,gBAAWA,GAAXA,WAAWA,CAAWA;YACtBA,eAAUA,GAAVA,UAAUA,CAA+BA;YACzCA,aAAQA,GAARA,QAAQA,CAAYA;YAG5BA,IAAIA,CAACA,KAAKA,EAAEA,CAACA;QACdA,CAACA;QAZDD,sBAAIA,mCAAOA;iBAAXA;gBACCE,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA,OAAOA,CAACA;YAC9BA,CAACA;;;WAAAF;QAaDA,8BAAKA,GAALA;YACCG,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,OAAOA,EAAKA,CAACA;YAC9BA,CAACA,CAACA,MAAMA,GAAGA,eAAeA,CAACA,MAAMA,CAACA;QACnCA,CAACA;QAEDH,iCAAQA,GAARA;YACCI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,IAAIA,CAACA;gBACJA,MAAMA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACjBA,KAAKA,eAAeA,CAACA,MAAMA;wBAC1BA,CAACA,CAACA,MAAMA,GAAGA,eAAeA,CAACA,OAAOA,CAACA;wBACnCA,IAAIA,WAAWA,GAAGA,CAACA,CAACA,WAAWA,CAACA;wBAChCA,EAAEA,CAAAA,CAACA,WAAWA,CAACA;4BACdA,WAAWA,EAAEA,CAACA;oBAChBA,eAAeA;oBACfA,KAAKA,eAAeA,CAACA,OAAOA;wBAC3BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;4BAC7BA,MAAMA,CAACA,IAAIA,CAACA;wBACbA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACLA,IAAIA,CAACA,OAAOA,EAAEA,CAACA;4BACfA,MAAMA,CAACA,KAAKA,CAACA;wBACdA,CAACA;oBACFA,KAAKA,eAAeA,CAACA,KAAKA;wBACzBA,MAAMA,CAACA,KAAKA,CAACA;gBACfA,CAACA;YACFA,CACAA;YAAAA,KAAKA,CAAAA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACTA,IAAIA,CAACA,OAAOA,EAAEA,CAACA;gBACfA,MAAMA,CAACA,CAACA;YACTA,CAACA;QACFA,CAACA;QAESJ,mCAAUA,GAApBA;YACCK,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,QAAQA,GAAGA,CAACA,CAACA,QAAQA,CAACA;YAEpCA,CAACA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;YACrBA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;YAElBA,IAAIA,OAAOA,GAAGA,CAACA,CAACA,QAAQA,CAACA;YACzBA,CAACA,CAACA,QAAQA,GAAGA,IAAIA,CAACA;YAClBA,EAAEA,CAAAA,CAACA,OAAOA,CAACA;gBACVA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;YAEtBA,IAAIA,CAACA;gBAEJA,EAAEA,CAAAA,CAACA,QAAQA,CAACA;oBACXA,QAAQA,EAAEA,CAACA;YAEbA,CAACA;oBACOA,CAACA;gBACRA,0CAA0CA;gBAC1CA,IAAIA,CAACA,MAAMA,GAAGA,eAAeA,CAACA,KAAKA,CAACA;YACrCA,CAACA;QACFA,CAACA;QAEFL,qBAACA;IAADA,CAACA,AA/ED,EACgC,wBAAc,EA8E7C;IA/ED;oCA+EC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/IndexEnumerator.js b/source/System/Collections/Enumeration/IndexEnumerator.js index d6748128..1d2a8313 100644 --- a/source/System/Collections/Enumeration/IndexEnumerator.js +++ b/source/System/Collections/Enumeration/IndexEnumerator.js @@ -1,17 +1,21 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './EnumeratorBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './EnumeratorBase'], function (require, exports) { var EnumeratorBase_1 = require('./EnumeratorBase'); var IndexEnumerator = (function (_super) { __extends(IndexEnumerator, _super); @@ -51,7 +55,7 @@ var __extends = (this && this.__extends) || function (d, b) { }); } return IndexEnumerator; - }(EnumeratorBase_1.default)); + })(EnumeratorBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = IndexEnumerator; }); diff --git a/source/System/Collections/Enumeration/IndexEnumerator.js.map b/source/System/Collections/Enumeration/IndexEnumerator.js.map index cc480af1..08c5ce8b 100644 --- a/source/System/Collections/Enumeration/IndexEnumerator.js.map +++ b/source/System/Collections/Enumeration/IndexEnumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["IndexEnumerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAIA,YAAY,CAAC;IAEb,+BAA2B,kBAAkB,CAAC,CAAA;IAE9C;QACiC,mCAAiB;QAGjD,yBACC,aAAqG;YAGrG,IAAI,MAAwF,CAAC;YAC7F,kBACC;gBAEC,MAAM,GAAG,aAAa,EAAE,CAAC;gBACzB,EAAE,CAAA,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;oBACA,EAAE,CAAA,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAG,CAAC,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAE5D,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC7B,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC;wBACX,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAA,CAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC;oBACzF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;oBAEzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACvB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,EAAE,CAAA,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;oBACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,CAAC;YACF,CAAC,EAED,UAAC,OAAO;gBAEP,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxD,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC;oBACP,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC9B,MAAM,CAAC,CAAC,OAAO,GAAC,GAAG,IAAI,OAAO,IAAE,CAAC,CAAC;sBAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;sBAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;YACzB,CAAC,EAED;gBAEC,EAAE,CAAA,CAAC,MAAM,CAAC,CACV,CAAC;oBACA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACtB,CAAC;YACF,CAAC,CACD,CAAC;QACH,CAAC;QACF,sBAAC;IAAD,CAAC,AAvDD,CACiC,wBAAc,GAsD9C;IAvDD;qCAuDC,CAAA"} \ No newline at end of file +{"version":3,"file":"IndexEnumerator.js","sourceRoot":"","sources":["IndexEnumerator.ts"],"names":["IndexEnumerator","IndexEnumerator.constructor"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,+BAA2B,kBAAkB,CAAC,CAAA;IAE9C;QACiCA,mCAAiBA;QAGjDA,yBACCA,aAAqGA;YAGrGC,IAAIA,MAAwFA,CAACA;YAC7FA,kBACCA;gBAECA,MAAMA,GAAGA,aAAaA,EAAEA,CAACA;gBACzBA,EAAEA,CAAAA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,CAC3BA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,IAAIA,KAAGA,CAACA,CAACA;wBACnCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,CAACA,CAACA;oBAE5DA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;oBAC7BA,EAAEA,CAAAA,CAACA,CAACA,OAAOA,CAACA;wBACXA,MAAMA,CAACA,OAAOA,GAAGA,CAACA,CAACA;oBACpBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,OAAOA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA;wBACpCA,MAAMA,IAAIA,KAAKA,CAACA,yCAAyCA,GAAGA,OAAOA,GAAGA,gBAAgBA,CAACA,CAACA;oBACzFA,MAAMA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;oBAEzBA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;oBACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,CAACA;wBACRA,MAAMA,CAACA,IAAIA,GAAGA,CAACA,CAACA;oBACjBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,IAAIA,IAAEA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAC9BA,MAAMA,IAAIA,KAAKA,CAACA,sCAAsCA,GAAGA,IAAIA,GAAGA,gBAAgBA,CAACA,CAACA;oBACnFA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;gBACpBA,CAACA;YACFA,CAACA,EAEDA,UAACA,OAAOA;gBAEPA,IAAIA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,MAAMA,CAACA,MAAMA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA;gBACxDA,EAAEA,CAAAA,CAACA,CAACA,GAAGA,CAACA;oBACPA,MAAMA,CAACA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;gBAC7BA,IAAIA,OAAOA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;gBAC7BA,MAAMA,CAACA,OAAOA,IAAIA,MAAMA,CAACA,IAAIA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,OAAOA,GAACA,GAAGA,IAAIA,OAAOA,IAAEA,CAACA,CAACA;sBAC/BA,OAAOA,CAACA,WAAWA,CAACA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA;sBAC3CA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;YACzBA,CAACA,EAEDA;gBAECA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;oBACAA,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;gBACtBA,CAACA;YACFA,CAACA,CACDA,CAACA;QACHA,CAACA;QACFD,sBAACA;IAADA,CAACA,AAvDD,EACiC,wBAAc,EAsD9C;IAvDD;qCAuDC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Enumeration/forEach.js b/source/System/Collections/Enumeration/forEach.js index 89424cdc..21886b47 100644 --- a/source/System/Collections/Enumeration/forEach.js +++ b/source/System/Collections/Enumeration/forEach.js @@ -1,12 +1,17 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../../Disposable/Utility', '../../Collections/Enumeration/Enumerator'], function (require, exports) { + /// + /// var Utility_1 = require('../../Disposable/Utility'); var Enumerator = require('../../Collections/Enumeration/Enumerator'); function forEach(enumerable, action) { diff --git a/source/System/Collections/Enumeration/forEach.js.map b/source/System/Collections/Enumeration/forEach.js.map index 08d41de2..8b743520 100644 --- a/source/System/Collections/Enumeration/forEach.js.map +++ b/source/System/Collections/Enumeration/forEach.js.map @@ -1 +1 @@ -{"version":3,"file":"forEach.js","sourceRoot":"","sources":["forEach.ts"],"names":[],"mappings":";;;;;;;;;IAOA,wBAAoB,0BAA0B,CAAC,CAAA;IAC/C,IAAY,UAAU,WAAM,0CAA0C,CAAC,CAAA;IAEvE,iBACI,UAAqC,EACrC,MAAwC;QAExC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACb,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,UAAA,CAAC;gBAEhC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAVD;6BAUC,CAAA"} \ No newline at end of file +{"version":3,"file":"forEach.js","sourceRoot":"","sources":["forEach.ts"],"names":["forEach"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,uCAAuC;IACvC,2CAA2C;IAC3C,wBAAoB,0BAA0B,CAAC,CAAA;IAC/C,IAAY,UAAU,WAAM,0CAA0C,CAAC,CAAA;IAEvE,iBACI,UAAqC,EACrC,MAAwC;QAExCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;YACbA,eAAKA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,EAAEA,UAAAA,CAACA;gBAEhCA,UAAUA,CAACA,OAAOA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YAClCA,CAACA,CAACA,CAACA;QACPA,CAACA;IACLA,CAACA;IAVD;6BAUC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/LinkedList.js b/source/System/Collections/LinkedList.js index 0c964d1c..3e63e2c6 100644 --- a/source/System/Collections/LinkedList.js +++ b/source/System/Collections/LinkedList.js @@ -1,12 +1,19 @@ -(function (factory) { +/* + * @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 + */ +/// +/// +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Compare', '../Text/Utility', '../Collections/Array/Utility', './Enumeration/Enumerator', './Enumeration/EnumeratorBase', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentException', '../Exceptions/ArgumentNullException', '../Exceptions/ArgumentOutOfRangeException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Compare', '../Text/Utility', '../Collections/Array/Utility', './Enumeration/Enumerator', './Enumeration/EnumeratorBase', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentException', '../Exceptions/ArgumentNullException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) { var Values = require('../Compare'); var TextUtility = require('../Text/Utility'); var ArrayUtility = require('../Collections/Array/Utility'); @@ -16,6 +23,14 @@ var ArgumentException_1 = require('../Exceptions/ArgumentException'); var ArgumentNullException_1 = require('../Exceptions/ArgumentNullException'); var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException'); + /***************************** + * IMPORTANT NOTES ABOUT PERFORMANCE: + * http://jsperf.com/simulating-a-queue + * + * Adding to an array is very fast, but modifying is slow. + * LinkedList wins when modifying contents. + * http://stackoverflow.com/questions/166884/array-versus-linked-list + *****************************/ var Node = (function () { function Node(value, prev, next) { this.value = value; @@ -27,7 +42,7 @@ throw new InvalidOperationException_1.default("Adding a node that is already placed."); }; return Node; - }()); + })(); function ensureExternal(node, list) { if (!node) return null; @@ -62,6 +77,7 @@ _._last = last; _._count = c; } + // #region Internals. LinkedList.prototype._addFirst = function (entry) { var _ = this, first = _._first; var prev = new Node(entry, null, first); @@ -118,6 +134,8 @@ } return null; }; + // #endregion + // #region IEnumerateEach LinkedList.prototype.forEach = function (action, useCopy) { if (useCopy === void 0) { useCopy = false; } if (useCopy) { @@ -132,17 +150,22 @@ } } }; + // #endregion + // #region IEnumerable LinkedList.prototype.getEnumerator = function () { var _ = this, current; return new EnumeratorBase_1.default(function () { current = new Node(null, null, _._first); - }, function (yielder) { + }, // Initialize anchor... + function (yielder) { return (current = current.next) ? yielder.yieldReturn(current.value) : yielder.yieldBreak(); }); }; Object.defineProperty(LinkedList.prototype, "count", { + // #endregion + // #region ICollection get: function () { return this._count; }, @@ -208,6 +231,7 @@ return removedCount; }; Object.defineProperty(LinkedList.prototype, "first", { + // #endregion get: function () { return ensureExternal(this._first, this); }, @@ -221,6 +245,7 @@ enumerable: true, configurable: true }); + // get methods are available for convenience but is an n*index operation. LinkedList.prototype._getNodeAt = function (index) { if (index < 0) throw new ArgumentOutOfRangeException_1.default('index', index, 'Is less than zero.'); @@ -270,6 +295,7 @@ _._count -= 1; } }; + // Returns true if successful and false if not found (already removed). LinkedList.prototype.removeNode = function (node) { var _ = this; var n = getInternal(node, _); @@ -304,9 +330,10 @@ this._addNodeAfter(getInternal(node, this), getInternal(after, this)); }; return LinkedList; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = LinkedList; + // Use an internal node class to prevent mucking up the LinkedList. var LinkedListNode = (function () { function LinkedListNode(_list, _node) { this._list = _list; @@ -359,6 +386,6 @@ this._list.removeNode(this); }; return LinkedListNode; - }()); + })(); }); //# sourceMappingURL=LinkedList.js.map \ No newline at end of file diff --git a/source/System/Collections/LinkedList.js.map b/source/System/Collections/LinkedList.js.map index dff472aa..a4cc7826 100644 --- a/source/System/Collections/LinkedList.js.map +++ b/source/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["LinkedList.ts"],"names":["Node","Node.constructor","Node.assertDetached","ensureExternal","getInternal","LinkedList","LinkedList.constructor","LinkedList._addFirst","LinkedList._addLast","LinkedList._addNodeBefore","LinkedList._addNodeAfter","LinkedList._findFirst","LinkedList._findLast","LinkedList.forEach","LinkedList.getEnumerator","LinkedList.count","LinkedList.isReadOnly","LinkedList.add","LinkedList.clear","LinkedList.contains","LinkedList.copyTo","LinkedList.toArray","LinkedList.removeOnce","LinkedList.remove","LinkedList.first","LinkedList.last","LinkedList._getNodeAt","LinkedList.getValueAt","LinkedList.getNodeAt","LinkedList.find","LinkedList.findLast","LinkedList.addFirst","LinkedList.addLast","LinkedList.removeFirst","LinkedList.removeLast","LinkedList.removeNode","LinkedList.addBefore","LinkedList.addAfter","LinkedList.addNodeBefore","LinkedList.addNodeAfter","LinkedListNode","LinkedListNode.constructor","LinkedListNode.list","LinkedListNode.previous","LinkedListNode.next","LinkedListNode.value","LinkedListNode.addBefore","LinkedListNode.addAfter","LinkedListNode.addNodeBefore","LinkedListNode.addNodeAfter","LinkedListNode.remove"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Queue.js b/source/System/Collections/Queue.js index 5060a892..81633371 100644 --- a/source/System/Collections/Queue.js +++ b/source/System/Collections/Queue.js @@ -1,12 +1,21 @@ -(function (factory) { +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Compare', './Array/Utility', '../Types', '../Integer', './Enumeration/EnumeratorBase', './Enumeration/forEach', '../Exceptions/NotImplementedException', '../Exceptions/InvalidOperationException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) { + /// + /// + /// + /// var Values = require('../Compare'); var AU = require('./Array/Utility'); var Types_1 = require('../Types'); @@ -17,7 +26,8 @@ var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException'); var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException'); var MINIMUM_GROW = 4; - var SHRINK_THRESHOLD = 32; + var SHRINK_THRESHOLD = 32; // Unused? + // var GROW_FACTOR: number = 200; // double each time var GROW_FACTOR_HALF = 100; var DEFAULT_CAPACITY = MINIMUM_GROW; var emptyArray = []; @@ -50,6 +60,7 @@ _._capacity = _._array.length; } Object.defineProperty(Queue.prototype, "count", { + // #region ICollection implementation get: function () { return this._size; }, @@ -66,6 +77,10 @@ Queue.prototype.add = function (item) { this.enqueue(item); }; + /** + * Clears out the array and returns the number of items that were removed. + * @returns {number} + */ Queue.prototype.clear = function () { var _ = this, array = _._array, head = _._head, tail = _._tail, size = _._size; if (head < tail) @@ -81,6 +96,9 @@ _.trimExcess(); return size; }; + /** + * Dequeues entries into an array. + */ Queue.prototype.dump = function (max) { if (max === void 0) { max = Infinity; } if (Types_1.default.isNumber(max, false) && max < 0) @@ -136,6 +154,8 @@ throw new NotImplementedException_1.default("ICollection\.remove is not implemented in Queue\" + " since it would require destroying the underlying array to remove the item."); }; + // #endregion + // Results in a complete reset. Allows for easy cleanup elsewhere. Queue.prototype.dispose = function () { var _ = this; _.clear(); @@ -146,6 +166,7 @@ _._version = 0; }; Queue.prototype.forEach = function (action) { + // Until implementing a changed enumeration mechanism, a copy needs to be used. var _ = this, copy = _.toArray(), len = _._size; for (var i = 0; i < len; i++) { if (action(copy[i], i) === false) @@ -158,11 +179,13 @@ if (capacity == len) return; var head = _._head, tail = _._tail, size = _._size; + // Special case where we can simply extend the length of the array. (JavaScript only) if (array != emptyArray && capacity > len && head < tail) { array.length = _._capacity = capacity; _._version++; return; } + // We create a new array because modifying an existing one could be slow. var newArray = AU.initialize(capacity); if (size > 0) { if (head < tail) { @@ -254,7 +277,7 @@ }); }; return Queue; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Queue; function assertZeroOrGreater(value, property) { diff --git a/source/System/Collections/Queue.js.map b/source/System/Collections/Queue.js.map index 5e9f452a..2def4a1a 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":["Queue","Queue.constructor","Queue.count","Queue.isReadOnly","Queue.add","Queue.clear","Queue.dump","Queue.contains","Queue.copyTo","Queue.toArray","Queue.remove","Queue.dispose","Queue.forEach","Queue.setCapacity","Queue.enqueue","Queue.dequeue","Queue.tryDequeue","Queue._getElement","Queue.peek","Queue.trimExcess","Queue.getEnumerator","assertZeroOrGreater","assertIntegerZeroOrGreater"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Collections/Sorting/KeySortedContext.js b/source/System/Collections/Sorting/KeySortedContext.js index 6ad375a4..f15c3663 100644 --- a/source/System/Collections/Sorting/KeySortedContext.js +++ b/source/System/Collections/Sorting/KeySortedContext.js @@ -1,24 +1,33 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare', "./SortContext", "../../Functions"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Compare', "./SortContext", "../../Functions"], function (require, exports) { + /// + /// + /// + /// + /// var Values = require('../../Compare'); var SortContext_1 = require("./SortContext"); var Functions_1 = require("../../Functions"); var KeySortedContext = (function (_super) { __extends(KeySortedContext, _super); function KeySortedContext(next, _keySelector, order, comparer) { - if (order === void 0) { order = 1; } + if (order === void 0) { order = 1 /* Ascending */; } if (comparer === void 0) { comparer = Values.compare; } _super.call(this, next, comparer, order); this._keySelector = _keySelector; @@ -27,13 +36,14 @@ var __extends = (this && this.__extends) || function (d, b) { var _ = this, ks = _._keySelector; if (!ks || ks == Functions_1.default.Identity) return _super.prototype.compare.call(this, a, b); + // We force here since it can be a Primitive or IComparable var d = Values.compare(ks(a), ks(b)); if (d == 0 && _._next) return _._next.compare(a, b); return _._order * d; }; return KeySortedContext; - }(SortContext_1.default)); + })(SortContext_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = KeySortedContext; }); diff --git a/source/System/Collections/Sorting/KeySortedContext.js.map b/source/System/Collections/Sorting/KeySortedContext.js.map index dfe0b4c7..abb0e17b 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":";;;;;;;;;;;;;IAIA,YAAY,CAAC;IAOb,IAAY,MAAM,WAAM,eACxB,CAAC,CADsC;IACvC,4BAAwB,eAAe,CAAC,CAAA;IACxC,0BAAsB,iBAAiB,CAAC,CAAA;IAIxC;QAC2D,oCAAc;QAExE,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,mBAAS,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,AArBD,CAC2D,qBAAW,GAoBrE;IArBD;sCAqBC,CAAA"} \ No newline at end of file +{"version":3,"file":"KeySortedContext.js","sourceRoot":"","sources":["KeySortedContext.ts"],"names":["KeySortedContext","KeySortedContext.constructor","KeySortedContext.compare"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,+CAA+C;IAC/C,2CAA2C;IAC3C,2CAA2C;IAC3C,2CAA2C;IAC3C,iCAAiC;IACjC,IAAY,MAAM,WAAM,eACxB,CAAC,CADsC;IACvC,4BAAwB,eAAe,CAAC,CAAA;IACxC,0BAAsB,iBAAiB,CAAC,CAAA;IAIxC;QAC2DA,oCAAcA;QAExEA,0BACCA,IAAiBA,EACPA,YAA6BA,EACvCA,KAA6BA,EAC7BA,QAAuCA;YADvCC,qBAA6BA,GAA7BA,yBAA6BA;YAC7BA,wBAAuCA,GAAvCA,WAAyBA,MAAMA,CAACA,OAAOA;YAEvCA,kBAAMA,IAAIA,EAAEA,QAAQA,EAAEA,KAAKA,CAACA,CAACA;YAJnBA,iBAAYA,GAAZA,YAAYA,CAAiBA;QAKxCA,CAACA;QAEDD,kCAAOA,GAAPA,UAAQA,CAAGA,EAAEA,CAAGA;YAEfE,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,EAAEA,GAAGA,CAACA,CAACA,YAAYA,CAACA;YAClCA,EAAEA,CAAAA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,IAAEA,mBAASA,CAACA,QAAQA,CAACA;gBAACA,MAAMA,CAACA,gBAAKA,CAACA,OAAOA,YAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YAC7DA,sEAAsEA;YACtEA,IAAIA,CAACA,GAAGA,MAAMA,CAACA,OAAOA,CAAMA,EAAEA,CAACA,CAACA,CAACA,EAAOA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC/CA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;gBAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;QACnBA,CAACA;QACFF,uBAACA;IAADA,CAACA,AArBD,EAC2D,qBAAW,EAoBrE;IArBD;sCAqBC,CAAA"} \ No newline at end of file diff --git a/source/System/Collections/Sorting/SortContext.js b/source/System/Collections/Sorting/SortContext.js index b0cd47c1..9f07e01a 100644 --- a/source/System/Collections/Sorting/SortContext.js +++ b/source/System/Collections/Sorting/SortContext.js @@ -1,26 +1,43 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../../Compare'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../../Compare'], function (require, exports) { + /// + /// + /// + /// var Values = require('../../Compare'); var SortContext = (function () { function SortContext(_next, _comparer, _order) { if (_comparer === void 0) { _comparer = Values.compare; } - if (_order === void 0) { _order = 1; } + if (_order === void 0) { _order = 1 /* Ascending */; } this._next = _next; this._comparer = _comparer; this._order = _order; } Object.defineProperty(SortContext.prototype, "order", { + /** + * Direction of the comparison. + * @type {Order} + */ get: function () { return this._order; }, enumerable: true, configurable: true }); + /** + * Generates an array of indexes from the source in order of their expected sort without modifying the source. + * @param source + * @returns {number[]} + */ SortContext.prototype.generateSortedIndexes = function (source) { var _this = this; if (source == null) @@ -29,6 +46,12 @@ result.sort(function (a, b) { return _this.compare(source[a], source[b]); }); return result; }; + /** + * Compares two values based upon SortContext parameters. + * @param a + * @param b + * @returns {any} + */ SortContext.prototype.compare = function (a, b) { var _ = this; var d = _._comparer(a, b); @@ -37,7 +60,7 @@ return _._order * d; }; return SortContext; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SortContext; }); diff --git a/source/System/Collections/Sorting/SortContext.js.map b/source/System/Collections/Sorting/SortContext.js.map index 76277568..d1622115 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":";;;;;;;;IAIA,YAAY,CAAC;IAMb,IAAY,MAAM,WAAM,eACxB,CAAC,CADsC;IAIvC;QAWC,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,AA7CD,IA6CC;IA7CD;iCA6CC,CAAA"} \ No newline at end of file +{"version":3,"file":"SortContext.js","sourceRoot":"","sources":["SortContext.ts"],"names":["SortContext","SortContext.constructor","SortContext.order","SortContext.generateSortedIndexes","SortContext.compare"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,+CAA+C;IAC/C,2CAA2C;IAC3C,2CAA2C;IAC3C,iCAAiC;IACjC,IAAY,MAAM,WAAM,eACxB,CAAC,CADsC;IAIvC;QAWCA,qBACWA,KAAkBA,EAClBA,SAAwCA,EACxCA,MAA8BA;YADxCC,yBAAkDA,GAAlDA,YAAoCA,MAAMA,CAACA,OAAOA;YAClDA,sBAAwCA,GAAxCA,0BAAwCA;YAF9BA,UAAKA,GAALA,KAAKA,CAAaA;YAClBA,cAASA,GAATA,SAASA,CAA+BA;YACxCA,WAAMA,GAANA,MAAMA,CAAwBA;QAEzCA,CAACA;QARDD,sBAAIA,8BAAKA;YAJTA;;;eAGGA;iBACHA,cACEE,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;;;WAAAF;QAUvBA;;;;WAIGA;QACHA,2CAAqBA,GAArBA,UAAsBA,MAAUA;YAAhCG,iBAMCA;YAJAA,EAAEA,CAAAA,CAACA,MAAMA,IAAEA,IAAIA,CAACA;gBAACA,MAAMA,CAACA,EAAEA,CAACA;YAC3BA,IAAIA,MAAMA,GAAYA,MAAMA,CAACA,GAAGA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAGA,OAAAA,CAACA,EAADA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,KAAIA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;YAC1DA,MAAMA,CAACA,MAAMA,CAACA;QACfA,CAACA;QAEDH;;;;;WAKGA;QACHA,6BAAOA,GAAPA,UAAQA,CAAGA,EAAEA,CAAGA;YAEfI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,IAAIA,CAACA,GAAGA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YAC1BA,EAAEA,CAAAA,CAACA,CAACA,IAAEA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;gBAACA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACjDA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;QACnBA,CAACA;QACFJ,kBAACA;IAADA,CAACA,AA7CD,IA6CC;IA7CD;iCA6CC,CAAA"} \ No newline at end of file diff --git a/source/System/Compare.js b/source/System/Compare.js index 1e7a9dd5..3f0b7360 100644 --- a/source/System/Compare.js +++ b/source/System/Compare.js @@ -1,15 +1,22 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './Types'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", './Types'], function (require, exports) { + /// + /// + /// var Types_1 = require('./Types'); var isTrueNaN = Types_1.default.isTrueNaN; var VOID0 = void 0; + // Used for special equals cases like NaN. function areEqual(a, b, strict) { if (strict === void 0) { strict = true; } return a === b || !strict && a == b || isTrueNaN(a) && isTrueNaN(b); @@ -19,15 +26,16 @@ function compare(a, b, strict) { if (strict === void 0) { strict = true; } if (areEqual(a, b, strict)) - return 0; + return 0 /* Equal */; 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); + // Allow for special inequality.. if (a > b || strict && (a === 0 && b == 0 || a === null && b === VOID0)) - return 1; + return 1 /* Greater */; if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0)) - return -1; + return -1 /* Less */; return NaN; } exports.compare = compare; diff --git a/source/System/Compare.js.map b/source/System/Compare.js.map index 5f04b921..2501aa08 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":";;;;;;;;;IAQA,sBAAiB,SAAS,CAAC,CAAA;IAC3B,IAAO,SAAS,GAAG,eAAI,CAAC,SAAS,CAAC;IAElC,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAIzB,kBAAyB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArB,sBAAqB,GAArB,aAAqB;QAE3D,MAAM,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAHe,gBAAQ,WAGvB,CAAA;IAED,IAAM,UAAU,GAAG,WAAW,CAAC;IAI/B,iBAAwB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArB,sBAAqB,GAArB,aAAqB;QAG1D,EAAE,CAAA,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,CAAmB,CAAC;QAE5B,EAAE,CAAA,CAAC,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAA,CAAC,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAIxB,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,CAAqB,CAAC;QAE9B,EAAE,CAAA,CAAC,CAAC,GAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,EAAkB,CAAC;QAE3B,MAAM,CAAC,GAAG,CAAC;IACZ,CAAC;IApBe,eAAO,UAoBtB,CAAA"} \ No newline at end of file +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":["areEqual","compare"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,uCAAuC;IACvC,qCAAqC;IACrC,yCAAyC;IACzC,sBAAiB,SAAS,CAAC,CAAA;IAC3B,IAAO,SAAS,GAAG,eAAI,CAAC,SAAS,CAAC;IAElC,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAGzB,0CAA0C;IAC1C,kBAAyB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArBA,sBAAqBA,GAArBA,aAAqBA;QAE3DA,MAAMA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA;IACjEA,CAACA;IAHe,gBAAQ,WAGvB,CAAA;IAED,IAAM,UAAU,GAAG,WAAW,CAAC;IAI/B,iBAAwB,CAAK,EAAE,CAAK,EAAE,MAAqB;QAArBC,sBAAqBA,GAArBA,aAAqBA;QAG1DA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YACzBA,MAAMA,CAACA,aAAmBA,CAACA;QAE5BA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;YACrCA,MAAMA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QACvBA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;QAExBA,iCAAiCA;QAEjCA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,KAAKA,CAACA,CAACA;YAC5DA,MAAMA,CAACA,eAAqBA,CAACA;QAE9BA,EAAEA,CAAAA,CAACA,CAACA,GAACA,CAACA,IAAIA,MAAMA,IAAIA,CAACA,CAACA,KAAGA,CAACA,IAAIA,CAACA,IAAEA,CAACA,IAAIA,CAACA,KAAGA,IAAIA,IAAIA,CAACA,KAAGA,KAAKA,CAACA,CAACA;YAC5DA,MAAMA,CAACA,aAAkBA,CAACA;QAE3BA,MAAMA,CAACA,GAAGA,CAACA;IACZA,CAACA;IApBe,eAAO,UAoBtB,CAAA"} \ No newline at end of file diff --git a/source/System/Diagnostics/Stopwatch.js b/source/System/Diagnostics/Stopwatch.js index 8004fc3e..ee9d3b7b 100644 --- a/source/System/Diagnostics/Stopwatch.js +++ b/source/System/Diagnostics/Stopwatch.js @@ -1,12 +1,16 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Time/TimeSpan'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Time/TimeSpan'], function (require, exports) { var TimeSpan_1 = require('../Time/TimeSpan'); var Stopwatch = (function () { function Stopwatch() { @@ -33,6 +37,7 @@ return new TimeSpan_1.default(Stopwatch.getTimestampMilliseconds() - start); }; Stopwatch.prototype.record = function (closure) { + // Although a reasonably thread safe way to record, it may not correctly represent time in an async scenario. var e = Stopwatch.measure(closure); this._elapsed += e.milliseconds; return e; @@ -57,6 +62,8 @@ _._isRunning = false; _._startTimeStamp = NaN; }; + // Effectively calls a stop start and continues timing... + // Can also be called to effectively start a lap before calling it again to get the elapsed lap time. Stopwatch.prototype.lap = function () { var _ = this; if (_._isRunning) { @@ -107,7 +114,7 @@ configurable: true }); return Stopwatch; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Stopwatch; }); diff --git a/source/System/Diagnostics/Stopwatch.js.map b/source/System/Diagnostics/Stopwatch.js.map index 55f2a024..5934fe46 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":["Stopwatch","Stopwatch.constructor","Stopwatch.getTimestampMilliseconds","Stopwatch.isRunning","Stopwatch.startNew","Stopwatch.measure","Stopwatch.record","Stopwatch.start","Stopwatch.stop","Stopwatch.reset","Stopwatch.lap","Stopwatch.currentLapMilliseconds","Stopwatch.currentLap","Stopwatch.elapsedMilliseconds","Stopwatch.elapsed"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Disposable/DisposableBase.js b/source/System/Disposable/DisposableBase.js index a14ad181..6ef9659a 100644 --- a/source/System/Disposable/DisposableBase.js +++ b/source/System/Disposable/DisposableBase.js @@ -1,12 +1,17 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +/// +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './ObjectDisposedException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './ObjectDisposedException'], function (require, exports) { var ObjectDisposedException_1 = require('./ObjectDisposedException'); var DisposableBase = (function () { function DisposableBase(_finalizer) { @@ -29,9 +34,11 @@ DisposableBase.prototype.dispose = function () { var _ = this; if (!_._wasDisposed) { + // Preemptively set wasDisposed in order to prevent repeated disposing. + // NOTE: in true multi-threaded scenarios, this needs to be synchronized. _._wasDisposed = true; try { - _._onDispose(); + _._onDispose(); // Protected override. } finally { if (_._finalizer) @@ -39,9 +46,10 @@ } } }; + // Placeholder for overrides. DisposableBase.prototype._onDispose = function () { }; return DisposableBase; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DisposableBase; }); diff --git a/source/System/Disposable/DisposableBase.js.map b/source/System/Disposable/DisposableBase.js.map index 1b5306bd..a21893fc 100644 --- a/source/System/Disposable/DisposableBase.js.map +++ b/source/System/Disposable/DisposableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["DisposableBase.ts"],"names":[],"mappings":";;;;;;;;IAKA,YAAY,CAAC;IAEb,wCAAoC,2BAA2B,CAAC,CAAA;IAEhE;QAGC,wBAAoB,UAAsB;YAAtB,eAAU,GAAV,UAAU,CAAY;YAIlC,iBAAY,GAAW,KAAK,CAAC;QAFrC,CAAC;QAGD,sBAAI,uCAAW;iBAAf;gBAEC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1B,CAAC;;;WAAA;QAKS,wCAAe,GAAzB,UACC,OAAe,EACf,UAA8C;YAA9C,0BAA8C,GAA9C,aAAoB,IAAI,CAAC,qBAAqB;YAE9C,EAAE,CAAA,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpB,MAAM,IAAI,iCAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAO,GAAP;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACnB,CAAC;gBAGA,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;gBACtB,IACA,CAAC;oBACA,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChB,CAAC;wBAED,CAAC;oBACA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC;wBACf,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjB,CAAC;YACF,CAAC;QACF,CAAC;QAGS,mCAAU,GAApB,cAA8B,CAAC;QAEhC,qBAAC;IAAD,CAAC,AAjDD,IAiDC;IAED;sBAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"DisposableBase.js","sourceRoot":"","sources":["DisposableBase.ts"],"names":["DisposableBase","DisposableBase.constructor","DisposableBase.wasDisposed","DisposableBase.throwIfDisposed","DisposableBase.dispose","DisposableBase._onDispose"],"mappings":"AAAA;;;GAGG;AACH,4CAA4C;AAC5C,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,wCAAoC,2BAA2B,CAAC,CAAA;IAEhE;QAGCA,wBAAoBA,UAAsBA;YAAtBC,eAAUA,GAAVA,UAAUA,CAAYA;YAIlCA,iBAAYA,GAAWA,KAAKA,CAACA;QAFrCA,CAACA;QAGDD,sBAAIA,uCAAWA;iBAAfA;gBAECE,MAAMA,CAACA,IAAIA,CAACA,YAAYA,CAACA;YAC1BA,CAACA;;;WAAAF;QAKSA,wCAAeA,GAAzBA,UACCA,OAAeA,EACfA,UAA8CA;YAA9CG,0BAA8CA,GAA9CA,aAAoBA,IAAIA,CAACA,qBAAqBA;YAE9CA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,YAAYA,CAACA;gBACpBA,MAAMA,IAAIA,iCAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;YACxDA,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAGDH,gCAAOA,GAAPA;YAECI,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,YAAYA,CAACA,CACnBA,CAACA;gBACAA,uEAAuEA;gBACvEA,yEAAyEA;gBACzEA,CAACA,CAACA,YAAYA,GAAGA,IAAIA,CAACA;gBACtBA,IACAA,CAACA;oBACAA,CAACA,CAACA,UAAUA,EAAEA,CAACA,CAACA,sBAAsBA;gBACvCA,CAACA;wBAEDA,CAACA;oBACAA,EAAEA,CAAAA,CAACA,CAACA,CAACA,UAAUA,CAACA;wBACfA,CAACA,CAACA,UAAUA,EAAEA,CAACA;gBACjBA,CAACA;YACFA,CAACA;QACFA,CAACA;QAEDJ,6BAA6BA;QACnBA,mCAAUA,GAApBA,cAA8BK,CAACA;QAEhCL,qBAACA;IAADA,CAACA,AAjDD,IAiDC;IAED;sBAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/source/System/Disposable/ObjectDisposedException.js b/source/System/Disposable/ObjectDisposedException.js index de494361..bc4d9865 100644 --- a/source/System/Disposable/ObjectDisposedException.js +++ b/source/System/Disposable/ObjectDisposedException.js @@ -1,21 +1,28 @@ +/* + * @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 + */ +/// +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Exceptions/InvalidOperationException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Exceptions/InvalidOperationException'], function (require, exports) { var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException'); var NAME = 'ObjectDisposedException'; var ObjectDisposedException = (function (_super) { __extends(ObjectDisposedException, _super); + // For simplicity and consistency, lets stick with 1 signature. function ObjectDisposedException(objectName, message, innerException) { if (message === void 0) { message = null; } if (innerException === void 0) { innerException = null; } @@ -36,7 +43,7 @@ var __extends = (this && this.__extends) || function (d, b) { throw new ObjectDisposedException(objectName, message); }; return ObjectDisposedException; - }(InvalidOperationException_1.default)); + })(InvalidOperationException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObjectDisposedException; }); diff --git a/source/System/Disposable/ObjectDisposedException.js.map b/source/System/Disposable/ObjectDisposedException.js.map index b7940241..a7d328cf 100644 --- a/source/System/Disposable/ObjectDisposedException.js.map +++ b/source/System/Disposable/ObjectDisposedException.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["ObjectDisposedException.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAMA,YAAY,CAAC;IAGb,0CAAsC,yCAAyC,CAAC,CAAA;IAGhF,IAAM,IAAI,GAAU,yBAAyB,CAAC;IAE9C;QAEQ,2CAAyB;QAMhC,iCACC,UAAiB,EACjB,OAAqB,EACrB,cAA+B;YAD/B,uBAAqB,GAArB,cAAqB;YACrB,8BAA+B,GAA/B,qBAA+B;YAE/B,kBAAM,OAAO,EAAE,cAAc,EAAE,UAAC,CAAC;gBAChC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;YAC3B,CAAC,CAAC,CAAC;QACJ,CAAC;QAGS,yCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,0CAAQ,GAAR;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;YACnC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE1C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;QACtD,CAAC;QAEM,uCAAe,GAAtB,UACC,UAA2B,EAC3B,UAAkB,EAClB,OAAe;YAEf,EAAE,CAAA,CAAC,UAAU,CAAC,WAAW,CAAC;gBACzB,MAAM,IAAI,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAEF,8BAAC;IAAD,CAAC,AAzCD,CAEQ,mCAAyB,GAuChC;IAzCD;6CAyCC,CAAA"} \ No newline at end of file +{"version":3,"file":"ObjectDisposedException.js","sourceRoot":"","sources":["ObjectDisposedException.ts"],"names":["ObjectDisposedException","ObjectDisposedException.constructor","ObjectDisposedException.getName","ObjectDisposedException.toString","ObjectDisposedException.throwIfDisposed"],"mappings":"AAAA;;;;GAIG;AACH,4CAA4C;AAC5C,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAGtE,0CAAsC,yCAAyC,CAAC,CAAA;IAGhF,IAAM,IAAI,GAAU,yBAAyB,CAAC;IAE9C;QAEQA,2CAAyBA;QAKhCA,+DAA+DA;QAC/DA,iCACCA,UAAiBA,EACjBA,OAAqBA,EACrBA,cAA+BA;YAD/BC,uBAAqBA,GAArBA,cAAqBA;YACrBA,8BAA+BA,GAA/BA,qBAA+BA;YAE/BA,kBAAMA,OAAOA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;gBAChCA,CAACA,CAACA,UAAUA,GAAGA,UAAUA,CAACA;YAC3BA,CAACA,CAACA,CAACA;QACJA,CAACA;QAGSD,yCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEDF,0CAAQA,GAARA;YAECG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,UAAUA,CAACA;YACnCA,KAAKA,GAAGA,KAAKA,GAAGA,CAACA,GAAGA,GAAGA,KAAKA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;YAE1CA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,KAAKA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;QACtDA,CAACA;QAEMH,uCAAeA,GAAtBA,UACCA,UAA2BA,EAC3BA,UAAkBA,EAClBA,OAAeA;YAEfI,EAAEA,CAAAA,CAACA,UAAUA,CAACA,WAAWA,CAACA;gBACzBA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;QACzDA,CAACA;QAEFJ,8BAACA;IAADA,CAACA,AAzCD,EAEQ,mCAAyB,EAuChC;IAzCD;6CAyCC,CAAA"} \ No newline at end of file diff --git a/source/System/Disposable/Utility.js b/source/System/Disposable/Utility.js index 5078a5b9..6eca4e6f 100644 --- a/source/System/Disposable/Utility.js +++ b/source/System/Disposable/Utility.js @@ -1,35 +1,76 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types'], function (require, exports) { + /// + /// var Types_1 = require('../Types'); + /** + * Takes any number of disposables as arguments and attempts to dispose them. + * Any exceptions thrown within a dispose are not trapped. + * Use 'disposeWithoutException' to automatically trap exceptions. + * @param disposables + */ function dispose() { var disposables = []; for (var _i = 0; _i < arguments.length; _i++) { disposables[_i - 0] = arguments[_i]; } + // The disposables arguments array is effectively localized so it's safe. disposeTheseInternal(disposables, false); } exports.dispose = dispose; + /** + * Takes any number of disposables and traps any errors that occur when disposing. + * Returns an array of the exceptions thrown. + * @param disposables + * @returns {any[]} Returns an array of exceptions that occurred, if there are any. + */ function disposeWithoutException() { var disposables = []; for (var _i = 0; _i < arguments.length; _i++) { disposables[_i - 0] = arguments[_i]; } + // The disposables arguments array is effectively localized so it's safe. return disposeTheseInternal(disposables, true); } exports.disposeWithoutException = disposeWithoutException; + /** + * Takes an array of disposable objects and ensures they are disposed. + * @param disposables + * @param trapExceptions If true, prevents exceptions from being thrown when disposing. + * @returns {any[]} If 'trapExceptions' is true, returns an array of exceptions that occurred, if there are any. + */ function disposeThese(disposables, trapExceptions) { return disposables && disposables.length ? disposeTheseInternal(disposables.slice(), trapExceptions) : null; } exports.disposeThese = disposeThese; + /** + * Just like in C# this 'using' function will ensure the passed disposable is disposed when the closure has finished. + * + * Usage: + * ```typescript + * using(new DisposableObject(),(myObj)=>{ + * // do work with myObj + * }); + * // myObj automatically has it's dispose method called. + * ``` + * + * @param disposable Object to be disposed. + * @param closure Function call to execute. + * @returns {TReturn} Returns whatever the closure's return value is. + */ function using(disposable, closure) { try { return closure(disposable); @@ -39,6 +80,10 @@ } } exports.using = using; + /** + * This private function makes disposing more robust for when there's no type checking. + * If trapExceptions is 'true' it catches and returns any exception instead of throwing. + */ function disposeSingle(disposable, trapExceptions) { if (Types_1.default.of(disposable).member('dispose').isFunction) { if (trapExceptions) { @@ -54,6 +99,9 @@ } return null; } + /** + * This dispose method assumes it's working on a local copy and is unsafe for external use. + */ function disposeTheseInternal(disposables, trapExceptions, index) { if (index === void 0) { index = 0; } var exceptions; @@ -78,9 +126,12 @@ } finally { if (!success && index + 1 < len) { + /* If code is 'continued' by the debugger, + * need to ensure the rest of the disposables are cared for. */ disposeTheseInternal(disposables, false, index + 1); } } + // Just in case... Should never happen, but asserts the intention. if (!success) break; } diff --git a/source/System/Disposable/Utility.js.map b/source/System/Disposable/Utility.js.map index c978a951..50a45780 100644 --- a/source/System/Disposable/Utility.js.map +++ b/source/System/Disposable/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,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":["dispose","disposeWithoutException","disposeThese","using","disposeSingle","disposeTheseInternal"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Events/EventDispatcher.js b/source/System/Events/EventDispatcher.js index 86d6065a..b3f8501f 100644 --- a/source/System/Events/EventDispatcher.js +++ b/source/System/Events/EventDispatcher.js @@ -1,17 +1,23 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], function (require, exports) { + /// + /// var shallowCopy_1 = require('../Utility/shallowCopy'); var DisposableBase_1 = require('../Disposable/DisposableBase'); var AU = require('../Collections/Array/Utility'); @@ -31,7 +37,9 @@ var __extends = (this && this.__extends) || function (d, b) { _.listener = listener; _.useCapture = useCapture; _.priority = priority; + // _.useWeakReference = useWeakReference; } + // useWeakReference: boolean; EventDispatcherEntry.prototype.dispose = function () { this.listener = null; }; @@ -57,13 +65,14 @@ var __extends = (this && this.__extends) || function (d, b) { && _.priority == other.priority; }; return EventDispatcherEntry; - }(DisposableBase_1.default)); + })(DisposableBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = EventDispatcherEntry; var EventDispatcher = (function (_super) { __extends(EventDispatcher, _super); function EventDispatcher() { _super.apply(this, arguments); + // When dispatching events, we need a way to prevent recursion when disposing. this._isDisposing = false; } EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) { @@ -72,8 +81,11 @@ var __extends = (this && this.__extends) || function (d, b) { var l = this._listeners; if (!l) this._listeners = l = []; - l.push(new EventDispatcherEntry(type, listener, useCapture, priority)); + // flash/vibe.js means of adding is indiscriminate and will double add listeners... + // we can then avoid double adds by including a 'registerEventListener' method. + l.push(new EventDispatcherEntry(type, listener, useCapture, priority)); //, useWeakReference)); }; + // Allow for simple add once mechanism. EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) { if (useCapture === void 0) { useCapture = false; } if (priority === void 0) { priority = 0; } @@ -116,12 +128,14 @@ var __extends = (this && this.__extends) || function (d, b) { else event = e; var type = event.type; - var entries = []; + // noinspection JSMismatchedCollectionQueryUpdate + var entries = []; //, propagate = true, prevent = false; l.forEach(function (e) { if (e.type == type) entries.push(e); }); if (!entries.length) return false; entries.sort(function (a, b) { return b.priority - a.priority; }); + // For now... Just use simple... entries.forEach(function (entry) { var newEvent = Object.create(Event); shallowCopy_1.default(event, newEvent); @@ -147,7 +161,9 @@ var __extends = (this && this.__extends) || function (d, b) { enumerable: true, configurable: true }); + // Override the public method here since EventDispatcher will end up doing things a bit differently from here on. EventDispatcher.prototype.dispose = function () { + // Having a disposing event can allow for child objects to automatically release themselves when their parent is disposed. var _ = this; if (!_.wasDisposed && !_._isDisposing) { _._isDisposing = true; @@ -162,6 +178,6 @@ var __extends = (this && this.__extends) || function (d, b) { } }; return EventDispatcher; - }(DisposableBase_1.default)); + })(DisposableBase_1.default); }); //# sourceMappingURL=EventDispatcher.js.map \ No newline at end of file diff --git a/source/System/Events/EventDispatcher.js.map b/source/System/Events/EventDispatcher.js.map index 5de21a33..d2e6c874 100644 --- a/source/System/Events/EventDispatcher.js.map +++ b/source/System/Events/EventDispatcher.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["EventDispatcher.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["EventDispatcher.ts"],"names":["EventDispatcherEntry","EventDispatcherEntry.constructor","EventDispatcherEntry.dispose","EventDispatcherEntry.wasDisposed","EventDispatcherEntry.matches","EventDispatcherEntry.equals","EventDispatcher","EventDispatcher.constructor","EventDispatcher.addEventListener","EventDispatcher.registerEventListener","EventDispatcher.hasEventListener","EventDispatcher.removeEventListener","EventDispatcher.dispatchEvent","EventDispatcher.DISPOSING","EventDispatcher.DISPOSED","EventDispatcher.isDisposing","EventDispatcher.dispose"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Exception.js b/source/System/Exception.js index 0d3df332..951828ef 100644 --- a/source/System/Exception.js +++ b/source/System/Exception.js @@ -1,14 +1,30 @@ -(function (factory) { +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports"], function (require, exports) { + /// + /// var NAME = 'Exception'; + /** + * Represents errors that occur during application execution. + */ var Exception = (function () { + /** + * 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. + * @param message + * @param innerException + * @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. + */ function Exception(message, innerException, beforeSealing) { if (message === void 0) { message = null; } if (innerException === void 0) { innerException = null; } @@ -18,16 +34,30 @@ _.data = {}; if (innerException) _.data['innerException'] = innerException; + /* Originally intended to use 'get' accessors for properties, + * But debuggers don't display these readily yet. + * Object.freeze has to be used carefully, but will prevent overriding values. + */ if (beforeSealing) beforeSealing(_); Object.freeze(_); } + /** + * A string representation of the error type. + * The default is 'Error'. + */ Exception.prototype.getName = function () { return NAME; }; + /** + * The string representation of the Exception instance. + */ Exception.prototype.toString = function () { var _ = this, m = _.message; m = m ? (': ' + m) : ''; return '[' + _.name + m + ']'; }; + /** + * Clears the data object. + */ Exception.prototype.dispose = function () { var data = this.data; for (var k in data) { @@ -36,7 +66,7 @@ } }; return Exception; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Exception; }); diff --git a/source/System/Exception.js.map b/source/System/Exception.js.map index b66185e1..2dd493a9 100644 --- a/source/System/Exception.js.map +++ b/source/System/Exception.js.map @@ -1 +1 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["Exception.ts"],"names":[],"mappings":";;;;;;;;IAKA,YAAY,CAAC;IAMb,IAAM,IAAI,GAAU,WAAW,CAAC;IAKhC;QAeC,mBACQ,OAAqB,EAC5B,cAA2B,EAC3B,aAA6B;YAF7B,uBAA4B,GAA5B,cAA4B;YAC5B,8BAA2B,GAA3B,qBAA2B;YADpB,YAAO,GAAP,OAAO,CAAc;YAI5B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YACZ,EAAE,CAAA,CAAC,cAAc,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;YAO3C,EAAE,CAAA,CAAC,aAAa,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QASS,2BAAO,GAAjB,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAKhB,4BAAQ,GAAR;YAEC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAExB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QAC/B,CAAC;QAKD,2BAAO,GAAP;YAEC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,GAAG,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;gBACA,EAAE,CAAA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QACF,gBAAC;IAAD,CAAC,AApED,IAoEC;IApED;+BAoEC,CAAA"} \ No newline at end of file +{"version":3,"file":"Exception.js","sourceRoot":"","sources":["Exception.ts"],"names":["Exception","Exception.constructor","Exception.getName","Exception.toString","Exception.dispose"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,gEAAgE;IAChE,kDAAkD;IAGlD,IAAM,IAAI,GAAU,WAAW,CAAC;IAEhC;;OAEG;IACH;QASCA;;;;;WAKGA;QACHA,mBACQA,OAAqBA,EAC5BA,cAA2BA,EAC3BA,aAA6BA;YAF7BC,uBAA4BA,GAA5BA,cAA4BA;YAC5BA,8BAA2BA,GAA3BA,qBAA2BA;YADpBA,YAAOA,GAAPA,OAAOA,CAAcA;YAI5BA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,CAACA;YACrBA,CAACA,CAACA,IAAIA,GAAGA,EAAEA,CAACA;YACZA,EAAEA,CAAAA,CAACA,cAAcA,CAACA;gBACjBA,CAACA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,GAAGA,cAAcA,CAACA;YAE3CA;;;eAGGA;YAEHA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;gBAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;QAClBA,CAACA;QAKDD;;;WAGGA;QACOA,2BAAOA,GAAjBA,cACEE,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;QAEhBF;;WAEGA;QACHA,4BAAQA,GAARA;YAECG,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAGA,CAACA,CAACA,OAAOA,CAACA;YAC5BA,CAACA,GAAGA,CAACA,GAAGA,CAACA,IAAIA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;YAExBA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;QAC/BA,CAACA;QAEDH;;WAEGA;QACHA,2BAAOA,GAAPA;YAECI,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;YACrBA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAClBA,CAACA;gBACAA,EAAEA,CAAAA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA;oBACzBA,OAAOA,IAAIA,CAACA,CAACA,CAACA,CAACA;YACjBA,CAACA;QACFA,CAACA;QACFJ,gBAACA;IAADA,CAACA,AApED,IAoEC;IApED;+BAoEC,CAAA"} \ No newline at end of file diff --git a/source/System/ExceptionType.js b/source/System/ExceptionType.js index ba994cae..95ba31e3 100644 --- a/source/System/ExceptionType.js +++ b/source/System/ExceptionType.js @@ -1,18 +1,48 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { + /* + * Since the 'Error' type in JavaScript is simply {name:string, message:string}, + * Exception types provide a means for identifying and properly reusing 'name'. + * + * This is mostly for reference. + */ + /** + * An error in the eval() function has occurred. + */ exports.Error = 'Error'; + /** + * An error in the eval() function has occurred. + */ exports.EvalError = 'EvalError'; + /** + * Out of range number value has occurred. + */ exports.RangeError = 'RangeError'; + /** + * An illegal reference has occurred. + */ exports.ReferenceError = 'ReferenceError'; + /** + * A syntax error within code inside the eval() function has occurred. All other syntax errors are not caught by try/catch/finally, and will trigger the default browser error message associated with the error. To catch actual syntax errors, you may use the onerror event. + */ exports.SyntaxError = 'SyntaxError'; + /** + * An error in the expected variable type has occurred. + */ exports.TypeError = 'TypeError'; + /** + * An error when encoding or decoding the URI has occurred (ie: when calling encodeURI()). + */ exports.URIError = 'URIError'; }); //# sourceMappingURL=ExceptionType.js.map \ No newline at end of file diff --git a/source/System/ExceptionType.js.map b/source/System/ExceptionType.js.map index 75ea06b4..24473dc9 100644 --- a/source/System/ExceptionType.js.map +++ b/source/System/ExceptionType.js.map @@ -1 +1 @@ -{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["ExceptionType.ts"],"names":[],"mappings":";;;;;;;;;IAiBA,aAAK,GAAG,OAAO,CAAC;IAMhB,iBAAS,GAAG,WAAW,CAAC;IAMxB,kBAAU,GAAG,YAAY,CAAC;IAO1B,sBAAc,GAAG,gBAAgB,CAAC;IAMlC,mBAAW,GAAG,aAAa,CAAC;IAM5B,iBAAS,GAAG,WAAW,CAAC;IAMxB,gBAAQ,GAAG,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"ExceptionType.js","sourceRoot":"","sources":["ExceptionType.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH;;;;;OAKG;IAGH;;OAEG;IAEH,aAAK,GAAG,OAAO,CAAC;IAEhB;;OAEG;IAEH,iBAAS,GAAG,WAAW,CAAC;IAExB;;OAEG;IAEH,kBAAU,GAAG,YAAY,CAAC;IAG1B;;OAEG;IAEH,sBAAc,GAAG,gBAAgB,CAAC;IAElC;;OAEG;IAEH,mBAAW,GAAG,aAAa,CAAC;IAE5B;;OAEG;IAEH,iBAAS,GAAG,WAAW,CAAC;IAExB;;OAEG;IAEH,gBAAQ,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/source/System/Exceptions/ArgumentException.js b/source/System/Exceptions/ArgumentException.js index b963409e..4df77ea3 100644 --- a/source/System/Exceptions/ArgumentException.js +++ b/source/System/Exceptions/ArgumentException.js @@ -1,22 +1,28 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './SystemException', '../Text/Utility'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './SystemException', '../Text/Utility'], function (require, exports) { var SystemException_1 = require('./SystemException'); var Utility_1 = require('../Text/Utility'); var NAME = 'ArgumentException'; var ArgumentException = (function (_super) { __extends(ArgumentException, _super); + // For simplicity and consistency, lets stick with 1 signature. function ArgumentException(paramName, message, innerException, beforeSealing) { if (message === void 0) { message = null; } if (innerException === void 0) { innerException = null; } @@ -35,7 +41,7 @@ var __extends = (this && this.__extends) || function (d, b) { return '[' + _.name + ': ' + _.message + ']'; }; return ArgumentException; - }(SystemException_1.default)); + })(SystemException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentException; }); diff --git a/source/System/Exceptions/ArgumentException.js.map b/source/System/Exceptions/ArgumentException.js.map index ef44b9e0..18172d00 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":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAIb,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,wBAAmB,iBAAiB,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,mBAAmB,CAAC;IAExC;QACgC,qCAAe;QAM9C,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;YAEnD,kBAAM,cAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,cAAc,EAAE,UAAC,CAAC;gBAC3C,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;QAED,oCAAQ,GAAR;YAEC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;QAC9C,CAAC;QAEF,wBAAC;IAAD,CAAC,AAjCD,CACgC,yBAAe,GAgC9C;IAjCD;uCAiCC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentException.js","sourceRoot":"","sources":["ArgumentException.ts"],"names":["ArgumentException","ArgumentException.constructor","ArgumentException.getName","ArgumentException.toString"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAItE,gCAA4B,mBAAmB,CAAC,CAAA;IAChD,wBAAmB,iBAAiB,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,mBAAmB,CAAC;IAExC;QACgCA,qCAAeA;QAK9CA,+DAA+DA;QAC/DA,2BACCA,SAAgBA,EAChBA,OAAqBA,EACrBA,cAA2BA,EAC3BA,aAA6BA;YAF7BC,uBAAqBA,GAArBA,cAAqBA;YACrBA,8BAA2BA,GAA3BA,qBAA2BA;YAG3BA,IAAIA,EAAEA,GAAGA,SAASA,GAAGA,CAACA,GAAGA,GAAGA,SAASA,GAAGA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;YAEnDA,kBAAMA,cAAIA,CAACA,EAAEA,GAAGA,OAAOA,CAACA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;gBAC3CA,CAACA,CAACA,SAASA,GAAGA,SAASA,CAACA;gBACxBA,EAAEA,CAAAA,CAACA,aAAaA,CAACA;oBAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;YACpCA,CAACA,CAACA,CAACA;QACJA,CAACA;QAGSD,mCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEDF,oCAAQA,GAARA;YAECG,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,GAAGA,GAAGA,CAACA;QAC9CA,CAACA;QAEFH,wBAACA;IAADA,CAACA,AAjCD,EACgC,yBAAe,EAgC9C;IAjCD;uCAiCC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/ArgumentNullException.js b/source/System/Exceptions/ArgumentNullException.js index 406f79e5..57322cfe 100644 --- a/source/System/Exceptions/ArgumentNullException.js +++ b/source/System/Exceptions/ArgumentNullException.js @@ -1,17 +1,22 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './ArgumentException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './ArgumentException'], function (require, exports) { var ArgumentException_1 = require('./ArgumentException'); var NAME = 'ArgumentNullException'; var ArgumentNullException = (function (_super) { @@ -25,7 +30,7 @@ var __extends = (this && this.__extends) || function (d, b) { return NAME; }; return ArgumentNullException; - }(ArgumentException_1.default)); + })(ArgumentException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentNullException; }); diff --git a/source/System/Exceptions/ArgumentNullException.js.map b/source/System/Exceptions/ArgumentNullException.js.map index 49433a52..e3a0f1ef 100644 --- a/source/System/Exceptions/ArgumentNullException.js.map +++ b/source/System/Exceptions/ArgumentNullException.js.map @@ -1 +1 @@ -{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["ArgumentNullException.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAEb,kCAA8B,qBAAqB,CAAC,CAAA;IAGpD,IAAM,IAAI,GAAU,uBAAuB,CAAC;IAE5C;QACoC,yCAAiB;QAEpD,+BACC,SAAgB,EAChB,OAAmB,EACnB,cAA2B;YAD3B,uBAAmB,GAAnB,YAAmB;YACnB,8BAA2B,GAA3B,qBAA2B;YAE3B,kBAAM,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3C,CAAC;QAES,uCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,4BAAC;IAAD,CAAC,AAhBD,CACoC,2BAAiB,GAepD;IAhBD;2CAgBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentNullException.js","sourceRoot":"","sources":["ArgumentNullException.ts"],"names":["ArgumentNullException","ArgumentNullException.constructor","ArgumentNullException.getName"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,kCAA8B,qBAAqB,CAAC,CAAA;IAGpD,IAAM,IAAI,GAAU,uBAAuB,CAAC;IAE5C;QACoCA,yCAAiBA;QAEpDA,+BACCA,SAAgBA,EAChBA,OAAmBA,EACnBA,cAA2BA;YAD3BC,uBAAmBA,GAAnBA,YAAmBA;YACnBA,8BAA2BA,GAA3BA,qBAA2BA;YAE3BA,kBAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,CAACA,CAACA;QAC3CA,CAACA;QAESD,uCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEFF,4BAACA;IAADA,CAACA,AAhBD,EACoC,2BAAiB,EAepD;IAhBD;2CAgBC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/ArgumentOutOfRangeException.js b/source/System/Exceptions/ArgumentOutOfRangeException.js index cc202fc2..3c835f99 100644 --- a/source/System/Exceptions/ArgumentOutOfRangeException.js +++ b/source/System/Exceptions/ArgumentOutOfRangeException.js @@ -1,19 +1,23 @@ +/* + * @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 + */ 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './ArgumentException'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", './ArgumentException'], function (require, exports) { var ArgumentException_1 = require('./ArgumentException'); - 'use strict'; + 'use strict'; // For compatibility with (let, const, function, class); var NAME = 'ArgumentOutOfRangeException'; var ArgumentOutOfRangeException = (function (_super) { __extends(ArgumentOutOfRangeException, _super); @@ -28,7 +32,7 @@ var __extends = (this && this.__extends) || function (d, b) { return NAME; }; return ArgumentOutOfRangeException; - }(ArgumentException_1.default)); + })(ArgumentException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArgumentOutOfRangeException; }); diff --git a/source/System/Exceptions/ArgumentOutOfRangeException.js.map b/source/System/Exceptions/ArgumentOutOfRangeException.js.map index fd1f166a..70930975 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":";;;;;;;;;;;;;;IAQA,kCAA8B,qBAAqB,CAAC,CAAA;IACpD,YAAY,CAAC;IAGb,IAAM,IAAI,GAAU,6BAA6B,CAAC;IAElD;QAC0C,+CAAiB;QAI1D,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,OAAO,EAAE,cAAc,EAAE,UAAC,CAAC;gBAC3C,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,AAtBD,CAC0C,2BAAiB,GAqB1D;IAtBD;iDAsBC,CAAA"} \ No newline at end of file +{"version":3,"file":"ArgumentOutOfRangeException.js","sourceRoot":"","sources":["ArgumentOutOfRangeException.ts"],"names":["ArgumentOutOfRangeException","ArgumentOutOfRangeException.constructor","ArgumentOutOfRangeException.getName"],"mappings":"AAAA;;;;GAIG;;;;;;;;;;;;;;IAIH,kCAA8B,qBAAqB,CAAC,CAAA;IACpD,YAAY,CAAC,CAAC,wDAAwD;IAGtE,IAAM,IAAI,GAAU,6BAA6B,CAAC;IAElD;QAC0CA,+CAAiBA;QAI1DA,qCACCA,SAAgBA,EAChBA,WAAiCA,EACjCA,OAAoBA,EACpBA,cAA+BA;YAD/BC,uBAAoBA,GAApBA,aAAoBA;YACpBA,8BAA+BA,GAA/BA,qBAA+BA;YAE/BA,kBAAMA,SAASA,EAAEA,OAAOA,EAAEA,cAAcA,EAAEA,UAACA,CAACA;gBAC3CA,CAACA,CAACA,WAAWA,GAAGA,WAAWA,CAACA;YAC7BA,CAACA,CAACA,CAACA;QACJA,CAACA;QAGSD,6CAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEFF,kCAACA;IAADA,CAACA,AAtBD,EAC0C,2BAAiB,EAqB1D;IAtBD;iDAsBC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/InvalidOperationException.js b/source/System/Exceptions/InvalidOperationException.js index 4a7f7cc6..e078241b 100644 --- a/source/System/Exceptions/InvalidOperationException.js +++ b/source/System/Exceptions/InvalidOperationException.js @@ -1,17 +1,22 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './SystemException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './SystemException'], function (require, exports) { var SystemException_1 = require('./SystemException'); var NAME = 'InvalidOperationException'; var InvalidOperationException = (function (_super) { @@ -23,7 +28,7 @@ var __extends = (this && this.__extends) || function (d, b) { return NAME; }; return InvalidOperationException; - }(SystemException_1.default)); + })(SystemException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = InvalidOperationException; }); diff --git a/source/System/Exceptions/InvalidOperationException.js.map b/source/System/Exceptions/InvalidOperationException.js.map index 179ad102..d31495ed 100644 --- a/source/System/Exceptions/InvalidOperationException.js.map +++ b/source/System/Exceptions/InvalidOperationException.js.map @@ -1 +1 @@ -{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["InvalidOperationException.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAEb,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,IAAM,IAAI,GAAU,2BAA2B,CAAC;IAEhD;QACwC,6CAAe;QADvD;YACwC,8BAAe;QAOvD,CAAC;QALU,2CAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,gCAAC;IAAD,CAAC,AARD,CACwC,yBAAe,GAOtD;IARD;+CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"InvalidOperationException.js","sourceRoot":"","sources":["InvalidOperationException.ts"],"names":["InvalidOperationException","InvalidOperationException.constructor","InvalidOperationException.getName"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,IAAM,IAAI,GAAU,2BAA2B,CAAC;IAEhD;QACwCA,6CAAeA;QADvDA;YACwCC,8BAAeA;QAOvDA,CAACA;QALUD,2CAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEFF,gCAACA;IAADA,CAACA,AARD,EACwC,yBAAe,EAOtD;IARD;+CAQC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/NotImplementedException.js b/source/System/Exceptions/NotImplementedException.js index f3970d1c..a5477e25 100644 --- a/source/System/Exceptions/NotImplementedException.js +++ b/source/System/Exceptions/NotImplementedException.js @@ -1,17 +1,22 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './SystemException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './SystemException'], function (require, exports) { var SystemException_1 = require('./SystemException'); var NAME = 'NotImplementedException'; var NotImplementedException = (function (_super) { @@ -23,7 +28,7 @@ var __extends = (this && this.__extends) || function (d, b) { return NAME; }; return NotImplementedException; - }(SystemException_1.default)); + })(SystemException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = NotImplementedException; }); diff --git a/source/System/Exceptions/NotImplementedException.js.map b/source/System/Exceptions/NotImplementedException.js.map index f7ede22c..364ca2d0 100644 --- a/source/System/Exceptions/NotImplementedException.js.map +++ b/source/System/Exceptions/NotImplementedException.js.map @@ -1 +1 @@ -{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["NotImplementedException.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAEb,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,IAAM,IAAI,GAAU,yBAAyB,CAAC;IAE9C;QACsC,2CAAe;QADrD;YACsC,8BAAe;QAOrD,CAAC;QALU,yCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAEF,8BAAC;IAAD,CAAC,AARD,CACsC,yBAAe,GAOpD;IARD;6CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NotImplementedException.js","sourceRoot":"","sources":["NotImplementedException.ts"],"names":["NotImplementedException","NotImplementedException.constructor","NotImplementedException.getName"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,IAAM,IAAI,GAAU,yBAAyB,CAAC;IAE9C;QACsCA,2CAAeA;QADrDA;YACsCC,8BAAeA;QAOrDA,CAACA;QALUD,yCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEFF,8BAACA;IAADA,CAACA,AARD,EACsC,yBAAe,EAOpD;IARD;6CAQC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/NullReferenceException.js b/source/System/Exceptions/NullReferenceException.js index 0f8cf6a8..effc3a10 100644 --- a/source/System/Exceptions/NullReferenceException.js +++ b/source/System/Exceptions/NullReferenceException.js @@ -1,17 +1,22 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './SystemException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './SystemException'], function (require, exports) { var SystemException_1 = require('./SystemException'); var NAME = 'NullReferenceException'; var NullReferenceException = (function (_super) { @@ -23,7 +28,7 @@ var __extends = (this && this.__extends) || function (d, b) { return NAME; }; return NullReferenceException; - }(SystemException_1.default)); + })(SystemException_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = NullReferenceException; }); diff --git a/source/System/Exceptions/NullReferenceException.js.map b/source/System/Exceptions/NullReferenceException.js.map index 2d61e09b..40670711 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":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAEb,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,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,yBAAe,GAOnD;IARD;4CAQC,CAAA"} \ No newline at end of file +{"version":3,"file":"NullReferenceException.js","sourceRoot":"","sources":["NullReferenceException.ts"],"names":["NullReferenceException","NullReferenceException.constructor","NullReferenceException.getName"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,gCAA4B,mBAAmB,CAAC,CAAA;IAGhD,IAAM,IAAI,GAAU,wBAAwB,CAAC;IAE7C;QACqCA,0CAAeA;QADpDA;YACqCC,8BAAeA;QAOpDA,CAACA;QALUD,wCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QAEFF,6BAACA;IAADA,CAACA,AARD,EACqC,yBAAe,EAOnD;IARD;4CAQC,CAAA"} \ No newline at end of file diff --git a/source/System/Exceptions/SystemException.js b/source/System/Exceptions/SystemException.js index 9b486698..f38aa505 100644 --- a/source/System/Exceptions/SystemException.js +++ b/source/System/Exceptions/SystemException.js @@ -1,17 +1,22 @@ +/* + * @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.systemexception%28v=vs.110%29.aspx + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Exception'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Exception'], function (require, exports) { var Exception_1 = require('../Exception'); var NAME = 'SystemException'; var SystemException = (function (_super) { @@ -19,11 +24,20 @@ var __extends = (this && this.__extends) || function (d, b) { function SystemException() { _super.apply(this, arguments); } + /* + constructor( + message:string = null, + innerException:Error = null, + beforeSealing?:(ex:any)=>void) + { + super(message, innerException, beforeSealing); + } + */ SystemException.prototype.getName = function () { return NAME; }; return SystemException; - }(Exception_1.default)); + })(Exception_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SystemException; }); diff --git a/source/System/Exceptions/SystemException.js.map b/source/System/Exceptions/SystemException.js.map index d5ff55df..23300efc 100644 --- a/source/System/Exceptions/SystemException.js.map +++ b/source/System/Exceptions/SystemException.js.map @@ -1 +1 @@ -{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["SystemException.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAKA,YAAY,CAAC;IAEb,0BAAsB,cAAc,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,iBAAiB,CAAC;IAEtC;QAC8B,mCAAS;QADvC;YAC8B,8BAAS;QAgBvC,CAAC;QAJU,iCAAO,GAAjB;YAEC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACF,sBAAC;IAAD,CAAC,AAjBD,CAC8B,mBAAS,GAgBtC;IAjBD;qCAiBC,CAAA"} \ No newline at end of file +{"version":3,"file":"SystemException.js","sourceRoot":"","sources":["SystemException.ts"],"names":["SystemException","SystemException.constructor","SystemException.getName"],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,0BAAsB,cAAc,CAAC,CAAA;IAGrC,IAAM,IAAI,GAAU,iBAAiB,CAAC;IAEtC;QAC8BA,mCAASA;QADvCA;YAC8BC,8BAASA;QAgBvCA,CAACA;QAdDD;;;;;;;;UAQEA;QAESA,iCAAOA,GAAjBA;YAECE,MAAMA,CAACA,IAAIA,CAACA;QACbA,CAACA;QACFF,sBAACA;IAADA,CAACA,AAjBD,EAC8B,mBAAS,EAgBtC;IAjBD;qCAiBC,CAAA"} \ No newline at end of file diff --git a/source/System/Functions.js b/source/System/Functions.js index 919ebb0c..0d72789d 100644 --- a/source/System/Functions.js +++ b/source/System/Functions.js @@ -1,29 +1,68 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports"], function (require, exports) { + /** + * Can be used statically or extended for varying different reusable function signatures. + */ var Functions = (function () { function Functions() { } + /** + * A typed method for use with simple selection of the parameter. + * @returns {T} + */ Functions.prototype.Identity = function (x) { return x; }; + /** + * Returns true. + * @returns {boolean} + */ Functions.prototype.True = function () { return true; }; + /** + * Returns false. + * @returns {boolean} + */ Functions.prototype.False = function () { return false; }; + /** + * Does nothing. + */ Functions.prototype.Blank = function () { }; return Functions; - }()); + })(); var rootFunctions = new Functions(); + // Expose static versions. var Functions; (function (Functions) { + /** + * A typed method for use with simple selection of the parameter. + * @returns {boolean} + */ Functions.Identity = rootFunctions.Identity; + /** + * Returns false. + * @returns {boolean} + */ Functions.True = rootFunctions.True; + /** + * Returns false. + * @returns {boolean} + */ Functions.False = rootFunctions.False; + /** + * Does nothing. + */ Functions.Blank = rootFunctions.Blank; })(Functions || (Functions = {})); + // Make this read only. Should still allow for sub-classing since extra methods are added to prototype. Object.freeze(Functions); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Functions; diff --git a/source/System/Functions.js.map b/source/System/Functions.js.map index a366fbee..284e8649 100644 --- a/source/System/Functions.js.map +++ b/source/System/Functions.js.map @@ -1 +1 @@ -{"version":3,"file":"Functions.js","sourceRoot":"","sources":["Functions.ts"],"names":[],"mappings":";;;;;;;;IAIA,YAAY,CAAC;IAKb;QAAA;QA6BA,CAAC;QAtBA,4BAAQ,GAAR,UAAY,CAAG,IACb,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAMb,wBAAI,GAAJ,cACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAMhB,yBAAK,GAAL,cACE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAKjB,yBAAK,GAAL,cACE,CAAC;QACJ,gBAAC;IAAD,CAAC,AA7BD,IA6BC;IAED,IAAM,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;IAIhD,IAAO,SAAS,CA4Bf;IA5BD,WAAO,SAAS,EAChB,CAAC;QAKW,kBAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;QAMf,cAAI,GACZ,aAAa,CAAC,IAAI,CAAC;QAMX,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;QAKZ,eAAK,GACb,aAAa,CAAC,KAAK,CAAC;IACxB,CAAC,EA5BM,SAAS,KAAT,SAAS,QA4Bf;IAGD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzB;sBAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"Functions.js","sourceRoot":"","sources":["Functions.ts"],"names":["Functions","Functions.constructor","Functions.Identity","Functions.True","Functions.False","Functions.Blank"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE;;OAEG;IACH;QAAAA;QA6BAC,CAACA;QA1BAD;;;WAGGA;QACHA,4BAAQA,GAARA,UAAYA,CAAGA,IACbE,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;QAEbF;;;WAGGA;QACHA,wBAAIA,GAAJA,cACEG,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;QAEhBH;;;WAGGA;QACHA,yBAAKA,GAALA,cACEI,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA;QAEjBJ;;WAEGA;QACHA,yBAAKA,GAALA,cACEK,CAACA;QACJL,gBAACA;IAADA,CAACA,AA7BD,IA6BC;IAED,IAAM,aAAa,GAAa,IAAI,SAAS,EAAE,CAAC;IAEhD,0BAA0B;IAE1B,IAAO,SAAS,CA4Bf;IA5BD,WAAO,SAAS,EAChB,CAAC;QACAA;;;WAGGA;QACQA,kBAAQA,GAChBA,aAAaA,CAACA,QAAQA,CAACA;QAE1BA;;;WAGGA;QACQA,cAAIA,GACZA,aAAaA,CAACA,IAAIA,CAACA;QAEtBA;;;WAGGA;QACQA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;QAEvBA;;WAEGA;QACQA,eAAKA,GACbA,aAAaA,CAACA,KAAKA,CAACA;IACxBA,CAACA,EA5BM,SAAS,KAAT,SAAS,QA4Bf;IAED,wGAAwG;IACxG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzB;sBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/source/System/Integer.js b/source/System/Integer.js index 29f513b1..a95a6762 100644 --- a/source/System/Integer.js +++ b/source/System/Integer.js @@ -1,12 +1,15 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './Types', './Exceptions/ArgumentException'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", './Types', './Exceptions/ArgumentException'], function (require, exports) { var Types_1 = require('./Types'); var ArgumentException_1 = require('./Exceptions/ArgumentException'); function Integer(n) { @@ -17,6 +20,17 @@ function r(max) { return (Math.random() * max) | 0; } + /** + * Returns a random integer from zero to the max. + * Negative numbers are allowed. + * + * Examples:
+ * ```Integer.random(1)``` will return 0 or 1.
+ * ```Integer.random(-2)``` will return 0, -1, or -2.
+ * + * @param max + * @returns {number} + */ function random(max) { assert(max, 'max'); if (max == 0) @@ -27,6 +41,17 @@ Integer.random = random; var random; (function (random) { + /** + * Returns a random integer from zero up to the boundary value. + * Negative and fractional numbers are allowed. + * + * Example:
+ * ```Integer.random(-2)``` will return 0, or -1.
+ * ```Integer.random(5)``` will return 0, 1, 2, 3 or 4.
+ * + * @param boundary + * @returns {number} + */ function under(boundary) { return r(boundary); } diff --git a/source/System/Integer.js.map b/source/System/Integer.js.map index 90dd8cd5..53ceac12 100644 --- a/source/System/Integer.js.map +++ b/source/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"file":"Integer.js","sourceRoot":"","sources":["Integer.ts"],"names":[],"mappings":";;;;;;;;;IAKA,sBAAiB,SAAS,CAAC,CAAA;IAC3B,kCAA8B,gCAAgC,CAAC,CAAA;IAE/D,iBAAiB,CAAQ;QAExB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED,IAAO,OAAO,CA8Db;IA9DD,WAAO,OAAO,EACd,CAAC;QAEA,WAAW,GAAU;YACpB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAaD,gBAAuB,GAAU;YAEhC,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;YAClB,EAAE,CAAA,CAAC,GAAG,IAAE,CAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YACpB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QANe,cAAM,SAMrB,CAAA;QAED,IAAc,MAAM,CAmBnB;QAnBD,WAAc,MAAM,EAAC,CAAC;YAarB,eAAsB,QAAe;gBAEpC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC;YAHe,YAAK,QAGpB,CAAA;QAGF,CAAC,EAnBa,MAAM,GAAN,cAAM,KAAN,cAAM,QAmBnB;QAED,YAAmB,CAAQ;YAE1B,MAAM,CAAC,eAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAHe,UAAE,KAGjB,CAAA;QAED,gBAAuB,CAAQ,EAAE,YAAoB;YAEpD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CACN,CAAC;gBACA,MAAM,IAAI,2BAAiB,CAAC,YAAY,IAAI,GAAG,EAAE,qBAAqB,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QARe,cAAM,SAQrB,CAAA;IAEF,CAAC,EA9DM,OAAO,KAAP,OAAO,QA8Db;IAED;sBAAe,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"Integer.js","sourceRoot":"","sources":["Integer.ts"],"names":["Integer","Integer.r","Integer.random","Integer.random.under","Integer.is","Integer.assert"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,sBAAiB,SAAS,CAAC,CAAA;IAC3B,kCAA8B,gCAAgC,CAAC,CAAA;IAE/D,iBAAiB,CAAQ;QAExBA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA;IACdA,CAACA;IAED,IAAO,OAAO,CA8Db;IA9DD,WAAO,OAAO,EACd,CAAC;QAEAA,WAAWA,GAAUA;YACpBC,MAAMA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAEA,GAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;QAChCA,CAACA;QAEDD;;;;;;;;;;WAUGA;QACHA,gBAAuBA,GAAUA;YAEhCE,MAAMA,CAACA,GAAGA,EAACA,KAAKA,CAACA,CAACA;YAClBA,EAAEA,CAAAA,CAACA,GAAGA,IAAEA,CAACA,CAACA;gBAACA,MAAMA,CAACA,CAACA,CAACA;YACpBA,GAAGA,IAAIA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;YACxBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA;QACfA,CAACA;QANeF,cAAMA,SAMrBA,CAAAA;QAEDA,IAAcA,MAAMA,CAmBnBA;QAnBDA,WAAcA,MAAMA,EAACA,CAACA;YAErBE;;;;;;;;;;eAUGA;YACHA,eAAsBA,QAAeA;gBAEpCC,MAAMA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAAAA;YACnBA,CAACA;YAHeD,YAAKA,QAGpBA,CAAAA;QAGFA,CAACA,EAnBaF,MAAMA,GAANA,cAAMA,KAANA,cAAMA,QAmBnBA;QAEDA,YAAmBA,CAAQA;YAE1BI,MAAMA,CAACA,eAAIA,CAACA,QAAQA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,IAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAC9CA,CAACA;QAHeJ,UAAEA,KAGjBA,CAAAA;QAEDA,gBAAuBA,CAAQA,EAAEA,YAAoBA;YAEpDK,IAAIA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA,CAACA;YACdA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;gBACAA,MAAMA,IAAIA,2BAAiBA,CAACA,YAAYA,IAAIA,GAAGA,EAAEA,qBAAqBA,CAACA,CAACA;YACzEA,CAACA;YACDA,MAAMA,CAACA,CAACA,CAACA;QACVA,CAACA;QAReL,cAAMA,SAQrBA,CAAAA;IAEFA,CAACA,EA9DM,OAAO,KAAP,OAAO,QA8Db;IAED;sBAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/source/System/KeyValueExtract.js b/source/System/KeyValueExtract.js new file mode 100644 index 00000000..31452cd1 --- /dev/null +++ b/source/System/KeyValueExtract.js @@ -0,0 +1,60 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { + if (typeof module === 'object' && typeof module.exports === 'object') { + var v = factory(require, exports); if (v !== undefined) module.exports = v; + } + else if (typeof define === 'function' && define.amd) { + define(deps, factory); + } +})(["require", "exports", "./Exceptions/ArgumentException", "./Exceptions/ArgumentNullException"], function (require, exports) { + var ArgumentException_1 = require("./Exceptions/ArgumentException"); + var ArgumentNullException_1 = require("./Exceptions/ArgumentNullException"); + 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.'; + function isKeyValuePair(kvp) { + return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); + } + exports.isKeyValuePair = isKeyValuePair; + function assertKey(key, name) { + if (name === void 0) { name = ITEM; } + assertNotUndefined(key, name + DOT + KEY); + if (key === null) + throw new ArgumentNullException_1.default(name + DOT + KEY); + return key; + } + exports.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.'); + assertKey(tuple[0], name); + } + exports.assertTuple = assertTuple; + function assertNotUndefined(value, name) { + if (value === VOID0) + throw new ArgumentException_1.default(name, CANNOT_BE_UNDEFINED); + return value; + } + exports.assertNotUndefined = assertNotUndefined; + function extractKeyValue(item, to) { + var _ = this, key, value; + if (item instanceof Array) { + assertTuple(item); + key = item[0]; + value = assertNotUndefined(item[1], ITEM_1); + } + else if (isKeyValuePair(item)) { + key = assertKey(item.key); + value = assertNotUndefined(item.value, ITEM_VALUE); + } + else { + throw new ArgumentException_1.default(ITEM, INVALID_KVP_MESSAGE); + } + return to(key, value); + } + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = extractKeyValue; +}); +//# sourceMappingURL=KeyValueExtract.js.map \ No newline at end of file diff --git a/source/System/KeyValueExtract.js.map b/source/System/KeyValueExtract.js.map new file mode 100644 index 00000000..57cf50be --- /dev/null +++ b/source/System/KeyValueExtract.js.map @@ -0,0 +1 @@ +{"version":3,"file":"KeyValueExtract.js","sourceRoot":"","sources":["KeyValueExtract.ts"],"names":["isKeyValuePair","assertKey","assertTuple","assertNotUndefined","extractKeyValue"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/KeyValueExtract.ts b/source/System/KeyValueExtract.ts new file mode 100644 index 00000000..38b96a1d --- /dev/null +++ b/source/System/KeyValueExtract.ts @@ -0,0 +1,77 @@ +/* + * @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"; + +const + VOID0:any = void 0, + DOT:string = '.', + KEY:string = 'key', + VALUE:string = 'value', + ITEM:string = 'item', + ITEM_1:string = ITEM + '[1]', + ITEM_KEY:string = ITEM + DOT + KEY, + ITEM_VALUE:string = ITEM + DOT + VALUE, + INVALID_KVP_MESSAGE:string = 'Invalid type. Must be a KeyValuePair or Tuple of length 2.', + CANNOT_BE_UNDEFINED:string = 'Cannot equal undefined.'; + +export function isKeyValuePair(kvp:any):kvp is IKeyValuePair +{ + return kvp && kvp.hasOwnProperty(KEY) && kvp.hasOwnProperty(VALUE); +} + +export function assertKey(key:TKey, name:string = ITEM):TKey +{ + assertNotUndefined(key, name + DOT + KEY); + if(key===null) + throw new ArgumentNullException(name + DOT + KEY); + + return key; +} + + +export function assertTuple(tuple:IArray, name:string = ITEM):void +{ + if(tuple.length!=2) + throw new ArgumentException(name, 'KeyValuePair tuples must be of length 2.'); + + assertKey(tuple[0], name); +} + + +export function assertNotUndefined(value:T, name:string):T +{ + if(value===VOID0) + throw new ArgumentException(name, CANNOT_BE_UNDEFINED); + + return value; +} + + +export default function extractKeyValue( + item:KeyValuePair, + to:(key:TKey, value:TValue)=>TResult):TResult +{ + + var _ = this, key:TKey, value:TValue; + if(item instanceof Array) + { + assertTuple(item); + key = item[0]; + value = assertNotUndefined(item[1], ITEM_1); + } + else if(isKeyValuePair(item)) + { + key = assertKey(item.key); + value = assertNotUndefined(item.value, ITEM_VALUE); + } + else + { + throw new ArgumentException(ITEM, INVALID_KVP_MESSAGE); + } + + return to(key, value); +} diff --git a/source/System/KeyValuePair.d.ts b/source/System/KeyValuePair.d.ts new file mode 100644 index 00000000..cdfd66d3 --- /dev/null +++ b/source/System/KeyValuePair.d.ts @@ -0,0 +1,17 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ + +interface IKeyValuePair +{ + key: TKey; + value: TValue; +} + +declare type KeyValuePair = IKeyValuePair | [TKey,TValue]; + +interface IStringKeyValuePair extends IKeyValuePair +{ } + +declare type StringKeyValuePair = IStringKeyValuePair | [string,TValue]; diff --git a/source/System/Lazy.js b/source/System/Lazy.js index 373f0c69..6eafc02d 100644 --- a/source/System/Lazy.js +++ b/source/System/Lazy.js @@ -1,17 +1,23 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './Disposable/DisposableBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './Disposable/DisposableBase'], function (require, exports) { + /// + /// var DisposableBase_1 = require('./Disposable/DisposableBase'); var Lazy = (function (_super) { __extends(Lazy, _super); @@ -28,12 +34,14 @@ var __extends = (this && this.__extends) || function (d, b) { configurable: true }); Object.defineProperty(Lazy.prototype, "canReset", { + // Adding a 'resettable' mechanism allows for simply resetting a lazy instead of re-instantiating a new one. get: function () { return !this.wasDisposed && !!(this._closure); }, enumerable: true, configurable: true }); + // Returns true if successfully reset. Lazy.prototype.reset = function (throwIfCannotReset) { var _ = this; if (throwIfCannotReset) @@ -84,7 +92,7 @@ var __extends = (this && this.__extends) || function (d, b) { return this.equals(other) || this.value === other.value; }; return Lazy; - }(DisposableBase_1.default)); + })(DisposableBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Lazy; }); diff --git a/source/System/Lazy.js.map b/source/System/Lazy.js.map index 325e3bae..e77e7191 100644 --- a/source/System/Lazy.js.map +++ b/source/System/Lazy.js.map @@ -1 +1 @@ -{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["Lazy.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAIA,YAAY,CAAC;IAIb,+BAA2B,6BAA6B,CAAC,CAAA;IAEzD;QACsB,wBAAc;QAMnC,cAAoB,QAAgB;YAEnC,iBAAO,CAAC;YAFW,aAAQ,GAAR,QAAQ,CAAQ;YAGnC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACrC,CAAC;QAED,sBAAI,gCAAc;iBAAlB;gBAEC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YAC7B,CAAC;;;WAAA;QAGD,sBAAI,0BAAQ;iBAAZ;gBAEC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;;;WAAA;QAGD,oBAAK,GAAL,UAAM,kBAA2B;YAChC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,EAAE,CAAA,CAAC,kBAAkB,CAAC;gBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;YAErB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChB,EAAE,CAAA,CAAC,kBAAkB,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;gBACpF,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;YACD,IAAI,CAAC,CAAC;gBACL,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,sBAAI,uBAAK;iBAAT;gBAEC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;;;WAAA;QAED,uBAAQ,GAAR,UAAS,qBAA8B;YAEtC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEb,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,CAAC;gBACJ,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBACb,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;oBACzB,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;YACF,CAAC;oBACO,CAAC;gBACR,EAAE,CAAA,CAAC,qBAAqB,CAAC;oBACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjB,CAAC;QAGS,yBAAU,GAApB;YACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,qBAAM,GAAN,UAAO,KAAa;YAEnB,MAAM,CAAC,IAAI,IAAE,KAAK,CAAC;QACpB,CAAC;QAED,0BAAW,GAAX,UAAY,KAAa;YAExB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC;QACvD,CAAC;QACF,WAAC;IAAD,CAAC,AAtFD,CACsB,wBAAc,GAqFnC;IAtFD;0BAsFC,CAAA"} \ No newline at end of file +{"version":3,"file":"Lazy.js","sourceRoot":"","sources":["Lazy.ts"],"names":["Lazy","Lazy.constructor","Lazy.isValueCreated","Lazy.canReset","Lazy.reset","Lazy.value","Lazy.getValue","Lazy._onDispose","Lazy.equals","Lazy.valueEquals"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Observable/ObservableNodeBase.js b/source/System/Observable/ObservableNodeBase.js index 046d3862..29a1b359 100644 --- a/source/System/Observable/ObservableNodeBase.js +++ b/source/System/Observable/ObservableNodeBase.js @@ -1,18 +1,27 @@ +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './SubscribableBase'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './SubscribableBase'], function (require, exports) { + /// + /// var SubscribableBase_1 = require('./SubscribableBase'); + // Can be used as a base class, mixin, or simply reference on how to implement the pattern. var ObservableNodeBase = (function (_super) { __extends(ObservableNodeBase, _super); function ObservableNodeBase() { @@ -28,19 +37,20 @@ var __extends = (this && this.__extends) || function (d, b) { processAction(this._unsubscribeAll(true), function (s) { s.onCompleted && s.onCompleted(); }); }; return ObservableNodeBase; - }(SubscribableBase_1.default)); + })(SubscribableBase_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ObservableNodeBase; var OBSERVER_ERROR_MESSAGE = 'One or more observers had errors when attempting to pass information.'; function processAction(observers, handler) { var observersErrors = null; - for (var _i = 0, observers_1 = observers; _i < observers_1.length; _i++) { - var s = observers_1[_i]; + for (var _i = 0; _i < observers.length; _i++) { + var s = observers[_i]; try { handler(s); } catch (ex) { observersErrors = observersErrors || []; + // Don't let one error prevent others from recieving information. observersErrors.push({ observer: s, ex: ex }); } } diff --git a/source/System/Observable/ObservableNodeBase.js.map b/source/System/Observable/ObservableNodeBase.js.map index 485b6244..5c080090 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":";;;;;;;;;;;;;IAMA,YAAY,CAAC;IAIb,iCAA6B,oBAAoB,CAAC,CAAA;IAGlD;QAEQ,sCAA8B;QAFtC;YAEQ,8BAA8B;QA0BtC,CAAC;QAvBA,mCAAM,GAAN,UAAO,KAAO;YAEb,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;QAED,oCAAO,GAAP,UAAQ,KAAW;YAElB,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;QAED,wCAAW,GAAX;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,yBAAC;IAAD,CAAC,AA5BD,CAEQ,0BAAgB,GA0BvB;IA5BD;wCA4BC,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"} \ No newline at end of file +{"version":3,"file":"ObservableNodeBase.js","sourceRoot":"","sources":["ObservableNodeBase.ts"],"names":["ObservableNodeBase","ObservableNodeBase.constructor","ObservableNodeBase.onNext","ObservableNodeBase.onError","ObservableNodeBase.onCompleted","processAction"],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAEtE,qCAAqC;IACrC,uCAAuC;IACvC,iCAA6B,oBAAoB,CAAC,CAAA;IAElD,2FAA2F;IAC3F;QAEQA,sCAA8BA;QAFtCA;YAEQC,8BAA8BA;QA0BtCA,CAACA;QAvBAD,mCAAMA,GAANA,UAAOA,KAAOA;YAEbE,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,UAAAA,CAACA,IAAMA,CAACA,CAACA,MAAMA,IAAIA,CAACA,CAACA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACrCA,CAACA;QACHA,CAACA;QAEDF,oCAAOA,GAAPA,UAAQA,KAAWA;YAElBG,aAAaA,CACZA,IAAIA,CAACA,eAAeA,EAAEA,EACtBA,UAAAA,CAACA,IAAMA,CAACA,CAACA,OAAOA,IAAIA,CAACA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CACvCA,CAACA;QACHA,CAACA;QAEDH,wCAAWA,GAAXA;YAECI,aAAaA,CACZA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,EAC1BA,UAAAA,CAACA,IAAMA,CAACA,CAACA,WAAWA,IAAIA,CAACA,CAACA,WAAWA,EAAEA,CAACA,CAACA,CAACA,CAC1CA,CAACA;QACHA,CAACA;QACFJ,yBAACA;IAADA,CAACA,AA5BD,EAEQ,0BAAgB,EA0BvB;IA5BD;wCA4BC,CAAA;IAED,IAAM,sBAAsB,GAAU,uEAAuE,CAAC;IAE9G,uBACC,SAAwB,EACxB,OAA8B;QAE9BK,IAAIA,eAAeA,GAAoCA,IAAIA,CAACA;QAE5DA,GAAGA,CAAAA,CAAUA,UAASA,EAAlBA,qBAAKA,EAALA,IAAkBA,CAACA;YAAnBA,IAAIA,CAACA,GAAIA,SAASA,IAAbA;YAERA,IACAA,CAACA;gBACAA,OAAOA,CAACA,CAACA,CAACA,CAACA;YACZA,CACAA;YAAAA,KAAKA,CAAAA,CAACA,EAAEA,CAACA,CACTA,CAACA;gBACAA,eAAeA,GAAGA,eAAeA,IAAIA,EAAEA,CAACA;gBACxCA,iEAAiEA;gBACjEA,eAAeA,CAACA,IAAIA,CAACA,EAACA,QAAQA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,EAAEA,EAACA,CAACA,CAACA;YAC7CA,CAACA;SACDA;QAEDA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA;QAErBA,EAAEA,CAAAA,CAACA,eAAeA,IAAIA,eAAeA,CAACA,MAAMA,CAACA,CAC7CA,CAACA;YACAA,EAAEA,CAAAA,CAACA,OAAOA,IAAIA,OAAOA,CAACA,KAAKA,CAACA;gBAC3BA,OAAOA,CAACA,KAAKA,CAACA,sBAAsBA,EAAEA,eAAeA,CAACA,CAACA;YACxDA,IAAIA;gBAACA,MAAMA;oBACVA,OAAOA,EAAEA,sBAAsBA;oBAC/BA,MAAMA,EAAEA,eAAeA;iBACvBA,CAACA;QACHA,CAACA;IAEFA,CAACA"} \ No newline at end of file diff --git a/source/System/Observable/SubscribableBase.js b/source/System/Observable/SubscribableBase.js index 25d8314f..1dc39ee6 100644 --- a/source/System/Observable/SubscribableBase.js +++ b/source/System/Observable/SubscribableBase.js @@ -1,15 +1,24 @@ -(function (factory) { +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Collections/LinkedList', '../Disposable/Utility', './Subscription'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Collections/LinkedList', '../Disposable/Utility', './Subscription'], function (require, exports) { + /// + /// var LinkedList_1 = require('../Collections/LinkedList'); var DisposeUtility = require('../Disposable/Utility'); var Subscription_1 = require('./Subscription'); + // This class is very much akin to a registry or 'Set' but uses an intermediary (Subscription) for releasing the registration. var SubscribableBase = (function () { function SubscribableBase() { this.__subscriptions = new LinkedList_1.default(); @@ -31,6 +40,7 @@ } return node; }; + // 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. SubscribableBase.prototype.subscribe = function (subscriber) { var _ = this; var n = _._findEntryNode(subscriber); @@ -45,7 +55,7 @@ if (n) { var s = n.value; n.remove(); - s.dispose(); + s.dispose(); // Prevent further usage of a dead subscription. } }; SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) { @@ -53,7 +63,7 @@ var _ = this, _s = _.__subscriptions; var s = _s.toArray(); var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null; - _s.clear(); + _s.clear(); // Reset... DisposeUtility.disposeThese(s); return u; }; @@ -64,7 +74,7 @@ this._unsubscribeAll(); }; return 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 b600d26c..0e30607f 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":";;;;;;;;IAMA,YAAY,CAAC;IAKb,2BAAuB,2BAA2B,CAAC,CAAA;IACnD,IAAY,cAAc,WAAM,uBAChC,CAAC,CADsD;IACvD,6BAAyB,gBAAgB,CAAC,CAAA;IAI1C;QAcC;YAEC,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAU,EAA6B,CAAC;QACpE,CAAC;QATS,0CAAe,GAAzB;YACC,MAAM,CAAC,IAAI,CAAC,eAAe;iBACzB,OAAO,EAAE;iBACT,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,CAAC;QACxB,CAAC;QAOO,yCAAc,GAAtB,UACC,UAAsB;YAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YACtC,OAAM,IAAI,EACV,CAAC;gBACA,EAAE,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CACtC,CAAC;oBACA,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CACJ,CAAC;oBACA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,CAAC;YACF,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;QACb,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,sBAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEzB,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,sCAAW,GAAX,UAAY,UAAsB;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACxC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;gBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,MAAM,EAAE,CAAC;gBACX,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAES,0CAAe,GAAzB,UAA0B,iBAAiC;YAAjC,iCAAiC,GAAjC,yBAAiC;YAC1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YACrB,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,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE/B,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,yCAAc,GAAd;YACC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,kCAAO,GAAP;YACC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAEF,uBAAC;IAAD,CAAC,AAlFD,IAkFC;IAlFD;sCAkFC,CAAA"} \ No newline at end of file +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["SubscribableBase.ts"],"names":["SubscribableBase","SubscribableBase.constructor","SubscribableBase._getSubscribers","SubscribableBase._findEntryNode","SubscribableBase.subscribe","SubscribableBase.unsubscribe","SubscribableBase._unsubscribeAll","SubscribableBase.unsubscribeAll","SubscribableBase.dispose"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Observable/Subscription.js b/source/System/Observable/Subscription.js index b87861e0..57033d3d 100644 --- a/source/System/Observable/Subscription.js +++ b/source/System/Observable/Subscription.js @@ -1,12 +1,24 @@ -(function (factory) { +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports"], function (require, exports) { + /// + /// + /// + /** + * A registration that an IObservable returns that can be disposed in order to cancel sending data to the observer. + */ var Subscription = (function () { function Subscription(_subscribable, _subscriber) { this._subscribable = _subscribable; @@ -22,6 +34,20 @@ configurable: true }); Object.defineProperty(Subscription.prototype, "wasDisposed", { + /* + In the case where we could possibly have the following happen: + + var u = observable.subscribe(observer); + + ... + + u.dispose(); // Should only be allowed to unsubscribe once and then it's useless. + + // Resubscribing creates a new instance. + var x = observable.subscribe(observer); + + u.dispose(); // Calling this again should do nothing and 'x' should still work. + */ get: function () { return !this._subscribable || !this._subscriber; }, @@ -31,6 +57,7 @@ Subscription.prototype.dispose = function () { var subscriber = this.subscriber; var subscribable = this._subscribable; + // Release the references. Will prevent potential unwanted recursion. this._subscriber = null; this._subscribable = null; if (subscriber && subscribable) { @@ -38,7 +65,7 @@ } }; return Subscription; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Subscription; }); diff --git a/source/System/Observable/Subscription.js.map b/source/System/Observable/Subscription.js.map index 7d692f45..6365fa95 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":";;;;;;;;IAMA,YAAY,CAAC;IAUb;QAGC,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,AAlDD,IAkDC;IAlDD;kCAkDC,CAAA"} \ No newline at end of file +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["Subscription.ts"],"names":["Subscription","Subscription.constructor","Subscription.subscriber","Subscription.wasDisposed","Subscription.dispose"],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAGtE,yCAAyC;IACzC,uCAAuC;IACvC,0DAA0D;IAE1D;;OAEG;IACH;QAGCA,sBACSA,aAA+BA,EAC/BA,WAAcA;YADdC,kBAAaA,GAAbA,aAAaA,CAAkBA;YAC/BA,gBAAWA,GAAXA,WAAWA,CAAGA;YAEtBA,EAAEA,CAACA,CAACA,CAACA,aAAaA,IAAIA,CAACA,WAAWA,CAACA;gBAClCA,MAAMA,6CAA6CA,CAACA;QACtDA,CAACA;QAEDD,sBAAIA,oCAAUA;iBAAdA;gBACCE,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA;YACzBA,CAACA;;;WAAAF;QAiBDA,sBAAIA,qCAAWA;YAffA;;;;;;;;;;;;;eAaGA;iBAEHA;gBAECG,MAAMA,CAACA,CAACA,IAAIA,CAACA,aAAaA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA;YACjDA,CAACA;;;WAAAH;QAEDA,8BAAOA,GAAPA;YAECI,IAAIA,UAAUA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;YACjCA,IAAIA,YAAYA,GAAGA,IAAIA,CAACA,aAAaA,CAACA;YAEtCA,sEAAsEA;YACtEA,IAAIA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;YACxBA,IAAIA,CAACA,aAAaA,GAAGA,IAAIA,CAACA;YAG1BA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,YAAYA,CAACA,CAC/BA,CAACA;gBACAA,YAAYA,CAACA,WAAWA,CAACA,UAAUA,CAACA,CAACA;YACtCA,CAACA;QACFA,CAACA;QACFJ,mBAACA;IAADA,CAACA,AAlDD,IAkDC;IAlDD;kCAkDC,CAAA"} \ No newline at end of file diff --git a/source/System/Serialization/Utility.js b/source/System/Serialization/Utility.js index 80277825..9303d28b 100644 --- a/source/System/Serialization/Utility.js +++ b/source/System/Serialization/Utility.js @@ -1,12 +1,17 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', '../Exceptions/InvalidOperationException'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../Types', '../Exceptions/InvalidOperationException'], function (require, exports) { + /// + /// var Types_1 = require('../Types'); var InvalidOperationException_1 = require('../Exceptions/InvalidOperationException'); var EMPTY = '', TRUE = 'true', FALSE = 'false'; @@ -64,6 +69,8 @@ return number; } } + // TODO: Handle Dates... Possibly JSON? + // Instead of throwing we allow for handling... if (unknownHandler) value = unknownHandler(value); break; diff --git a/source/System/Serialization/Utility.js.map b/source/System/Serialization/Utility.js.map index 2cc443db..afe23bcb 100644 --- a/source/System/Serialization/Utility.js.map +++ b/source/System/Serialization/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,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":["toString","isSerializable","toPrimitive"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Tasks/TaskScheduler.js b/source/System/Tasks/TaskScheduler.js index f360d1ff..37bf0cf0 100644 --- a/source/System/Tasks/TaskScheduler.js +++ b/source/System/Tasks/TaskScheduler.js @@ -1,12 +1,16 @@ -(function (factory) { +/* + * @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 + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', "../Collections/LinkedList", "../Collections/Queue"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../Types', "../Collections/LinkedList", "../Collections/Queue"], function (require, exports) { var Types_1 = require('../Types'); var LinkedList_1 = require("../Collections/LinkedList"); var Queue_1 = require("../Collections/Queue"); @@ -14,7 +18,10 @@ var requestTick; var isNodeJS = false; var flushing = false; + // Use the fastest possible means to execute a task in a future turn + // of the event loop. function flush() { + /* jshint loopfunc: true */ var entry; while (entry = immediateQueue.first) { var e = entry.value, domain = e.domain; @@ -29,7 +36,9 @@ } flushing = false; } + // linked list of tasks. Using a real linked list to allow for removal. var immediateQueue = new LinkedList_1.default(); + // queue for late tasks, used by unhandled rejection tracking var laterQueue = new Queue_1.default(); function runSingle(task, domain) { try { @@ -37,6 +46,11 @@ } catch (e) { if (isNodeJS) { + // In node, uncaught exceptions are considered fatal errors. + // Re-throw them synchronously to interrupt flushing! + // Ensure continuation if the uncaught exception is suppressed + // listening "uncaughtException" events (as domains does). + // Continue in next event to avoid tick recursion. if (domain) { domain.exit(); } @@ -47,6 +61,8 @@ throw e; } else { + // In browsers, uncaught exceptions are not fatal. + // Re-throw them asynchronously to avoid slow-downs. setTimeout(function () { throw e; }, 0); @@ -90,6 +106,9 @@ return function () { return !!immediateQueue.remove(entry); }; } TaskScheduler.defer = defer; + // runs a task after all other tasks have been run + // this is useful for unhandled rejection tracking that needs to happen + // after all `then`d tasks have been run. function runAfterDeferred(task) { laterQueue.enqueue(task); requestFlush(); @@ -99,12 +118,21 @@ if (Types_1.default.isObject(process) && process.toString() === "[object process]" && process.nextTick) { + // Ensure Q is in a real Node environment, with a `process.nextTick`. + // To see through fake Node environments: + // * Mocha test runner - exposes a `process` global without a `nextTick` + // * Browserify - exposes a `process.nexTick` function that uses + // `setTimeout`. In this case `setImmediate` is preferred because + // it is faster. Browserify's `process.toString()` yields + // "[object Object]", while in a real Node environment + // `process.nextTick()` yields "[object process]". isNodeJS = true; requestTick = function () { process.nextTick(flush); }; } else if (typeof setImmediate === "function") { + // In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate if (typeof window !== "undefined") { requestTick = setImmediate.bind(window, flush); } @@ -115,13 +143,19 @@ } } else if (typeof MessageChannel !== "undefined") { + // modern browsers + // http://www.nonblocking.io/2011/06/windownexttick.html var channel = new MessageChannel(); + // At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create + // working message ports the first time a page loads. channel.port1.onmessage = function () { requestTick = requestPortTick; channel.port1.onmessage = flush; flush(); }; var requestPortTick = function () { + // Opera requires us to provide a message payload, regardless of + // whether we use it. channel.port2.postMessage(0); }; requestTick = function () { @@ -130,6 +164,7 @@ }; } else { + // old browsers requestTick = function () { setTimeout(flush, 0); }; diff --git a/source/System/Tasks/TaskScheduler.js.map b/source/System/Tasks/TaskScheduler.js.map index 04aee45f..4be11455 100644 --- a/source/System/Tasks/TaskScheduler.js.map +++ b/source/System/Tasks/TaskScheduler.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskScheduler.js","sourceRoot":"","sources":["TaskScheduler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TaskScheduler.js","sourceRoot":"","sources":["TaskScheduler.ts"],"names":["flush","runSingle","requestFlush","TaskScheduler","TaskScheduler.defer","TaskScheduler.runAfterDeferred"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Text/StringBuilder.js b/source/System/Text/StringBuilder.js index 2e1f869c..7a5bdced 100644 --- a/source/System/Text/StringBuilder.js +++ b/source/System/Text/StringBuilder.js @@ -1,14 +1,29 @@ -(function (factory) { +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types'], function (require, exports) { + /// var Types_1 = require('../Types'); var VOID0 = void 0; + /***************************** + * IMPORTANT NOTES ABOUT PERFORMANCE: + * http://jsperf.com/string-concatenation-looped + * http://jsperf.com/adding-strings-to-an-array + * http://jsperf.com/string-concatenation-versus-array-operations-with-join + * + * It is clearly inefficient to use a StringBuilder or LinkedList to build a string when you have a small set of string portions. + * StringBuilder will really show it's benefit likely somewhere above 1000 items. + *****************************/ var StringBuilder = (function () { function StringBuilder() { var initial = []; @@ -30,7 +45,7 @@ item = item.toString(); break; } - _._partArray.push(item); + _._partArray.push(item); // Other primitive types can keep their format since a number or boolean is a smaller footprint than a string. } }; StringBuilder.prototype.appendThese = function (items) { @@ -65,6 +80,17 @@ return _; }; Object.defineProperty(StringBuilder.prototype, "isEmpty", { + /** /// These methods can only efficiently be added if not using a single array. + insert(index: number, value: string, count: number = 1): StringBuilder + { + + } + + remove(startIndex:number, length:number): StringBuilder + { + + } + /**/ get: function () { return this._partArray.length === 0; }, @@ -88,7 +114,7 @@ this.clear(); }; return StringBuilder; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = StringBuilder; }); diff --git a/source/System/Text/StringBuilder.js.map b/source/System/Text/StringBuilder.js.map index f923c1b6..23c9e67c 100644 --- a/source/System/Text/StringBuilder.js.map +++ b/source/System/Text/StringBuilder.js.map @@ -1 +1 @@ -{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["StringBuilder.ts"],"names":[],"mappings":";;;;;;;;IAKA,YAAY,CAAC;IAGb,sBAAiB,UAAU,CAAC,CAAA;IAG5B,IAAM,KAAK,GAAO,KAAK,CAAC,CAAC;IAazB;QASC;YAAY,iBAAgB;iBAAhB,WAAgB,CAAhB,sBAAgB,CAAhB,IAAgB;gBAAhB,gCAAgB;;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAEO,oCAAY,GAApB,UAAqB,IAAQ;YAE5B,EAAE,CAAA,CAAC,IAAI,KAAG,IAAI,IAAI,IAAI,KAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACb,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACjB,MAAM,CAAA,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBACpB,KAAK,eAAI,CAAC,MAAM,CAAC;oBACjB,KAAK,eAAI,CAAC,QAAQ;wBACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACvB,KAAK,CAAC;gBACR,CAAC;gBACD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QAEF,CAAC;QAED,mCAAW,GAAX,UAAY,KAAW;YAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,KAAK,CAAC,OAAO,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAED,8BAAM,GAAN;YAAO,eAAc;iBAAd,WAAc,CAAd,sBAAc,CAAd,IAAc;gBAAd,8BAAc;;YAEpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,kCAAU,GAAV;YAAW,eAAc;iBAAd,WAAc,CAAd,sBAAc,CAAd,IAAc;gBAAd,8BAAc;;YAExB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAW,GAAX,UAAY,KAAW;YAEtB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,KAAK,CAAC,OAAO,CACX,UAAA,CAAC;gBAED,EAAE,CAAA,CAAC,CAAC,KAAG,IAAI,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC;oBAC1B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC,CACD,CAAC;YACF,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QAcD,sBAAI,kCAAO;iBAAX;gBAEC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAG,CAAC,CAAC;YACnC,CAAC;;;WAAA;QAED,gCAAQ,GAAR;YAEC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAEhD,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAED,4BAAI,GAAJ,UAAK,SAAgB;YAEpB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,6BAAK,GAAL;YAEC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,+BAAO,GAAP;YAEC,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;QAEF,oBAAC;IAAD,CAAC,AA7GD,IA6GC;IA7GD;mCA6GC,CAAA"} \ No newline at end of file +{"version":3,"file":"StringBuilder.js","sourceRoot":"","sources":["StringBuilder.ts"],"names":["StringBuilder","StringBuilder.constructor","StringBuilder.appendSingle","StringBuilder.appendThese","StringBuilder.append","StringBuilder.appendLine","StringBuilder.appendLines","StringBuilder.isEmpty","StringBuilder.toString","StringBuilder.join","StringBuilder.clear","StringBuilder.dispose"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Text/Utility.js b/source/System/Text/Utility.js index 6e5ccd88..0f3de59b 100644 --- a/source/System/Text/Utility.js +++ b/source/System/Text/Utility.js @@ -1,18 +1,29 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../Types'], function (require, exports) { var Types_1 = require('../Types'); exports.EMPTY = ''; function escapeRegExp(source) { return source.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); } exports.escapeRegExp = escapeRegExp; + /** + * Can trim any character or set of characters from the ends of a string. + * Uses a Regex escapement to replace them with empty. + * @param source + * @param chars A string or array of characters desired to be trimmed. + * @param ignoreCase + * @returns {string} + */ function trim(source, chars, ignoreCase) { if (chars) { if (chars === exports.EMPTY) @@ -23,6 +34,12 @@ return source.replace(/^\s+|\s+$/g, exports.EMPTY); } exports.trim = trim; + /** + * Takes any arg + * @param source + * @param args + * @returns {string} + */ function format(source) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { @@ -31,6 +48,16 @@ return supplant(source, args); } exports.format = format; + // + /** + * This takes a string and replaces '{string}' with the respected parameter. + * Also allows for passing an array in order to use '{n}' notation. + * Not limited to an array's indexes. For example, {length} is allowed. + * Based upon Crockford's supplant function. + * @param source + * @param params + * @returns {string} + */ function supplant(source, params) { var oIsArray = Array.isArray(params); return source.replace(/\{([^{}]*)\}/g, function (a, b) { diff --git a/source/System/Text/Utility.js.map b/source/System/Text/Utility.js.map index af95e8ed..51f723dd 100644 --- a/source/System/Text/Utility.js.map +++ b/source/System/Text/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":[],"mappings":";;;;;;;;;IAKA,sBAAiB,UAAU,CAAC,CAAA;IAEf,aAAK,GAAU,EAAE,CAAC;IAE/B,sBAA6B,MAAa;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAFe,oBAAY,eAE3B,CAAA;IAUD,cAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;QAE7E,EAAE,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,EAAE,CAAA,CAAC,KAAK,KAAG,aAAK,CAAC;gBAAC,MAAM,CAAC,MAAM,CAAC;YAChC,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,GAAC,OAAO,GAAC,MAAM,GAAC,OAAO,GAAC,KAAK,EAAC,GAAG,GAAC,CAAC,UAAU,GAAC,GAAG,GAAC,EAAE,CAAC,CAAC,EAAC,aAAK,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,aAAK,CAAC,CAAC;IAC5C,CAAC;IATe,YAAI,OASnB,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;IAHe,cAAM,SAGrB,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,eAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,eAAI,CAAC,MAAM,CAAC;gBACjB,KAAK,eAAI,CAAC,OAAO;oBAChB,MAAM,CAAC,CAAC,CAAC;gBACV;oBACC,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;QACF,CAAC,CACD,CAAC;IACH,CAAC;IAzBe,gBAAQ,WAyBvB,CAAA"} \ No newline at end of file +{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":["escapeRegExp","trim","format","supplant"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,sBAAiB,UAAU,CAAC,CAAA;IAEf,aAAK,GAAU,EAAE,CAAC;IAE/B,sBAA6B,MAAa;QACzCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,qCAAqCA,EAAEA,MAAMA,CAACA,CAACA;IACtEA,CAACA;IAFe,oBAAY,eAE3B,CAAA;IAED;;;;;;;OAOG;IACH,cAAqB,MAAa,EAAE,KAAsB,EAAC,UAAmB;QAE7EC,EAAEA,CAAAA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACVA,EAAEA,CAAAA,CAACA,KAAKA,KAAGA,aAAKA,CAACA;gBAACA,MAAMA,CAACA,MAAMA,CAACA;YAChCA,IAAIA,OAAOA,GAAGA,YAAYA,CAACA,KAAKA,CAACA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,CAACA,IAAIA,EAAEA,GAAWA,KAAKA,CAACA,CAACA;YAChFA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,IAAIA,MAAMA,CAACA,IAAIA,GAACA,OAAOA,GAACA,MAAMA,GAACA,OAAOA,GAACA,KAAKA,EAACA,GAAGA,GAACA,CAACA,UAAUA,GAACA,GAAGA,GAACA,EAAEA,CAACA,CAACA,EAACA,aAAKA,CAACA,CAACA;QACpGA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,YAAYA,EAAEA,aAAKA,CAACA,CAACA;IAC5CA,CAACA;IATe,YAAI,OASnB,CAAA;IAED;;;;;OAKG;IACH,gBAAuB,MAAa;QAAEC,cAAaA;aAAbA,WAAaA,CAAbA,sBAAaA,CAAbA,IAAaA;YAAbA,6BAAaA;;QAElDA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,CAACA;IAC/BA,CAACA;IAHe,cAAM,SAGrB,CAAA;IAED,EAAE;IAEF;;;;;;;;OAQG;IACH,kBAAyB,MAAa,EAAE,MAA+B;QAEtEC,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QACrCA,MAAMA,CAACA,MAAMA,CAACA,OAAOA,CAACA,eAAeA,EACpCA,UAACA,CAAQA,EAAEA,CAAQA;YAElBA,IAAIA,CAACA,GAAOA,CAACA,CAACA;YACdA,EAAEA,CAAAA,CAACA,QAAQA,CAACA,CACZA,CAACA;gBACAA,IAAIA,CAACA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBACpBA,EAAEA,CAAAA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAACA,CAACA,GAAGA,CAACA,CAACA;YACrBA,CAACA;YAEDA,IAAIA,CAACA,GAASA,MAAOA,CAACA,CAACA,CAACA,CAACA;YACzBA,MAAMA,CAAAA,CAACA,OAAOA,CAACA,CAACA,CAChBA,CAACA;gBACAA,KAAKA,eAAIA,CAACA,MAAMA,CAACA;gBACjBA,KAAKA,eAAIA,CAACA,MAAMA,CAACA;gBACjBA,KAAKA,eAAIA,CAACA,OAAOA;oBAChBA,MAAMA,CAACA,CAACA,CAACA;gBACVA;oBACCA,MAAMA,CAACA,CAACA,CAACA;YACXA,CAACA;QACFA,CAACA,CACDA,CAACA;IACHA,CAACA;IAzBe,gBAAQ,WAyBvB,CAAA"} \ No newline at end of file diff --git a/source/System/Time/ClockTime.js b/source/System/Time/ClockTime.js index dff56cbd..cc8be978 100644 --- a/source/System/Time/ClockTime.js +++ b/source/System/Time/ClockTime.js @@ -1,17 +1,30 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/* + * @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'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './TimeQuantity'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './TimeQuantity'], function (require, exports) { var TimeQuantity_1 = require('./TimeQuantity'); var ClockTime = (function (_super) { __extends(ClockTime, _super); @@ -26,18 +39,19 @@ var __extends = (this && this.__extends) || function (d, b) { var _ = this; var ms = Math.abs(_.getTotalMilliseconds()); var msi = Math.floor(ms); - _.tick = (ms - msi) * 10000; - _.days = (msi / 86400000) | 0; - msi -= _.days * 86400000; - _.hour = (msi / 3600000) | 0; - msi -= _.hour * 3600000; - _.minute = (msi / 60000) | 0; - msi -= _.minute * 60000; - _.second = (msi / 1000) | 0; - msi -= _.second * 1000; + _.tick = (ms - msi) * 10000 /* Millisecond */; + _.days = (msi / 86400000 /* Day */) | 0; + msi -= _.days * 86400000 /* Day */; + _.hour = (msi / 3600000 /* Hour */) | 0; + msi -= _.hour * 3600000 /* Hour */; + _.minute = (msi / 60000 /* Minute */) | 0; + msi -= _.minute * 60000 /* Minute */; + _.second = (msi / 1000 /* Second */) | 0; + msi -= _.second * 1000 /* Second */; _.millisecond = msi; Object.freeze(_); } + // Static version for relative consistency. Constructor does allow this format. ClockTime.from = function (hours, minutes, seconds, milliseconds) { if (seconds === void 0) { seconds = 0; } if (milliseconds === void 0) { milliseconds = 0; } @@ -47,15 +61,16 @@ var __extends = (this && this.__extends) || function (d, b) { if (seconds === void 0) { seconds = 0; } if (milliseconds === void 0) { milliseconds = 0; } var value = hours; - value *= 60; + value *= 60 /* Hour */; value += minutes; - value *= 60; + value *= 60 /* Minute */; value += seconds; - value *= 1000; + value *= 1000 /* Second */; value += milliseconds; return value; }; ClockTime.prototype.toString = function () { + /* INSERT CUSTOM FORMATTING CODE HERE */ var _ = this, a = []; if (_.days) a.push(pluralize(_.days, "day")); @@ -70,9 +85,10 @@ var __extends = (this && this.__extends) || function (d, b) { return a.join(", ").replace(", and, ", " and "); }; return ClockTime; - }(TimeQuantity_1.default)); + })(TimeQuantity_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ClockTime; + // Temporary until the full TimeSpanFormat is available. function pluralize(value, label) { if (Math.abs(value) !== 1) label += "s"; diff --git a/source/System/Time/ClockTime.js.map b/source/System/Time/ClockTime.js.map index 7baae2e0..2ff5de5c 100644 --- a/source/System/Time/ClockTime.js.map +++ b/source/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["ClockTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["ClockTime.ts"],"names":["ClockTime","ClockTime.constructor","ClockTime.from","ClockTime.millisecondsFromTime","ClockTime.toString","pluralize"],"mappings":"AAAA,4CAA4C;AAC5C,yCAAyC;AACzC,yCAAyC;AACzC,0CAA0C;AAC1C,2CAA2C;AAC3C,8CAA8C;AAC9C,sCAAsC;AACtC,iCAAiC;AACjC;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAGtE,6BAAyB,gBAAgB,CAAC,CAAA;IAG1C;QACwBA,6BAAYA;QAYnCA;YAAYC,cAAgBA;iBAAhBA,WAAgBA,CAAhBA,sBAAgBA,CAAhBA,IAAgBA;gBAAhBA,6BAAgBA;;YAE3BA,kBACCA,IAAIA,CAACA,MAAMA,GAACA,CAACA;kBACVA,SAASA,CAACA,oBAAoBA,CAChCA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,EACZA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,EACZA,IAAIA,CAACA,MAAMA,GAACA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAC7BA,IAAIA,CAACA,MAAMA,GAACA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAC7BA;kBACEA,CAACA,IAAIA,CAACA,MAAMA,GAACA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAClCA,CAACA;YAEFA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,oBAAoBA,EAAEA,CAACA,CAACA;YAC5CA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,EAAEA,CAACA,CAACA;YAEzBA,CAACA,CAACA,IAAIA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,CAACA,GAACA,uBAA6BA,CAACA;YAElDA,CAACA,CAACA,IAAIA,GAAGA,CAACA,GAAGA,GAACA,kBAA4BA,CAACA,GAAGA,CAACA,CAACA;YAChDA,GAAGA,IAAIA,CAACA,CAACA,IAAIA,GAAGA,kBAA4BA,CAACA;YAE7CA,CAACA,CAACA,IAAIA,GAAGA,CAACA,GAAGA,GAACA,kBAA6BA,CAACA,GAAGA,CAACA,CAACA;YACjDA,GAAGA,IAAIA,CAACA,CAACA,IAAIA,GAAGA,kBAA6BA,CAACA;YAE9CA,CAACA,CAACA,MAAMA,GAAGA,CAACA,GAAGA,GAACA,kBAA+BA,CAACA,GAAGA,CAACA,CAACA;YACrDA,GAAGA,IAAIA,CAACA,CAACA,MAAMA,GAAGA,kBAA+BA,CAACA;YAElDA,CAACA,CAACA,MAAMA,GAAGA,CAACA,GAAGA,GAACA,iBAA+BA,CAACA,GAAGA,CAACA,CAACA;YACrDA,GAAGA,IAAIA,CAACA,CAACA,MAAMA,GAAGA,iBAA+BA,CAACA;YAElDA,CAACA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;YAEpBA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;QAClBA,CAACA;QAGDD,gFAAgFA;QACzEA,cAAIA,GAAXA,UAAYA,KAAYA,EAAEA,OAAcA,EAAEA,OAAkBA,EAAEA,YAAuBA;YAA3CE,uBAAkBA,GAAlBA,WAAkBA;YAAEA,4BAAuBA,GAAvBA,gBAAuBA;YAEpFA,MAAMA,CAACA,IAAIA,SAASA,CAACA,KAAKA,EAAEA,OAAOA,EAAEA,OAAOA,EAAEA,YAAYA,CAACA,CAACA;QAC7DA,CAACA;QAEMF,8BAAoBA,GAA3BA,UACCA,KAAYA,EACZA,OAAcA,EACdA,OAAkBA,EAClBA,YAAuBA;YADvBG,uBAAkBA,GAAlBA,WAAkBA;YAClBA,4BAAuBA,GAAvBA,gBAAuBA;YAEvBA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;YAClBA,KAAKA,IAAIA,aAAwBA,CAACA;YAClCA,KAAKA,IAAIA,OAAOA,CAACA;YACjBA,KAAKA,IAAIA,eAA0BA,CAACA;YACpCA,KAAKA,IAAIA,OAAOA,CAACA;YACjBA,KAAKA,IAAIA,iBAA+BA,CAACA;YACzCA,KAAKA,IAAIA,YAAYA,CAACA;YACtBA,MAAMA,CAACA,KAAKA,CAACA;QACdA,CAACA;QAEDH,4BAAQA,GAARA;YAECI,wCAAwCA;YAGxCA,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAYA,EAAEA,CAACA;YAE9BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA;gBACTA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA,CAACA;YAElCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,IAAIA,CAACA;gBACTA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA;gBACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;YAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,CAACA;gBACXA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA,CAACA;YAEvCA,EAAEA,CAAAA,CAACA,CAACA,CAACA,MAAMA,GAACA,CAACA,CAACA;gBACbA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,KAAKA,CAACA,CAACA;YAElCA,MAAMA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,OAAOA,CAACA,SAASA,EAAEA,OAAOA,CAACA,CAACA;QACjDA,CAACA;QAEFJ,gBAACA;IAADA,CAACA,AAjGD,EACwB,sBAAY,EAgGnC;IAjGD;+BAiGC,CAAA;IAGD,wDAAwD;IACxD,mBAAmB,KAAY,EAAE,KAAY;QAE5CK,EAAEA,CAAAA,CAACA,IAAIA,CAACA,GAAGA,CAACA,KAAKA,CAACA,KAAGA,CAACA,CAACA;YACtBA,KAAKA,IAAIA,GAAGA,CAACA;QAEdA,MAAMA,CAACA,KAAKA,CAACA;IACdA,CAACA"} \ No newline at end of file diff --git a/source/System/Time/DateTime.js b/source/System/Time/DateTime.js index 318f95e7..93b7b275 100644 --- a/source/System/Time/DateTime.js +++ b/source/System/Time/DateTime.js @@ -1,19 +1,29 @@ -(function (factory) { +/// +/// +/// +/// +/// +/* + * @author electricessence / https://github.com/electricessence/ + * Based on .NET DateTime's interface. + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './ClockTime', './TimeSpan', './TimeStamp'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './ClockTime', './TimeSpan', './TimeStamp'], function (require, exports) { var ClockTime_1 = require('./ClockTime'); var TimeSpan_1 = require('./TimeSpan'); var TimeStamp_1 = require('./TimeStamp'); var DateTime = (function () { function DateTime(value, kind) { if (value === void 0) { value = new Date(); } - if (kind === void 0) { kind = 1; } + if (kind === void 0) { kind = 1 /* Local */; } var _ = this; _._kind = kind; if (value instanceof DateTime) @@ -26,7 +36,7 @@ : new Date(value); } DateTime.prototype.toJsDate = function () { - return new Date(this._value.getTime()); + return new Date(this._value.getTime()); // return a clone. }; DateTime.prototype._setJsDate = function (value) { this._time = null; @@ -47,6 +57,10 @@ configurable: true }); Object.defineProperty(DateTime.prototype, "month", { + /** + * Returns the Gregorian Month (zero indexed). + * @returns {number} + */ get: function () { return this._value.getMonth(); }, @@ -54,6 +68,10 @@ configurable: true }); Object.defineProperty(DateTime.prototype, "day", { + /** + * Returns the day of the month. An integer between 1 and 31. + * @returns {number} + */ get: function () { return this._value.getDate(); }, @@ -73,19 +91,19 @@ }; DateTime.prototype.addSeconds = function (seconds) { seconds = seconds || 0; - return this.addMilliseconds(seconds * 1000); + return this.addMilliseconds(seconds * 1000 /* Second */); }; DateTime.prototype.addMinutes = function (minutes) { minutes = minutes || 0; - return this.addMilliseconds(minutes * 60000); + return this.addMilliseconds(minutes * 60000 /* Minute */); }; DateTime.prototype.addHours = function (hours) { hours = hours || 0; - return this.addMilliseconds(hours * 3600000); + return this.addMilliseconds(hours * 3600000 /* Hour */); }; DateTime.prototype.addDays = function (days) { days = days || 0; - return this.addMilliseconds(days * 86400000); + return this.addMilliseconds(days * 86400000 /* Day */); }; DateTime.prototype.addMonths = function (months) { months = months || 0; @@ -99,16 +117,34 @@ d.setFullYear(d.getFullYear() + years); return new DateTime(d, this._kind); }; + /** + * Receives an ITimeQuantity value and adds based on the total milliseconds. + * @param {ITimeQuantity} time + * @returns {DateTime} + */ DateTime.prototype.add = function (time) { return this.addMilliseconds(time.getTotalMilliseconds()); }; + /** + * Receives an ITimeQuantity value and subtracts based on the total milliseconds. + * @param {ITimeQuantity} time + * @returns {DateTime} + */ DateTime.prototype.subtract = function (time) { return this.addMilliseconds(-time.getTotalMilliseconds()); }; + /** + * Returns a TimeSpan representing the amount of time between two dates. + * @param previous + * @returns {TimeSpan} + */ DateTime.prototype.timePassedSince = function (previous) { return DateTime.between(previous, this); }; Object.defineProperty(DateTime.prototype, "date", { + /** + * Returns a DateTime object for 00:00 of this date. + */ get: function () { var _ = this; return new DateTime(new Date(_.year, _.month, _.day), _._kind); @@ -117,6 +153,10 @@ configurable: true }); Object.defineProperty(DateTime.prototype, "timeOfDay", { + /** + * Returns the time of day represented by a ClockTime object. + * @returns {ClockTime} + */ get: function () { var _ = this, t = _._time; if (!t) { @@ -128,10 +168,17 @@ enumerable: true, configurable: true }); + /** + * Returns a readonly object which contains all the date and time components. + */ DateTime.prototype.toTimeStamp = function () { return TimeStamp_1.default.from(this); }; Object.defineProperty(DateTime, "now", { + /** + * Returns the now local time. + * @returns {DateTime} + */ get: function () { return new DateTime(); }, @@ -139,17 +186,25 @@ configurable: true }); Object.defineProperty(DateTime.prototype, "toUniversalTime", { + /** + * Returns a UTC version of this date if its kind is local. + * @returns {DateTime} + */ get: function () { var _ = this; - if (_._kind != 1) + if (_._kind != 1 /* Local */) return new DateTime(_, _._kind); var d = _._value; - return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2); + return new DateTime(new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()), 2 /* Utc */); }, enumerable: true, configurable: true }); Object.defineProperty(DateTime, "today", { + /** + * The date component for now. + * @returns {DateTime} + */ get: function () { return DateTime.now.date; }, @@ -157,6 +212,10 @@ configurable: true }); Object.defineProperty(DateTime, "tomorrow", { + /** + * Midnight tomorrow. + * @returns {DateTime} + */ get: function () { var today = DateTime.today; return today.addDays(1); @@ -164,18 +223,36 @@ enumerable: true, configurable: true }); + /** + * Measures the difference between two dates as a TimeSpan. + * @param first + * @param last + */ 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()); }; + /** + * Calculates if the given year is a leap year using the formula: + * ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) + * @param year + * @returns {boolean} + */ DateTime.isLeapYear = function (year) { return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); }; + /** + * Returns the number of days for the specific year and month. + * @param year + * @param month + * @returns {any} + */ DateTime.daysInMonth = function (year, month) { + // Basically, add 1 month, subtract a day... What's the date? return (new Date(year, month + 1, 0)).getDate(); }; return DateTime; - }()); + })(); Object.freeze(DateTime); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DateTime; diff --git a/source/System/Time/DateTime.js.map b/source/System/Time/DateTime.js.map index 5581ed89..fd4f2c16 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":["DateTime","DateTime.constructor","DateTime.toJsDate","DateTime._setJsDate","DateTime.kind","DateTime.year","DateTime.month","DateTime.day","DateTime.dayOfWeek","DateTime.addMilliseconds","DateTime.addSeconds","DateTime.addMinutes","DateTime.addHours","DateTime.addDays","DateTime.addMonths","DateTime.addYears","DateTime.add","DateTime.subtract","DateTime.timePassedSince","DateTime.date","DateTime.timeOfDay","DateTime.toTimeStamp","DateTime.now","DateTime.toUniversalTime","DateTime.today","DateTime.tomorrow","DateTime.between","DateTime.isLeapYear","DateTime.daysInMonth"],"mappings":"AAAA,yCAAyC;AACzC,sCAAsC;AACtC,qCAAqC;AACrC,qCAAqC;AACrC,iCAAiC;AACjC;;;;GAIG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAGtE,0BAAsB,aAAa,CAAC,CAAA;IACpC,yBAAqB,YAAY,CAAC,CAAA;IAClC,0BAAsB,aAAa,CAAC,CAAA;IAGpC;QAoBCA,kBAAYA,KAAsBA,EAAEA,IAAwCA;YAAhEC,qBAAsBA,GAAtBA,YAAgBA,IAAIA,EAAEA;YAAEA,oBAAwCA,GAAxCA,oBAAwCA;YAE3EA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;YACfA,EAAEA,CAAAA,CAACA,KAAKA,YAAYA,QAAQA,CAACA;gBAC5BA,CAACA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,QAAQA,EAAEA,CAACA;YAC7BA,IAAIA,CAACA,EAAEA,CAAAA,CAACA,KAAKA,YAAYA,IAAIA,CAACA;gBAC7BA,CAACA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;YACrBA,IAAIA;gBACHA,CAACA,CAACA,MAAMA,GAAGA,KAAKA,KAAGA,KAAIA,CAACA,CAACA,CAACA;sBACvBA,IAAIA,IAAIA,EAAEA;sBACVA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACrBA,CAACA;QA5BDD,2BAAQA,GAARA;YAECE,MAAMA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,CAACA,CAACA,CAACA,kBAAkBA;QAC3DA,CAACA;QAEOF,6BAAUA,GAAlBA,UAAmBA,KAAUA;YAE5BG,IAAIA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;YAClBA,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,OAAOA,EAAEA,CAACA,CAACA;QACzCA,CAACA;QAsBDH,sBAAIA,0BAAIA;iBAARA;gBAECI,MAAMA,CAACA,IAAIA,CAACA,KAAKA,CAACA;YACnBA,CAACA;;;WAAAJ;QAEDA,sBAAIA,0BAAIA;iBAARA;gBAECK,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,WAAWA,EAAEA,CAACA;YAClCA,CAACA;;;WAAAL;QAMDA,sBAAIA,2BAAKA;YAJTA;;;eAGGA;iBACHA;gBAECM,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,CAACA;YAC/BA,CAACA;;;WAAAN;QAMDA,sBAAIA,yBAAGA;YAJPA;;;eAGGA;iBACHA;gBAECO,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,CAACA;YAC9BA,CAACA;;;WAAAP;QAEDA,sBAAIA,+BAASA;iBAAbA;gBAECQ,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA;YAC7BA,CAACA;;;WAAAR;QAGDA,kCAAeA,GAAfA,UAAgBA,EAASA;YAExBS,EAAEA,GAAGA,EAAEA,IAAIA,CAACA,CAACA;YACbA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,IAAIA,CAACA,MAAMA,CAACA,OAAOA,EAAEA,GAAGA,EAAEA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QAC7DA,CAACA;QAEDT,6BAAUA,GAAVA,UAAWA,OAAcA;YAExBU,OAAOA,GAAGA,OAAOA,IAAIA,CAACA,CAACA;YACvBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,OAAOA,GAACA,iBAA+BA,CAACA,CAACA;QACtEA,CAACA;QAEDV,6BAAUA,GAAVA,UAAWA,OAAcA;YAExBW,OAAOA,GAAGA,OAAOA,IAAIA,CAACA,CAACA;YACvBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,OAAOA,GAACA,kBAA+BA,CAACA,CAACA;QACtEA,CAACA;QAEDX,2BAAQA,GAARA,UAASA,KAAYA;YAEpBY,KAAKA,GAAGA,KAAKA,IAAIA,CAACA,CAACA;YACnBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,KAAKA,GAACA,kBAA6BA,CAACA,CAACA;QAClEA,CAACA;QAEDZ,0BAAOA,GAAPA,UAAQA,IAAWA;YAElBa,IAAIA,GAAGA,IAAIA,IAAIA,CAACA,CAACA;YACjBA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,GAACA,kBAA4BA,CAACA,CAACA;QAChEA,CAACA;QAEDb,4BAASA,GAATA,UAAUA,MAAaA;YAEtBc,MAAMA,GAAGA,MAAMA,IAAIA,CAACA,CAACA;YACrBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;YACxBA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA,QAAQA,EAAEA,GAACA,MAAMA,CAACA,CAACA;YAChCA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACpCA,CAACA;QAEDd,2BAAQA,GAARA,UAASA,KAAYA;YAEpBe,KAAKA,GAAGA,KAAKA,IAAIA,CAACA,CAACA;YACnBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,QAAQA,EAAEA,CAACA;YACxBA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAACA,KAAKA,CAACA,CAACA;YACrCA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACpCA,CAACA;QAGDf;;;;WAIGA;QACHA,sBAAGA,GAAHA,UAAIA,IAAkBA;YAErBgB,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA,CAACA;QAC1DA,CAACA;QAEDhB;;;;WAIGA;QACHA,2BAAQA,GAARA,UAASA,IAAkBA;YAE1BiB,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA,CAACA;QAC3DA,CAACA;QAEDjB;;;;WAIGA;QACHA,kCAAeA,GAAfA,UAAgBA,QAAsBA;YAErCkB,MAAMA,CAACA,QAAQA,CAACA,OAAOA,CAACA,QAAQA,EAAEA,IAAIA,CAACA,CAACA;QACzCA,CAACA;QAKDlB,sBAAIA,0BAAIA;YAHRA;;eAEGA;iBACHA;gBAECmB,IAAIA,CAACA,GAAGA,IAAIA,CAACA;gBACbA,MAAMA,CAACA,IAAIA,QAAQA,CAClBA,IAAIA,IAAIA,CACPA,CAACA,CAACA,IAAIA,EACNA,CAACA,CAACA,KAAKA,EACPA,CAACA,CAACA,GAAGA,CACLA,EACCA,CAACA,CAACA,KAAKA,CACTA,CAACA;YACHA,CAACA;;;WAAAnB;QAQDA,sBAAIA,+BAASA;YAJbA;;;eAGGA;iBACHA;gBAECoB,IAAIA,CAACA,GAAGA,IAAIA,EAAEA,CAACA,GAAGA,CAACA,CAACA,KAAKA,CAACA;gBAC1BA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;oBACAA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;oBACpBA,CAACA,CAACA,KAAKA,GAAGA,CAACA,GAAGA,IAAIA,mBAASA,CAC1BA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,eAAeA,EAAEA,CAACA,CAACA;gBACvBA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACVA,CAACA;;;WAAApB;QAEDA;;WAEGA;QACHA,8BAAWA,GAAXA;YACCqB,MAAMA,CAACA,mBAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;QAC7BA,CAACA;QAMDrB,sBAAWA,eAAGA;YAJdA;;;eAGGA;iBACHA;gBAECsB,MAAMA,CAACA,IAAIA,QAAQA,EAAEA,CAACA;YACvBA,CAACA;;;WAAAtB;QAMDA,sBAAIA,qCAAeA;YAJnBA;;;eAGGA;iBACHA;gBAECuB,IAAIA,CAACA,GAAGA,IAAIA,CAACA;gBACbA,EAAEA,CAAAA,CAACA,CAACA,CAACA,KAAKA,IAAEA,aAAmBA,CAACA;oBAC/BA,MAAMA,CAACA,IAAIA,QAAQA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA;gBAEjCA,IAAIA,CAACA,GAAGA,CAACA,CAACA,MAAMA,CAACA;gBACjBA,MAAMA,CAACA,IAAIA,QAAQA,CAClBA,IAAIA,IAAIA,CACPA,CAACA,CAACA,cAAcA,EAAEA,EAClBA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,aAAaA,EAAEA,EACjBA,CAACA,CAACA,aAAaA,EAAEA,EACjBA,CAACA,CAACA,kBAAkBA,EAAEA,CACtBA,EACDA,WAAiBA,CACjBA,CAACA;YACHA,CAACA;;;WAAAvB;QAMDA,sBAAWA,iBAAKA;YAJhBA;;;eAGGA;iBACHA;gBAECwB,MAAMA,CAACA,QAAQA,CAACA,GAAGA,CAACA,IAAIA,CAACA;YAC1BA,CAACA;;;WAAAxB;QAMDA,sBAAWA,oBAAQA;YAJnBA;;;eAGGA;iBACHA;gBAECyB,IAAIA,KAAKA,GAAYA,QAAQA,CAACA,KAAKA,CAACA;gBACpCA,MAAMA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YACzBA,CAACA;;;WAAAzB;QAEDA;;;;WAIGA;QACIA,gBAAOA,GAAdA,UAAeA,KAAmBA,EAAEA,IAAkBA;YAErD0B,IAAIA,CAACA,GAAQA,KAAKA,YAAYA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,GAASA,KAAKA,EAC/DA,CAACA,GAAQA,IAAIA,YAAYA,QAAQA,GAAGA,IAAIA,CAACA,MAAMA,GAASA,IAAIA,CAACA;YAEjEA,MAAMA,CAACA,IAAIA,kBAAQA,CAACA,CAACA,CAACA,OAAOA,EAAEA,GAAGA,CAACA,CAACA,OAAOA,EAAEA,CAACA,CAACA;QAChDA,CAACA;QAED1B;;;;;WAKGA;QACIA,mBAAUA,GAAjBA,UAAkBA,IAAWA;YAC5B2B,MAAMA,CAACA,CAACA,CAACA,IAAIA,GAAGA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,CAACA,CAACA;QACpEA,CAACA;QAED3B;;;;;WAKGA;QACIA,oBAAWA,GAAlBA,UAAmBA,IAAWA,EAAEA,KAAqBA;YACpD4B,6DAA6DA;YAC7DA,MAAMA,CAACA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,EAACA,KAAKA,GAACA,CAACA,EAACA,CAACA,CAACA,CAACA,CAACA,OAAOA,EAAEA,CAACA;QAC7CA,CAACA;QAGF5B,eAACA;IAADA,CAACA,AAtRD,IAsRC;IAYD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExB;sBAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/source/System/Time/HowMany.js b/source/System/Time/HowMany.js index 0397f166..f432e483 100644 --- a/source/System/Time/HowMany.js +++ b/source/System/Time/HowMany.js @@ -1 +1,5 @@ +/* + * @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/source/System/Time/HowMany.js.map b/source/System/Time/HowMany.js.map index 7c505deb..aa6b58d9 100644 --- a/source/System/Time/HowMany.js.map +++ b/source/System/Time/HowMany.js.map @@ -1 +1 @@ -{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["HowMany.ts"],"names":[],"mappings":""} \ No newline at end of file +{"version":3,"file":"HowMany.js","sourceRoot":"","sources":["HowMany.ts"],"names":[],"mappings":"AAAA;;;GAGG"} \ No newline at end of file diff --git a/source/System/Time/TimeQuantity.js b/source/System/Time/TimeQuantity.js index d7b63273..8f487461 100644 --- a/source/System/Time/TimeQuantity.js +++ b/source/System/Time/TimeQuantity.js @@ -1,47 +1,77 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Compare', './TimeUnit'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Compare', './TimeUnit'], function (require, exports) { + /// + /// + /// + /// var Compare_1 = require('../Compare'); var TimeUnit_1 = require('./TimeUnit'); + /** + * This class provides a simple means for storing and calculating time quantities. + */ var TimeQuantity = (function () { function TimeQuantity(_quantity) { if (_quantity === void 0) { _quantity = 0; } this._quantity = _quantity; } + // Provides an overridable mechanism for extending this class. TimeQuantity.prototype.getTotalMilliseconds = function () { return this._quantity; }; Object.defineProperty(TimeQuantity.prototype, "direction", { + /** + * +1, 0, or -1 depending on the time direction. + * @returns {number} + */ get: function () { return Compare_1.compare(this.getTotalMilliseconds(), 0); }, enumerable: true, configurable: true }); + /** + * Compares this instance against any other time quantity instance and return true if the amount of time is the same. + * @param other + * @returns {boolean} + */ TimeQuantity.prototype.equals = function (other) { return Compare_1.areEqual(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds); }; + /** + * Compares this instance against any other time quantity instance. + * @param other + * @returns {CompareResult} + */ TimeQuantity.prototype.compareTo = function (other) { return Compare_1.compare(this.getTotalMilliseconds(), other && other.total && other.total.milliseconds); }; Object.defineProperty(TimeQuantity.prototype, "total", { + /** + * Returns an object with all units exposed as totals. + * @returns {ITimeMeasurement} + */ get: function () { var t = this._total; if (!t) { var ms = this.getTotalMilliseconds(); this._total = t = Object.freeze({ - ticks: ms * 10000, + ticks: ms * 10000 /* Millisecond */, milliseconds: ms, - seconds: ms / 1000, - minutes: ms / 60000, - hours: ms / 3600000, - days: ms / 86400000, + seconds: ms / 1000 /* Second */, + minutes: ms / 60000 /* Minute */, + hours: ms / 3600000 /* Hour */, + days: ms / 86400000 /* Day */, }); } return t; @@ -49,11 +79,16 @@ enumerable: true, configurable: true }); + /** + * Returns the total amount of time measured in the requested TimeUnit. + * @param units + * @returns {number} + */ TimeQuantity.prototype.getTotal = function (units) { return TimeUnit_1.default.fromMilliseconds(this.getTotalMilliseconds(), units); }; return TimeQuantity; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeQuantity; }); diff --git a/source/System/Time/TimeQuantity.js.map b/source/System/Time/TimeQuantity.js.map index 975830d6..59fca5b5 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":";;;;;;;;IAIA,YAAY,CAAC;IAMb,wBAA+B,YAAY,CAAC,CAAA;IAC5C,yBAAqB,YAAY,CAAC,CAAA;IAKlC;QAIC,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,KAA6B;wBACvC,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE,GAAC,IAA+B;wBAC3C,OAAO,EAAE,EAAE,GAAC,KAA+B;wBAC3C,KAAK,EAAE,EAAE,GAAC,OAA6B;wBACvC,IAAI,EAAE,EAAE,GAAC,QAA4B;qBACrC,CAAC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;;;WAAA;QAOD,+BAAQ,GAAR,UAAS,KAAc;YAEtB,MAAM,CAAC,kBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACF,mBAAC;IAAD,CAAC,AA/ED,IA+EC;IA/ED;kCA+EC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeQuantity.js","sourceRoot":"","sources":["TimeQuantity.ts"],"names":["TimeQuantity","TimeQuantity.constructor","TimeQuantity.getTotalMilliseconds","TimeQuantity.direction","TimeQuantity.equals","TimeQuantity.compareTo","TimeQuantity.total","TimeQuantity.getTotal"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,yCAAyC;IACzC,yCAAyC;IACzC,0CAA0C;IAC1C,iCAAiC;IACjC,wBAA+B,YAAY,CAAC,CAAA;IAC5C,yBAAqB,YAAY,CAAC,CAAA;IAElC;;OAEG;IACH;QAICA,sBAAsBA,SAAoBA;YAA9BC,yBAA8BA,GAA9BA,aAA8BA;YAApBA,cAASA,GAATA,SAASA,CAAWA;QAE1CA,CAACA;QAEDD,8DAA8DA;QAC9DA,2CAAoBA,GAApBA;YAECE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;QACvBA,CAACA;QAMDF,sBAAIA,mCAASA;YAJbA;;;eAGGA;iBACHA;gBAECG,MAAMA,CAACA,iBAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,CAACA,CAACA,CAACA;YAChDA,CAACA;;;WAAAH;QAEDA;;;;WAIGA;QACHA,6BAAMA,GAANA,UAAOA,KAAmBA;YAEzBI,MAAMA,CAACA,kBAAQA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;QAChGA,CAACA;QAEDJ;;;;WAIGA;QACHA,gCAASA,GAATA,UAAUA,KAAmBA;YAE5BK,MAAMA,CAACA,iBAAOA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,KAAKA,CAACA,YAAYA,CAACA,CAACA;QAC/FA,CAACA;QAUDL,sBAAIA,+BAAKA;YAJTA;;;eAGGA;iBACHA;gBAECM,IAAIA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACpBA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,CACNA,CAACA;oBACAA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,oBAAoBA,EAAEA,CAACA;oBAErCA,IAAIA,CAACA,MAAMA,GAAGA,CAACA,GAAqBA,MAAMA,CAACA,MAAMA,CAACA;wBACjDA,KAAKA,EAAEA,EAAEA,GAACA,uBAA6BA;wBACvCA,YAAYA,EAAEA,EAAEA;wBAChBA,OAAOA,EAAEA,EAAEA,GAACA,iBAA+BA;wBAC3CA,OAAOA,EAAEA,EAAEA,GAACA,kBAA+BA;wBAC3CA,KAAKA,EAAEA,EAAEA,GAACA,kBAA6BA;wBACvCA,IAAIA,EAAEA,EAAEA,GAACA,kBAA4BA;qBACrCA,CAACA,CAACA;gBACJA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACVA,CAACA;;;WAAAN;QAEDA;;;;WAIGA;QACHA,+BAAQA,GAARA,UAASA,KAAcA;YAEtBO,MAAMA,CAACA,kBAAQA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;QACtEA,CAACA;QACFP,mBAACA;IAADA,CAACA,AA/ED,IA+EC;IA/ED;kCA+EC,CAAA"} \ No newline at end of file diff --git a/source/System/Time/TimeSpan.js b/source/System/Time/TimeSpan.js index 31f0a028..d2a92054 100644 --- a/source/System/Time/TimeSpan.js +++ b/source/System/Time/TimeSpan.js @@ -1,36 +1,49 @@ +/* + * @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'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', './TimeUnit', './ClockTime', './TimeQuantity'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types', './TimeUnit', './ClockTime', './TimeQuantity'], function (require, exports) { var Types_1 = require('../Types'); var TimeUnit_1 = require('./TimeUnit'); var ClockTime_1 = require('./ClockTime'); var TimeQuantity_1 = require('./TimeQuantity'); + /** + * TimeSpan expands on TimeQuantity to provide an class that is similar to .NET's TimeSpan including many useful static methods. + */ var TimeSpan = (function (_super) { __extends(TimeSpan, _super); + // In .NET the default type is Ticks, but for JavaScript, we will use Milliseconds. function TimeSpan(value, units) { if (units === void 0) { units = TimeUnit_1.default.Milliseconds; } var ms = TimeUnit_1.default.toMilliseconds(value, units); _super.call(this, ms); var _ = this; - _.ticks = ms * 10000; + _.ticks = ms * 10000 /* Millisecond */; _.milliseconds = ms; - _.seconds = ms / 1000; - _.minutes = ms / 60000; - _.hours = ms / 3600000; - _.days = ms / 86400000; + _.seconds = ms / 1000 /* Second */; + _.minutes = ms / 60000 /* Minute */; + _.hours = ms / 3600000 /* Hour */; + _.days = ms / 86400000 /* Day */; } Object.defineProperty(TimeSpan.prototype, "total", { + /** + * Provides an standard interface for acquiring the total time. + * @returns {TimeSpan} + */ get: function () { return this; }, @@ -38,6 +51,7 @@ var __extends = (this && this.__extends) || function (d, b) { configurable: true }); Object.defineProperty(TimeSpan.prototype, "time", { + // Instead of the confusing getTotal versus unit name, expose a 'ClockTime' value which reports the individual components. get: function () { var _ = this, t = _._time; if (!t) @@ -86,7 +100,7 @@ var __extends = (this && this.__extends) || function (d, b) { configurable: true }); return TimeSpan; - }(TimeQuantity_1.default)); + })(TimeQuantity_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeSpan; var timeSpanZero; diff --git a/source/System/Time/TimeSpan.js.map b/source/System/Time/TimeSpan.js.map index 13884030..0a9f5b1d 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":["TimeSpan","TimeSpan.constructor","TimeSpan.total","TimeSpan.time","TimeSpan.add","TimeSpan.addUnit","TimeSpan.from","TimeSpan.fromDays","TimeSpan.fromHours","TimeSpan.fromMinutes","TimeSpan.fromSeconds","TimeSpan.fromMilliseconds","TimeSpan.fromTicks","TimeSpan.zero"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Time/TimeStamp.js b/source/System/Time/TimeStamp.js index 08e56f10..b552e416 100644 --- a/source/System/Time/TimeStamp.js +++ b/source/System/Time/TimeStamp.js @@ -1,15 +1,27 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types'], function (require, exports) { + /// + /// + /// + /// var Types_1 = require('../Types'); + /** + * An alternative to Date or DateTime. Is a model representing the exact date and time. + */ var TimeStamp = (function () { function TimeStamp(year, month, day, hour, minute, second, millisecond, tick) { + // TODO: Add validation or properly carry out of range values... if (day === void 0) { day = 1; } if (hour === void 0) { hour = 0; } if (minute === void 0) { minute = 0; } @@ -28,7 +40,7 @@ } TimeStamp.prototype.toJsDate = function () { var _ = this; - return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000); + return new Date(_.year, _.month, _.day, _.hour, _.minute, _.second, _.millisecond + _.tick / 10000 /* Millisecond */); }; TimeStamp.from = function (d) { if (!(d instanceof Date) && Types_1.default.hasMember(d, 'toJsDate')) @@ -41,7 +53,7 @@ } }; return TimeStamp; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeStamp; }); diff --git a/source/System/Time/TimeStamp.js.map b/source/System/Time/TimeStamp.js.map index 5df7ea30..31f88b44 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":";;;;;;;;IAIA,YAAY,CAAC;IAMb,sBAAiB,UAAU,CAAC,CAAA;IAK5B;QAIC,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,KAA6B,CAAC,CAAC;QAC3H,CAAC;QAEM,cAAI,GAAX,UAAY,CAAgB;YAE3B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,eAAI,CAAC,SAAS,CAAC,CAAC,EAAC,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,AA/CD,IA+CC;IA/CD;+BA+CC,CAAA"} \ No newline at end of file +{"version":3,"file":"TimeStamp.js","sourceRoot":"","sources":["TimeStamp.ts"],"names":["TimeStamp","TimeStamp.constructor","TimeStamp.toJsDate","TimeStamp.from"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,sCAAsC;IACtC,qCAAqC;IACrC,qCAAqC;IACrC,iCAAiC;IACjC,sBAAiB,UAAU,CAAC,CAAA;IAE5B;;OAEG;IACH;QAICA,mBACQA,IAAWA,EACXA,KAAqBA,EACrBA,GAAcA,EACdA,IAAeA,EACfA,MAAiBA,EACjBA,MAAiBA,EACjBA,WAAsBA,EACtBA,IAAeA;YAGtBC,gEAAgEA;YARhEA,mBAAqBA,GAArBA,OAAqBA;YACrBA,oBAAsBA,GAAtBA,QAAsBA;YACtBA,sBAAwBA,GAAxBA,UAAwBA;YACxBA,sBAAwBA,GAAxBA,UAAwBA;YACxBA,2BAA6BA,GAA7BA,eAA6BA;YAC7BA,oBAAsBA,GAAtBA,QAAsBA;YAPfA,SAAIA,GAAJA,IAAIA,CAAOA;YACXA,UAAKA,GAALA,KAAKA,CAAgBA;YACrBA,QAAGA,GAAHA,GAAGA,CAAWA;YACdA,SAAIA,GAAJA,IAAIA,CAAWA;YACfA,WAAMA,GAANA,MAAMA,CAAWA;YACjBA,WAAMA,GAANA,MAAMA,CAAWA;YACjBA,gBAAWA,GAAXA,WAAWA,CAAWA;YACtBA,SAAIA,GAAJA,IAAIA,CAAWA;YAKtBA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;QACrBA,CAACA;QAEDD,4BAAQA,GAARA;YAECE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,IAAIA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,CAACA,CAACA,IAAIA,GAACA,uBAA6BA,CAACA,CAACA;QAC3HA,CAACA;QAEMF,cAAIA,GAAXA,UAAYA,CAAgBA;YAE3BG,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,YAAYA,IAAIA,CAACA,IAAIA,eAAIA,CAACA,SAASA,CAACA,CAACA,EAACA,UAAUA,CAACA,CAACA;gBACxDA,CAACA,GAAeA,CAAEA,CAACA,QAAQA,EAAEA,CAACA;YAC/BA,EAAEA,CAAAA,CAACA,CAACA,YAAYA,IAAIA,CAACA,CACrBA,CAACA;gBACAA,MAAMA,CAACA,IAAIA,SAASA,CACnBA,CAACA,CAACA,WAAWA,EAAEA,EACfA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,OAAOA,EAAEA,EACXA,CAACA,CAACA,QAAQA,EAAEA,EACZA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,UAAUA,EAAEA,EACdA,CAACA,CAACA,eAAeA,EAAEA,CACnBA,CAACA;YACHA,CAACA;YACDA,IAAIA,CACJA,CAACA;gBACAA,MAAMA,KAAKA,CAACA,oBAAoBA,CAACA,CAACA;YACnCA,CAACA;QACFA,CAACA;QACFH,gBAACA;IAADA,CAACA,AA/CD,IA+CC;IA/CD;+BA+CC,CAAA"} \ No newline at end of file diff --git a/source/System/Time/TimeUnit.js b/source/System/Time/TimeUnit.js index 24af8bd5..a5cd6c8d 100644 --- a/source/System/Time/TimeUnit.js +++ b/source/System/Time/TimeUnit.js @@ -1,12 +1,18 @@ -(function (factory) { +/* + * @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 + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { + /// + /// var TimeUnit; (function (TimeUnit) { TimeUnit[TimeUnit["Ticks"] = 0] = "Ticks"; @@ -15,24 +21,25 @@ TimeUnit[TimeUnit["Minutes"] = 3] = "Minutes"; TimeUnit[TimeUnit["Hours"] = 4] = "Hours"; TimeUnit[TimeUnit["Days"] = 5] = "Days"; - })(TimeUnit || (TimeUnit = {})); + })(TimeUnit || (TimeUnit = {})); // Earth Days var TimeUnit; (function (TimeUnit) { function toMilliseconds(value, units) { if (units === void 0) { units = TimeUnit.Milliseconds; } + // noinspection FallThroughInSwitchStatementJS switch (units) { case TimeUnit.Days: - value *= 24; + value *= 24 /* Day */; case TimeUnit.Hours: - value *= 60; + value *= 60 /* Hour */; case TimeUnit.Minutes: - value *= 60; + value *= 60 /* Minute */; case TimeUnit.Seconds: - value *= 1000; + value *= 1000 /* Second */; case TimeUnit.Milliseconds: return value; case TimeUnit.Ticks: - return value / 10000; + return value / 10000 /* Millisecond */; default: throw new Error("Invalid TimeUnit."); } @@ -41,17 +48,17 @@ function fromMilliseconds(ms, units) { switch (units) { case TimeUnit.Days: - return ms / 86400000; + return ms / 86400000 /* Day */; case TimeUnit.Hours: - return ms / 3600000; + return ms / 3600000 /* Hour */; case TimeUnit.Minutes: - return ms / 60000; + return ms / 60000 /* Minute */; case TimeUnit.Seconds: - return ms / 1000; + return ms / 1000 /* Second */; case TimeUnit.Milliseconds: return ms; case TimeUnit.Ticks: - return ms * 10000; + return ms * 10000 /* Millisecond */; default: throw new Error("Invalid TimeUnit."); } diff --git a/source/System/Time/TimeUnit.js.map b/source/System/Time/TimeUnit.js.map index 69c279e1..720eb358 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":";;;;;;;;;IAUA,IAAK,QAQJ;IARD,WAAK,QAAQ;QAEZ,yCAAK,CAAA;QACL,uDAAY,CAAA;QACZ,6CAAO,CAAA;QACP,6CAAO,CAAA;QACP,yCAAK,CAAA;QACL,uCAAI,CAAA;IACL,CAAC,EARI,QAAQ,KAAR,QAAQ,QAQZ;IAED,IAAO,QAAQ,CA+Dd;IA/DD,WAAO,QAAQ,EACf,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,EAAqB,CAAC;gBAChC,KAAK,QAAQ,CAAC,KAAK;oBAClB,KAAK,IAAI,EAAwB,CAAC;gBACnC,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,EAA0B,CAAC;gBACrC,KAAK,QAAQ,CAAC,OAAO;oBACpB,KAAK,IAAI,IAA+B,CAAC;gBAC1C,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,KAAK,CAAC;gBACd,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,KAAK,GAAC,KAA6B,CAAC;gBAC5C;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,QAA4B,CAAC;gBACxC,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,OAA6B,CAAC;gBACzC,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,KAA+B,CAAC;gBAC3C,KAAK,QAAQ,CAAC,OAAO;oBACpB,MAAM,CAAC,EAAE,GAAC,IAA+B,CAAC;gBAC3C,KAAK,QAAQ,CAAC,YAAY;oBACzB,MAAM,CAAC,EAAE,CAAC;gBACX,KAAK,QAAQ,CAAC,KAAK;oBAClB,MAAM,CAAC,EAAE,GAAC,KAA6B,CAAC;gBACzC;oBACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QArBe,yBAAgB,mBAqB/B,CAAA;QAED,cAAqB,QAAsB,EAAE,IAAa;YACzD,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;QAFe,aAAI,OAEnB,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,EA/DM,QAAQ,KAAR,QAAQ,QA+Dd;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":["TimeUnit","TimeUnit.toMilliseconds","TimeUnit.fromMilliseconds","TimeUnit.from","TimeUnit.assertValid"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Time/TimeUnitValue.js b/source/System/Time/TimeUnitValue.js index 4c2362eb..513079d6 100644 --- a/source/System/Time/TimeUnitValue.js +++ b/source/System/Time/TimeUnitValue.js @@ -1,19 +1,26 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", './TimeUnit', './TimeQuantity'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", './TimeUnit', './TimeQuantity'], function (require, exports) { var TimeUnit_1 = require('./TimeUnit'); var TimeQuantity_1 = require('./TimeQuantity'); + /** + * TimeUnitValue allows for passing around a reference to a changeable measure of time coerced by its unit type. + */ var TimeUnitValue = (function (_super) { __extends(TimeUnitValue, _super); function TimeUnitValue(value, _units) { @@ -38,6 +45,7 @@ var __extends = (this && this.__extends) || function (d, b) { return TimeUnit_1.default.toMilliseconds(this._quantity, this._units); }; Object.defineProperty(TimeUnitValue.prototype, "units", { + // To avoid confusion, the unit type can only be set once at construction. get: function () { return this._units; }, @@ -53,7 +61,7 @@ var __extends = (this && this.__extends) || function (d, b) { return new TimeUnitValue(value, units); }; return TimeUnitValue; - }(TimeQuantity_1.default)); + })(TimeQuantity_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeUnitValue; function getUnitQuantityFrom(q, units) { diff --git a/source/System/Time/TimeUnitValue.js.map b/source/System/Time/TimeUnitValue.js.map index c678bb80..773cd73f 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":";;;;;;;;;;;;;IAIA,YAAY,CAAC;IAOb,yBAAqB,YAAY,CAAC,CAAA;IAClC,6BAAyB,gBAAgB,CAAC,CAAA;IAK1C;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,kBAAQ,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,kBAAQ,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,kBAAQ,CAAC,YAAY;YAE7E,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAEF,oBAAC;IAAD,CAAC,AA5CD,CAC4B,sBAAY,GA2CvC;IA5CD;mCA4CC,CAAA;IAED,6BAA6B,CAAe,EAAE,KAAc;QAE3D,MAAM,CAAC,kBAAQ,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":["TimeUnitValue","TimeUnitValue.constructor","TimeUnitValue.value","TimeUnitValue.getTotalMilliseconds","TimeUnitValue.units","TimeUnitValue.to","TimeUnitValue.from","getUnitQuantityFrom"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;;;;;;IAOtE,yBAAqB,YAAY,CAAC,CAAA;IAClC,6BAAyB,gBAAgB,CAAC,CAAA;IAE1C;;OAEG;IACH;QAC4BA,iCAAYA;QAGvCA,uBAAYA,KAA0BA,EAAUA,MAAeA;YAE9DC,kBAAMA,OAAMA,CAACA,KAAKA,CAACA,IAAEA,QAAQA;kBAClBA,KAAKA;kBACbA,mBAAmBA,CAAgBA,KAAKA,EAAEA,MAAMA,CAACA,CAACA,CAACA;YAJPA,WAAMA,GAANA,MAAMA,CAASA;YAK9DA,kBAAQA,CAACA,WAAWA,CAACA,MAAMA,CAACA,CAACA;QAC9BA,CAACA;QAEDD,sBAAIA,gCAAKA;iBAATA;gBAECE,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;YACvBA,CAACA;iBAEDF,UAAUA,CAAQA;gBAEjBE,IAAIA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;gBACnBA,IAAIA,CAACA,SAASA,GAAGA,CAACA,CAACA;YACpBA,CAACA;;;WANAF;QAQDA,4CAAoBA,GAApBA;YAECG,MAAMA,CAACA,kBAAQA,CAACA,cAAcA,CAACA,IAAIA,CAACA,SAASA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;QAC7DA,CAACA;QAGDH,sBAAIA,gCAAKA;YADTA,0EAA0EA;iBAC1EA;gBAECI,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA;YACpBA,CAACA;;;WAAAJ;QAEDA,0BAAEA,GAAFA,UAAGA,KAA2BA;YAA3BK,qBAA2BA,GAA3BA,QAAiBA,IAAIA,CAACA,KAAKA;YAE7BA,MAAMA,CAACA,aAAaA,CAACA,IAAIA,CAACA,IAAIA,EAACA,KAAKA,CAACA,CAACA;QACvCA,CAACA;QAEML,kBAAIA,GAAXA,UAAYA,KAA0BA,EAAEA,KAAsCA;YAAtCM,qBAAsCA,GAAtCA,QAAiBA,kBAAQA,CAACA,YAAYA;YAE7EA,MAAMA,CAACA,IAAIA,aAAaA,CAACA,KAAKA,EAAEA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QAEFN,oBAACA;IAADA,CAACA,AA5CD,EAC4B,sBAAY,EA2CvC;IA5CD;mCA4CC,CAAA;IAED,6BAA6B,CAAe,EAAE,KAAc;QAE3DO,MAAMA,CAACA,kBAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA,oBAAoBA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;IACnEA,CAACA"} \ No newline at end of file diff --git a/source/System/Types.js b/source/System/Types.js index 85c40144..b723dd46 100644 --- a/source/System/Types.js +++ b/source/System/Types.js @@ -1,14 +1,24 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports"], function (require, exports) { + /// + /// var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof "", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { }; + // Only used for primitives. var typeInfoRegistry = {}; + /** + * Exposes easy access to type information including inquiring about members. + */ var TypeInfo = (function () { function TypeInfo(target) { var _ = this; @@ -62,12 +72,24 @@ } Object.freeze(_); } + /** + * Returns a TypeInfo for any member or non-member, + * where non-members are of type undefined. + * @param name + * @returns {TypeInfo} + */ TypeInfo.prototype.member = function (name) { var t = this.target; return TypeInfo.getFor(t && (name) in (t) ? t[name] : undefined); }; + /** + * Returns a TypeInfo for any target object. + * If the target object is of a primitive type, it returns the TypeInfo instance assigned to that type. + * @param target + * @returns {TypeInfo} + */ TypeInfo.getFor = function (target) { var type = typeof target; switch (type) { @@ -81,34 +103,84 @@ return info; }; return TypeInfo; - }()); + })(); exports.TypeInfo = TypeInfo; var Type; (function (Type) { + /** + * typeof true + * @type {string} + */ Type.BOOLEAN = _BOOLEAN; + /** + * typeof 0 + * @type {string} + */ Type.NUMBER = _NUMBER; + /** + * typeof "" + * @type {string} + */ Type.STRING = _STRING; + /** + * typeof {} + * @type {string} + */ Type.OBJECT = _OBJECT; + /** + * typeof undefined + * @type {string} + */ Type.UNDEFINED = _UNDEFINED; + /** + * typeof function + * @type {string} + */ Type.FUNCTION = _FUNCTION; + /** + * Returns true if the value parameter is a boolean. + * @param value + * @returns {boolean} + */ function isBoolean(value) { return typeof value === _BOOLEAN; } Type.isBoolean = isBoolean; + /** + * Returns true if the value parameter is a number. + * @param value + * @param allowNaN Default is true. + * @returns {boolean} + */ function isNumber(value, allowNaN) { if (allowNaN === VOID0) allowNaN = true; return typeof value === _NUMBER && (allowNaN || !isNaN(value)); } Type.isNumber = isNumber; + /** + * Returns true if is a number and is NaN. + * @param value + * @returns {boolean} + */ function isTrueNaN(value) { return typeof value === _NUMBER && isNaN(value); } Type.isTrueNaN = isTrueNaN; + /** + * Returns true if the value parameter is a string. + * @param value + * @returns {boolean} + */ function isString(value) { return typeof value === _STRING; } Type.isString = isString; + /** + * Returns true if the value is a boolean, string, number, null, or undefined. + * @param value + * @returns {boolean} + */ function isPrimitive(value) { var t = typeof value; switch (t) { @@ -123,14 +195,29 @@ return false; } Type.isPrimitive = isPrimitive; + /** + * Returns true if the value parameter is a function. + * @param value + * @returns {boolean} + */ function isFunction(value) { return typeof value === _FUNCTION; } Type.isFunction = isFunction; + /** + * Returns true if the value parameter is an object. + * @param value + * @returns {boolean} + */ function isObject(value) { return typeof value === _OBJECT; } Type.isObject = isObject; + /** + * Guarantees a number value or NaN instead. + * @param value + * @returns {number} + */ function numberOrNaN(value) { return isNaN(value) ? NaN : value; } diff --git a/source/System/Types.js.map b/source/System/Types.js.map index 5a657b90..063052ac 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":["TypeInfo","TypeInfo.constructor","TypeInfo.member","TypeInfo.getFor","Type","Type.isBoolean","Type.isNumber","Type.isTrueNaN","Type.isString","Type.isPrimitive","Type.isFunction","Type.isObject","Type.numberOrNaN","Type.of","Type.hasMember","Type.hasMemberOfType","Type.isArrayLike"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Uri/HostNameType.js b/source/System/Uri/HostNameType.js index e443d75a..18dfb992 100644 --- a/source/System/Uri/HostNameType.js +++ b/source/System/Uri/HostNameType.js @@ -1,18 +1,37 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * 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 (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { var UriHostNameType; (function (UriHostNameType) { + /** + * The host is set, but the type cannot be determined. + */ UriHostNameType[UriHostNameType["Basic"] = 0] = "Basic"; + /** + * The host name is a domain name system (DNS) style host name. + */ UriHostNameType[UriHostNameType["DNS"] = 1] = "DNS"; + /** + * The host name is an Internet Protocol (IP) version 4 host address. + */ UriHostNameType[UriHostNameType["IPv4"] = 2] = "IPv4"; + /** + * The host name is an Internet Protocol (IP) version 6 host address. + */ UriHostNameType[UriHostNameType["IPv6"] = 3] = "IPv6"; + /** + * The type of the host name is not supplied. + */ UriHostNameType[UriHostNameType["Unknown"] = 4] = "Unknown"; })(UriHostNameType || (UriHostNameType = {})); Object.freeze(UriHostNameType); diff --git a/source/System/Uri/HostNameType.js.map b/source/System/Uri/HostNameType.js.map index e1c3770e..6d16dc09 100644 --- a/source/System/Uri/HostNameType.js.map +++ b/source/System/Uri/HostNameType.js.map @@ -1 +1 @@ -{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["HostNameType.ts"],"names":[],"mappings":";;;;;;;;;IAOA,IAAK,eAyBJ;IAzBD,WAAK,eAAe;QAInB,uDAAK,CAAA;QAKL,mDAAG,CAAA;QAKH,qDAAI,CAAA;QAKJ,qDAAI,CAAA;QAKJ,2DAAO,CAAA;IACR,CAAC,EAzBI,eAAe,KAAf,eAAe,QAyBnB;IAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/B;sBAAe,eAAe,CAAC"} \ No newline at end of file +{"version":3,"file":"HostNameType.js","sourceRoot":"","sources":["HostNameType.ts"],"names":["UriHostNameType"],"mappings":"AAAA;;;;GAIG;;;;;;;;;IAGH,IAAK,eAyBJ;IAzBD,WAAK,eAAe;QACnBA;;WAEGA;QACHA,uDAAKA,CAAAA;QAELA;;WAEGA;QACHA,mDAAGA,CAAAA;QAEHA;;WAEGA;QACHA,qDAAIA,CAAAA;QAEJA;;WAEGA;QACHA,qDAAIA,CAAAA;QAEJA;;WAEGA;QACHA,2DAAOA,CAAAA;IACRA,CAACA,EAzBI,eAAe,KAAf,eAAe,QAyBnB;IAED,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/B;sBAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/source/System/Uri/QueryBuilder.js b/source/System/Uri/QueryBuilder.js index d95b1292..87b018c0 100644 --- a/source/System/Uri/QueryBuilder.js +++ b/source/System/Uri/QueryBuilder.js @@ -1,33 +1,61 @@ +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); 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 __()); }; -(function (factory) { +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', './QueryParams', '../Collections/Dictionaries/OrderedStringKeyDictionary'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types', './QueryParams', '../Collections/Dictionaries/OrderedStringKeyDictionary'], function (require, exports) { + /// + /// + /// + /// var Types_1 = require('../Types'); var QueryParams = require('./QueryParams'); var OrderedStringKeyDictionary_1 = require('../Collections/Dictionaries/OrderedStringKeyDictionary'); var ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; + /** + * Provides a means for parsing and building a set of parameters. + * + * 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. + */ var QueryBuilder = (function (_super) { __extends(QueryBuilder, _super); function QueryBuilder(query, decodeValues) { if (decodeValues === void 0) { decodeValues = true; } _super.call(this); + this.importQuery(query, decodeValues); + } + QueryBuilder.prototype.importQuery = function (query, decodeValues) { + if (decodeValues === void 0) { decodeValues = true; } if (Types_1.default.isString(query)) { this.importFromString(query, decodeValues); } + else if (Array.isArray(query)) { + this.importPairs(query); + } else { this.importMap(query); } - } + return this; + }; + /** + * Property parses the components of an URI into their values or array of values. + * @param values + * @param deserialize + * @param decodeValues + * @returns {QueryBuilder} + */ QueryBuilder.prototype.importFromString = function (values, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } @@ -49,12 +77,17 @@ var __extends = (this && this.__extends) || function (d, b) { if (decodeValues === void 0) { decodeValues = true; } return new QueryBuilder(query, decodeValues); }; + /** + * Returns the encoded URI string + */ QueryBuilder.prototype.encode = function (prefixIfNotEmpty) { var entries = []; var keys = this.keys; - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var k = keys_1[_i]; + for (var _i = 0; _i < keys.length; _i++) { + var k = keys[_i]; var value = this.getValue(k); + // Since the values can either be UriComponentValues or an array of UriComponentValues.. + // This creates a single code path for both options. for (var _a = 0, _b = Array.isArray(value) ? value : [value]; _a < _b.length; _a++) { var v = _b[_a]; entries.push(k + KEY_VALUE_SEPARATOR @@ -68,7 +101,7 @@ var __extends = (this && this.__extends) || function (d, b) { return this.encode(); }; return QueryBuilder; - }(OrderedStringKeyDictionary_1.default)); + })(OrderedStringKeyDictionary_1.default); 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 b3095d37..68730066 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":"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"} \ No newline at end of file +{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["QueryBuilder.ts"],"names":["QueryBuilder","QueryBuilder.constructor","QueryBuilder.importQuery","QueryBuilder.importFromString","QueryBuilder.init","QueryBuilder.encode","QueryBuilder.toString"],"mappings":"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"} \ No newline at end of file diff --git a/source/System/Uri/QueryBuilder.ts b/source/System/Uri/QueryBuilder.ts index 89f10fbd..b66ace0e 100644 --- a/source/System/Uri/QueryBuilder.ts +++ b/source/System/Uri/QueryBuilder.ts @@ -27,19 +27,32 @@ class QueryBuilder extends OrderedStringKeyDictionary[], decodeValues:boolean = true) { super(); + this.importQuery(query,decodeValues); + } + + importQuery( + query:string|IUriComponentMap|StringKeyValuePair[], + decodeValues:boolean = true):QueryBuilder { + if(Type.isString(query)) { this.importFromString(query, decodeValues); } + else if(Array.isArray(query)) + { + this.importPairs(query); + } else { this.importMap(query); } + + return this; } /** @@ -76,12 +89,13 @@ class QueryBuilder extends OrderedStringKeyDictionary[], decodeValues:boolean = true):QueryBuilder { return new QueryBuilder(query, decodeValues); } + /** * Returns the encoded URI string */ diff --git a/source/System/Uri/QueryParams.js b/source/System/Uri/QueryParams.js index a7cbd3aa..dff637cc 100644 --- a/source/System/Uri/QueryParams.js +++ b/source/System/Uri/QueryParams.js @@ -1,37 +1,49 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +/// +/// +/// +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', '../Serialization/Utility'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types', '../Serialization/Utility', '../KeyValueExtract'], function (require, exports) { var Types_1 = require('../Types'); var Serialization = require('../Serialization/Utility'); + var KeyValueExtract_1 = require('../KeyValueExtract'); + /* + * This module is provided as a lighter weight utility for acquiring query params. + * If more detailed operations are necessary, consider importing QueryBuilder. + */ var ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; + /** + * Returns the encoded URI string + */ function encode(values, prefixIfNotEmpty) { if (!values) return ''; - var entries = []; + var entries; if (Array.isArray(values)) { - for (var _i = 0, values_1 = values; _i < values_1.length; _i++) { - var kvp = values_1[_i]; - if (kvp) - entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value)); - } + entries = values.map(function (kvp) { return KeyValueExtract_1.default(kvp, function (key, value) { return key + KEY_VALUE_SEPARATOR + encodeValue(value); }); }); } else { - var keys = Object.keys(values); - for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { - var k = keys_1[_a]; - entries.push(k + KEY_VALUE_SEPARATOR + encodeValue(values[k])); - } + entries = Object.keys(values).map(function (key) { return key + KEY_VALUE_SEPARATOR + encodeValue(values[key]); }); } return (entries.length && prefixIfNotEmpty ? '?' : '') + entries.join(ENTRY_SEPARATOR); } exports.encode = encode; + /** + * Converts any primitive, serializable or uri-component object to an encoded string. + * @param value + * @returns {string} + */ function encodeValue(value) { var v = null; if (isUriComponentFormattable(value)) { @@ -45,17 +57,33 @@ return v; } exports.encodeValue = encodeValue; + /** + * A shortcut for identifying an IUriComponentFormattable object. + * @param instance + * @returns {boolean} + */ function isUriComponentFormattable(instance) { return Types_1.default.hasMemberOfType(instance, "toUriComponent", Types_1.default.FUNCTION); } exports.isUriComponentFormattable = isUriComponentFormattable; + /** + * Parses a string for valid query param entries and pipes them through a handler. + * @param query + * @param entryHandler + * @param deserialize Default is true. + * @param decodeValues Default is true. + */ function parse(query, entryHandler, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } if (query && (query = query.replace(/^\s*\?+/, ''))) { var entries = query.split(ENTRY_SEPARATOR); - for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { - var entry = entries_1[_i]; + for (var _i = 0; _i < entries.length; _i++) { + var entry = entries[_i]; + /* + * Since it is technically possible to have multiple '=' we need to identify the first one. + * And if there is no '=' then the entry is ignored. + */ var si = entry.indexOf(KEY_VALUE_SEPARATOR); if (si != -1) { var key = entry.substring(0, si); @@ -70,6 +98,13 @@ } } exports.parse = parse; + /** + * Parses a string for valid query params and returns a key-value map of the entries. + * @param query + * @param deserialize Default is true. + * @param decodeValues Default is true. + * @returns {IMap} + */ function parseToMap(query, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } @@ -87,6 +122,13 @@ return result; } exports.parseToMap = parseToMap; + /** + * Parses a string for valid query params and returns a key-value pair array of the entries. + * @param query + * @param deserialize Default is true. + * @param decodeValues Default is true. + * @returns {IKeyValuePair[]} + */ function parseToArray(query, deserialize, decodeValues) { if (deserialize === void 0) { deserialize = true; } if (decodeValues === void 0) { decodeValues = true; } diff --git a/source/System/Uri/QueryParams.js.map b/source/System/Uri/QueryParams.js.map index d43f0617..9780d3f5 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":["encode","encodeValue","isUriComponentFormattable","parse","parseToMap","parseToArray","Separator"],"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 86eda366..18767c6f 100644 --- a/source/System/Uri/QueryParams.ts +++ b/source/System/Uri/QueryParams.ts @@ -9,6 +9,7 @@ import Type from '../Types'; import * as Serialization from '../Serialization/Utility'; +import extractKeyValue from '../KeyValueExtract'; /* * This module is provided as a lighter weight utility for acquiring query params. @@ -16,33 +17,32 @@ import * as Serialization from '../Serialization/Utility'; */ const - ENTRY_SEPARATOR = "&", + ENTRY_SEPARATOR = "&", KEY_VALUE_SEPARATOR = "="; /** * Returns the encoded URI string */ export function encode( - values:IUriComponentMap|IKeyValuePair[], + values:IUriComponentMap|StringKeyValuePair[], prefixIfNotEmpty?:boolean):string { if(!values) return ''; - var entries:string[] = []; + var entries:string[]; if(Array.isArray(values)) { - for(let kvp of values) - { - if(kvp) entries.push(kvp.key + KEY_VALUE_SEPARATOR + encodeValue(kvp.value)); - } + entries = values.map( + kvp=>extractKeyValue(kvp, + (key, value)=>key + KEY_VALUE_SEPARATOR + encodeValue(value) + ) + ); } else { - var keys = Object.keys(values); - for(let k of keys) - { - entries.push(k + KEY_VALUE_SEPARATOR + encodeValue((values)[k])); - } + entries = Object.keys(values).map( + key=> key + KEY_VALUE_SEPARATOR + encodeValue((values)[key]) + ); } return (entries.length && prefixIfNotEmpty ? '?' : '') @@ -156,9 +156,9 @@ export function parseToMap( export function parseToArray( query:string, deserialize:boolean = true, - decodeValues:boolean = true):IKeyValuePair[] + decodeValues:boolean = true):IStringKeyValuePair[] { - var result:IKeyValuePair[] = []; + var result:IStringKeyValuePair[] = []; parse(query, (key, value)=> {result.push({key: key, value: value});}, deserialize, @@ -167,6 +167,7 @@ export function parseToArray( return result; } + export module Separator { export const Entry:string = ENTRY_SEPARATOR; diff --git a/source/System/Uri/Scheme.js b/source/System/Uri/Scheme.js index be165684..eb6a8a69 100644 --- a/source/System/Uri/Scheme.js +++ b/source/System/Uri/Scheme.js @@ -1,28 +1,72 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * 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 (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { var UriScheme; (function (UriScheme) { + /** + * The resource is a file on the local computer. + */ UriScheme[UriScheme["file"] = 0] = "file"; + /** + * The resource is accessed through FTP. + */ UriScheme[UriScheme["ftp"] = 1] = "ftp"; + /** + * The resource is accessed through the Gopher protocol. + */ UriScheme[UriScheme["gopher"] = 2] = "gopher"; + /** + * The resource is accessed through HTTP. + */ UriScheme[UriScheme["http"] = 3] = "http"; + /** + * The resource is accessed through SSL-encrypted HTTP. + */ UriScheme[UriScheme["https"] = 4] = "https"; + /** + * The resource is accessed through the LDAP protocol. + */ UriScheme[UriScheme["ldap"] = 5] = "ldap"; + /** + * The resource is an e-mail address and accessed through the SMTP protocol. + */ UriScheme[UriScheme["mailto"] = 6] = "mailto"; + /** + * The resource is accessed through a named pipe. + */ UriScheme[UriScheme["pipe"] = 7] = "pipe"; + /** + * The resource is accessed from TCP endpoint. + */ UriScheme[UriScheme["tcp"] = 8] = "tcp"; + /** + * The resource is accessed through the NNTP protocol. + */ UriScheme[UriScheme["news"] = 9] = "news"; + /** + * The resource is accessed through the NNTP protocol. + */ UriScheme[UriScheme["nntp"] = 10] = "nntp"; + /** + * The resource is accessed through the TELNET protocol. + */ UriScheme[UriScheme["telnet"] = 11] = "telnet"; + /** + * The resource is accessed through a unique UUID endpoint name for communicating with a service. + */ UriScheme[UriScheme["uuid"] = 12] = "uuid"; })(UriScheme || (UriScheme = {})); + // Extend the usefulness of the enum. var PIPE = 'net.pipe'; var TCP = 'net.tcp'; UriScheme[UriScheme.pipe] = PIPE; diff --git a/source/System/Uri/Scheme.js.map b/source/System/Uri/Scheme.js.map index e61a9e09..f7ff24f1 100644 --- a/source/System/Uri/Scheme.js.map +++ b/source/System/Uri/Scheme.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["Scheme.ts"],"names":[],"mappings":";;;;;;;;;IAMA,IAAK,SA4EJ;IA5ED,WAAK,SAAS;QAIb,yCAAI,CAAA;QAMJ,uCAAG,CAAA;QAMH,6CAAM,CAAA;QAMN,yCAAI,CAAA;QAMJ,2CAAK,CAAA;QAML,yCAAI,CAAA;QAMJ,6CAAM,CAAA;QAMN,yCAAI,CAAA;QAMJ,uCAAG,CAAA;QAMH,yCAAI,CAAA;QAMJ,0CAAI,CAAA;QAMJ,8CAAM,CAAA;QAKN,0CAAI,CAAA;IACL,CAAC,EA5EI,SAAS,KAAT,SAAS,QA4Eb;IAGD,IAAM,IAAI,GAAG,UAAU,CAAC;IACxB,IAAM,GAAG,GAAG,SAAS,CAAC;IAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;IAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzB;sBAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["Scheme.ts"],"names":["UriScheme"],"mappings":"AAAA;;;;GAIG;;;;;;;;;IAEH,IAAK,SA4EJ;IA5ED,WAAK,SAAS;QACbA;;WAEGA;QACHA,yCAAIA,CAAAA;QAGJA;;WAEGA;QACHA,uCAAGA,CAAAA;QAGHA;;WAEGA;QACHA,6CAAMA,CAAAA;QAGNA;;WAEGA;QACHA,yCAAIA,CAAAA;QAGJA;;WAEGA;QACHA,2CAAKA,CAAAA;QAGLA;;WAEGA;QACHA,yCAAIA,CAAAA;QAGJA;;WAEGA;QACHA,6CAAMA,CAAAA;QAGNA;;WAEGA;QACHA,yCAAIA,CAAAA;QAGJA;;WAEGA;QACHA,uCAAGA,CAAAA;QAGHA;;WAEGA;QACHA,yCAAIA,CAAAA;QAGJA;;WAEGA;QACHA,0CAAIA,CAAAA;QAGJA;;WAEGA;QACHA,8CAAMA,CAAAA;QAENA;;WAEGA;QACHA,0CAAIA,CAAAA;IACLA,CAACA,EA5EI,SAAS,KAAT,SAAS,QA4Eb;IAED,qCAAqC;IACrC,IAAM,IAAI,GAAG,UAAU,CAAC;IACxB,IAAM,GAAG,GAAG,SAAS,CAAC;IAEtB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEzB,SAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;IAClC,SAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzB;sBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/source/System/Uri/Uri.js b/source/System/Uri/Uri.js index ba09bf4f..e2fbe819 100644 --- a/source/System/Uri/Uri.js +++ b/source/System/Uri/Uri.js @@ -1,19 +1,42 @@ -(function (factory) { +/// +/// +/// +/* + * @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 + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Scheme', '../Exceptions/ArgumentException', '../Exceptions/ArgumentOutOfRangeException'], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports", '../Types', '../Uri/QueryParams', '../Text/Utility', '../Uri/Scheme', '../Exceptions/ArgumentException', '../Exceptions/ArgumentOutOfRangeException'], function (require, exports) { var Types_1 = require('../Types'); var QueryParams = require('../Uri/QueryParams'); var Utility_1 = require('../Text/Utility'); var Scheme_1 = require('../Uri/Scheme'); var ArgumentException_1 = require('../Exceptions/ArgumentException'); var ArgumentOutOfRangeException_1 = require('../Exceptions/ArgumentOutOfRangeException'); + /** + * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI. + * + * The read-only model (frozen) is easier for debugging than exposing accessors for each property. + * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change. + */ var Uri = (function () { + /** + * @param scheme The user name, password, or other user-specific information associated with the specified URI. + * @param userInfo The host component of this instance. + * @param host The port number of this URI. + * @param port The absolute path of the URI. + * @param path The absolute path of the URI. + * @param query Any query information included in the specified URI. + * @param fragment The escaped URI fragment. + */ function Uri(scheme, userInfo, host, port, path, query, fragment) { var _ = this; _.scheme = getScheme(scheme) || null; @@ -31,17 +54,35 @@ : {}); _.pathAndQuery = _.getPathAndQuery() || null; _.fragment = formatFragment(fragment) || null; + // This should validate the uri... _.absoluteUri = _.getAbsoluteUri(); + // Intended to be read-only. Call .toMap() to get a writable copy. Object.freeze(_); } + /** + * Compares the values of another IUri via toString comparison. + * @param other + * @returns {boolean} + */ Uri.prototype.equals = function (other) { return this === other || this.absoluteUri == Uri.toString(other); }; + /** + * Parses or clones values from existing Uri values. + * @param url + * @returns {Uri} An validated Uri object with the values. + */ Uri.from = function (url) { var uri = (!url || Types_1.default.isString(url)) ? Uri.parse(url) : url; return new Uri(uri.scheme, uri.userInfo, uri.host, uri.port, uri.path, uri.query, uri.fragment); }; + /** + * Parses a URL into it's components. + * @param url The url to parse. + * @param throwIfInvalid Defaults to true. + * @returns {IUri} Returns a map of the values or *null* if invalid and *throwIfInvalid* is false. + */ Uri.parse = function (url, throwIfInvalid) { if (throwIfInvalid === void 0) { throwIfInvalid = true; } var result = null; @@ -50,8 +91,14 @@ throw ex; return result; }; + /** + * Parses a URL into it's components. + * @param url The url to parse. + * @param out A delegate to capture the value. + * @returns {boolean} True if valid. False if invalid. + */ Uri.tryParse = function (url, out) { - return !tryParse(url, out); + return !tryParse(url, out); // return type is Exception. }; Uri.copyOf = function (map) { return copyUri(map); @@ -59,38 +106,78 @@ Uri.prototype.copyTo = function (map) { return copyUri(this, map); }; + Uri.prototype.updateQuery = function (query) { + var map = this.toMap(); + map.query = query; + return Uri.from(map); + }; + /** + * Is provided for sub classes to override this value. + */ Uri.prototype.getAbsoluteUri = function () { return uriToString(this); }; + /** + * Is provided for sub classes to override this value. + */ Uri.prototype.getAuthority = function () { return getAuthority(this); }; + /** + * Is provided for sub classes to override this value. + */ Uri.prototype.getPathAndQuery = function () { return getPathAndQuery(this); }; Object.defineProperty(Uri.prototype, "pathSegments", { + /** + * The segments that represent a path.
+ * https://msdn.microsoft.com/en-us/library/system.uri.segments%28v=vs.110%29.aspx + * + *
Example:
+ * If the path value equals: ```/tree/node/index.html```
+ * The result will be: ```['/','tree/','node/','index.html']``` + * @returns {string[]} + */ get: function () { return this.path.match(/^[/]|[^/]*[/]|[^/]+$/g); }, enumerable: true, configurable: true }); + /** + * Creates a writable copy. + * @returns {IUri} + */ Uri.prototype.toMap = function () { return this.copyTo({}); }; + /** + * @returns {string} The full absolute uri. + */ Uri.prototype.toString = function () { return this.absoluteUri; }; + /** + * Properly converts an existing URI to a string. + * @param uri + * @returns {string} + */ Uri.toString = function (uri) { return uri instanceof Uri ? uri.absoluteUri : uriToString(uri); }; + /** + * Returns the authority segment of an URI. + * @param uri + * @returns {string} + */ Uri.getAuthority = function (uri) { return getAuthority(uri); }; return Uri; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Uri; (function (Fields) { @@ -140,6 +227,9 @@ if (Types_1.default.isNumber(uri.port, false)) throw new ArgumentException_1.default('host', 'Cannot include a port when there is no host.'); } + /* + * [//[user:password@]host[:port]] + */ var result = uri.host || EMPTY; if (result) { if (uri.userInfo) @@ -163,6 +253,8 @@ + (formatQuery(query) || EMPTY); } function uriToString(uri) { + // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment] + // {scheme}{authority}{path}{query}{fragment} var scheme = getScheme(uri.scheme), authority = getAuthority(uri), pathAndQuery = getPathAndQuery(uri), fragment = formatFragment(uri.fragment); return EMPTY + ((scheme && (scheme + ':')) || EMPTY) @@ -173,17 +265,23 @@ function tryParse(url, out) { if (!url) return new ArgumentException_1.default('url', 'Nothing to parse.'); + // Could use a regex here, but well follow some rules instead. + // The intention is to 'gather' the pieces. This isn't validation (yet). + // scheme:[//[user:password@]domain[:port]][/]path[?query][#fragment] var i, result = {}; + // Anything after the first # is the fragment. i = url.indexOf(HASH); if (i != -1) { result.fragment = url.substring(i); url = url.substring(0, i); } + // Anything after the first ? is the query. i = url.indexOf(QM); if (i != -1) { result.query = url.substring(i); url = url.substring(0, i); } + // Guarantees a separation. i = url.indexOf(SLASH2); if (i != -1) { var scheme = Utility_1.trim(url.substring(0, i)), c = /:$/; @@ -193,16 +291,19 @@ result.scheme = scheme || undefined; url = url.substring(i + 2); } + // Find any path information. i = url.indexOf(SLASH); if (i != -1) { result.path = url.substring(i) || undefined; url = url.substring(0, i); } + // Separate user info. i = url.indexOf(AT); if (i != -1) { result.userInfo = url.substring(0, i) || undefined; url = url.substring(i + 1); } + // Remaining is host and port. i = url.indexOf(':'); if (i != -1) { var port = parseInt(Utility_1.trim(url.substring(i + 1))); @@ -215,6 +316,7 @@ if (url) result.host = url; out(copyUri(result)); + // null is good! (here) return null; } }); diff --git a/source/System/Uri/Uri.js.map b/source/System/Uri/Uri.js.map index 5d006d25..a35ea710 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":["Uri","Uri.constructor","Uri.equals","Uri.from","Uri.parse","Uri.tryParse","Uri.copyOf","Uri.copyTo","Uri.updateQuery","Uri.getAbsoluteUri","Uri.getAuthority","Uri.getPathAndQuery","Uri.pathSegments","Uri.toMap","Uri.toString","Fields","copyUri","getScheme","getAuthority","formatQuery","formatFragment","getPathAndQuery","uriToString","tryParse"],"mappings":"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AACA,CAACA;QAC3BA,CAACA;QAEDA,2BAA2BA;QAC3BA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QACxBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,IAAIA,MAAMA,GAAGA,cAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA;YACjDA,EAAEA,CAAAA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,IAAIA,2BAAiBA,CAACA,KAAKA,EAACA,iCAAiCA,CAACA,CAACA;YAEvEA,MAAMA,GAAGA,cAAIA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,EAACA,KAAKA,CAACA,CAACA,CAACA;YACvCA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,IAAIA,SAASA,CAACA;YAEpCA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAC5BA,CAACA;QAEDA,6BAA6BA;QAC7BA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,KAAKA,CAACA,CAACA;QACvBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,CAACA,IAAIA,SAASA,CAACA;YAC5CA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAEDA,sBAAsBA;QACtBA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,EAAEA,CAACA,CAACA;QACpBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,MAAMA,CAACA,QAAQA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,IAAIA,SAASA,CAACA;YACnDA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAC5BA,CAACA;QAEDA,8BAA8BA;QAC9BA,CAACA,GAAGA,GAAGA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;QACrBA,EAAEA,CAAAA,CAACA,CAACA,IAAGA,CAACA,CAACA,CAACA,CACVA,CAACA;YACAA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA,cAAIA,CAACA,GAAGA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChDA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACdA,MAAMA,CAACA,IAAIA,2BAAiBA,CAACA,KAAKA,EAACA,mBAAmBA,CAACA,CAACA;YAEzDA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACnBA,GAAGA,GAAGA,GAAGA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC3BA,CAACA;QAEDA,GAAGA,GAAGA,cAAIA,CAACA,GAAGA,CAACA,CAACA;QAChBA,EAAEA,CAAAA,CAACA,GAAGA,CAACA;YACNA,MAAMA,CAACA,IAAIA,GAAGA,GAAGA,CAACA;QAEnBA,GAAGA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAErBA,uBAAuBA;QACvBA,MAAMA,CAACA,IAAIA,CAACA;IAEbA,CAACA"} \ No newline at end of file diff --git a/source/System/Uri/Uri.ts b/source/System/Uri/Uri.ts index f23b31ee..ebe23920 100644 --- a/source/System/Uri/Uri.ts +++ b/source/System/Uri/Uri.ts @@ -21,6 +21,7 @@ import ArgumentOutOfRangeException from '../Exceptions/ArgumentOutOfRangeExcepti * Provides an read-only model representation of a uniform resource identifier (URI) and easy access to the parts of the URI. * * The read-only model (frozen) is easier for debugging than exposing accessors for each property. + * ICloneable<Uri> is not used to prevent unnecessary copying of values that won't change. */ export default class Uri implements IUri, IEquatable { @@ -50,8 +51,8 @@ export default class Uri implements IUri, IEquatable host:string, port:number, path:string, - query:string|IUriComponentMap|IKeyValuePair[], - fragment:string) + query?:string|IUriComponentMap|StringKeyValuePair[], + fragment?:string) { var _ = this; _.scheme = getScheme(scheme) || null; @@ -65,7 +66,7 @@ export default class Uri implements IUri, IEquatable if(!Type.isString(query)) - query = QueryParams.encode([]>query); + query = QueryParams.encode([]>query); _.query = formatQuery(query) || null; Object.freeze(_.queryParams @@ -149,6 +150,13 @@ export default class Uri implements IUri, IEquatable return copyUri(this,map); } + updateQuery(query:string|IUriComponentMap|StringKeyValuePair[]):Uri { + var map = this.toMap(); + map.query = query; + return Uri.from(map); + } + + /** * Is provided for sub classes to override this value. */ diff --git a/source/System/Utility/applyMixins.js b/source/System/Utility/applyMixins.js index 0b682467..794846c5 100644 --- a/source/System/Utility/applyMixins.js +++ b/source/System/Utility/applyMixins.js @@ -1,12 +1,15 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { function applyMixins(derivedConstructor, baseConstructors) { baseConstructors .forEach(function (bc) { diff --git a/source/System/Utility/applyMixins.js.map b/source/System/Utility/applyMixins.js.map index afd13c35..54bc9145 100644 --- a/source/System/Utility/applyMixins.js.map +++ b/source/System/Utility/applyMixins.js.map @@ -1 +1 @@ -{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["applyMixins.ts"],"names":[],"mappings":";;;;;;;;;IAKA,qBAAoC,kBAAsB,EAAE,gBAAsB;QAEjF,gBAAgB;aACd,OAAO,CAAC,UAAA,EAAE;YAEV,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAC9C,UAAA,IAAI;gBAEJ,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC,CACD,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC;IAbD;iCAaC,CAAA"} \ No newline at end of file +{"version":3,"file":"applyMixins.js","sourceRoot":"","sources":["applyMixins.ts"],"names":["applyMixins"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,qBAAoC,kBAAsB,EAAE,gBAAsB;QAEjFA,gBAAgBA;aACdA,OAAOA,CAACA,UAAAA,EAAEA;YAEVA,MAAMA,CAACA,mBAAmBA,CAACA,EAAEA,CAACA,SAASA,CAACA,CAACA,OAAOA,CAC9CA,UAAAA,IAAIA;gBAEJA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,CAACA,GAAGA,EAAEA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;YACzDA,CAACA,CACDA,CAACA;QACHA,CAACA,CACDA,CAACA;IACHA,CAACA;IAbD;iCAaC,CAAA"} \ No newline at end of file diff --git a/source/System/Utility/clone.js b/source/System/Utility/clone.js index 10ec84a0..edca9479 100644 --- a/source/System/Utility/clone.js +++ b/source/System/Utility/clone.js @@ -1,17 +1,21 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports", '../Types'], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports", '../Types'], function (require, exports) { var Types_1 = require('../Types'); function clone(source, depth) { if (depth === void 0) { depth = 0; } if (depth < 0) return source; + // return primitives as is. if (!Types_1.default.isObject(source)) return source; var result; @@ -27,6 +31,7 @@ result = {}; if (depth > 0) for (var k in source) { + //noinspection JSUnfilteredForInLoop result[k] = clone(source[k], depth - 1); } } diff --git a/source/System/Utility/clone.js.map b/source/System/Utility/clone.js.map index f87a3927..016ecdd7 100644 --- a/source/System/Utility/clone.js.map +++ b/source/System/Utility/clone.js.map @@ -1 +1 @@ -{"version":3,"file":"clone.js","sourceRoot":"","sources":["clone.ts"],"names":[],"mappings":";;;;;;;;;IAKA,sBAAiB,UAAU,CAAC,CAAA;IAE5B,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":["clone.ts"],"names":["clone"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,sBAAiB,UAAU,CAAC,CAAA;IAE5B,eAA8B,MAAU,EAAE,KAAgB;QAAhBA,qBAAgBA,GAAhBA,SAAgBA;QAEzDA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;YACVA,MAAMA,CAACA,MAAMA,CAACA;QAEfA,2BAA2BA;QAC3BA,EAAEA,CAAAA,CAACA,CAACA,eAAIA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;YAACA,MAAMA,CAACA,MAAMA,CAACA;QAEzCA,IAAIA,MAAUA,CAACA;QACfA,EAAEA,CAAAA,CAACA,KAAKA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CACzBA,CAACA;YACAA,MAAMA,GAASA,MAAOA,CAACA,KAAKA,EAAEA,CAACA;YAC/BA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA,CACXA,CAACA;gBACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAACA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EACnCA,CAACA;oBACAA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;gBACzCA,CAACA;YACFA,CAACA;QACFA,CAACA;QACDA,IAAIA,CACJA,CAACA;YACAA,MAAMA,GAAGA,EAAEA,CAACA;YACZA,EAAEA,CAAAA,CAACA,KAAKA,GAACA,CAACA,CAACA;gBAACA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CAChCA,CAACA;oBACAA,oCAAoCA;oBACpCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;gBACzCA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IAEfA,CAACA;IAhCD;2BAgCC,CAAA"} \ No newline at end of file diff --git a/source/System/Utility/shallowCopy.js b/source/System/Utility/shallowCopy.js index eafac3fe..d4bb0875 100644 --- a/source/System/Utility/shallowCopy.js +++ b/source/System/Utility/shallowCopy.js @@ -1,16 +1,20 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - "use strict"; +})(["require", "exports"], function (require, exports) { function shallowCopy(source, target) { if (target === void 0) { target = {}; } if (target) { for (var k in source) { + //noinspection JSUnfilteredForInLoop target[k] = source[k]; } } diff --git a/source/System/Utility/shallowCopy.js.map b/source/System/Utility/shallowCopy.js.map index 1525921f..7b8b361e 100644 --- a/source/System/Utility/shallowCopy.js.map +++ b/source/System/Utility/shallowCopy.js.map @@ -1 +1 @@ -{"version":3,"file":"shallowCopy.js","sourceRoot":"","sources":["shallowCopy.ts"],"names":[],"mappings":";;;;;;;;;IAKA,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":["shallowCopy.ts"],"names":["shallowCopy"],"mappings":"AAAA;;;GAGG;;;;;;;;;IAEH,qBAAoC,MAAU,EAAE,MAAe;QAAfA,sBAAeA,GAAfA,WAAeA;QAE9DA,EAAEA,CAAAA,CAACA,MAAMA,CAACA,CACVA,CAACA;YACAA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,IAAIA,MAAMA,CAACA,CACpBA,CAACA;gBACAA,oCAAoCA;gBACpCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;YACvBA,CAACA;QACFA,CAACA;QAEDA,MAAMA,CAACA,MAAMA,CAACA;IACfA,CAACA;IAZD;iCAYC,CAAA"} \ No newline at end of file diff --git a/source/System/Validation/ValidationResult.js b/source/System/Validation/ValidationResult.js index 31ea46a0..ff9796f8 100644 --- a/source/System/Validation/ValidationResult.js +++ b/source/System/Validation/ValidationResult.js @@ -1,14 +1,26 @@ -(function (factory) { +/* + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +'use strict'; // For compatibility with (let, const, function, class); +(function (deps, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(["require", "exports"], factory); + define(deps, factory); } -})(function (require, exports) { - 'use strict'; +})(["require", "exports"], function (require, exports) { + /// + /// var valid = new ValidationResult(true); + /** + * A class for generating responses to validation. + */ var ValidationResult = (function () { + /** + * Allows for rare cases that ValidationResult.valid and ValidationResult.invalid() don't cover. + */ function ValidationResult(isValid, message, data) { if (isValid === void 0) { isValid = false; } if (message === void 0) { message = null; } @@ -16,8 +28,12 @@ this.isValid = isValid; this.message = message; this.data = data; + // Readonly... Object.freeze(this); } + /** + * Allows for comparing another IValidationResult to see if they are equal. + */ ValidationResult.prototype.equals = function (other) { var _ = this; return _.isValid === other.isValid @@ -25,18 +41,25 @@ && _.data == _.data; }; Object.defineProperty(ValidationResult, "valid", { + /** + * Represents a single/shared instance of a valid result. + * Allows for returning this instance like you would return 'true'. + */ get: function () { return valid; }, enumerable: true, configurable: true }); + /** + * Factory method for easily creating an invalid result. + */ ValidationResult.invalid = function (message, data) { if (data === void 0) { data = null; } return new ValidationResult(false, message, data); }; return ValidationResult; - }()); + })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ValidationResult; }); diff --git a/source/System/Validation/ValidationResult.js.map b/source/System/Validation/ValidationResult.js.map index ab8e1ca2..76b61235 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":";;;;;;;;IAIA,YAAY,CAAC;IAKb,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":["ValidationResult","ValidationResult.constructor","ValidationResult.equals","ValidationResult.valid","ValidationResult.invalid"],"mappings":"AAAA;;;GAGG;AACH,YAAY,CAAC,CAAC,wDAAwD;;;;;;;;;IAEtE,8CAA8C;IAC9C,yCAAyC;IAEzC,IAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH;QAICA;;WAEGA;QACHA,0BACQA,OAAuBA,EACvBA,OAAqBA,EACrBA,IAAeA;YAFtBC,uBAA8BA,GAA9BA,eAA8BA;YAC9BA,uBAA4BA,GAA5BA,cAA4BA;YAC5BA,oBAAsBA,GAAtBA,WAAsBA;YAFfA,YAAOA,GAAPA,OAAOA,CAAgBA;YACvBA,YAAOA,GAAPA,OAAOA,CAAcA;YACrBA,SAAIA,GAAJA,IAAIA,CAAWA;YAGtBA,cAAcA;YACdA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;QACrBA,CAACA;QAEDD;;WAEGA;QACHA,iCAAMA,GAANA,UAAOA,KAAuBA;YAE7BE,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YACbA,MAAMA,CAACA,CAACA,CAACA,OAAOA,KAAGA,KAAKA,CAACA,OAAOA;mBAC5BA,CAACA,CAACA,OAAOA,IAAEA,CAACA,CAACA,OAAOA;mBACpBA,CAACA,CAACA,IAAIA,IAAEA,CAACA,CAACA,IAAIA,CAACA;QACpBA,CAACA;QAODF,sBAAWA,yBAAKA;YAJhBA;;;eAGGA;iBACHA;gBACCG,MAAMA,CAACA,KAAKA,CAACA;YACdA,CAACA;;;WAAAH;QAEDA;;WAEGA;QACIA,wBAAOA,GAAdA,UACCA,OAAcA,EACdA,IAAeA;YAAfI,oBAAeA,GAAfA,WAAeA;YAEfA,MAAMA,CAACA,IAAIA,gBAAgBA,CAACA,KAAKA,EAAEA,OAAOA,EAAEA,IAAIA,CAACA,CAACA;QACnDA,CAACA;QACFJ,uBAACA;IAADA,CAACA,AA9CD,IA8CC;IA9CD;sCA8CC,CAAA"} \ No newline at end of file diff --git a/tests/mocha/System/Uri/Uri.js b/tests/mocha/System/Uri/Uri.js index 819c3103..dd17f31d 100644 --- a/tests/mocha/System/Uri/Uri.js +++ b/tests/mocha/System/Uri/Uri.js @@ -28,6 +28,13 @@ assert.equal(u.queryParams[params[1][0]], params[1][1]); }); }); + describe('KVP versus Tuple', function () { + it('should be equal', function () { + var uTuples = new Uri_1.default(u.scheme, u.userInfo, u.host, u.port, u.path, params); + var uKvp = new Uri_1.default(u.scheme, u.userInfo, u.host, u.port, u.path, u.queryParams); + assert.equal(uTuples.toString(), uKvp.toString()); + }); + }); describe('es6 > babel > commonjs', function () { var Uri2 = require('../../../../dist/commonjs/System/Uri/Uri').default; var u2 = Uri2.from(path + query); diff --git a/tests/mocha/System/Uri/Uri.js.map b/tests/mocha/System/Uri/Uri.js.map index acb9eefb..1f9e74a3 100644 --- a/tests/mocha/System/Uri/Uri.js.map +++ b/tests/mocha/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"sources":["system/uri/uri.ts"],"names":[],"mappings":";;;;;;;;IAEA,oBAAgB,mCAAmC,CAAC,CAAA;IACpD,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IAAM,IAAI,GAAG,qBAAqB,CAAC;IACnC,IAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAC,MAAM,CAAC,EAAC,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC,CAAC;IACjD,IAAM,KAAK,GAAG,GAAG,GAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAGhE,IAAI,CAAC,GAAG,aAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAE/B,QAAQ,CAAC,OAAO,EAAE;QAEjB,EAAE,CAAC,eAAe,GAAG,IAAI,EAAE;YAE1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE;QAElB,EAAE,CAAC,eAAe,GAAG,KAAK,EAAE;YAE3B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QAExB,EAAE,CAAC,qCAAqC,EAAE;YAEzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAIH,QAAQ,CAAC,wBAAwB,EAAE;QAElC,IAAM,IAAI,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAAC,OAAO,CAAC;QAEzE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAEjC,QAAQ,CAAC,OAAO,EAAE;YAEjB,EAAE,CAAC,eAAe,GAAG,IAAI,EAAE;gBAE1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE;YAElB,EAAE,CAAC,eAAe,GAAG,KAAK,EAAE;gBAE3B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Uri/Uri.js","sourcesContent":["///\r\n\r\nimport Uri from '../../../../source/System/Uri/Uri';\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst path = '/one/two/three.html';\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('.path', ()=>\r\n{\r\n\tit('should equal ' + path, ()=>\r\n\t{\r\n\t\tassert.equal(u.path, 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\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\ndescribe('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 +{"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\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst path = '/one/two/three.html';\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('.path', ()=>\r\n{\r\n\tit('should equal ' + path, ()=>\r\n\t{\r\n\t\tassert.equal(u.path, 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\r\ndescribe('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 7ecad83e..80f9de0c 100644 --- a/tests/mocha/System/Uri/Uri.ts +++ b/tests/mocha/System/Uri/Uri.ts @@ -26,6 +26,8 @@ describe('.query', ()=> }); }); + + describe('.queryParams', ()=> { it('should equal contain correct values', ()=> @@ -33,9 +35,26 @@ describe('.queryParams', ()=> assert.equal(u.queryParams[params[0][0]], params[0][1]); assert.equal(u.queryParams[params[1][0]], params[1][1]); }); + + }); +describe('KVP versus Tuple', ()=> +{ + + it('should be equal', ()=> + { + var uTuples = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,params); + var uKvp = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,u.queryParams); + + assert.equal(uTuples.toString(),uKvp.toString()); + }); + + + +}); + describe('es6 > babel > commonjs', ()=> { diff --git a/tests/qunit/Arrays/Compare.js b/tests/qunit/Arrays/Compare.js index 4d2c2d1c..223b3c47 100644 --- a/tests/qunit/Arrays/Compare.js +++ b/tests/qunit/Arrays/Compare.js @@ -1,16 +1,15 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit"], factory); } -})(["require", "exports", "QUnit"], function (require, exports) { +})(function (require, exports) { function run() { } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Compare.js.map \ No newline at end of file + +//# sourceMappingURL=Compare.js.map diff --git a/tests/qunit/Arrays/Compare.js.map b/tests/qunit/Arrays/Compare.js.map index 8252ff0b..6ab905d7 100644 --- a/tests/qunit/Arrays/Compare.js.map +++ b/tests/qunit/Arrays/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":["run"],"mappings":"AAAA,wDAAwD;AACxD,iCAAiC;;;;;;;;;IAIjC;IAEAA,CAACA;IAFD;yBAEC,CAAA"} \ No newline at end of file +{"version":3,"sources":["arrays/compare.ts"],"names":["run"],"mappings":";;;;;;;;IAKA;IAEAA,CAACA;IAFD;yBAEC,CAAA","file":"Arrays/Compare.js","sourcesContent":["///\r\n///\r\n\r\nimport * as ArrayCompare from 'source/System/Collections/Array/Compare';\r\n\r\nexport default function run() {\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Arrays/Procedure.js b/tests/qunit/Arrays/Procedure.js index b3fd8421..a21bf31f 100644 --- a/tests/qunit/Arrays/Procedure.js +++ b/tests/qunit/Arrays/Procedure.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System/Collections/Array/Procedure'], factory); } -})(["require", "exports", "QUnit", 'source/System/Collections/Array/Procedure'], function (require, exports) { +})(function (require, exports) { var ArrayProcedure = require('source/System/Collections/Array/Procedure'); function run() { var minA = -10, maxA = 2000, minB = -Infinity, maxB = Infinity; @@ -39,4 +37,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Procedure.js.map \ No newline at end of file + +//# sourceMappingURL=Procedure.js.map diff --git a/tests/qunit/Arrays/Procedure.js.map b/tests/qunit/Arrays/Procedure.js.map index af3235d9..236b8d70 100644 --- a/tests/qunit/Arrays/Procedure.js.map +++ b/tests/qunit/Arrays/Procedure.js.map @@ -1 +1 @@ -{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["Procedure.ts"],"names":["run"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["arrays/procedure.ts"],"names":["run"],"mappings":"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","file":"Arrays/Procedure.js","sourcesContent":["///\r\n///\r\n\r\nimport * as ArrayProcedure from 'source/System/Collections/Array/Procedure';\r\n\r\nexport default function run() {\r\n // Min/Max tests...\r\n var minA = -10, maxA = 2000,\r\n minB = -Infinity, maxB = Infinity;\r\n\r\n var a = [5, minA, -1, maxA, -2, NaN, 20],\r\n sum = 5 + minA + -1 + maxA + -2 + 20,\r\n average = sum/6, // Not including NaN\r\n product = 5*minA* -1*maxA* -2*20;\r\n\r\n var b = [5, 2000, maxB, -1, NaN, -10, minB, -2, 20];\r\n\r\n\r\n QUnit.test(\"Array/Procedure.sum\", function (assert:QUnitAssert) {\r\n assert.ok(isNaN(ArrayProcedure.sum(a, false)), \"Sum should be NaN\");\r\n assert.equal(ArrayProcedure.sum(a, true), sum, \"Sum should be \" + sum);\r\n });\r\n\r\n QUnit.test(\"Array/Procedure.average\", function (assert:QUnitAssert) {\r\n assert.ok(isNaN(ArrayProcedure.average(a, false)), \"Average should be NaN\");\r\n assert.equal(ArrayProcedure.average(a, true), average, \"Average should be \" + average);\r\n });\r\n\r\n\r\n QUnit.test(\"Array/Procedure.product\", function (assert:QUnitAssert) {\r\n assert.ok(isNaN(ArrayProcedure.product(a, false)), \"Product should be NaN\");\r\n assert.equal(ArrayProcedure.product(a, true), product, \"Product should be \" + product);\r\n });\r\n\r\n\r\n QUnit.test(\"Array/Procedure.min\", function (assert:QUnitAssert) {\r\n assert.ok(isNaN(ArrayProcedure.min(a, false)), \"Min value should be NaN\");\r\n assert.equal(ArrayProcedure.min(a, true), minA, \"Min value should be \" + minA);\r\n assert.equal(ArrayProcedure.min(b, true), minB, \"Min value should be \" + minB);\r\n });\r\n\r\n QUnit.test(\"Array/Procedure.max\", function (assert:QUnitAssert) {\r\n assert.ok(isNaN(ArrayProcedure.max(a, false)), \"Min value should be NaN\");\r\n assert.equal(ArrayProcedure.max(a, true), maxA, \"Min value should be \" + maxA);\r\n assert.equal(ArrayProcedure.max(b, true), maxB, \"Min value should be \" + maxB);\r\n });\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Arrays/Utility.js b/tests/qunit/Arrays/Utility.js index fe5b5e53..e2a95a75 100644 --- a/tests/qunit/Arrays/Utility.js +++ b/tests/qunit/Arrays/Utility.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System/Collections/Array/Compare', 'source/System/Collections/Array/Utility'], factory); } -})(["require", "exports", "QUnit", 'source/System/Collections/Array/Compare', 'source/System/Collections/Array/Utility'], function (require, exports) { +})(function (require, exports) { var Arrays = require('source/System/Collections/Array/Compare'); var ArrayUtility = require('source/System/Collections/Array/Utility'); function run() { @@ -79,4 +77,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Utility.js.map \ No newline at end of file + +//# sourceMappingURL=Utility.js.map diff --git a/tests/qunit/Arrays/Utility.js.map b/tests/qunit/Arrays/Utility.js.map index 94834742..caeeed2c 100644 --- a/tests/qunit/Arrays/Utility.js.map +++ b/tests/qunit/Arrays/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":["run"],"mappings":"AAAA,wDAAwD;AACxD,iCAAiC;;;;;;;;;IAEjC,IAAY,MAAM,WAAM,yCAAyC,CAAC,CAAA;IAClE,IAAY,YAAY,WAAM,yCAAyC,CAAC,CAAA;IAExE;QAEIA,IAAIA,IAAIA,GAAGA,CAACA,EAAEA,EAAEA,IAAIA,GAAGA,IAAIA,CAACA;QAE5BA,IAAIA,CAACA,GAAGA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,CAACA,EAAEA,GAAGA,EAAEA,EAAEA,CAACA,CAACA;QAEzCA,KAAKA,CAACA,IAAIA,CAACA,0BAA0BA,EAAEA,UAACA,MAAkBA;YACtDA,IAAIA,GAAUA,CAACA;YAEfA,GAAGA,GAAGA,GAAGA,CAACA;YACVA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;YACrCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,EAAEA,oBAAoBA,GAAGA,GAAGA,CAACA,CAACA;YAExDA,GAAGA,GAAGA,MAAMA,CAACA;YACbA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;YACrCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,EAAEA,oBAAoBA,GAAGA,GAAGA,CAACA,CAACA;QAE5DA,CAACA,CAACA,CAACA;QAGHA,KAAKA,CAACA,IAAIA,CAACA,2BAA2BA,EAAEA,UAACA,MAAkBA;YACvDA,IAAIA,EAAEA,GAAGA,CAACA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACrDA,IAAIA,EAAEA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,EAAEA,CAACA,CAACA;YAE/BA,MAAMA,CAACA,EAAEA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,CAACA,CAACA;QACvCA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YACpDA,MAAMA,CAACA,EAAEA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;YACxCA,MAAMA,CAACA,EAAEA,CAACA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,IAAIA,CAACA,CAACA,CAACA;QAChDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,yBAAyBA,EAAEA,UAACA,MAAkBA;YACrDA,MAAMA,CAACA,KAAKA,CAACA,YAAYA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAACA,CAAQA;gBAC5CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACnBA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACPA,MAAMA,CAACA,KAAKA,CAACA,YAAYA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAACA,CAAQA;gBAC5CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA;YACtBA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA;QACZA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YACpDA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,MAAMA,CAACA;YAC7CA,MAAMA,CAACA,EAAEA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC3CA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YAChCA,GAAGA,GAAGA,CAACA,CAACA,MAAMA,CAACA;YAEfA,MAAMA,CAACA,EAAEA,CAACA,CAACA,YAAYA,CAA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"} \ No newline at end of file +{"version":3,"sources":["arrays/utility.ts"],"names":["run"],"mappings":";;;;;;;;IAGA,IAAY,MAAM,WAAM,yCAAyC,CAAC,CAAA;IAClE,IAAY,YAAY,WAAM,yCAAyC,CAAC,CAAA;IAExE;QAEIA,IAAIA,IAAIA,GAAGA,CAACA,EAAEA,EAAEA,IAAIA,GAAGA,IAAIA,CAACA;QAE5BA,IAAIA,CAACA,GAAGA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,CAACA,EAAEA,GAAGA,EAAEA,EAAEA,CAACA,CAACA;QAEzCA,KAAKA,CAACA,IAAIA,CAACA,0BAA0BA,EAAEA,UAACA,MAAkBA;YACtDA,IAAIA,GAAUA,CAACA;YAEfA,GAAGA,GAAGA,GAAGA,CAACA;YACVA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;YACrCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,EAAEA,oBAAoBA,GAAGA,GAAGA,CAACA,CAACA;YAExDA,GAAGA,GAAGA,MAAMA,CAACA;YACbA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;YACrCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,EAAEA,oBAAoBA,GAAGA,GAAGA,CAACA,CAACA;QAE5DA,CAACA,CAACA,CAACA;QAGHA,KAAKA,CAACA,IAAIA,CAACA,2BAA2BA,EAAEA,UAACA,MAAkBA;YACvDA,IAAIA,EAAEA,GAAGA,CAACA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACrDA,IAAIA,EAAEA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,EAAEA,CAACA,CAACA;YAE/BA,MAAMA,CAACA,EAAEA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,CAACA,CAACA;QACvCA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YACpDA,MAAMA,CAACA,EAAEA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;YACxCA,MAAMA,CAACA,EAAEA,CAACA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,IAAIA,CAACA,CAACA,CAACA;QAChDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,yBAAyBA,EAAEA,UAACA,MAAkBA;YACrDA,MAAMA,CAACA,KAAKA,CAACA,YAAYA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAACA,CAAQA;gBAC5CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACnBA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;YACPA,MAAMA,CAACA,KAAKA,CAACA,YAAYA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAACA,CAAQA;gBAC5CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA;YACtBA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA;QACZA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YACpDA,IAAIA,CAACA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,MAAMA,CAACA;YAC7CA,MAAMA,CAACA,EAAEA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC3CA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YAChCA,GAAGA,GAAGA,CAACA,CAACA,MAAMA,CAACA;YAEfA,MAAMA,CAACA,EAAEA,CAACA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA,EAAEA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","file":"Arrays/Utility.js","sourcesContent":["///\r\n///\r\n\r\nimport * as Arrays from 'source/System/Collections/Array/Compare';\r\nimport * as ArrayUtility from 'source/System/Collections/Array/Utility';\r\n\r\nexport default function run() {\r\n // Min/Max tests...\r\n var minA = -10, maxA = 2000;\r\n\r\n var a = [5, minA, -1, maxA, -2, NaN, 20];\r\n\r\n QUnit.test(\"Array/Utility.initialize\", (assert:QUnitAssert)=> {\r\n var len:number;\r\n\r\n len = 100;\r\n var a = ArrayUtility.initialize(len);\r\n assert.equal(a.length, len, \".length should be \" + len);\r\n\r\n len = 100000;\r\n var b = ArrayUtility.initialize(len);\r\n assert.equal(b.length, len, \".length should be \" + len);\r\n\r\n });\r\n\r\n\r\n QUnit.test(\"Array/Utility.copy/equals\", (assert:QUnitAssert)=> {\r\n var s1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3];\r\n var s2 = ArrayUtility.copy(s1);\r\n\r\n assert.ok(Arrays.areEqual(s1, s2));\r\n });\r\n\r\n QUnit.test(\"Array/Utility.contains\", (assert:QUnitAssert)=> {\r\n assert.ok(ArrayUtility.contains(a, -1));\r\n assert.ok(!ArrayUtility.contains(a, -9876));\r\n });\r\n\r\n QUnit.test(\"Array/Utility.findIndex\", (assert:QUnitAssert)=> {\r\n assert.equal(ArrayUtility.findIndex(a, (v:number)=> {\r\n return v == -1;\r\n }), 2);\r\n assert.equal(ArrayUtility.findIndex(a, (v:number)=> {\r\n return v == -9876;\r\n }), -1);\r\n });\r\n\r\n QUnit.test(\"Array/Utility.register\", (assert:QUnitAssert)=> {\r\n var s = ArrayUtility.copy(a), len = s.length;\r\n assert.ok(ArrayUtility.register(s, -9876));\r\n assert.equal(s.length, len + 1);\r\n len = s.length;\r\n\r\n assert.ok(!ArrayUtility.register(s, -1));\r\n assert.equal(s.length, len);\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 QUnit.test(\"Array/Utility.remove\", (assert:QUnitAssert)=> {\r\n var s = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3];\r\n var len = s.length;\r\n\r\n assert.equal(ArrayUtility.remove(s, 9), 1, \"Only 9 removed once\");\r\n assert.equal(s.length, len - 1, \".length should be less by one\");\r\n assert.equal(s[1], 8, \"Index [1] is now 8\");\r\n len = s.length;\r\n\r\n assert.equal(ArrayUtility.remove(s, 2), 2, \"2 removed twice\");\r\n assert.equal(s.length, len - 2, \".length should be less by two\");\r\n assert.equal(s[7], 1, \"Index [7] is now 1\");\r\n assert.equal(s[10], 3, \"Index [10] is now 3\");\r\n len = s.length;\r\n\r\n assert.equal(ArrayUtility.remove(s, 15), 0, \"15 does not exist\");\r\n assert.equal(s.length, len, \".length should be the same\");\r\n len = s.length;\r\n\r\n assert.ok(ArrayUtility.removeIndex(s, 5), \"Index [5] removed\");\r\n assert.equal(s.length, len - 1, \".length should be less by one\");\r\n len = s.length;\r\n\r\n assert.ok(!ArrayUtility.removeIndex(s, 15), \"Index [15] doesn't exist\");\r\n assert.equal(s.length, len, \".length should be the same\");\r\n });\r\n\r\n\r\n QUnit.test(\"Array/Utility.repeat\", (assert:QUnitAssert)=> {\r\n var value = 10, count = 3;\r\n var r = ArrayUtility.repeat(value, count);\r\n assert.ok(r.length == count, \".length should be 3\");\r\n for(let i = 0; i < count; i++)\r\n assert.equal(r[i], value);\r\n });\r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Arrays/_all.js b/tests/qunit/Arrays/_all.js index f48c005f..b67c17e2 100644 --- a/tests/qunit/Arrays/_all.js +++ b/tests/qunit/Arrays/_all.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", './Utility', './Procedure', './Compare'], factory); } -})(["require", "exports", "QUnit", './Utility', './Procedure', './Compare'], function (require, exports) { +})(function (require, exports) { var Utility_1 = require('./Utility'); var Procedure_1 = require('./Procedure'); var Compare_1 = require('./Compare'); @@ -19,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=_all.js.map \ No newline at end of file + +//# sourceMappingURL=_all.js.map diff --git a/tests/qunit/Arrays/_all.js.map b/tests/qunit/Arrays/_all.js.map index 7bea6db8..32c824d0 100644 --- a/tests/qunit/Arrays/_all.js.map +++ b/tests/qunit/Arrays/_all.js.map @@ -1 +1 @@ -{"version":3,"file":"_all.js","sourceRoot":"","sources":["_all.ts"],"names":["run"],"mappings":"AAAA,wDAAwD;AACxD,kCAAkC;;;;;;;;;IAElC,wBAAoB,WAAW,CAAC,CAAA;IAChC,0BAAsB,aAAa,CAAC,CAAA;IACpC,wBAAoB,WAAW,CAAC,CAAA;IAEhC;QACIA,iBAAOA,EAAEA,CAACA;QACVA,mBAASA,EAAEA,CAACA;QACZA,iBAAOA,EAAEA,CAACA;IACdA,CAACA;IAJD;yBAIC,CAAA"} \ No newline at end of file +{"version":3,"sources":["arrays/_all.ts"],"names":["run"],"mappings":";;;;;;;;IAGA,wBAAoB,WAAW,CAAC,CAAA;IAChC,0BAAsB,aAAa,CAAC,CAAA;IACpC,wBAAoB,WAAW,CAAC,CAAA;IAEhC;QACIA,iBAAOA,EAAEA,CAACA;QACVA,mBAASA,EAAEA,CAACA;QACZA,iBAAOA,EAAEA,CAACA;IACdA,CAACA;IAJD;yBAIC,CAAA","file":"Arrays/_all.js","sourcesContent":["///\r\n/// \r\n\r\nimport Utility from './Utility';\r\nimport Procedure from './Procedure';\r\nimport Compare from './Compare';\r\n\r\nexport default function run() {\r\n Utility();\r\n Procedure();\r\n Compare();\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Collections/ICollection.js b/tests/qunit/Collections/ICollection.js index 17bd3a22..fe418fcc 100644 --- a/tests/qunit/Collections/ICollection.js +++ b/tests/qunit/Collections/ICollection.js @@ -1,14 +1,11 @@ -/// -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System/Text/Utility', 'source/System/Collections/Array/Utility', 'source/System/Exceptions/NotImplementedException'], factory); } -})(["require", "exports", "QUnit", 'source/System/Text/Utility', 'source/System/Collections/Array/Utility', 'source/System/Exceptions/NotImplementedException'], function (require, exports) { +})(function (require, exports) { var Text = require('source/System/Text/Utility'); var AU = require('source/System/Collections/Array/Utility'); var NotImplementedException_1 = require('source/System/Exceptions/NotImplementedException'); @@ -134,4 +131,5 @@ } exports.InstanceCollection = InstanceCollection; }); -//# sourceMappingURL=ICollection.js.map \ No newline at end of file + +//# sourceMappingURL=ICollection.js.map diff --git a/tests/qunit/Collections/ICollection.js.map b/tests/qunit/Collections/ICollection.js.map index 3aaacdb5..8c1984d7 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":["General","assertIsNumber","assertAdding","assertCopyToClear","assertRemoving","Collection","StringCollection","NumberCollection","InstanceCollection"],"mappings":"AAAA,0EAA0E;AAC1E,wDAAwD;AACxD,iCAAiC;;;;;;;;;IAEjC,IAAY,IAAI,WAAM,4BAA4B,CAAC,CAAA;IACnD,IAAY,EAAE,WAAM,yCAAyC,CAAC,CAAA;IAC9D,wCAAoC,kDAAkD,CAAC,CAAA;IAMvF,iBACC,IAAW,EACX,UAA8B;QAE9BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,KAAKA,CAACA;QAE7BA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,GAAGA,QAAQA,EAAEA,UAASA,MAAkBA;YAEtD,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACrD,CAAC,CAACA,CAACA;IACJA,CAACA;IAVe,eAAO,UAUtB,CAAA;IAED,wBAAwB,MAAkB,EAAE,KAAS,EAAE,IAAW;QAEjEC,MAAMA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,KAAKA,CAACA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,8BAA8BA,EAAEA,IAAIA,CAACA,CAACA,CAACA;IAC7EA,CAACA;IAED,sBAAyB,MAAkB,EAAE,CAAgB,EAAE,CAAK;QAEnEC,IAAIA,KAAYA,CAACA;QACjBA,GAAGA,CAAAA,CAAUA,UAACA,EAAVA,aAAKA,EAALA,IAAUA,CAACA;YAAXA,IAAIA,CAACA,GAAIA,CAACA,IAALA;YAERA,cAAcA,CAACA,MAAMA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;YACjDA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACTA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;YACzCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,EAAEA,KAAKA,GAAGA,CAACA,EAAEA,wCAAwCA,CAACA,CAACA;YAC3EA,MAAMA,CAACA,EAAEA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA,EAAEA,kCAAkCA,CAACA,CAACA;SAC7DA;IACFA,CAACA;IAED,2BAA8B,MAAkB,EAAE,CAAgB;QAEjEC,IAAIA,KAAYA,CAACA;QACjBA,cAAcA,CAACA,MAAMA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;QACjDA,EAAEA,CAAAA,CAACA,CAACA,CAACA,KAAKA,GAACA,CAACA,CAACA;YAACA,MAAMA,sEAAsEA,CAACA;QAE3FA,IAAIA,CAACA,GAAOA,EAAEA,CAACA;QAEfA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACZA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;QACzCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,KAAKA,EAAEA,8DAA8DA,CAACA,CAACA;QAC9FA,CAACA,CAACA,KAAKA,EAAEA,CAACA;QACVA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,EAAEA,CAACA,EAAEA,+DAA+DA,CAACA,CAACA;QAG1FA,GAAGA,CAAAA,CAAUA,UAACA,EAAVA,aAAKA,EAALA,IAAUA,CAACA;YAAXA,IAAIA,CAACA,GAAIA,CAACA,IAALA;YAAOA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;SAAAA;QAEzBA,IAAIA,SAASA,GAAGA,EAAEA,CAACA;QACnBA,IAAIA,CAACA,GAAGA,EAAEA,CAACA,UAAUA,CAAIA,KAAKA,GAAGA,SAASA,CAACA,CAACA;QAE5CA,CAACA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QACfA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,KAAKA,GAAGA,SAASA,EAAEA,0GAA0GA,CAACA,CAACA;QACtJA,CAACA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,GAAGA,SAASA,GAAGA,CAACA,CAACA,CAACA;QACnCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,MAAMA,EAAEA,CAACA,GAACA,KAAKA,GAAGA,SAASA,GAAGA,CAACA,EAAEA,mFAAmFA,CAACA,CAACA;QACrIA,CAACA,CAACA,KAAKA,EAAEA,CAACA;QACVA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,EAAEA,CAACA,EAAEA,+DAA+DA,CAACA,CAACA;QAG1FA,GAAGA,CAAAA,CAAUA,UAACA,EAAVA,aAAKA,EAALA,IAAUA,CAACA;YAAXA,IAAIA,CAACA,GAAIA,CAACA,IAALA;YAAOA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;SAAAA;QACzBA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,EAAEA,CAACA,CAACA,MAAMA,EAAEA,oEAAoEA,CAACA,CAACA;IACvGA,CAACA;IAED,wBAA2B,MAAkB,EAAE,CAAgB;QAE9DC,IAAIA,KAAYA,CAACA;QACjBA,cAAcA,CAACA,MAAMA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;QACjDA,EAAEA,CAAAA,CAACA,CAACA,CAACA,KAAKA,GAACA,CAACA,CAACA;YAACA,MAAMA,wDAAwDA,CAACA;QAE7EA,IAAIA,CAACA,GAAOA,EAAEA,CAACA;QACfA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACZA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;QAEzCA,IACAA,CAACA;YACAA,GAAGA,CAAAA,CAAUA,UAACA,EAAVA,aAAKA,EAALA,IAAUA,CAACA;gBAAXA,IAAIA,CAACA,GAAIA,CAACA,IAALA;gBAERA,KAAKA,IAAIA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBACrBA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,KAAKA,EAAEA,OAAOA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,EAAEA,KAAKA,EAAEA,0CAA0CA,CAACA,CAACA;gBACzEA,MAAMA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA,EAAEA,wCAAwCA,CAACA,CAACA;aACpEA;QACFA,CACAA;QAAAA,KAAKA,CAAAA,CAACA,EAAEA,CAACA,CACTA,CAACA;YACAA,EAAEA,CAAAA,CAACA,CAACA,EAAEA,CAACA,YAAUA,CAACA,iCAAuBA,CAACA,CAACA,CAC3CA,CAACA;gBACAA,OAAOA,CAACA,GAAGA,CAACA,EAAEA,CAACA,CAACA;YACjBA,CAACA;YACDA,IAAIA,CACJA,CAACA;gBACAA,MAAMA,EAAEA,CAACA;YACVA,CAACA;QACFA,CAACA;IAEFA,CAACA;IAED,oBACC,IAAW,EACX,UAAyB,EACzB,YAAgB;QAEhBC,EAAEA,CAAAA,CAACA,YAAYA,CAACA,OAAOA,CAACA,IAAIA,CAACA,IAAGA,CAACA,CAACA,CAACA;YAClCA,MAAMA,qFAAqFA,CAACA;QAM7FA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,UAASA,MAAkBA;YAE3C,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YAC/C,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACtC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAC7E,CAAC,CAACA,CAACA;IAEJA,CAACA;IApBe,kBAAU,aAoBzB,CAAA;IAED,0BACC,IAAW,EACX,UAA8B;QAI9BC,UAAUA,CAACA,IAAIA,GAAGA,GAAGA,GAAGA,SAASA,EAAEA,UAAUA,EAAEA;YAC9CA,EAAEA;YACFA,OAAOA;YACPA,OAAOA;YACPA,OAAOA;YACPA,OAAOA;SACPA,CAACA,CAAAA;IAGHA,CAACA;IAfe,wBAAgB,mBAe/B,CAAA;IAED,0BACC,IAAW,EACX,UAA8B;QAG9BC,UAAUA,CAACA,IAAIA,GAAGA,GAAGA,GAAGA,SAASA,EAAEA,UAAUA,EAAEA;YAC9CA,CAACA;YACDA,CAACA;YACDA,CAACA;YACDA,CAACA;YACDA,CAACA;YACDA,CAACA;YACDA,CAACA;YACDA,GAAGA;SACHA,CAACA,CAACA;IAGJA,CAACA;IAjBe,wBAAgB,mBAiB/B,CAAA;IAED,4BACC,IAAW,EACX,UAA8B;QAE9BC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;QAEhBA,UAAUA,CAACA,IAAIA,GAAGA,GAAGA,GAAGA,SAASA,EAAEA,UAAUA,EAAEA;YAC9CA,SAASA;YACTA,EAAEA;YACFA,MAAMA;YACNA,EAAEA;YACFA,MAAMA;SACNA,CAACA,CAAAA;IACHA,CAACA;IAbe,0BAAkB,qBAajC,CAAA"} \ No newline at end of file +{"version":3,"sources":["collections/icollection.ts"],"names":["General","assertIsNumber","assertAdding","assertCopyToClear","assertRemoving","Collection","StringCollection","NumberCollection","InstanceCollection"],"mappings":"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","file":"Collections/ICollection.js","sourcesContent":["///\r\n///\r\n///\r\n\r\nimport * as Text from 'source/System/Text/Utility';\r\nimport * as AU from 'source/System/Collections/Array/Utility';\r\nimport NotImplementedException from 'source/System/Exceptions/NotImplementedException';\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\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\tvar count = collection.count;\r\n\r\n\tQUnit.test(name + \".count\", function(assert:QUnitAssert)\r\n\t{\r\n\t\tassert.ok(!isNaN(count), \"Count must be a number.\");\r\n\t});\r\n}\r\n\r\nfunction assertIsNumber(assert:QUnitAssert, value:any, name:string)\r\n{\r\n\tassert.ok(!isNaN(value), Text.format(\"'{0}' must be a real number.\", name));\r\n}\r\n\r\nfunction assertAdding(assert:QUnitAssert, c:ICollection, a:T[])\r\n{\r\n\tvar count:number;\r\n\tfor(let v of a)\r\n\t{\r\n\t\tassertIsNumber(assert, count = c.count, 'count');\r\n\t\tc.add(v);\r\n\t\tassertIsNumber(assert, c.count, 'count');\r\n\t\tassert.equal(c.count, count + 1, \"'count' should increment after adding.\");\r\n\t\tassert.ok(c.contains(v), \"'value' must exist after adding.\");\r\n\t}\r\n}\r\n\r\nfunction assertCopyToClear(assert:QUnitAssert, c:ICollection)\r\n{\r\n\tvar count:number;\r\n\tassertIsNumber(assert, count = c.count, 'count');\r\n\tif(c.count<2) throw \"Can't assert '.copyTo()' or '.clear()' without at least (2) entries.\";\r\n\r\n\tvar a:T[] = [];\r\n\r\n\tc.copyTo(a);\r\n\tassertIsNumber(assert, c.count, 'count');\r\n\tassert.equal(a.length, count, \"An empty array's length should match the count if copied to.\");\r\n\tc.clear();\r\n\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t// Restore contents.\r\n\tfor(let v of a) c.add(v);\r\n\r\n\tvar extraSize = 10;\r\n\tvar b = AU.initialize(count + extraSize);\r\n\r\n\tc.copyTo(b, 1);\r\n\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\tc.copyTo(b, count + extraSize - 1);\r\n\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\tc.clear();\r\n\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t// Restore contents.\r\n\tfor(let v of a) c.add(v);\r\n\tassert.equal(c.count, a.length, \"A collection's count should be equal to the number of items added.\");\r\n}\r\n\r\nfunction assertRemoving(assert:QUnitAssert, c:ICollection)\r\n{\r\n\tvar count:number;\r\n\tassertIsNumber(assert, count = c.count, 'count');\r\n\tif(c.count<2) throw \"Can't assert '.remove()' without at least (2) entries.\";\r\n\r\n\tvar a:T[] = [];\r\n\tc.copyTo(a);\r\n\tassertIsNumber(assert, c.count, 'count');\r\n\r\n\ttry\r\n\t{\r\n\t\tfor(let v of a)\r\n\t\t{\r\n\t\t\tcount -= c.remove(v); // More than one instance can exist and it should remove both.\r\n\t\t\tassertIsNumber(assert, c.count, 'count');\r\n\t\t\tassert.equal(c.count, count, \"'count' should increment after removing.\");\r\n\t\t\tassert.ok(!c.contains(v), \"'value' must not exist after removing.\");\r\n\t\t}\r\n\t}\r\n\tcatch(ex)\r\n\t{\r\n\t\tif((ex)instanceof(NotImplementedException))\r\n\t\t{\r\n\t\t\tconsole.log(ex);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthrow ex;\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\tQUnit.test(name, function(assert:QUnitAssert)\r\n\t{\r\n\t\tassertAdding(assert, collection, sourceValues);\r\n\t\tassertCopyToClear(assert, collection);\r\n\t\tassertRemoving(assert, collection);\r\n\t\tassert.ok(!collection.contains(null), 'Equality comparison is not strict.');\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/qunit/Collections/LinkedList.js b/tests/qunit/Collections/LinkedList.js index 52d9da8e..318b4699 100644 --- a/tests/qunit/Collections/LinkedList.js +++ b/tests/qunit/Collections/LinkedList.js @@ -1,11 +1,11 @@ -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", './ICollection', 'source/System/Collections/LinkedList'], factory); } -})(["require", "exports", './ICollection', 'source/System/Collections/LinkedList'], function (require, exports) { +})(function (require, exports) { var ICollectionTests = require('./ICollection'); var LinkedList_1 = require('source/System/Collections/LinkedList'); function run() { @@ -16,4 +16,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=LinkedList.js.map \ No newline at end of file + +//# sourceMappingURL=LinkedList.js.map diff --git a/tests/qunit/Collections/LinkedList.js.map b/tests/qunit/Collections/LinkedList.js.map index e1144694..4a92b378 100644 --- a/tests/qunit/Collections/LinkedList.js.map +++ b/tests/qunit/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["LinkedList.ts"],"names":["run"],"mappings":";;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,sCAAsC,CAAC,CAAA;IAE9D;QACCA,gBAAgBA,CAACA,gBAAgBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;QACzEA,gBAAgBA,CAACA,gBAAgBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;QACzEA,gBAAgBA,CAACA,kBAAkBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;IAC5EA,CAACA;IAJD;yBAIC,CAAA"} \ No newline at end of file +{"version":3,"sources":["collections/linkedlist.ts"],"names":["run"],"mappings":";;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,sCAAsC,CAAC,CAAA;IAE9D;QACCA,gBAAgBA,CAACA,gBAAgBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;QACzEA,gBAAgBA,CAACA,gBAAgBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;QACzEA,gBAAgBA,CAACA,kBAAkBA,CAACA,YAAYA,EAACA,IAAIA,oBAAUA,EAAUA,CAACA,CAACA;IAC5EA,CAACA;IAJD;yBAIC,CAAA","file":"Collections/LinkedList.js","sourcesContent":["import * as ICollectionTests from './ICollection';\r\nimport LinkedList from 'source/System/Collections/LinkedList';\r\n\r\nexport default function run() {\r\n\tICollectionTests.StringCollection('LinkedList',new LinkedList());\r\n\tICollectionTests.NumberCollection('LinkedList',new LinkedList());\r\n\tICollectionTests.InstanceCollection('LinkedList',new LinkedList());\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Collections/OrderedStringKeyDictionary.js b/tests/qunit/Collections/OrderedStringKeyDictionary.js index 2d015ca3..9327ce75 100644 --- a/tests/qunit/Collections/OrderedStringKeyDictionary.js +++ b/tests/qunit/Collections/OrderedStringKeyDictionary.js @@ -1,12 +1,11 @@ -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", './ICollection', 'source/System/Collections/Dictionaries/OrderedStringKeyDictionary'], factory); } -})(["require", "exports", './ICollection', 'source/System/Collections/Dictionaries/OrderedStringKeyDictionary'], function (require, exports) { - /// +})(function (require, exports) { var ICollectionTests = require('./ICollection'); var OrderedStringKeyDictionary_1 = require('source/System/Collections/Dictionaries/OrderedStringKeyDictionary'); function run() { @@ -22,4 +21,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=OrderedStringKeyDictionary.js.map \ No newline at end of file + +//# sourceMappingURL=OrderedStringKeyDictionary.js.map diff --git a/tests/qunit/Collections/OrderedStringKeyDictionary.js.map b/tests/qunit/Collections/OrderedStringKeyDictionary.js.map index 1abdc573..384a3185 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":["run"],"mappings":";;;;;;;;IAAA,wFAAwF;IACxF,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAE3G;QAGCA,gBAAgBA,CAACA,UAAUA,CAC1BA,oCAAoCA,EACpCA,IAAIA,oCAA0BA,EAAUA,EACxCA;YACCA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;SACjBA,CAACA,CAACA;IACLA,CAACA;IAdD;yBAcC,CAAA"} \ No newline at end of file +{"version":3,"sources":["collections/orderedstringkeydictionary.ts"],"names":["run"],"mappings":";;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAE3G;QAGCA,gBAAgBA,CAACA,UAAUA,CAC1BA,oCAAoCA,EACpCA,IAAIA,oCAA0BA,EAAUA,EACxCA;YACCA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;YACjBA,EAACA,GAAGA,EAACA,GAAGA,EAACA,KAAKA,EAACA,CAACA,EAACA;SACjBA,CAACA,CAACA;IACLA,CAACA;IAdD;yBAcC,CAAA","file":"Collections/OrderedStringKeyDictionary.js","sourcesContent":["/// \r\nimport * as ICollectionTests from './ICollection';\r\nimport OrderedStringKeyDictionary from 'source/System/Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nexport default function run()\r\n{\r\n\r\n\tICollectionTests.Collection>(\r\n\t\t'OrderedStringKeyDictionary',\r\n\t\tnew OrderedStringKeyDictionary(),\r\n\t\t[\r\n\t\t\t{key:'A',value:1},\r\n\t\t\t{key:'B',value:2},\r\n\t\t\t{key:'C',value:3},\r\n\t\t\t{key:'D',value:4},\r\n\t\t\t{key:'E',value:5},\r\n\t\t\t{key:'F',value:6}\r\n\t\t]);\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Collections/Queue.js b/tests/qunit/Collections/Queue.js index d38470e7..ef2405c6 100644 --- a/tests/qunit/Collections/Queue.js +++ b/tests/qunit/Collections/Queue.js @@ -1,11 +1,11 @@ -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", './ICollection', 'source/System/Collections/Queue'], factory); } -})(["require", "exports", './ICollection', 'source/System/Collections/Queue'], function (require, exports) { +})(function (require, exports) { var ICollectionTests = require('./ICollection'); var Queue_1 = require('source/System/Collections/Queue'); function run() { @@ -16,4 +16,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Queue.js.map \ No newline at end of file + +//# sourceMappingURL=Queue.js.map diff --git a/tests/qunit/Collections/Queue.js.map b/tests/qunit/Collections/Queue.js.map index 18a42333..ba371a55 100644 --- a/tests/qunit/Collections/Queue.js.map +++ b/tests/qunit/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["Queue.ts"],"names":["run"],"mappings":";;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,iCAAiC,CAAC,CAAA;IAEpD;QAECA,gBAAgBA,CAACA,gBAAgBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;QAChEA,gBAAgBA,CAACA,gBAAgBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;QAChEA,gBAAgBA,CAACA,kBAAkBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;IACnEA,CAACA;IALD;yBAKC,CAAA"} \ No newline at end of file +{"version":3,"sources":["collections/queue.ts"],"names":["run"],"mappings":";;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,iCAAiC,CAAC,CAAA;IAEpD;QAECA,gBAAgBA,CAACA,gBAAgBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;QAChEA,gBAAgBA,CAACA,gBAAgBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;QAChEA,gBAAgBA,CAACA,kBAAkBA,CAACA,OAAOA,EAAEA,IAAIA,eAAKA,EAAUA,CAACA,CAACA;IACnEA,CAACA;IALD;yBAKC,CAAA","file":"Collections/Queue.js","sourcesContent":["import * as ICollectionTests from './ICollection';\r\nimport Queue from 'source/System/Collections/Queue';\r\n\r\nexport default function run()\r\n{\r\n\tICollectionTests.StringCollection('Queue', new Queue());\r\n\tICollectionTests.NumberCollection('Queue', new Queue());\r\n\tICollectionTests.InstanceCollection('Queue', new Queue());\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Collections/_all.js b/tests/qunit/Collections/_all.js index 0371e210..aa447e62 100644 --- a/tests/qunit/Collections/_all.js +++ b/tests/qunit/Collections/_all.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", './LinkedList', './Queue', './OrderedStringKeyDictionary'], factory); } -})(["require", "exports", "QUnit", './LinkedList', './Queue', './OrderedStringKeyDictionary'], function (require, exports) { +})(function (require, exports) { var LinkedList_1 = require('./LinkedList'); var Queue_1 = require('./Queue'); var OrderedStringKeyDictionary_1 = require('./OrderedStringKeyDictionary'); @@ -19,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=_all.js.map \ No newline at end of file + +//# sourceMappingURL=_all.js.map diff --git a/tests/qunit/Collections/_all.js.map b/tests/qunit/Collections/_all.js.map index 56ea64a1..20811ad8 100644 --- a/tests/qunit/Collections/_all.js.map +++ b/tests/qunit/Collections/_all.js.map @@ -1 +1 @@ -{"version":3,"file":"_all.js","sourceRoot":"","sources":["_all.ts"],"names":["run"],"mappings":"AAAA,yDAAyD;AACzD,kCAAkC;;;;;;;;;IAElC,2BAAuB,cAAc,CAAC,CAAA;IACtC,sBAAkB,SAAS,CAAC,CAAA;IAC5B,2CAAuC,8BAA8B,CAAC,CAAA;IAEtE;QAECA,oBAAUA,EAAEA,CAACA;QACbA,eAAKA,EAAEA,CAACA;QACRA,oCAA0BA,EAAEA,CAACA;IAC9BA,CAACA;IALD;yBAKC,CAAA"} \ No newline at end of file +{"version":3,"sources":["collections/_all.ts"],"names":["run"],"mappings":";;;;;;;;IAGA,2BAAuB,cAAc,CAAC,CAAA;IACtC,sBAAkB,SAAS,CAAC,CAAA;IAC5B,2CAAuC,8BAA8B,CAAC,CAAA;IAEtE;QAECA,oBAAUA,EAAEA,CAACA;QACbA,eAAKA,EAAEA,CAACA;QACRA,oCAA0BA,EAAEA,CAACA;IAC9BA,CAACA;IALD;yBAKC,CAAA","file":"Collections/_all.js","sourcesContent":["/// \r\n/// \r\n\r\nimport LinkedList from './LinkedList';\r\nimport Queue from './Queue';\r\nimport OrderedStringKeyDictionary from './OrderedStringKeyDictionary';\r\n\r\nexport default function run()\r\n{\r\n\tLinkedList();\r\n\tQueue();\r\n\tOrderedStringKeyDictionary();\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Integer.js b/tests/qunit/Integer.js index 1bcccfd8..6cf3efee 100644 --- a/tests/qunit/Integer.js +++ b/tests/qunit/Integer.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System/Integer'], factory); } -})(["require", "exports", "QUnit", 'source/System/Integer'], function (require, exports) { +})(function (require, exports) { var Integer_1 = require('source/System/Integer'); function run() { var TEST_FLOAT = 10.915, TEST_INT = 10; @@ -28,4 +26,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Integer.js.map \ No newline at end of file + +//# sourceMappingURL=Integer.js.map diff --git a/tests/qunit/Integer.js.map b/tests/qunit/Integer.js.map index f9277fda..a700f557 100644 --- a/tests/qunit/Integer.js.map +++ b/tests/qunit/Integer.js.map @@ -1 +1 @@ -{"version":3,"file":"Integer.js","sourceRoot":"","sources":["Integer.ts"],"names":["run"],"mappings":"AAAA,qDAAqD;AACrD,iCAAiC;;;;;;;;;IAEjC,wBAAoB,uBAAuB,CAAC,CAAA;IAG5C;QAGCA,IAAMA,UAAUA,GAAGA,MAAMA,EAAEA,QAAQA,GAAGA,EAAEA,CAACA;QAEzCA,KAAKA,CAACA,IAAIA,CAACA,kBAAkBA,EAAEA,UAACA,MAAkBA;YAGjDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,UAAUA,CAACA,EACnBA,QAAQA,EACRA,0DAA0DA,CAACA,CAACA;QAE9DA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,aAAaA,EAAEA,UAACA,MAAkBA;YAG5CA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,EAAEA,CAACA,UAAUA,CAACA,EACtBA,KAAKA,EACLA,gDAAgDA,CAACA,CAACA;YAEnDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,EAAEA,CAACA,QAAQA,CAACA,EACpBA,IAAIA,EACJA,4CAA4CA,CAACA,CAACA;QAEhDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,iBAAiBA,EAAEA,UAACA,MAAkBA;YAGhDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EACxBA,IAAIA,EACJA,4CAA4CA,CAACA,CAACA;YAE/CA,MAAMA,CAACA,MAAMA,CAACA;gBAEbA,iBAAOA,CAACA,MAAMA,CAACA,UAAUA,CAACA,CAACA;YAC5BA,CAACA,CAACA,CAACA;QAEJA,CAACA,CAACA,CAACA;IACJA,CAACA;IA5CD;yBA4CC,CAAA"} \ No newline at end of file +{"version":3,"sources":["integer.ts"],"names":["run"],"mappings":";;;;;;;;IAGA,wBAAoB,uBAAuB,CAAC,CAAA;IAG5C;QAGCA,IAAMA,UAAUA,GAAGA,MAAMA,EAAEA,QAAQA,GAAGA,EAAEA,CAACA;QAEzCA,KAAKA,CAACA,IAAIA,CAACA,kBAAkBA,EAAEA,UAACA,MAAkBA;YAGjDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,UAAUA,CAACA,EACnBA,QAAQA,EACRA,0DAA0DA,CAACA,CAACA;QAE9DA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,aAAaA,EAAEA,UAACA,MAAkBA;YAG5CA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,EAAEA,CAACA,UAAUA,CAACA,EACtBA,KAAKA,EACLA,gDAAgDA,CAACA,CAACA;YAEnDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,EAAEA,CAACA,QAAQA,CAACA,EACpBA,IAAIA,EACJA,4CAA4CA,CAACA,CAACA;QAEhDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,iBAAiBA,EAAEA,UAACA,MAAkBA;YAGhDA,MAAMA,CAACA,KAAKA,CACXA,iBAAOA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EACxBA,IAAIA,EACJA,4CAA4CA,CAACA,CAACA;YAE/CA,MAAMA,CAACA,MAAMA,CAACA;gBAEbA,iBAAOA,CAACA,MAAMA,CAACA,UAAUA,CAACA,CAACA;YAC5BA,CAACA,CAACA,CAACA;QAEJA,CAACA,CAACA,CAACA;IACJA,CAACA;IA5CD;yBA4CC,CAAA","file":"Integer.js","sourcesContent":["///\r\n///\r\n\r\nimport Integer from 'source/System/Integer';\r\n\r\n\r\nexport default function run()\r\n{\r\n\r\n\tconst TEST_FLOAT = 10.915, TEST_INT = 10;\r\n\r\n\tQUnit.test('Integer: convert', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger(TEST_FLOAT),\r\n\t\t\tTEST_INT,\r\n\t\t\t'Should convert float number to integer without rounding.');\r\n\r\n\t});\r\n\r\n\tQUnit.test('Integer: is', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(TEST_FLOAT),\r\n\t\t\tfalse,\r\n\t\t\t'Should detect a number that is not an integer.');\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(TEST_INT),\r\n\t\t\ttrue,\r\n\t\t\t'Should detect a number that is an integer.');\r\n\r\n\t});\r\n\r\n\tQUnit.test('Integer: assert', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.equal(\r\n\t\t\tInteger.assert(TEST_INT),\r\n\t\t\ttrue,\r\n\t\t\t'Should detect a number that is an integer.');\r\n\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tInteger.assert(TEST_FLOAT);\r\n\t\t});\r\n\r\n\t});\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Linq/_all.js b/tests/qunit/Linq/_all.js index 94e5b6a5..12be0f8e 100644 --- a/tests/qunit/Linq/_all.js +++ b/tests/qunit/Linq/_all.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System.Linq/Linq'], factory); } -})(["require", "exports", "QUnit", 'source/System.Linq/Linq'], function (require, exports) { +})(function (require, exports) { var Linq_1 = require('source/System.Linq/Linq'); function run() { var source = [ @@ -141,4 +139,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=_all.js.map \ No newline at end of file + +//# sourceMappingURL=_all.js.map diff --git a/tests/qunit/Linq/_all.js.map b/tests/qunit/Linq/_all.js.map index 34bea84b..a778169a 100644 --- a/tests/qunit/Linq/_all.js.map +++ b/tests/qunit/Linq/_all.js.map @@ -1 +1 @@ -{"version":3,"file":"_all.js","sourceRoot":"","sources":["_all.ts"],"names":["run"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["linq/_all.ts"],"names":["run"],"mappings":"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","file":"Linq/_all.js","sourcesContent":["///\r\n///\r\n\r\nimport Enumerable from 'source/System.Linq/Linq';\r\n\r\ninterface TestItem\r\n{\r\n\ta:number;\r\n\tb:number;\r\n\tc:string;\r\n}\r\n\r\nexport default function run()\r\n{\r\n\r\n\tvar source:{a:number,b:number,c:string}[] = [\r\n\t\t{\r\n\t\t\ta: 1,\r\n\t\t\tb: 2,\r\n\t\t\tc: \"a\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ta: 1,\r\n\t\t\tb: 1,\r\n\t\t\tc: \"b\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ta: 1,\r\n\t\t\tb: 3,\r\n\t\t\tc: \"c\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ta: 2,\r\n\t\t\tb: 2,\r\n\t\t\tc: \"d\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ta: 2,\r\n\t\t\tb: 1,\r\n\t\t\tc: \"e\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ta: 2,\r\n\t\t\tb: 3,\r\n\t\t\tc: \"f\"\r\n\t\t}\r\n\t];\r\n\r\n\tvar sourceEnumerable = Enumerable.fromArray(source);\r\n\r\n\tQUnit.test(\"Linq.memoize\", function (assert:QUnitAssert)\r\n\t{\r\n\r\n\t\tvar source = sourceEnumerable;\r\n\t\tvar A = source.memoize();\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});\r\n\r\n\tQUnit.test(\"Linq.where.memoize\", function (assert:QUnitAssert)\r\n\t{\r\n\t\tvar source = sourceEnumerable.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});\r\n\r\n\tQUnit.test(\"Linq.orderBy\", function (assert:QUnitAssert)\r\n\t{\r\n\r\n\t\tvar source = sourceEnumerable.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\r\n\t});\r\n\r\n\r\n\tQUnit.test(\"Linq.orderByDescending\", function (assert:QUnitAssert)\r\n\t{\r\n\r\n\t\tvar source = sourceEnumerable.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\r\n\t});\r\n\r\n\tQUnit.test(\"Linq.orderBy.thenBy\", function (assert:QUnitAssert)\r\n\t{\r\n\r\n\t\tvar B = sourceEnumerable\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\r\n\r\n\t});\r\n\r\n\r\n\tQUnit.test(\"Linq.groupBy\", function (assert:QUnitAssert)\r\n\t{\r\n\t\tvar A_distinct = sourceEnumerable\r\n\t\t\t.select(o=>o.a).distinct();\r\n\t\tvar A = sourceEnumerable\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 = sourceEnumerable\r\n\t\t\t.groupBy(o=>o.b);\r\n\t\tvar B_distinct = sourceEnumerable\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});\r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Uri.js b/tests/qunit/Uri.js index 1e51dfb5..d54e3fc4 100644 --- a/tests/qunit/Uri.js +++ b/tests/qunit/Uri.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", 'source/System/Uri/Uri'], factory); } -})(["require", "exports", "QUnit", 'source/System/Uri/Uri'], function (require, exports) { +})(function (require, exports) { var Uri_1 = require('source/System/Uri/Uri'); function run() { var validUri = { @@ -74,4 +72,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = run; }); -//# sourceMappingURL=Uri.js.map \ No newline at end of file + +//# sourceMappingURL=Uri.js.map diff --git a/tests/qunit/Uri.js.map b/tests/qunit/Uri.js.map index 0554866f..6929121b 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":["run"],"mappings":"AAAA,qDAAqD;AACrD,iCAAiC;;;;;;;;;IAEjC,oBAAgB,uBAAuB,CAAC,CAAA;IAGxC;QAGCA,IAAIA,QAAQA,GAAQA;YACnBA,MAAMA,EAACA,MAAMA;YACbA,QAAQA,EAACA,mBAAmBA;YAC5BA,IAAIA,EAACA,YAAYA;YACjBA,IAAIA,EAACA,IAAIA;YACTA,IAAIA,EAACA,uBAAuBA;YAC5BA,KAAKA,EAACA,sCAAsCA;YAC5CA,QAAQA,EAACA,OAAOA;SAChBA,CAACA;QACFA,IAAIA,QAAQA,GAAUA,EAAEA;cACrBA,QAAQA,CAACA,MAAMA,GAAGA,KAAKA;cACvBA,QAAQA,CAACA,QAAQA,GAAGA,GAAGA;cACvBA,QAAQA,CAACA,IAAIA;cACbA,GAAGA,GAAGA,QAAQA,CAACA,IAAIA;cACnBA,QAAQA,CAACA,IAAIA;cACbA,QAAQA,CAACA,KAAKA;cACdA,QAAQA,CAACA,QAAQA,CAACA;QAErBA,KAAKA,CAACA,IAAIA,CAACA,kBAAkBA,EAAEA,UAACA,MAAkBA;YAEjDA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,WAAWA,EAC9BA,QAAQA,EACRA,0CAA0CA,CAACA,CAACA;QAE9CA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,qBAAqBA,EAAEA,UAACA,MAAkBA;YAEpDA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EACnCA,IAAIA,EACJA,+CAA+CA,CAACA,CAACA;QAEnDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,UAACA,MAAkBA;YAG3CA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,QAAQA,CAACA,QAAQA,CAACA,EACtBA,QAAQA,EACRA,6CAA6CA,CAACA,CAACA;YAGhDA,IAAIA,GAAGA,GAAGA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YAC7BA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,QAAQA,EAAEA,EACdA,QAAQA,EACRA,0CAA0CA,CAACA,CAACA;YAE7CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,EACfA,QAAQA,EACRA,2CAA2CA,CAACA,CAACA;YAE9CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,YAAYA,EAChBA,GAAGA,CAACA,IAAIA,GAACA,GAAGA,CAACA,KAAKA,EAClBA,yCAAyCA,CAACA,CAACA;YAE5CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,OAAOA,CAACA,EACxBA,aAAaA,EACbA,6CAA6CA,CAACA,CAACA;YAEhDA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,MAAMA,CAACA,EACvBA,KAAKA,EACLA,4DAA4DA,CAACA,CAACA;YAE/DA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,MAAMA,CAACA,EACvBA,SAASA,EACTA,uCAAuCA,CAACA,CAACA;QAG3CA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,qBAAqBA,EAAEA,UAACA,MAAkBA;YAGpDA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,MAAMA,EAACA,OAAOA;iBACdA,CAACA,CAACA;YACJA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YACpBA,CAACA,CAACA,CAACA;YAGHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,MAAMA,EAACA,SAASA;iBAChBA,CAACA,CAACA;YACJA,CAACA,CAACA,CAACA;QAEJA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YAGvDA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,QAAQA,EAACA,QAAQA,CAACA,QAAQA;iBAC1BA,CAACA,CAAAA;YACHA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,IAAIA,EAACA,QAAQA,CAACA,IAAIA;iBAClBA,CAACA,CAAAA;YACHA,CAACA,CAACA,CAACA;QAGJA,CAACA,CAACA,CAACA;IACJA,CAACA;IAzHD;yBAyHC,CAAA"} \ No newline at end of file +{"version":3,"sources":["uri.ts"],"names":["run"],"mappings":";;;;;;;;IAGA,oBAAgB,uBAAuB,CAAC,CAAA;IAGxC;QAGCA,IAAIA,QAAQA,GAAQA;YACnBA,MAAMA,EAACA,MAAMA;YACbA,QAAQA,EAACA,mBAAmBA;YAC5BA,IAAIA,EAACA,YAAYA;YACjBA,IAAIA,EAACA,IAAIA;YACTA,IAAIA,EAACA,uBAAuBA;YAC5BA,KAAKA,EAACA,sCAAsCA;YAC5CA,QAAQA,EAACA,OAAOA;SAChBA,CAACA;QACFA,IAAIA,QAAQA,GAAUA,EAAEA;cACrBA,QAAQA,CAACA,MAAMA,GAAGA,KAAKA;cACvBA,QAAQA,CAACA,QAAQA,GAAGA,GAAGA;cACvBA,QAAQA,CAACA,IAAIA;cACbA,GAAGA,GAAGA,QAAQA,CAACA,IAAIA;cACnBA,QAAQA,CAACA,IAAIA;cACbA,QAAQA,CAACA,KAAKA;cACdA,QAAQA,CAACA,QAAQA,CAACA;QAErBA,KAAKA,CAACA,IAAIA,CAACA,kBAAkBA,EAAEA,UAACA,MAAkBA;YAEjDA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,WAAWA,EAC9BA,QAAQA,EACRA,0CAA0CA,CAACA,CAACA;QAE9CA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,qBAAqBA,EAAEA,UAACA,MAAkBA;YAEpDA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,MAAMA,CAACA,QAAQA,CAACA,EACnCA,IAAIA,EACJA,+CAA+CA,CAACA,CAACA;QAEnDA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,UAACA,MAAkBA;YAG3CA,MAAMA,CAACA,KAAKA,CACXA,aAAGA,CAACA,QAAQA,CAACA,QAAQA,CAACA,EACtBA,QAAQA,EACRA,6CAA6CA,CAACA,CAACA;YAGhDA,IAAIA,GAAGA,GAAGA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YAC7BA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,QAAQA,EAAEA,EACdA,QAAQA,EACRA,0CAA0CA,CAACA,CAACA;YAE7CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,EACfA,QAAQA,EACRA,2CAA2CA,CAACA,CAACA;YAE9CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,YAAYA,EAChBA,GAAGA,CAACA,IAAIA,GAACA,GAAGA,CAACA,KAAKA,EAClBA,yCAAyCA,CAACA,CAACA;YAE5CA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,OAAOA,CAACA,EACxBA,aAAaA,EACbA,6CAA6CA,CAACA,CAACA;YAEhDA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,MAAMA,CAACA,EACvBA,KAAKA,EACLA,4DAA4DA,CAACA,CAACA;YAE/DA,MAAMA,CAACA,KAAKA,CACXA,GAAGA,CAACA,WAAWA,CAACA,MAAMA,CAACA,EACvBA,SAASA,EACTA,uCAAuCA,CAACA,CAACA;QAG3CA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,qBAAqBA,EAAEA,UAACA,MAAkBA;YAGpDA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,MAAMA,EAACA,OAAOA;iBACdA,CAACA,CAACA;YACJA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YACpBA,CAACA,CAACA,CAACA;YAGHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,MAAMA,EAACA,SAASA;iBAChBA,CAACA,CAACA;YACJA,CAACA,CAACA,CAACA;QAEJA,CAACA,CAACA,CAACA;QAEHA,KAAKA,CAACA,IAAIA,CAACA,wBAAwBA,EAAEA,UAACA,MAAkBA;YAGvDA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,QAAQA,EAACA,QAAQA,CAACA,QAAQA;iBAC1BA,CAACA,CAAAA;YACHA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;gBACbA,aAAGA,CAACA,IAAIA,CAACA;oBACRA,IAAIA,EAACA,QAAQA,CAACA,IAAIA;iBAClBA,CAACA,CAAAA;YACHA,CAACA,CAACA,CAACA;QAGJA,CAACA,CAACA,CAACA;IACJA,CAACA;IAzHD;yBAyHC,CAAA","file":"Uri.js","sourcesContent":["///\r\n///\r\n\r\nimport Uri from 'source/System/Uri/Uri';\r\n\r\n\r\nexport default function run()\r\n{\r\n\r\n\tvar validUri:IUri = {\r\n\t\tscheme:'http',\r\n\t\tuserInfo:'username:password',\r\n\t\thost:'domain.com',\r\n\t\tport:1234,\r\n\t\tpath:'/tree/node/index.html',\r\n\t\tquery:'?param=hello%20there&flag=false&blah',\r\n\t\tfragment:'#home'\r\n\t};\r\n\tvar validUrl:string = ''\r\n\t\t+ validUri.scheme + '://'\r\n\t\t+ validUri.userInfo + '@'\r\n\t\t+ validUri.host\r\n\t\t+ ':' + validUri.port\r\n\t\t+ validUri.path\r\n\t\t+ validUri.query\r\n\t\t+ validUri.fragment;\r\n\r\n\tQUnit.test('Uri: parse valid', (assert:QUnitAssert)=>{\r\n\r\n\t\tassert.equal(\r\n\t\t\tUri.from(validUrl).absoluteUri,\r\n\t\t\tvalidUrl,\r\n\t\t\t'Uri.from(string) should parse correctly.');\r\n\r\n\t});\r\n\r\n\tQUnit.test('Uri: parse equality', (assert:QUnitAssert)=>{\r\n\r\n\t\tassert.equal(\r\n\t\t\tUri.from(validUrl).equals(validUri),\r\n\t\t\ttrue,\r\n\t\t\t'Uri.from(string) should equal derived values.');\r\n\r\n\t});\r\n\r\n\tQUnit.test('Uri: valid', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.equal(\r\n\t\t\tUri.toString(validUri),\r\n\t\t\tvalidUrl,\r\n\t\t\t'Uri.toString(uri) must match source values.');\r\n\r\n\r\n\t\tvar uri = Uri.from(validUri);\r\n\t\tassert.equal(\r\n\t\t\turi.toString(),\r\n\t\t\tvalidUrl,\r\n\t\t\t'Uri.toString() must match source values.');\r\n\r\n\t\tassert.equal(\r\n\t\t\turi.absoluteUri,\r\n\t\t\tvalidUrl,\r\n\t\t\t'Uri.absoluteUri must match source values.');\r\n\r\n\t\tassert.equal(\r\n\t\t\turi.pathAndQuery,\r\n\t\t\turi.path+uri.query,\r\n\t\t\t'Uri path and query must equal expected.');\r\n\r\n\t\tassert.equal(\r\n\t\t\turi.queryParams['param'],\r\n\t\t\t'hello there',\r\n\t\t\t'Uri must decode the query params correctly.');\r\n\r\n\t\tassert.equal(\r\n\t\t\turi.queryParams['flag'],\r\n\t\t\tfalse,\r\n\t\t\t'Uri must parse and deserialize the query params correctly.');\r\n\r\n\t\tassert.equal(\r\n\t\t\turi.queryParams['blah'],\r\n\t\t\tundefined,\r\n\t\t\t'Uri must ignore invalid query params.');\r\n\r\n\r\n\t});\r\n\r\n\tQUnit.test('Uri: invalid scheme', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.from({\r\n\t\t\t\tscheme:'x y z'\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.from('http//');\r\n\t\t});\r\n\r\n\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.from({\r\n\t\t\t\tscheme:'https:s'\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tQUnit.test('Uri: invalid authority', (assert:QUnitAssert)=>\r\n\t{\r\n\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.from({\r\n\t\t\t\tuserInfo:validUri.userInfo\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\tassert.throws(()=>{\r\n\t\t\tUri.from({\r\n\t\t\t\tport:validUri.port\r\n\t\t\t})\r\n\t\t});\r\n\r\n\r\n\t});\r\n}\r\n"]} \ No newline at end of file diff --git a/tests/qunit/main.js b/tests/qunit/main.js index c7d00353..25ca153b 100644 --- a/tests/qunit/main.js +++ b/tests/qunit/main.js @@ -1,13 +1,11 @@ -/// -/// -(function (deps, factory) { +(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { - define(deps, factory); + define(["require", "exports", "QUnit", './Arrays/_all', './Collections/_all', './Linq/_all', './Uri', './Integer'], factory); } -})(["require", "exports", "QUnit", './Arrays/_all', './Collections/_all', './Linq/_all', './Uri', './Integer'], function (require, exports) { +})(function (require, exports) { var _all_1 = require('./Arrays/_all'); var _all_2 = require('./Collections/_all'); var _all_3 = require('./Linq/_all'); @@ -20,4 +18,5 @@ _all_3.default(); QUnit.start(); }); -//# sourceMappingURL=main.js.map \ No newline at end of file + +//# sourceMappingURL=main.js.map diff --git a/tests/qunit/main.js.map b/tests/qunit/main.js.map index 0da0abd3..3e4271f0 100644 --- a/tests/qunit/main.js.map +++ b/tests/qunit/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,kCAAkC;;;;;;;;;IAElC,qBAAuB,eAAe,CAAC,CAAA;IACvC,qBAA4B,oBAAoB,CAAC,CAAA;IACjD,qBAA4B,aAAa,CAAC,CAAA;IAC1C,oBAAqB,OAAO,CAAC,CAAA;IAC7B,wBAAoB,WAAW,CAAC,CAAA;IAEhC,iBAAO,EAAE,CAAC;IACV,cAAU,EAAE,CAAC;IACb,aAAQ,EAAE,CAAC;IACX,cAAe,EAAE,CAAC;IAClB,cAAe,EAAE,CAAC;IAElB,KAAK,CAAC,KAAK,EAAE,CAAC"} \ No newline at end of file +{"version":3,"sources":["main.ts"],"names":[],"mappings":";;;;;;;;IAGA,qBAAuB,eAAe,CAAC,CAAA;IACvC,qBAA4B,oBAAoB,CAAC,CAAA;IACjD,qBAA4B,aAAa,CAAC,CAAA;IAC1C,oBAAqB,OAAO,CAAC,CAAA;IAC7B,wBAAoB,WAAW,CAAC,CAAA;IAEhC,iBAAO,EAAE,CAAC;IACV,cAAU,EAAE,CAAC;IACb,aAAQ,EAAE,CAAC;IACX,cAAe,EAAE,CAAC;IAClB,cAAe,EAAE,CAAC;IAElB,KAAK,CAAC,KAAK,EAAE,CAAC","file":"main.js","sourcesContent":["///\r\n/// \r\n\r\nimport ArrayTests from './Arrays/_all';\r\nimport CollectionTests from './Collections/_all';\r\nimport EnumerableTests from './Linq/_all';\r\nimport UriTests from './Uri';\r\nimport Integer from './Integer';\r\n\r\nInteger();\r\nArrayTests();\r\nUriTests();\r\nCollectionTests();\r\nEnumerableTests();\r\n\r\nQUnit.start();\r\n"]} \ No newline at end of file diff --git a/tests/qunit/require.config.js b/tests/qunit/require.config.js index 897823d4..8aa241ae 100644 --- a/tests/qunit/require.config.js +++ b/tests/qunit/require.config.js @@ -1,5 +1,3 @@ -/// -/// require.config({ baseUrl: './', urlArgs: 't=' + (new Date()).getTime(), @@ -16,4 +14,5 @@ require.config({ } } }); -//# sourceMappingURL=require.config.js.map \ No newline at end of file + +//# sourceMappingURL=require.config.js.map diff --git a/tests/qunit/require.config.js.map b/tests/qunit/require.config.js.map index eaa3b39d..4d91cda5 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":"AAAA,2DAA2D;AAC3D,qDAAqD;AAErD,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,"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","file":"require.config.js","sourcesContent":["///\r\n///\r\n\r\nrequire.config({\r\n\r\n baseUrl: './',\r\n\turlArgs: 't='+(new Date()).getTime(),\r\n\r\n paths: {\r\n \"QUnit\": \"../../bower_components\"+\"/qunit/qunit/qunit\",\r\n \"source\": \"../../dist/amd\"+\"\"\r\n },\r\n\r\n shim: {\r\n 'QUnit': {\r\n //deps: [\r\n //\t'css!bower_components/qunit/qunit/qunit'\r\n //],\r\n exports: 'QUnit',\r\n init: function () {\r\n //QUnit.config.autoload = false;\r\n QUnit.config.autostart = false;\r\n }\r\n }\r\n }\r\n});\r\n\r\n"]} \ No newline at end of file