From 3bb156f9af27fb05c101a2d489a801686fe140ba Mon Sep 17 00:00:00 2001 From: electricessence Date: Wed, 13 Apr 2016 17:36:37 -0700 Subject: [PATCH] Added full unit test coverage for Set and fixed any issues revealed. --- bower.json | 2 +- .../System/Collections/Array/Utility.js.map | 2 +- .../Collections/Enumeration/Enumerator.js | 2 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- dist/amd/System/Collections/LinkedList.js | 2 +- dist/amd/System/Collections/LinkedList.js.map | 2 +- dist/amd/System/Collections/LinkedNodeList.js | 2 +- .../System/Collections/LinkedNodeList.js.map | 2 +- dist/amd/System/Compare.js | 2 +- dist/amd/System/Compare.js.map | 2 +- dist/amd/System/Events/EventDispatcher.js | 6 - dist/amd/System/Events/EventDispatcher.js.map | 1 - .../amd/System/Observable/SubscribableBase.js | 2 +- .../System/Observable/SubscribableBase.js.map | 2 +- dist/amd/System/Types.js | 2 +- dist/amd/System/Types.js.map | 2 +- .../Collections/Enumeration/Enumerator.js | 14 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- dist/es6/System/Collections/Array/Utility.js | 12 +- .../Collections/Enumeration/Enumerator.js | 8 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- dist/es6/System/Collections/LinkedList.js | 27 +-- dist/es6/System/Collections/LinkedList.js.map | 2 +- dist/es6/System/Collections/LinkedNodeList.js | 46 +++++ .../System/Collections/LinkedNodeList.js.map | 2 +- dist/es6/System/Compare.js | 37 +++- dist/es6/System/Compare.js.map | 2 +- dist/es6/System/Events/EventDispatcher.js | 123 ------------ dist/es6/System/Events/EventDispatcher.js.map | 1 - .../es6/System/Observable/SubscribableBase.js | 40 ++-- .../System/Observable/SubscribableBase.js.map | 2 +- dist/es6/System/Types.js | 4 +- dist/es6/System/Types.js.map | 2 +- .../System/Collections/Array/Utility.js | 2 +- .../Collections/Enumeration/Enumerator.js | 6 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- dist/system/System/Collections/LinkedList.js | 33 +--- .../System/Collections/LinkedList.js.map | 2 +- .../System/Collections/LinkedNodeList.js | 53 +++++- .../System/Collections/LinkedNodeList.js.map | 2 +- dist/system/System/Compare.js | 41 +++- dist/system/System/Compare.js.map | 2 +- dist/system/System/Events/EventDispatcher.js | 177 ------------------ .../System/Events/EventDispatcher.js.map | 1 - .../System/Observable/SubscribableBase.js | 42 ++--- .../System/Observable/SubscribableBase.js.map | 2 +- dist/system/System/Types.js | 5 +- dist/system/System/Types.js.map | 2 +- .../System/Collections/Array/Utility.js.map | 2 +- .../Collections/Enumeration/Enumerator.js | 2 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- dist/umd.min/System/Collections/LinkedList.js | 2 +- .../System/Collections/LinkedList.js.map | 2 +- .../System/Collections/LinkedNodeList.js | 2 +- .../System/Collections/LinkedNodeList.js.map | 2 +- dist/umd.min/System/Compare.js | 2 +- dist/umd.min/System/Compare.js.map | 2 +- dist/umd.min/System/Events/EventDispatcher.js | 6 - .../System/Events/EventDispatcher.js.map | 1 - .../System/Observable/SubscribableBase.js | 2 +- .../System/Observable/SubscribableBase.js.map | 2 +- dist/umd.min/System/Types.js | 2 +- dist/umd.min/System/Types.js.map | 2 +- package.json | 2 +- .../Collections/Enumeration/Enumerator.js | 8 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- tests/mocha/System.Linq/Enumerable.js | 3 +- tests/mocha/System.Linq/Enumerable.js.map | 2 +- .../System/Collections/Arrays/Compare.js | 3 +- .../System/Collections/Arrays/Compare.js.map | 2 +- .../System/Collections/Arrays/Dispatch.js | 3 +- .../System/Collections/Arrays/Dispatch.js.map | 2 +- .../System/Collections/Arrays/Procedure.js | 3 +- .../Collections/Arrays/Procedure.js.map | 2 +- .../System/Collections/Arrays/Utility.js | 3 +- .../System/Collections/Arrays/Utility.js.map | 2 +- .../Collections/Enumeration/Enumerator.js | 3 +- .../Collections/Enumeration/Enumerator.js.map | 2 +- tests/mocha/System/Collections/ICollection.js | 3 +- .../System/Collections/ICollection.js.map | 2 +- tests/mocha/System/Collections/LinkedList.js | 3 +- .../System/Collections/LinkedList.js.map | 2 +- .../Collections/OrderedStringKeyDictionary.js | 3 +- .../OrderedStringKeyDictionary.js.map | 2 +- tests/mocha/System/Collections/Queue.js | 3 +- tests/mocha/System/Collections/Queue.js.map | 2 +- tests/mocha/System/Collections/Set.js | 3 +- tests/mocha/System/Collections/Set.js.map | 2 +- tests/mocha/System/Integer.js | 3 +- tests/mocha/System/Integer.js.map | 2 +- tests/mocha/System/Time/ClockTime.js | 3 +- tests/mocha/System/Time/ClockTime.js.map | 2 +- tests/mocha/System/Time/DateTime.js | 3 +- tests/mocha/System/Time/DateTime.js.map | 2 +- tests/mocha/System/Uri/Uri.js | 3 +- tests/mocha/System/Uri/Uri.js.map | 2 +- tests/mocha/import-tests.js | 3 +- tests/mocha/import-tests.js.map | 2 +- tests/qunit/Arrays/Compare.js | 3 +- tests/qunit/Arrays/Compare.js.map | 2 +- tests/qunit/Arrays/Procedure.js | 3 +- tests/qunit/Arrays/Procedure.js.map | 2 +- tests/qunit/Arrays/Utility.js | 3 +- tests/qunit/Arrays/Utility.js.map | 2 +- tests/qunit/Arrays/_all.js | 3 +- tests/qunit/Arrays/_all.js.map | 2 +- tests/qunit/Collections/ICollection.js | 3 +- tests/qunit/Collections/ICollection.js.map | 2 +- tests/qunit/Collections/LinkedList.js | 3 +- tests/qunit/Collections/LinkedList.js.map | 2 +- .../Collections/OrderedStringKeyDictionary.js | 3 +- .../OrderedStringKeyDictionary.js.map | 2 +- tests/qunit/Collections/Queue.js | 3 +- tests/qunit/Collections/Queue.js.map | 2 +- tests/qunit/Collections/_all.js | 3 +- tests/qunit/Collections/_all.js.map | 2 +- tests/qunit/Integer.js | 3 +- tests/qunit/Integer.js.map | 2 +- tests/qunit/Linq/_all.js | 3 +- tests/qunit/Linq/_all.js.map | 2 +- tests/qunit/Uri.js | 3 +- tests/qunit/Uri.js.map | 2 +- tests/qunit/main.js | 3 +- tests/qunit/main.js.map | 2 +- tests/qunit/require.config.js | 3 +- tests/qunit/require.config.js.map | 2 +- 126 files changed, 388 insertions(+), 540 deletions(-) delete mode 100644 dist/amd/System/Events/EventDispatcher.js delete mode 100644 dist/amd/System/Events/EventDispatcher.js.map delete mode 100644 dist/es6/System/Events/EventDispatcher.js delete mode 100644 dist/es6/System/Events/EventDispatcher.js.map delete mode 100644 dist/system/System/Events/EventDispatcher.js delete mode 100644 dist/system/System/Events/EventDispatcher.js.map delete mode 100644 dist/umd.min/System/Events/EventDispatcher.js delete mode 100644 dist/umd.min/System/Events/EventDispatcher.js.map diff --git a/bower.json b/bower.json index 048c177a..f6b28824 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.7.1", + "version": "2.7.2", "ignore": [ ".bowercc", ".gitignore", diff --git a/dist/amd/System/Collections/Array/Utility.js.map b/dist/amd/System/Collections/Array/Utility.js.map index 47c647ca..6b95e722 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","assert","array","Array","copy","source","sourceIndex","Infinity","copyTo","Math","min","max","destination","destinationIndex","CBN","CBL0","sourceLength","maxLength","isFinite","i","contains","item","equalityComparer","areEqual","isArray","indexOf","replace","old","newValue","count","updateRange","value","index","end","clear","register","len","ok","findIndex","predicate","isFunction","forEach","fn","applyTo","target","removeIndex","exists","splice","remove","repeat","element","result","push","flatten","a","recurseDepth","x","n"],"mappings":"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","file":"System/Collections/Array/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", '../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function (require, exports, Types_1, Integer_1, Compare_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n function initialize(length) {\n Integer_1.default.assert(length, 'length');\n var array;\n if (length > 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\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});\n","/*!\r\n * @author 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 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});\n","/*!\r\n * @author 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///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase';\r\nimport 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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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","Empty","Array","isArray","isPrimitive","isArrayLike","length","pointer","step","isEnumerable","getEnumerator","Error","instance","hasMemberOfType","FUNCTION","isEnumerator","forEach","e","action","index","moveNext","current","EmptyEnumerator","Object","defineProperty","prototype","get","enumerable","configurable","reset","dispose","freeze","empty"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,cAAe,oBAAqB,qBAAsB,SAAUC,EAASC,EAASC,EAASC,EAAmBC,GCKhJ,YA8BA,SAAAC,GAAwBC,GAGvB,IAAIA,EACH,MAAOC,EAER,IAAGC,MAAMC,QAAQH,GAChB,MAAO,IAAIH,GAAAA,WAAwBG,EAGpC,KAAIJ,EAAAA,WAAKQ,YAAYJ,GACrB,CACC,GAAGJ,EAAAA,WAAKS,YAAeL,GAEtB,MAAO,IAAIF,GAAAA,WACV,WAEC,OACCE,OAAQA,EACRM,OAAQN,EAAOM,OACfC,QAAS,EACTC,KAAM,IAKV,IAAGC,EAAgBT,GAClB,MAAOA,GAAOU,gBAIhB,KAAM,IAAIC,OAAM,uBAGjB,QAAAF,GAAgCG,GAE/B,MAAOhB,GAAAA,WAAKiB,gBAAgCD,EAAU,gBAAiBhB,EAAAA,WAAKkB,UAG7E,QAAAC,GAAgCH,GAE/B,MAAOhB,GAAAA,WAAKiB,gBAAgCD,EAAU,WAAYhB,EAAAA,WAAKkB,UAGxE,QAAAE,GACCC,EACAC,GAEA,GAAGD,EACH,CACC,GAAGf,MAAMC,QAAQc,GAGhB,WADAA,GAAED,QAAQE,EASX,IALGT,EAAgBQ,KAElBA,EAAqBA,EAAGP,iBAGtBK,EAAgBE,GAIlB,IAFA,GAAIE,GAAQ,EAENF,EAAEG,YAEJF,EAAOD,EAAEI,QAASF,QAAW,MA1FpC,GAAAG,GAAA,WAAA,QAAAA,MAeA,MAbCC,QAAAC,eAAIF,EAAAG,UAAA,WDROC,ICQX,aDLWC,YAAY,EACZC,cAAc,ICSzBN,EAAAG,UAAAL,SAAA,WAEC,OAAO,GAGRE,EAAAG,UAAAI,MAAA,aAEAP,EAAAG,UAAAK,QAAA,aACDR,KAEMrB,EAAQ,GAAIqB,EAClBC,QAAOQ,OAAO9B,GAEDN,EAAAqC,MAAyB/B,EAGtBN,EAAAI,KAAIA,EAkCJJ,EAAAc,aAAYA,EAKZd,EAAAoB,aAAYA,EAKZpB,EAAAqB,QAAOA","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../../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 Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.default(source);\n if (!Types_1.default.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 isEnumerator(instance) {\n return Types_1.default.hasMemberOfType(instance, \"moveNext\", Types_1.default.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e) {\n if (Array.isArray(e)) {\n e.forEach(action);\n return;\n }\n if (isEnumerable(e)) {\n e = e.getEnumerator();\n }\n if (isEnumerator(e)) {\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\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\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 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\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source: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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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 73b03991..04a7f82e 100644 --- a/dist/amd/System/Collections/LinkedList.js +++ b/dist/amd/System/Collections/LinkedList.js @@ -3,5 +3,5 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Compare","../Collections/Array/Utility","./Enumeration/Enumerator","./Enumeration/EnumeratorBase","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException"],function(t,e,n,r,o,i,u,a,s){"use strict";function l(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new p(e,t)),n}function f(t,e){if(!t)throw new s["default"]("Cannot be null.");if(t.list!=e)throw new a["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new a["default"]("Provided node is not valid.");return n}var d=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new a["default"]("Adding a node that is already placed.")},t}(),c=function(){function t(t){for(var e=this,n=0,r=o.from(t),i=e._listInternal=new u["default"];r.moveNext();)i.addNode(new d(r.current)),++n;e._count=n}return t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();r.forEach(n,t),n.length=0}else this._listInternal.forEach(function(e,n){return t(e.value,n)})},t.prototype.getEnumerator=function(){var t,e,n=this;return new i["default"](function(){t=null,e=n._listInternal.first},function(n){return e?(t=e,e=t&&t.next,n.yieldReturn(t.value)):n.yieldBreak()})},t.prototype._findFirst=function(t){for(var e=n.areEqual,r=this._listInternal.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._listInternal.last;r;){if(e(t,r.value))return r;r=r.previous}return null},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._listInternal.addNode(new d(t)),this._count++},t.prototype.clear=function(){return this._count=0,this._listInternal.clear()},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){if(void 0===e&&(e=0),!t)throw new s["default"]("array");if(this._listInternal.first){var n=e+this._count;t.lengthu}),u},Object.defineProperty(t.prototype,"first",{get:function(){return l(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return l(this._listInternal.last,this)},enumerable:!0,configurable:!0}),t.prototype.getValueAt=function(t){return this._listInternal.getNodeAt(t).value},t.prototype.getNodeAt=function(t){return l(this._listInternal.getNodeAt(t),this)},t.prototype.find=function(t){return l(this._findFirst(t),this)},t.prototype.findLast=function(t){return l(this._findLast(t),this)},t.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new d(t)),++this._count},t.prototype.addLast=function(t){this.add(t)},t.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._count--},t.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&--t._count},t.prototype.removeNode=function(t){var e=this,n=e._listInternal.removeNode(f(t,e));return n&&--e._count,n},t.prototype.addBefore=function(t,e){this._listInternal.addNodeBefore(new d(e),f(t,this)),++this._count},t.prototype.addAfter=function(t,e){this._listInternal.addNodeAfter(new d(e),f(t,this)),++this._count},t.prototype.addNodeBefore=function(t,e){this._listInternal.addNodeBefore(f(e,this),f(t,this)),++this._count},t.prototype.addNodeAfter=function(t,e){this._listInternal.addNodeAfter(f(e,this),f(t,this)),++this._count},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=c;var p=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return l(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return l(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); +define(["require","exports","../Compare","../Collections/Array/Utility","./Enumeration/Enumerator","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException"],function(t,e,n,r,o,i,u,a){"use strict";function s(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new c(e,t)),n}function l(t,e){if(!t)throw new a["default"]("Cannot be null.");if(t.list!=e)throw new u["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new u["default"]("Provided node is not valid.");return n}var f=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new u["default"]("Adding a node that is already placed.")},t}(),d=function(){function t(t){for(var e=this,n=0,r=o.from(t),u=e._listInternal=new i["default"];r.moveNext();)u.addNode(new f(r.current)),++n;e._count=n}return t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();r.forEach(n,t),n.length=0}else this._listInternal.forEach(function(e,n){return t(e.value,n)})},t.prototype.getEnumerator=function(){return i["default"].valueEnumeratorFrom(this._listInternal)},t.prototype._findFirst=function(t){for(var e=n.areEqual,r=this._listInternal.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._listInternal.last;r;){if(e(t,r.value))return r;r=r.previous}return null},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._listInternal.addNode(new f(t)),this._count++},t.prototype.clear=function(){return this._count=0,this._listInternal.clear()},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){if(void 0===e&&(e=0),!t)throw new a["default"]("array");var n=e+this._count;return t.lengthu}),u},Object.defineProperty(t.prototype,"first",{get:function(){return s(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return s(this._listInternal.last,this)},enumerable:!0,configurable:!0}),t.prototype.getValueAt=function(t){return this._listInternal.getNodeAt(t).value},t.prototype.getNodeAt=function(t){return s(this._listInternal.getNodeAt(t),this)},t.prototype.find=function(t){return s(this._findFirst(t),this)},t.prototype.findLast=function(t){return s(this._findLast(t),this)},t.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new f(t)),++this._count},t.prototype.addLast=function(t){this.add(t)},t.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._count--},t.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&--t._count},t.prototype.removeNode=function(t){var e=this,n=e._listInternal.removeNode(l(t,e));return n&&--e._count,n},t.prototype.addBefore=function(t,e){this._listInternal.addNodeBefore(new f(e),l(t,this)),++this._count},t.prototype.addAfter=function(t,e){this._listInternal.addNodeAfter(new f(e),l(t,this)),++this._count},t.prototype.addNodeBefore=function(t,e){this._listInternal.addNodeBefore(l(e,this),l(t,this)),++this._count},t.prototype.addNodeAfter=function(t,e){this._listInternal.addNodeAfter(l(e,this),l(t,this)),++this._count},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d;var c=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return s(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return s(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); //# sourceMappingURL=LinkedList.js.map diff --git a/dist/amd/System/Collections/LinkedList.js.map b/dist/amd/System/Collections/LinkedList.js.map index 5a09162e..e83fdee0 100644 --- a/dist/amd/System/Collections/LinkedList.js.map +++ b/dist/amd/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["define","require","exports","Values","ArrayUtility","Enumerator","EnumeratorBase_1","LinkedNodeList_1","InvalidOperationException_1","ArgumentNullException_1","ensureExternal","node","list","external","LinkedListNode","getInternal","n","_nodeInternal","InternalNode","value","previous","next","this","prototype","assertDetached","LinkedList","source","_","c","e","from","_listInternal","moveNext","addNode","current","_count","forEach","action","useCopy","array","toArray","length","i","getEnumerator","first","yielder","yieldReturn","yieldBreak","_findFirst","entry","equals","areEqual","_findLast","prev","last","Object","defineProperty","get","enumerable","configurable","add","clear","contains","found","copyTo","index","minLength","initialize","removeOnce","remove","max","Infinity","removedCount","removeNode","getValueAt","getNodeAt","find","findLast","addFirst","addNodeBefore","addLast","removeFirst","removeLast","removed","addBefore","before","addAfter","after","addNodeAfter","_list","set","v"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Compare\", \"../Collections/Array/Utility\", \"./Enumeration/Enumerator\", \"./Enumeration/EnumeratorBase\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\"], function (require, exports, Values, ArrayUtility, Enumerator, EnumeratorBase_1, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1) {\n 'use strict';\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n 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._nodeInternal;\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;\n var e = Enumerator.from(source);\n var list = _._listInternal = new LinkedNodeList_1.default();\n while (e.moveNext()) {\n list.addNode(new InternalNode(e.current));\n ++c;\n }\n _._count = c;\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 this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n var _ = this, current, next;\n return new EnumeratorBase_1.default(function () {\n current = null;\n next = _._listInternal.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var equals = Values.areEqual, prev = this._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\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._listInternal.addNode(new InternalNode(entry));\n this._count++;\n };\n LinkedList.prototype.clear = function () {\n this._count = 0;\n return this._listInternal.clear();\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 if (!array)\n throw new ArgumentNullException_1.default('array');\n if (this._listInternal.first) {\n var minLength = index + this._count;\n if (array.length < minLength)\n array.length = minLength;\n this.forEach(function (entry, i) {\n array[index + i] = entry;\n });\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 return this.remove(entry, 1) !== 0;\n };\n LinkedList.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var equals = Values.areEqual;\n var _ = this, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node)) {\n --_._count;\n ++removedCount;\n }\n return removedCount < max;\n });\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n return this._listInternal.getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n ++this._count;\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first)) {\n _._count--;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last)) {\n --_._count;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this, removed = _._listInternal.removeNode(getInternal(node, _));\n if (removed)\n --_._count;\n return removed;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, this));\n ++this._count;\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n this._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._listInternal.addNodeBefore(getInternal(before, this), getInternal(node, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._listInternal.addNodeAfter(getInternal(after, this), getInternal(node, this));\n ++this._count;\n };\n return LinkedList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../Compare\";\r\nimport * as ArrayUtility from \"../Collections/Array/Utility\";\r\nimport * as Enumerator from \"./Enumeration/Enumerator\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\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:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nimplements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\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;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tvar list = _._listInternal = new LinkedNodeList>();\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlist.addNode( new InternalNode(e.current) );\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._count = c;\r\n\t}\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\tthis._listInternal.forEach((node, i)=>action(node.value, i));\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,\r\n\t\t current:InternalNode,\r\n\t\t next:InternalNode;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = _._listInternal.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\t//noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\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._listInternal.addNode(new InternalNode(entry));\r\n\t\tthis._count++;\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tthis._count = 0;\r\n\t\treturn this._listInternal.clear();\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\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\tif(this._listInternal.first)\r\n\t\t{\r\n\t\t\tvar minLength = index + this._count;\r\n\t\t\tif(array.length\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = entry;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\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\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar equals = Values.areEqual;\r\n\t\tvar _ = this, list = _._listInternal, removedCount:number = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\t--_._count;\r\n\t\t\t\t++removedCount;\r\n\t\t\t}\r\n\t\t\treturn removedCount\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\treturn this._listInternal.getNodeAt(index).value;\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first)) {\r\n\t\t\t_._count--;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last)) {\r\n\t\t\t--_._count;\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\t removed = _._listInternal.removeNode(getInternal(node, _));\r\n\r\n\t\tif(removed) --_._count;\r\n\r\n\t\treturn removed;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["define","require","exports","Values","ArrayUtility","Enumerator","LinkedNodeList_1","InvalidOperationException_1","ArgumentNullException_1","ensureExternal","node","list","external","LinkedListNode","getInternal","n","_nodeInternal","InternalNode","value","previous","next","this","prototype","assertDetached","LinkedList","source","_","c","e","from","_listInternal","moveNext","addNode","current","_count","forEach","action","useCopy","array","toArray","length","i","getEnumerator","valueEnumeratorFrom","_findFirst","entry","equals","areEqual","first","_findLast","prev","last","Object","defineProperty","get","enumerable","configurable","add","clear","contains","found","copyTo","index","minLength","copyValues","initialize","removeOnce","remove","max","Infinity","removedCount","removeNode","getValueAt","getNodeAt","find","findLast","addFirst","addNodeBefore","addLast","removeFirst","removeLast","removed","addBefore","before","addAfter","after","addNodeAfter","_list","set","v"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Compare\", \"../Collections/Array/Utility\", \"./Enumeration/Enumerator\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\"], function (require, exports, Values, ArrayUtility, Enumerator, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1) {\n 'use strict';\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n 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._nodeInternal;\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;\n var e = Enumerator.from(source);\n var list = _._listInternal = new LinkedNodeList_1.default();\n while (e.moveNext()) {\n list.addNode(new InternalNode(e.current));\n ++c;\n }\n _._count = c;\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 this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var equals = Values.areEqual, prev = this._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\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._listInternal.addNode(new InternalNode(entry));\n this._count++;\n };\n LinkedList.prototype.clear = function () {\n this._count = 0;\n return this._listInternal.clear();\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 if (!array)\n throw new ArgumentNullException_1.default('array');\n var minLength = index + this._count;\n if (array.length < minLength)\n array.length = minLength;\n return LinkedNodeList_1.default.copyValues(this._listInternal, array, index);\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 return this.remove(entry, 1) !== 0;\n };\n LinkedList.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var equals = Values.areEqual;\n var _ = this, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node)) {\n --_._count;\n ++removedCount;\n }\n return removedCount < max;\n });\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n return this._listInternal.getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n ++this._count;\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first)) {\n _._count--;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last)) {\n --_._count;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this, removed = _._listInternal.removeNode(getInternal(node, _));\n if (removed)\n --_._count;\n return removed;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, this));\n ++this._count;\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n this._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._listInternal.addNodeBefore(getInternal(before, this), getInternal(node, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._listInternal.addNodeAfter(getInternal(after, this), getInternal(node, this));\n ++this._count;\n };\n return LinkedList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../Compare\";\r\nimport * as ArrayUtility from \"../Collections/Array/Utility\";\r\nimport * as Enumerator from \"./Enumeration/Enumerator\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\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:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nimplements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\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;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tvar list = _._listInternal = new LinkedNodeList>();\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlist.addNode(new InternalNode(e.current));\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._count = c;\r\n\t}\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\tthis._listInternal.forEach((node, i)=>action(node.value, i));\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\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\t//noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\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._listInternal.addNode(new InternalNode(entry));\r\n\t\tthis._count++;\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tthis._count = 0;\r\n\t\treturn this._listInternal.clear();\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\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\tvar minLength = index + this._count;\r\n\t\tif(array.lengththis._listInternal, array, index);\r\n\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\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar equals = Values.areEqual;\r\n\t\tvar _ = this, list = _._listInternal, removedCount:number = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\t--_._count;\r\n\t\t\t\t++removedCount;\r\n\t\t\t}\r\n\t\t\treturn removedCount\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\treturn this._listInternal.getNodeAt(index).value;\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t{\r\n\t\t\t_._count--;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t{\r\n\t\t\t--_._count;\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\t removed = _._listInternal.removeNode(getInternal(node, _));\r\n\r\n\t\tif(removed) --_._count;\r\n\r\n\t\treturn removed;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Collections/LinkedNodeList.js b/dist/amd/System/Collections/LinkedNodeList.js index 8c03b8ce..f4a1eba7 100644 --- a/dist/amd/System/Collections/LinkedNodeList.js +++ b/dist/amd/System/Collections/LinkedNodeList.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","../Text/Utility","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException"],function(t,e,r,n,o,i){"use strict";function s(t,e){if(void 0===e&&(e="node"),null==t)throw new i["default"](e);if(t.next||t.previous)throw new n["default"]("Cannot add a node to a LinkedNodeList that is already linked.")}var u=function(){function t(){this._first=null,this._last=null}return Object.defineProperty(t.prototype,"first",{get:function(){return this._first},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._last},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){for(var t=this._first,e=0;t;)e++,t=t.next;return e},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t){var e=null,r=this.first,n=0;do e=r,r=e&&e.next;while(e&&t(e,n++)!==!1)},t.prototype.clear=function(){var t,e=this,r=0,n=0;for(t=e._first,e._first=null;t;){r++;var o=t;t=t.next,o.next=null}for(t=e._last,e._last=null;t;){n++;var o=t;t=t.previous,o.previous=null}return r!==n&&console.warn("LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: "+r+", Reverse: "+n),r},t.prototype.dispose=function(){this.clear()},t.prototype.contains=function(t){return-1!=this.indexOf(t)},t.prototype.getNodeAt=function(t){if(0>t)return null;for(var e=this._first,r=0;e&&tt)return null;for(var e=this._first,r=0;e&&t\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number {\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile (current\r\n\t\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n) {\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n) {\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: '+cF+\", Reverse: \"+cL);\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!=-1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index>(node:TNode, propName:string = 'node') {\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedNodeList.js","System/Collections/LinkedNodeList.ts"],"names":["define","require","exports","TextUtility","InvalidOperationException_1","ArgumentException_1","ArgumentNullException_1","EnumeratorBase_1","assertValidDetached","node","propName","next","previous","LinkedNodeList","this","_first","_last","Object","defineProperty","prototype","get","enumerable","configurable","i","forEach","action","current","first","index","map","selector","result","push","clear","n","_","cF","cL","console","warn","dispose","contains","indexOf","getNodeAt","find","condition","c","removeFirst","removeNode","removeLast","prev","a","b","format","addNode","addNodeAfter","addNodeBefore","before","after","replace","replacement","valueEnumeratorFrom","list","yielder","yieldReturn","value","yieldBreak","copyValues","array"],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"../Text/Utility\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/EnumeratorBase\"], function (require, exports, TextUtility, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, EnumeratorBase_1) {\n 'use strict';\n var LinkedNodeList = (function () {\n function LinkedNodeList() {\n this._first = null;\n this._last = null;\n }\n Object.defineProperty(LinkedNodeList.prototype, \"first\", {\n get: function () {\n return this._first;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"last\", {\n get: function () {\n return this._last;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"count\", {\n get: function () {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n },\n enumerable: true,\n configurable: true\n });\n LinkedNodeList.prototype.forEach = function (action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n };\n LinkedNodeList.prototype.map = function (selector) {\n if (!selector)\n throw new ArgumentNullException_1.default('selector');\n var result = [];\n this.forEach(function (node) {\n result.push(selector(node));\n });\n return result;\n };\n LinkedNodeList.prototype.clear = function () {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n var current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n var current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n return cF;\n };\n LinkedNodeList.prototype.dispose = function () {\n this.clear();\n };\n LinkedNodeList.prototype.contains = function (node) {\n return this.indexOf(node) != -1;\n };\n LinkedNodeList.prototype.getNodeAt = function (index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedNodeList.prototype.find = function (condition) {\n var node = null;\n this.forEach(function (n, i) {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n };\n LinkedNodeList.prototype.indexOf = function (node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n };\n LinkedNodeList.prototype.removeFirst = function () {\n return this.removeNode(this._first);\n };\n LinkedNodeList.prototype.removeLast = function () {\n return this.removeNode(this._last);\n };\n LinkedNodeList.prototype.removeNode = function (node) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.default('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n return !a && !b;\n };\n LinkedNodeList.prototype.addNode = function (node) {\n this.addNodeAfter(node);\n };\n LinkedNodeList.prototype.addNodeBefore = function (node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n var prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n };\n LinkedNodeList.prototype.addNodeAfter = function (node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n var next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n };\n LinkedNodeList.prototype.replace = function (node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n };\n LinkedNodeList.valueEnumeratorFrom = function (list) {\n if (!list)\n throw new ArgumentNullException_1.default('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.default(function () {\n current = null;\n next = list.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedNodeList.copyValues = function (list, array, index) {\n if (index === void 0) { index = 0; }\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.default('array');\n list.forEach(function (node, i) {\n array[index + i] = node.value;\n });\n }\n return array;\n };\n return LinkedNodeList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedNodeList;\n function assertValidDetached(node, propName) {\n if (propName === void 0) { propName = 'node'; }\n if (node == null)\n throw new ArgumentNullException_1.default(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.default(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues(list:LinkedNodeList>, array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file diff --git a/dist/amd/System/Compare.js b/dist/amd/System/Compare.js index e970d02c..53a95837 100644 --- a/dist/amd/System/Compare.js +++ b/dist/amd/System/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./Types"],function(e,r,a){"use strict";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&&r===t)?1:r>e||u&&(0===r&&0==e||null===r&&e===t)?-1:NaN}var n=a["default"].isTrueNaN,t=void 0;r.areEqual=o;var i="compareTo";r.compare=u}); +define(["require","exports","./Types"],function(e,r,t){"use strict";function u(e,r,t){return void 0===t&&(t=!0),e===r||!t&&e==r||l(e)&&l(r)}function n(e,r,n){return void 0===n&&(n=!0),u(e,r,n)?0:e&&t["default"].hasMember(e,f)?e.compareTo(r):r&&t["default"].hasMember(r,f)?-r.compareTo(e):e>r||n&&(0===e&&0==r||null===e&&r===i)?1:r>e||n&&(0===r&&0==e||null===r&&e===i)?-1:NaN}function a(e,r,n,l){if(void 0===n&&(n=!0),void 0===l&&(l=0),u(e,r,!0))return!0;if(null===e||e===i||null==r||r===i)return n?t["default"].isObject(e)?!Object.keys(e).length:t["default"].isObject(r)?!Object.keys(r).length:!(null!==e&&e!==i||null!=r&&r!==i):!1;if(t["default"].isObject(e)&&t["default"].isObject(r)){var f=Object.keys(e),o=Object.keys(r),c=f.length;if(c!=o.length)return!1;f.sort(),o.sort();for(var s=0;c>s;++s){var d=f[s];if(d!==o[s]||!u(e[d],r[d],!0))return!1}if(l>0)for(var v=0,b=f;v b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n});\n","/*!\r\n * @author 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); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["define","require","exports","Types_1","areEqual","a","b","strict","isTrueNaN","compare","hasMember","COMPARE_TO","compareTo","VOID0","NaN","areEquivalent","nullEquivalency","extraDepth","isObject","Object","keys","length","aKeys","bKeys","len","sort","i","key","_i","aKeys_1"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,WAAY,SAAUC,EAASC,EAASC,GAClE,YCeJ,SAAAC,GAAyBC,EAAOC,EAAOC,GAEtC,MAFsC,UAAAA,IAAAA,GAAA,GAE/BF,IAAIC,IAAMC,GAAUF,GAAGC,GAAKE,EAAUH,IAAMG,EAAUF,GAY9D,QAAAG,GAAwBJ,EAAOC,EAAOC,GAGrC,MAHqC,UAAAA,IAAAA,GAAA,GAGlCH,EAASC,EAAGC,EAAGC,GACV,EAELF,GAAKF,EAAAA,WAAKO,UAAUL,EAAGM,GAClBN,EAAEO,UAAUN,GACZA,GAAKH,EAAAA,WAAKO,UAAUJ,EAAGK,IACtBL,EAAEM,UAAUP,GAIlBA,EAAEC,GAAKC,IAAe,IAAJF,GAAY,GAAHC,GAAY,OAAJD,GAAYC,IAAIO,GAC9C,EAELP,EAAED,GAAKE,IAAe,IAAJD,GAAY,GAAHD,GAAY,OAAJC,GAAYD,IAAIQ,GAC9C,GAEDC,IAWR,QAAAC,GAA8BV,EAAOC,EAAOU,EAAgCC,GAI3E,GAJ2C,SAAAD,IAAAA,GAAA,GAAgC,SAAAC,IAAAA,EAAA,GAIxEb,EAASC,EAAGC,GAAG,GAAO,OAAO,CAEhC,IAAO,OAAJD,GAAYA,IAAIQ,GAAY,MAAHP,GAAWA,IAAIO,EAE1C,MAAIG,GAEDb,EAAAA,WAAKe,SAASb,IAERc,OAAOC,KAAKf,GAAGgB,OAGrBlB,EAAAA,WAAKe,SAASZ,IAERa,OAAOC,KAAKd,GAAGe,SAGZ,OAAJhB,GAAYA,IAAIQ,GAAc,MAAHP,GAAWA,IAAIO,IAZtB,CAe7B,IAAGV,EAAAA,WAAKe,SAASb,IAAMF,EAAAA,WAAKe,SAASZ,GACrC,CAEC,GAAIgB,GAAQH,OAAOC,KAAKf,GAAIkB,EAAQJ,OAAOC,KAAKd,GAAIkB,EAAMF,EAAMD,MAChE,IAAGG,GAAKD,EAAMF,OACb,OAAO,CAERC,GAAMG,OACNF,EAAME,MAEN,KAAI,GAAIC,GAAI,EAAKF,EAAFE,IAASA,EACxB,CACC,GAAIC,GAAML,EAAMI,EAChB,IAAGC,IAAMJ,EAAMG,KAAOtB,EAASC,EAAEsB,GAAMrB,EAAEqB,IAAM,GAAO,OAAO,EAI9D,GAAGV,EAAW,EAEb,IAAe,GAAAW,GAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAR,OAAAO,IAAM,CAAjB,GAAID,GAAGE,EAAAD,EACV,KAAIb,EAAcV,EAAEsB,GAAMrB,EAAEqB,GAAMX,EAAiBC,EAAW,GAAI,OAAO,EAI3E,OAAO,EAGR,OAAO,EAzGR,GAAOT,GAAYL,EAAAA,WAAKK,UAElBK,EAAY,MASFX,GAAAE,SAAQA,CAKxB,IAAMO,GAAa,WASHT,GAAAO,QAAOA,EA8BPP,EAAAa,cAAaA","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Types\"], function (require, exports, Types_1) {\n \"use strict\";\n var isTrueNaN = Types_1.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 function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.default.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.default.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; ++i) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"./Types\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Events/EventDispatcher.js b/dist/amd/System/Events/EventDispatcher.js deleted file mode 100644 index aa13df31..00000000 --- a/dist/amd/System/Events/EventDispatcher.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 - */ -var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};define(["require","exports","../Utility/shallowCopy","../Disposable/DisposableBase","../Collections/Array/Utility"],function(e,t,i,r,n){"use strict";var s="disposing",o="disposed",p=function(e){function t(t,i,r,n){void 0===r&&(r=!1),void 0===n&&(n=0),e.call(this),this.type=t,this.listener=i,this.useCapture=r,this.priority=n;var s=this;s.type=t,s.listener=i,s.useCapture=r,s.priority=n}return __extends(t,e),t.prototype.dispose=function(){this.listener=null},Object.defineProperty(t.prototype,"wasDisposed",{get:function(){return null==this.listener},enumerable:!0,configurable:!0}),t.prototype.matches=function(e,t,i){void 0===i&&(i=!1);var r=this;return r.type==e&&r.listener==t&&r.useCapture==i},t.prototype.equals=function(e){var t=this;return t.type==e.type&&t.listener==e.listener&&t.useCapture==e.useCapture&&t.priority==e.priority},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p;(function(e){function t(){e.apply(this,arguments),this._isDisposing=!1}return __extends(t,e),t.prototype.addEventListener=function(e,t,i,r){void 0===i&&(i=!1),void 0===r&&(r=0);var n=this._listeners;n||(this._listeners=n=[]),n.push(new p(e,t,i,r))},t.prototype.registerEventListener=function(e,t,i,r){void 0===i&&(i=!1),void 0===r&&(r=0),this.hasEventListener(e,t,i)||this.addEventListener(e,t,i,r)},t.prototype.hasEventListener=function(e,t,i){void 0===i&&(i=!1);var r=this._listeners;return r&&r.some(function(r){return e==r.type&&(!t||t==r.listener&&i==r.useCapture)})},t.prototype.removeEventListener=function(e,t,i){void 0===i&&(i=!1);var r=this._listeners;if(r){var s=n.findIndex(r,function(r){return r.matches(e,t,i)});if(-1!=s){var o=r[s];r.splice(s,1),o.dispose()}}},t.prototype.dispatchEvent=function(e,t){var r=this,n=this,s=n._listeners;if(!s||!s.length)return!1;var o;"string"==typeof e?(o=Object.create(Event),t||(t={}),o.cancelable=!!t.cancelable,o.target=n,o.type=e):o=e;var p=o.type,u=[];return s.forEach(function(e){e.type==p&&u.push(e)}),u.length?(u.sort(function(e,t){return t.priority-e.priority}),u.forEach(function(e){var t=Object.create(Event);i["default"](o,t),t.target=r,e.listener(t)}),!0):!1},Object.defineProperty(t,"DISPOSING",{get:function(){return s},enumerable:!0,configurable:!0}),Object.defineProperty(t,"DISPOSED",{get:function(){return o},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!t.wasDisposed&&!t._isDisposing){t._isDisposing=!0,t.dispatchEvent(s),e.prototype.dispose.call(this),t.dispatchEvent(o);var i=t._listeners;i&&(this._listeners=null,i.forEach(function(e){return e.dispose()}))}},t})(r["default"])}); -//# sourceMappingURL=EventDispatcher.js.map diff --git a/dist/amd/System/Events/EventDispatcher.js.map b/dist/amd/System/Events/EventDispatcher.js.map deleted file mode 100644 index 040bbdcf..00000000 --- a/dist/amd/System/Events/EventDispatcher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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","type","listener","useCapture","priority","call","_","dispose","defineProperty","get","enumerable","configurable","matches","equals","other","value","EventDispatcher","apply","arguments","_isDisposing","addEventListener","l","_listeners","push","registerEventListener","hasEventListener","some","removeEventListener","userCapture","i","findIndex","entry","e","splice","dispatchEvent","params","_this","length","event","Event","cancelable","target","entries","forEach","sort","a","newEvent","wasDisposed"],"mappings":"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","file":"System/Events/EventDispatcher.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine([\"require\", \"exports\", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nimport shallowCopy from '../Utility/shallowCopy';\r\nimport DisposableBase from '../Disposable/DisposableBase';\r\nimport * as AU from '../Collections/Array/Utility';\r\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/Observable/SubscribableBase.js b/dist/amd/System/Observable/SubscribableBase.js index a781ce0a..20038eb4 100644 --- a/dist/amd/System/Observable/SubscribableBase.js +++ b/dist/amd/System/Observable/SubscribableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -define(["require","exports","../Collections/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}); +define(["require","exports","../Collections/LinkedNodeList","../Disposable/Utility","./Subscription"],function(e,t,i,n,r){"use strict";var u=function(){function e(){this.__subscriptions=new i["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(t){return t.value.subscriber===e})},e.prototype.subscribe=function(e){var t=this,i=t._findEntryNode(e);if(i)return i.value;var n=new r["default"](t,e);return t.__subscriptions.addNode({value:n,previous:null,next:null}),n},e.prototype.unsubscribe=function(e){var t=this,i=t._findEntryNode(e);if(i){var n=i.value;t.__subscriptions.removeNode(i),n.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,i=t.__subscriptions,r=i.map(function(e){return e.value}),u=e?r.map(function(e){return e.subscriber}):null;return i.clear(),n.disposeThese(r),u},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype.dispose=function(){this._unsubscribeAll()},e}();Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=u}); //# sourceMappingURL=SubscribableBase.js.map diff --git a/dist/amd/System/Observable/SubscribableBase.js.map b/dist/amd/System/Observable/SubscribableBase.js.map index 842dd508..c49bdb25 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","this","__subscriptions","prototype","_getSubscribers","toArray","map","s","subscriber","_findEntryNode","node","first","value","next","subscribe","_","n","add","unsubscribe","remove","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","disposeThese","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,4BAA6B,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAcC,EAAgBC,GCGjK,YAQA,IAAAC,GAAA,WAcC,QAAAA,KAECC,KAAKC,gBAAkB,GAAIL,GAAAA,WAkE7B,MA1EWG,GAAAG,UAAAC,gBAAV,WACC,MAAOH,MAAKC,gBACVG,UACAC,IAAI,SAAAC,GAAG,MAAAA,GAAEC,cAQJR,EAAAG,UAAAM,eAAR,SACCD,GAGA,IADA,GAAIE,GAAOT,KAAKC,gBAAgBS,MAC1BD,GAEFA,EAAKE,MAAMJ,aAAaA,GAM1BE,EAAOA,EAAKG,IAId,OAAOH,IAIRV,EAAAG,UAAAW,UAAA,SAAUN,GAET,GAAIO,GAAId,KACJe,EAAID,EAAEN,eAAeD,EACzB,IAAGQ,EACF,MAAOA,GAAEJ,KAEV,IAAIL,GAAI,GAAIR,GAAAA,WAAagB,EAAGP,EAG5B,OAFAO,GAAEb,gBAAgBe,IAAIV,GAEfA,GAGRP,EAAAG,UAAAe,YAAA,SAAYV,GAEX,GAAIQ,GAAIf,KAAKQ,eAAeD,EAC5B,IAAGQ,EACH,CACC,GAAIT,GAAIS,EAAEJ,KACVI,GAAEG,SACFZ,EAAEa,YAIMpB,EAAAG,UAAAkB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EACzB,IAAIP,GAAId,KAAMsB,EAAKR,EAAEb,gBACjBK,EAAIgB,EAAGlB,UACPmB,EAAIF,EAAoBf,EAAED,IAAI,SAAAmB,GAAG,MAAAA,GAAEjB,aAAc,IAKrD,OAJAe,GAAGG,QAEH5B,EAAe6B,aAAapB,GAErBiB,GAGRxB,EAAAG,UAAAyB,eAAA,WACC3B,KAAKoB,mBAGNrB,EAAAG,UAAAiB,QAAA,WACCnB,KAAKoB,mBAGPrB,IAlFA6B,QAAAC,eAAAlC,EAAA,cAAAgB,OAAA,ID+CIhB,EAAAA,WAAkBI","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\", '../Collections/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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\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","LinkedNodeList_1","DisposeUtility","Subscription_1","SubscribableBase","this","__subscriptions","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","addNode","previous","next","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","disposeThese","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;AAMAA,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmB,SAAUC,EAASC,EAASC,EAAkBC,EAAgBC,GCGzK,YAQA,IAAAC,GAAA,WAeC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAA,WA8DT,MAxEWG,GAAAG,UAAAC,gBAAV,WAEC,MAAOH,MACLC,gBACAG,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BR,EAAAG,UAAAM,eAAR,SACCD,GAEA,MAAOP,MACLC,gBACAQ,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCR,EAAAG,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIf,GAAAA,WAAac,EAAGL,EAM5B,OALAK,GAAEX,gBAAgBa,SACjBR,MAAOO,EACPE,SAAU,KAAMC,KAAM,OAGhBH,GAGRd,EAAAG,UAAAe,YAAA,SAAYV,GAEX,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEX,gBAAgBiB,WAAWR,GAC7BG,EAAEM,YAIMpB,EAAAG,UAAAkB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIT,GAAIZ,KAAMsB,EAAKV,EAAEX,gBACjBY,EAAIS,EAAGlB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBiB,EAAIF,EAAoBR,EAAET,IAAI,SAAAoB,GAAG,MAAAA,GAAEjB,aAAc,IAKrD,OAJAe,GAAGG,QAEH5B,EAAe6B,aAAab,GAErBU,GAGRxB,EAAAG,UAAAyB,eAAA,WAEC3B,KAAKoB,mBAGNrB,EAAAG,UAAAiB,QAAA,WAECnB,KAAKoB,mBAGPrB,IAhFA6B,QAAAC,eAAAlC,EAAA,cAAAW,OAAA,ID6CIX,EAAAA,WAAkBI","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\ndefine([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/Utility\", \"./Subscription\"], function (require, exports, LinkedNodeList_1, DisposeUtility, Subscription_1) {\n 'use strict';\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.default(_, subscriber);\n _.__subscriptions.addNode({\n value: s,\n previous: null, next: null\n });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport * 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:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({\r\n\t\t\tvalue: s,\r\n\t\t\tprevious: null, next: null\r\n\t\t});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Types.js b/dist/amd/System/Types.js index 4389e2d7..b3592a17 100644 --- a/dist/amd/System/Types.js +++ b/dist/amd/System/Types.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports"],function(e,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}); +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,i){return void 0===i&&(i=!1),typeof e===u&&(i||null!==e)}function v(e){return isNaN(e)?NaN:e}function d(e){return c.getFor(e)}function m(e,i){return e&&!p(e)&&i in e}function O(e,i,t){return m(e,i)&&typeof e[i]===t}function g(e){return e instanceof Array||m(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=v,e.of=d,e.hasMember=m,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 29c2f6b5..95f5e717 100644 --- a/dist/amd/System/Types.js.map +++ b/dist/amd/System/Types.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["define","require","exports","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","undefined","info","Type","value","allowNaN","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { };\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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {};\r\n\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 +{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["define","require","exports","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","undefined","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\"], function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { };\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, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array || 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {};\r\n\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 * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null) ;\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property)in(value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\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/commonjs/System/Collections/Enumeration/Enumerator.js b/dist/commonjs/System/Collections/Enumeration/Enumerator.js index 08f8008a..e7c4edd7 100644 --- a/dist/commonjs/System/Collections/Enumeration/Enumerator.js +++ b/dist/commonjs/System/Collections/Enumeration/Enumerator.js @@ -8,9 +8,9 @@ var _createClass = function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Types_1 = require('../../Types'); -var ArrayEnumerator_1 = require('./ArrayEnumerator'); -var IndexEnumerator_1 = require('./IndexEnumerator'); +var Types_1 = require("../../Types"); +var ArrayEnumerator_1 = require("./ArrayEnumerator"); +var IndexEnumerator_1 = require("./IndexEnumerator"); var EmptyEnumerator = function () { function EmptyEnumerator() { @@ -18,18 +18,18 @@ var EmptyEnumerator = function () { } _createClass(EmptyEnumerator, [{ - key: 'moveNext', + key: "moveNext", value: function moveNext() { return false; } }, { - key: 'reset', + key: "reset", value: function reset() {} }, { - key: 'dispose', + key: "dispose", value: function dispose() {} }, { - key: 'current', + key: "current", get: function get() { return undefined; } diff --git a/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map b/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map index 76354f3e..3bb3ba38 100644 --- a/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/commonjs/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":";;;;AASA;;;;;;AAEA,IAAA,UAAA,QAAiB,aAAjB,CAAA;AAEA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AACA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;;IAGA;;;;;;;mCAOS;AAEP,mBAAO,KAAP,CAFO;;;;gCAKH;;;kCAEE;;;4BAZI;AAEV,mBAAO,SAAP,CAFU;;;;WAFZ;;;AAiBA,IAAM,QAAQ,IAAI,eAAJ,EAAR;AACN,OAAO,MAAP,CAAc,KAAd;AAEa,QAAA,KAAA,GAAyB,KAAzB;AAGb,SAAA,IAAA,CAAwB,MAAxB,EAAyD;AAGxD,QAAG,CAAC,MAAD,EACF,OAAO,KAAP,CADD;AAGA,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACC,OAAO,IAAI,kBAAA,OAAA,CAAwB,MAA5B,CAAP,CADD;AAIA,QAAG,CAAC,QAAA,OAAA,CAAK,WAAL,CAAiB,MAAjB,CAAD,EACH;AACC,YAAG,QAAA,OAAA,CAAK,WAAL,CAAoB,MAApB,CAAH,EACA;AACC,mBAAO,IAAI,kBAAA,OAAA,CACV,YAAA;AAEC,uBAAO;AACN,4BAAQ,MAAR;AACA,4BAAQ,OAAO,MAAP;AACR,6BAAS,CAAT;AACA,0BAAM,CAAN;iBAJD,CAFD;aAAA,CADD,CADD;SADA;AAcA,YAAG,aAAgB,MAAhB,CAAH,EACC,OAAO,OAAO,aAAP,EAAP,CADD;KAhBD;AAqBA,UAAM,IAAI,KAAJ,CAAU,qBAAV,CAAN,CA/BwD;CAAzD;AAAgB,QAAA,IAAA,GAAI,IAAJ;AAkChB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,OAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,eAA/C,EAAgE,QAAA,OAAA,CAAK,QAAL,CAAvE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAKhB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,OAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,UAA/C,EAA2D,QAAA,OAAA,CAAK,QAAL,CAAlE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAKhB,SAAA,OAAA,CACC,CADD,EAEC,MAFD,EAEyC;AAExC,QAAG,CAAH,EACA;AACC,YAAG,MAAM,OAAN,CAAc,CAAd,CAAH,EACA;AACC,cAAE,OAAF,CAAU,MAAV,EADD;AAEC,mBAFD;SADA;AAMA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,gBAAqB,EAAG,aAAH,EAArB,CADD;SADA;AAKA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,gBAAI,QAAQ,CAAR,CADL;AAGC,mBAAM,EAAE,QAAF,EAAN,EACA;AACC,oBAAG,OAAO,EAAE,OAAF,EAAW,OAAlB,MAA6B,KAA7B,EACF,MADD;aAFD;SAJD;KAbD;CAJD;AAAgB,QAAA,OAAA,GAAO,OAAP","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\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\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source: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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":";;;;AASA;;;;;;AAEA,IAAA,UAAA,QAAiB,aAAjB,CAAA;AACA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;AACA,IAAA,oBAAA,QAA4B,mBAA5B,CAAA;;IAGA;;;;;;;mCAOS;AAEP,mBAAO,KAAP,CAFO;;;;gCAKH;;;kCAEE;;;4BAZI;AAEV,mBAAO,SAAP,CAFU;;;;WAFZ;;;AAiBA,IAAM,QAAQ,IAAI,eAAJ,EAAR;AACN,OAAO,MAAP,CAAc,KAAd;AAEa,QAAA,KAAA,GAAyB,KAAzB;AAGb,SAAA,IAAA,CAAwB,MAAxB,EAAyD;AAGxD,QAAG,CAAC,MAAD,EACF,OAAO,KAAP,CADD;AAGA,QAAG,MAAM,OAAN,CAAc,MAAd,CAAH,EACC,OAAO,IAAI,kBAAA,OAAA,CAAwB,MAA5B,CAAP,CADD;AAIA,QAAG,CAAC,QAAA,OAAA,CAAK,WAAL,CAAiB,MAAjB,CAAD,EACH;AACC,YAAG,QAAA,OAAA,CAAK,WAAL,CAAoB,MAApB,CAAH,EACA;AACC,mBAAO,IAAI,kBAAA,OAAA,CACV,YAAA;AAEC,uBAAO;AACN,4BAAQ,MAAR;AACA,4BAAQ,OAAO,MAAP;AACR,6BAAS,CAAT;AACA,0BAAM,CAAN;iBAJD,CAFD;aAAA,CADD,CADD;SADA;AAcA,YAAG,aAAgB,MAAhB,CAAH,EACC,OAAO,OAAO,aAAP,EAAP,CADD;KAhBD;AAqBA,UAAM,IAAI,KAAJ,CAAU,qBAAV,CAAN,CA/BwD;CAAzD;AAAgB,QAAA,IAAA,GAAI,IAAJ;AAkChB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,OAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,eAA/C,EAAgE,QAAA,OAAA,CAAK,QAAL,CAAvE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAKhB,SAAA,YAAA,CAAgC,QAAhC,EAA4C;AAE3C,WAAO,QAAA,OAAA,CAAK,eAAL,CAAqC,QAArC,EAA+C,UAA/C,EAA2D,QAAA,OAAA,CAAK,QAAL,CAAlE,CAF2C;CAA5C;AAAgB,QAAA,YAAA,GAAY,YAAZ;AAKhB,SAAA,OAAA,CACC,CADD,EAEC,MAFD,EAEyC;AAExC,QAAG,CAAH,EACA;AACC,YAAG,MAAM,OAAN,CAAc,CAAd,CAAH,EACA;AACC,cAAE,OAAF,CAAU,MAAV,EADD;AAEC,mBAFD;SADA;AAMA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,gBAAqB,EAAG,aAAH,EAArB,CADD;SADA;AAKA,YAAG,aAAgB,CAAhB,CAAH,EACA;AACC,gBAAI,QAAQ,CAAR,CADL;AAGC,mBAAM,EAAE,QAAF,EAAN,EACA;AACC,oBAAG,OAAO,EAAE,OAAF,EAAW,OAAlB,MAA6B,KAA7B,EACF,MADD;aAFD;SAJD;KAbD;CAJD;AAAgB,QAAA,OAAA,GAAO,OAAP","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from \"../../Types\";\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\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source: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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"]} \ 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 bf8beba5..d7c44fa6 100644 --- a/dist/es6/System/Collections/Array/Utility.js +++ b/dist/es6/System/Collections/Array/Utility.js @@ -2,12 +2,12 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from '../../Types'; -import Integer from '../../Integer'; -import { areEqual } from '../../Compare'; -import ArgumentException from '../../Exceptions/ArgumentException'; -import ArgumentNullException from '../../Exceptions/ArgumentNullException'; -import ArgumentOutOfRangeException from '../../Exceptions/ArgumentOutOfRangeException'; +import Type from "../../Types"; +import Integer from "../../Integer"; +import { areEqual } from "../../Compare"; +import ArgumentException from "../../Exceptions/ArgumentException"; +import ArgumentNullException from "../../Exceptions/ArgumentNullException"; +import ArgumentOutOfRangeException from "../../Exceptions/ArgumentOutOfRangeException"; export function initialize(length) { Integer.assert(length, 'length'); var array; diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js b/dist/es6/System/Collections/Enumeration/Enumerator.js index f7a0b654..a4ff9492 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.js +++ b/dist/es6/System/Collections/Enumeration/Enumerator.js @@ -3,9 +3,9 @@ * 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'; +import Type from "../../Types"; +import ArrayEnumerator from "./ArrayEnumerator"; +import IndexEnumerator from "./IndexEnumerator"; class EmptyEnumerator { get current() { return undefined; @@ -17,6 +17,8 @@ class EmptyEnumerator { dispose() { } } const Empty = new EmptyEnumerator(); +Object.freeze(Empty); +export const empty = Empty; export function from(source) { if (!source) return Empty; diff --git a/dist/es6/System/Collections/Enumeration/Enumerator.js.map b/dist/es6/System/Collections/Enumeration/Enumerator.js.map index 8fb41b0d..2db9d7b0 100644 --- a/dist/es6/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/es6/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,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,6BAAgC,QAAY;IAE3C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,wBACC,CAAmC,EACnC,MAAwC;IAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;QACA,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;YACA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC;QACR,CAAC;QAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;YACA,CAAC,GAAoB,CAAE,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;QAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,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;AACF,CAAC"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,CAAC;OAEN,IAAI,MAAM,aAAa;OACvB,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;AACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAErB,OAAO,MAAM,KAAK,GAAoB,KAAK,CAAC;AAG5C,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,6BAAgC,QAAY;IAE3C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,wBACC,CAAmC,EACnC,MAAwC;IAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;QACA,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;YACA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC;QACR,CAAC;QAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;YACA,CAAC,GAAoB,CAAE,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;QAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,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;AACF,CAAC"} \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedList.js b/dist/es6/System/Collections/LinkedList.js index f39cda0b..414e0cb4 100644 --- a/dist/es6/System/Collections/LinkedList.js +++ b/dist/es6/System/Collections/LinkedList.js @@ -7,7 +7,6 @@ import * as Values from "../Compare"; import * as ArrayUtility from "../Collections/Array/Utility"; import * as Enumerator from "./Enumeration/Enumerator"; -import EnumeratorBase from "./Enumeration/EnumeratorBase"; import LinkedNodeList from "./LinkedNodeList"; import InvalidOperationException from "../Exceptions/InvalidOperationException"; import ArgumentNullException from "../Exceptions/ArgumentNullException"; @@ -62,18 +61,7 @@ export default class LinkedList { } } getEnumerator() { - var _ = this, current, next; - return new EnumeratorBase(() => { - current = null; - next = _._listInternal.first; - }, (yielder) => { - if (next) { - current = next; - next = current && current.next; - return yielder.yieldReturn(current.value); - } - return yielder.yieldBreak(); - }); + return LinkedNodeList.valueEnumeratorFrom(this._listInternal); } _findFirst(entry) { var equals = Values.areEqual, next = this._listInternal.first; @@ -115,15 +103,10 @@ export default class LinkedList { copyTo(array, index = 0) { if (!array) throw new ArgumentNullException('array'); - if (this._listInternal.first) { - var minLength = index + this._count; - if (array.length < minLength) - array.length = minLength; - this.forEach((entry, i) => { - array[index + i] = entry; - }); - } - return array; + var minLength = index + this._count; + if (array.length < minLength) + array.length = minLength; + return LinkedNodeList.copyValues(this._listInternal, array, index); } toArray() { var array = ArrayUtility.initialize(this._count); diff --git a/dist/es6/System/Collections/LinkedList.js.map b/dist/es6/System/Collections/LinkedList.js.map index cdb5e639..340c25b8 100644 --- a/dist/es6/System/Collections/LinkedList.js.map +++ b/dist/es6/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,YAAY,CAAC;OAEN,KAAK,MAAM,MAAM,YAAY;OAC7B,KAAK,YAAY,MAAM,8BAA8B;OACrD,KAAK,UAAU,MAAM,0BAA0B;OAC/C,cAAc,MAAM,8BAA8B;OAClD,cAAc,MAAM,kBAAkB;OACtC,yBAAyB,MAAM,yCAAyC;OACxE,qBAAqB,MAAM,qCAAqC;AAevE;IAGC,YACQ,KAAQ,EACR,QAAyB,EACzB,IAAqB;QAFrB,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAiB;QACzB,SAAI,GAAJ,IAAI,CAAiB;IAE7B,CAAC;IAID,cAAc;QAEb,EAAE,CAAA,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC7B,MAAM,IAAI,yBAAyB,CAClC,uCAAuC,CAAC,CAAC;IAC5C,CAAC;AAEF,CAAC;AAED,wBAA2B,IAAoB,EAAE,IAAkB;IAElE,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;QACR,MAAM,CAAC,IAAI,CAAC;IAEb,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;IAChD,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,MAAM,CAAC,QAAQ,CAAC;AACjB,CAAC;AAED,qBAAwB,IAAuB,EAAE,IAAkB;IAElE,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC;QACR,MAAM,IAAI,qBAAqB,CAC9B,iBAAiB,CAAC,CAAC;IAErB,EAAE,CAAA,CAAC,IAAI,CAAC,IAAI,IAAE,IAAI,CAAC;QAClB,MAAM,IAAI,yBAAyB,CAClC,6CAA6C,CAAC,CAAC;IAEjD,IAAI,CAAC,GAAyB,IAAK,CAAC,aAAa,CAAC;IAClD,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,IAAI,yBAAyB,CAClC,6BAA6B,CAAC,CAAC;IAEjC,MAAM,CAAC,CAAC,CAAC;AACV,CAAC;AAED;IASC,YAAY,MAAU;QAErB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAI,MAAM,CAAC,CAAC;QAEnC,IAAI,IAAI,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI,cAAc,EAAmB,CAAC;QAEnE,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;YACA,IAAI,CAAC,OAAO,CAAE,IAAI,YAAY,CAAI,CAAC,CAAC,OAAO,CAAC,CAAE,CAAC;YAC/C,EAAE,CAAC,CAAC;QACL,CAAC;QAED,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACd,CAAC;IAID,OAAO,CACN,MAA+B,EAC/B,OAAO,GAAW,KAAK;QAEvB,EAAE,CAAA,CAAC,OAAO,CAAC,CACX,CAAC;YACA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CACJ,CAAC;YACA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAKD,aAAa;QAEZ,IAAI,CAAC,GAAG,IAAI,EACR,OAAuB,EACvB,IAAoB,CAAC;QAEzB,MAAM,CAAC,IAAI,cAAc,CACxB;YAGC,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9B,CAAC,EACD,CAAC,OAAO;YAGP,EAAE,CAAA,CAAC,IAAI,CAAC,CACR,CAAC;gBACA,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC,CACD,CAAC;IACH,CAAC;IAIO,UAAU,CAAC,KAAO;QAEzB,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,EACxB,IAAI,GAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QACtC,OAAM,IAAI,EACV,CAAC;YACA,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAEO,SAAS,CAAC,KAAO;QAExB,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,EACxB,IAAI,GAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACrC,OAAM,IAAI,EACV,CAAC;YACA,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAGD,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAGD,IAAI,UAAU;QAEb,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAO;QAEV,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAGD,KAAK;QAEJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAGD,QAAQ,CAAC,KAAO;QAEf,IAAI,KAAK,GAAW,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAS,EAAE,KAAK,GAAU,CAAC;QAEjC,EAAE,CAAA,CAAC,CAAC,KAAK,CAAC;YAAC,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEpD,EAAE,CAAA,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC5B,CAAC;YACA,IAAI,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,GAAC,SAAS,CAAC;gBAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACpD,IAAI,CAAC,OAAO,CACX,CAAC,KAAK,EAAE,CAAC;gBAER,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1B,CAAC,CACD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACd,CAAC;IAED,OAAO;QAEN,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,CAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,KAAO;QAEjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAO,EAAE,GAAG,GAAU,QAAQ;QAEpC,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,YAAY,GAAU,CAAC,CAAC;QAE9D,IAAI,CAAC,OAAO,CAAC,IAAI;YAEhB,EAAE,CAAA,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACtD,CAAC;gBACA,EAAE,CAAC,CAAC,MAAM,CAAC;gBACX,EAAE,YAAY,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,YAAY,GAAC,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC;IAErB,CAAC;IAKD,IAAI,KAAK;QAER,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,IAAI;QAEP,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAKD,UAAU,CAAC,KAAY;QAEtB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,KAAY;QAErB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,KAAO;QAEX,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,KAAO;QAEf,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,KAAO;QAEf,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,EAAE,IAAI,CAAC,MAAM,CAAC;IACf,CAAC;IAED,OAAO,CAAC,KAAO;QAEd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,WAAW;QAEV,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5C,EAAE,CAAA,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,MAAM,EAAE,CAAC;QACZ,CAAC;IACF,CAAC;IAED,UAAU;QAET,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QAC1C,EAAE,CAAA,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,CAAC;IACF,CAAC;IAGD,UAAU,CAAC,IAAuB;QAEjC,IAAI,CAAC,GAAG,IAAI,EACR,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/D,EAAE,CAAA,CAAC,OAAO,CAAC;YAAC,EAAE,CAAC,CAAC,MAAM,CAAC;QAEvB,MAAM,CAAC,OAAO,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAyB,EAAE,KAAO;QAE3C,IAAI,CAAC,aAAa,CAAC,aAAa,CAC/B,IAAI,YAAY,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CACzB,CAAC;QACF,EAAE,IAAI,CAAC,MAAM,CAAC;IACf,CAAC;IAGD,QAAQ,CAAC,KAAwB,EAAE,KAAO;QAEzC,IAAI,CAAC,aAAa,CAAC,YAAY,CAC9B,IAAI,YAAY,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CACxB,CAAC;QACF,EAAE,IAAI,CAAC,MAAM,CAAC;IACf,CAAC;IAED,aAAa,CAAC,IAAuB,EAAE,MAAyB;QAE/D,IAAI,CAAC,aAAa,CAAC,aAAa,CAC/B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EACzB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CACvB,CAAC;QACF,EAAE,IAAI,CAAC,MAAM,CAAC;IACf,CAAC;IAED,YAAY,CAAC,IAAuB,EAAE,KAAwB;QAE7D,IAAI,CAAC,aAAa,CAAC,YAAY,CAC9B,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EACxB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CACvB,CAAC;QACF,EAAE,IAAI,CAAC,MAAM,CAAC;IACf,CAAC;AAGF,CAAC;AAGD;IAEC,YACS,KAAmB,EACnB,aAA6B;QAD7B,UAAK,GAAL,KAAK,CAAc;QACnB,kBAAa,GAAb,aAAa,CAAgB;IAEtC,CAAC;IAED,IAAI,IAAI;QAEP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ;QAEX,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,IAAI;QAEP,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK;QAER,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,CAAG;QAEZ,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,KAAO;QAEhB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,KAAO;QAEf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,MAAyB;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,YAAY,CAAC,KAAwB;QAEpC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QAEL,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file +{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Collections/LinkedNodeList.js b/dist/es6/System/Collections/LinkedNodeList.js index 69204ff3..37e2f4e3 100644 --- a/dist/es6/System/Collections/LinkedNodeList.js +++ b/dist/es6/System/Collections/LinkedNodeList.js @@ -7,6 +7,7 @@ import * as TextUtility from "../Text/Utility"; import InvalidOperationException from "../Exceptions/InvalidOperationException"; import ArgumentException from "../Exceptions/ArgumentException"; import ArgumentNullException from "../Exceptions/ArgumentNullException"; +import EnumeratorBase from "./Enumeration/EnumeratorBase"; export default class LinkedNodeList { constructor() { this._first = null; @@ -34,6 +35,15 @@ export default class LinkedNodeList { } while (current && action(current, index++) !== false); } + map(selector) { + if (!selector) + throw new ArgumentNullException('selector'); + var result = []; + this.forEach(node => { + result.push(selector(node)); + }); + return result; + } clear() { var _ = this, n, cF = 0, cL = 0; n = _._first; @@ -71,6 +81,16 @@ export default class LinkedNodeList { } return next; } + find(condition) { + var node = null; + this.forEach((n, i) => { + if (condition(n, i)) { + node = n; + return false; + } + }); + return node; + } indexOf(node) { if (node && (node.previous || node.next)) { var index = 0; @@ -171,6 +191,32 @@ export default class LinkedNodeList { if (node == _._last) _._last = replacement; } + static valueEnumeratorFrom(list) { + if (!list) + throw new ArgumentNullException('list'); + var _ = this, current, next; + return new EnumeratorBase(() => { + current = null; + next = list.first; + }, (yielder) => { + if (next) { + current = next; + next = current && current.next; + return yielder.yieldReturn(current.value); + } + return yielder.yieldBreak(); + }); + } + static copyValues(list, array, index = 0) { + if (list && list.first) { + if (!array) + throw new ArgumentNullException('array'); + list.forEach((node, i) => { + array[index + i] = node.value; + }); + } + return array; + } } function assertValidDetached(node, propName = 'node') { if (node == null) diff --git a/dist/es6/System/Collections/LinkedNodeList.js.map b/dist/es6/System/Collections/LinkedNodeList.js.map index b5ca7ff2..ea0ca97b 100644 --- a/dist/es6/System/Collections/LinkedNodeList.js.map +++ b/dist/es6/System/Collections/LinkedNodeList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Compare.js b/dist/es6/System/Compare.js index 2f5a2822..0bd18207 100644 --- a/dist/es6/System/Compare.js +++ b/dist/es6/System/Compare.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -import Type from './Types'; +import Type from "./Types"; var isTrueNaN = Type.isTrueNaN; const VOID0 = void 0; export function areEqual(a, b, strict = true) { @@ -22,4 +22,39 @@ export function compare(a, b, strict = true) { return -1; return NaN; } +export function areEquivalent(a, b, nullEquivalency = true, extraDepth = 0) { + if (areEqual(a, b, true)) + return true; + if (a === null || a === VOID0 || b == null || b === VOID0) { + if (!nullEquivalency) + return false; + if (Type.isObject(a)) { + return !Object.keys(a).length; + } + if (Type.isObject(b)) { + return !Object.keys(b).length; + } + return (a === null || a === VOID0) && (b == null || b === VOID0); + } + if (Type.isObject(a) && Type.isObject(b)) { + var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length; + if (len != bKeys.length) + return false; + aKeys.sort(); + bKeys.sort(); + for (let i = 0; i < len; ++i) { + let key = aKeys[i]; + if (key !== bKeys[i] || !areEqual(a[key], b[key], true)) + return false; + } + if (extraDepth > 0) { + for (let key of aKeys) { + if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1)) + return false; + } + } + return true; + } + return false; +} //# sourceMappingURL=Compare.js.map \ No newline at end of file diff --git a/dist/es6/System/Compare.js.map b/dist/es6/System/Compare.js.map index 8f521247..16e16bea 100644 --- a/dist/es6/System/Compare.js.map +++ b/dist/es6/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAKI,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 +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcher.js b/dist/es6/System/Events/EventDispatcher.js deleted file mode 100644 index e2c58c00..00000000 --- a/dist/es6/System/Events/EventDispatcher.js +++ /dev/null @@ -1,123 +0,0 @@ -/*! - * @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'; -const DISPOSING = 'disposing', DISPOSED = 'disposed'; -export default class EventDispatcherEntry extends DisposableBase { - constructor(type, listener, useCapture = false, priority = 0) { - super(); - this.type = type; - this.listener = listener; - this.useCapture = useCapture; - this.priority = priority; - var _ = this; - _.type = type; - _.listener = listener; - _.useCapture = useCapture; - _.priority = priority; - } - dispose() { - this.listener = null; - } - get wasDisposed() { - return this.listener == null; - } - matches(type, listener, useCapture = false) { - var _ = this; - return _.type == type - && _.listener == listener - && _.useCapture == useCapture; - } - equals(other) { - var _ = this; - return _.type == other.type - && _.listener == other.listener - && _.useCapture == other.useCapture - && _.priority == other.priority; - } -} -class EventDispatcher extends DisposableBase { - constructor(...args) { - super(...args); - this._isDisposing = false; - } - addEventListener(type, listener, useCapture = false, priority = 0) { - var l = this._listeners; - if (!l) - this._listeners = l = []; - l.push(new EventDispatcherEntry(type, listener, useCapture, priority)); - } - registerEventListener(type, listener, useCapture = false, priority = 0) { - if (!this.hasEventListener(type, listener, useCapture)) - this.addEventListener(type, listener, useCapture, priority); - } - hasEventListener(type, listener, useCapture = false) { - var l = this._listeners; - return l && l.some((value) => type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture)); - } - removeEventListener(type, listener, userCapture = false) { - var l = this._listeners; - if (l) { - var i = AU.findIndex(l, entry => entry.matches(type, listener, userCapture)); - if (i != -1) { - var e = l[i]; - l.splice(i, 1); - e.dispose(); - } - } - } - dispatchEvent(e, params) { - var _ = this, l = _._listeners; - if (!l || !l.length) - return false; - var event; - if (typeof e == "string") { - event = Object.create(Event); - if (!params) - params = {}; - event.cancelable = !!params.cancelable; - event.target = _; - event.type = e; - } - else - event = e; - var type = event.type; - var entries = []; - l.forEach((e) => { if (e.type == type) - entries.push(e); }); - if (!entries.length) - return false; - entries.sort(function (a, b) { return b.priority - a.priority; }); - entries.forEach(entry => { - var newEvent = Object.create(Event); - shallowCopy(event, newEvent); - newEvent.target = this; - entry.listener(newEvent); - }); - return true; - } - static get DISPOSING() { return DISPOSING; } - static get DISPOSED() { return DISPOSED; } - get isDisposing() { - return this._isDisposing; - } - dispose() { - var _ = this; - if (!_.wasDisposed && !_._isDisposing) { - _._isDisposing = true; - _.dispatchEvent(DISPOSING); - super.dispose(); - _.dispatchEvent(DISPOSED); - var l = _._listeners; - if (l) { - this._listeners = null; - l.forEach(e => e.dispose()); - } - } - } -} -//# sourceMappingURL=EventDispatcher.js.map \ No newline at end of file diff --git a/dist/es6/System/Events/EventDispatcher.js.map b/dist/es6/System/Events/EventDispatcher.js.map deleted file mode 100644 index 4fe7c0ae..00000000 --- a/dist/es6/System/Events/EventDispatcher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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/Observable/SubscribableBase.js b/dist/es6/System/Observable/SubscribableBase.js index 4024b9d0..3cf173dd 100644 --- a/dist/es6/System/Observable/SubscribableBase.js +++ b/dist/es6/System/Observable/SubscribableBase.js @@ -5,29 +5,23 @@ * 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'; +import LinkedNodeList from "../Collections/LinkedNodeList"; +import * as DisposeUtility from "../Disposable/Utility"; +import Subscription from "./Subscription"; export default class SubscribableBase { constructor() { - this.__subscriptions = new LinkedList(); + this.__subscriptions + = new LinkedNodeList(); } _getSubscribers() { - return this.__subscriptions - .toArray() - .map(s => s.subscriber); + return this + .__subscriptions + .map(node => node.value && node.value.subscriber); } _findEntryNode(subscriber) { - var node = this.__subscriptions.first; - while (node) { - if (node.value.subscriber === subscriber) { - break; - } - else { - node = node.next; - } - } - return node; + return this + .__subscriptions + .find(n => n.value.subscriber === subscriber); } subscribe(subscriber) { var _ = this; @@ -35,20 +29,24 @@ export default class SubscribableBase { if (n) return n.value; var s = new Subscription(_, subscriber); - _.__subscriptions.add(s); + _.__subscriptions.addNode({ + value: s, + previous: null, next: null + }); return s; } unsubscribe(subscriber) { - var n = this._findEntryNode(subscriber); + var _ = this; + var n = _._findEntryNode(subscriber); if (n) { var s = n.value; - n.remove(); + _.__subscriptions.removeNode(n); s.dispose(); } } _unsubscribeAll(returnSubscribers = false) { var _ = this, _s = _.__subscriptions; - var s = _s.toArray(); + var s = _s.map(n => n.value); var u = returnSubscribers ? s.map(o => o.subscriber) : null; _s.clear(); DisposeUtility.disposeThese(s); diff --git a/dist/es6/System/Observable/SubscribableBase.js.map b/dist/es6/System/Observable/SubscribableBase.js.map index 67bb87b3..bc43d836 100644 --- a/dist/es6/System/Observable/SubscribableBase.js.map +++ b/dist/es6/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,CAAC;OAEN,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 +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,CAAC;OAEN,cAAc,MAAM,+BAA+B;OACnD,KAAK,cAAc,MAAM,uBAAuB;OAChD,YAAY,MAAM,gBAAgB;AAIzC;IAeC;QAEC,IAAI,CAAC,eAAe;cACjB,IAAI,cAAc,EAAmD,CAAC;IAC1E,CAAC;IAXS,eAAe;QAExB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,GAAG,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAQO,cAAc,CACrB,UAAsB;QAEtB,MAAM,CAAC,IAAI;aACT,eAAe;aACf,IAAI,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAGD,SAAS,CAAC,UAAsB;QAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhB,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;YACzB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,WAAW,CAAC,UAAsB;QAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAES,eAAe,CAAC,iBAAiB,GAAW,KAAK;QAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,CAAC,CAAC,CAAC;IACV,CAAC;IAED,cAAc;QAEb,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;AAEF,CAAC;AAAA"} \ No newline at end of file diff --git a/dist/es6/System/Types.js b/dist/es6/System/Types.js index 0c86a822..5e426df2 100644 --- a/dist/es6/System/Types.js +++ b/dist/es6/System/Types.js @@ -121,8 +121,8 @@ var Type; return typeof value === _FUNCTION; } Type.isFunction = isFunction; - function isObject(value) { - return typeof value === _OBJECT; + function isObject(value, allowNull = false) { + return typeof value === _OBJECT && (allowNull || value !== null); } Type.isObject = isObject; function numberOrNaN(value) { diff --git a/dist/es6/System/Types.js.map b/dist/es6/System/Types.js.map index f904e9d3..1acc3170 100644 --- a/dist/es6/System/Types.js.map +++ b/dist/es6/System/Types.js.map @@ -1 +1 @@ -{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Utility.js b/dist/system/System/Collections/Array/Utility.js index 8cbc1e87..2b4f60f9 100644 --- a/dist/system/System/Collections/Array/Utility.js +++ b/dist/system/System/Collections/Array/Utility.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['../../Types', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], function(exports_1, context_1) { +System.register(["../../Types", "../../Integer", "../../Compare", "../../Exceptions/ArgumentException", "../../Exceptions/ArgumentNullException", "../../Exceptions/ArgumentOutOfRangeException"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var Types_1, Integer_1, Compare_1, ArgumentException_1, ArgumentNullException_1, ArgumentOutOfRangeException_1; diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js b/dist/system/System/Collections/Enumeration/Enumerator.js index a5c51bb5..93f5360c 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.js +++ b/dist/system/System/Collections/Enumeration/Enumerator.js @@ -2,11 +2,11 @@ * @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, context_1) { +System.register(["../../Types", "./ArrayEnumerator", "./IndexEnumerator"], function(exports_1, context_1) { 'use strict'; var __moduleName = context_1 && context_1.id; var Types_1, ArrayEnumerator_1, IndexEnumerator_1; - var EmptyEnumerator, Empty; + var EmptyEnumerator, Empty, empty; function from(source) { if (!source) return Empty; @@ -86,6 +86,8 @@ System.register(['../../Types', './ArrayEnumerator', './IndexEnumerator'], funct return EmptyEnumerator; }()); Empty = new EmptyEnumerator(); + Object.freeze(Empty); + exports_1("empty", empty = Empty); } } }); diff --git a/dist/system/System/Collections/Enumeration/Enumerator.js.map b/dist/system/System/Collections/Enumeration/Enumerator.js.map index 8693d823..4efcab69 100644 --- a/dist/system/System/Collections/Enumeration/Enumerator.js.map +++ b/dist/system/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;yBAyBP,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,sBAAgC,QAAY;QAE3C,MAAM,CAAC,eAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,UAAU,EAAE,eAAI,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAHD,uCAGC,CAAA;IAED,iBACC,CAAmC,EACnC,MAAwC;QAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;gBACA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;gBACA,CAAC,GAAoB,CAAE,CAAC,aAAa,EAAE,CAAC;YACzC,CAAC;YAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;gBACA,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;oBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;wBACrC,KAAK,CAAC;gBACR,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IA5BD,6BA4BC,CAAA;;;;;;;;;;;;;YA5FD;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 +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["../../../../../source/System/Collections/Enumeration/Enumerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAMH,YAAY,CAAC;;;yBAwBP,KAAK,EAGE,KAAK;IAGlB,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,sBAAgC,QAAY;QAE3C,MAAM,CAAC,eAAI,CAAC,eAAe,CAAiB,QAAQ,EAAE,UAAU,EAAE,eAAI,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAHD,uCAGC,CAAA;IAED,iBACC,CAAmC,EACnC,MAAwC;QAExC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;YACA,EAAE,CAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;gBACA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;gBACA,CAAC,GAAoB,CAAE,CAAC,aAAa,EAAE,CAAC;YACzC,CAAC;YAED,EAAE,CAAA,CAAC,YAAY,CAAI,CAAC,CAAC,CAAC,CACtB,CAAC;gBACA,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,OAAM,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC;oBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAG,KAAK,CAAC;wBACrC,KAAK,CAAC;gBACR,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IA5BD,6BA4BC,CAAA;;;;;;;;;;;;;YA/FD;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;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAER,mBAAA,KAAK,GAAoB,KAAK,CAAA,CAAC"} \ No newline at end of file diff --git a/dist/system/System/Collections/LinkedList.js b/dist/system/System/Collections/LinkedList.js index ed20e03f..2530ff5f 100644 --- a/dist/system/System/Collections/LinkedList.js +++ b/dist/system/System/Collections/LinkedList.js @@ -3,10 +3,10 @@ * 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", "../Collections/Array/Utility", "./Enumeration/Enumerator", "./Enumeration/EnumeratorBase", "./LinkedNodeList", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentNullException"], function(exports_1, context_1) { +System.register(["../Compare", "../Collections/Array/Utility", "./Enumeration/Enumerator", "./LinkedNodeList", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentNullException"], function(exports_1, context_1) { 'use strict'; var __moduleName = context_1 && context_1.id; - var Values, ArrayUtility, Enumerator, EnumeratorBase_1, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1; + var Values, ArrayUtility, Enumerator, LinkedNodeList_1, InvalidOperationException_1, ArgumentNullException_1; var InternalNode, LinkedList, LinkedListNode; function ensureExternal(node, list) { if (!node) @@ -37,9 +37,6 @@ System.register(["../Compare", "../Collections/Array/Utility", "./Enumeration/En function (Enumerator_1) { Enumerator = Enumerator_1; }, - function (EnumeratorBase_1_1) { - EnumeratorBase_1 = EnumeratorBase_1_1; - }, function (LinkedNodeList_1_1) { LinkedNodeList_1 = LinkedNodeList_1_1; }, @@ -85,18 +82,7 @@ System.register(["../Compare", "../Collections/Array/Utility", "./Enumeration/En } }; LinkedList.prototype.getEnumerator = function () { - var _ = this, current, next; - return new EnumeratorBase_1.default(function () { - current = null; - next = _._listInternal.first; - }, function (yielder) { - if (next) { - current = next; - next = current && current.next; - return yielder.yieldReturn(current.value); - } - return yielder.yieldBreak(); - }); + return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal); }; LinkedList.prototype._findFirst = function (entry) { var equals = Values.areEqual, next = this._listInternal.first; @@ -147,15 +133,10 @@ System.register(["../Compare", "../Collections/Array/Utility", "./Enumeration/En if (index === void 0) { index = 0; } if (!array) throw new ArgumentNullException_1.default('array'); - if (this._listInternal.first) { - var minLength = index + this._count; - if (array.length < minLength) - array.length = minLength; - this.forEach(function (entry, i) { - array[index + i] = entry; - }); - } - return array; + var minLength = index + this._count; + if (array.length < minLength) + array.length = minLength; + return LinkedNodeList_1.default.copyValues(this._listInternal, array, index); }; LinkedList.prototype.toArray = function () { var array = ArrayUtility.initialize(this._count); diff --git a/dist/system/System/Collections/LinkedList.js.map b/dist/system/System/Collections/LinkedList.js.map index 92a986ce..c9188b98 100644 --- a/dist/system/System/Collections/LinkedList.js.map +++ b/dist/system/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Collections/LinkedNodeList.js b/dist/system/System/Collections/LinkedNodeList.js index aa369563..ee64883c 100644 --- a/dist/system/System/Collections/LinkedNodeList.js +++ b/dist/system/System/Collections/LinkedNodeList.js @@ -2,10 +2,10 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentException", "../Exceptions/ArgumentNullException"], function(exports_1, context_1) { +System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", "../Exceptions/ArgumentException", "../Exceptions/ArgumentNullException", "./Enumeration/EnumeratorBase"], function(exports_1, context_1) { 'use strict'; var __moduleName = context_1 && context_1.id; - var TextUtility, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1; + var TextUtility, InvalidOperationException_1, ArgumentException_1, ArgumentNullException_1, EnumeratorBase_1; var LinkedNodeList; function assertValidDetached(node, propName) { if (propName === void 0) { propName = 'node'; } @@ -27,6 +27,9 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " }, function (ArgumentNullException_1_1) { ArgumentNullException_1 = ArgumentNullException_1_1; + }, + function (EnumeratorBase_1_1) { + EnumeratorBase_1 = EnumeratorBase_1_1; }], execute: function() { LinkedNodeList = (function () { @@ -68,6 +71,15 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " } while (current && action(current, index++) !== false); }; + LinkedNodeList.prototype.map = function (selector) { + if (!selector) + throw new ArgumentNullException_1.default('selector'); + var result = []; + this.forEach(function (node) { + result.push(selector(node)); + }); + return result; + }; LinkedNodeList.prototype.clear = function () { var _ = this, n, cF = 0, cL = 0; n = _._first; @@ -105,6 +117,16 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " } return next; }; + LinkedNodeList.prototype.find = function (condition) { + var node = null; + this.forEach(function (n, i) { + if (condition(n, i)) { + node = n; + return false; + } + }); + return node; + }; LinkedNodeList.prototype.indexOf = function (node) { if (node && (node.previous || node.next)) { var index = 0; @@ -205,6 +227,33 @@ System.register(["../Text/Utility", "../Exceptions/InvalidOperationException", " if (node == _._last) _._last = replacement; }; + LinkedNodeList.valueEnumeratorFrom = function (list) { + if (!list) + throw new ArgumentNullException_1.default('list'); + var _ = this, current, next; + return new EnumeratorBase_1.default(function () { + current = null; + next = list.first; + }, function (yielder) { + if (next) { + current = next; + next = current && current.next; + return yielder.yieldReturn(current.value); + } + return yielder.yieldBreak(); + }); + }; + LinkedNodeList.copyValues = function (list, array, index) { + if (index === void 0) { index = 0; } + if (list && list.first) { + if (!array) + throw new ArgumentNullException_1.default('array'); + list.forEach(function (node, i) { + array[index + i] = node.value; + }); + } + return array; + }; return LinkedNodeList; }()); exports_1("default", LinkedNodeList); diff --git a/dist/system/System/Collections/LinkedNodeList.js.map b/dist/system/System/Collections/LinkedNodeList.js.map index 7fbc8807..3c3bdb2d 100644 --- a/dist/system/System/Collections/LinkedNodeList.js.map +++ b/dist/system/System/Collections/LinkedNodeList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LinkedNodeList.js","sourceRoot":"","sources":["../../../../source/System/Collections/LinkedNodeList.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Compare.js b/dist/system/System/Compare.js index f97aaac7..d5a4f2e1 100644 --- a/dist/system/System/Compare.js +++ b/dist/system/System/Compare.js @@ -2,7 +2,7 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -System.register(['./Types'], function(exports_1, context_1) { +System.register(["./Types"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var Types_1; @@ -27,6 +27,45 @@ System.register(['./Types'], function(exports_1, context_1) { return NaN; } exports_1("compare", compare); + function areEquivalent(a, b, nullEquivalency, extraDepth) { + if (nullEquivalency === void 0) { nullEquivalency = true; } + if (extraDepth === void 0) { extraDepth = 0; } + if (areEqual(a, b, true)) + return true; + if (a === null || a === VOID0 || b == null || b === VOID0) { + if (!nullEquivalency) + return false; + if (Types_1.default.isObject(a)) { + return !Object.keys(a).length; + } + if (Types_1.default.isObject(b)) { + return !Object.keys(b).length; + } + return (a === null || a === VOID0) && (b == null || b === VOID0); + } + if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) { + var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length; + if (len != bKeys.length) + return false; + aKeys.sort(); + bKeys.sort(); + for (var i = 0; i < len; ++i) { + var key = aKeys[i]; + if (key !== bKeys[i] || !areEqual(a[key], b[key], true)) + return false; + } + if (extraDepth > 0) { + for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) { + var key = aKeys_1[_i]; + if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1)) + return false; + } + } + return true; + } + return false; + } + exports_1("areEquivalent", areEquivalent); return { setters:[ function (Types_1_1) { diff --git a/dist/system/System/Compare.js.map b/dist/system/System/Compare.js.map index 56dd7bf1..b9b37c3a 100644 --- a/dist/system/System/Compare.js.map +++ b/dist/system/System/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;QAMI,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 +{"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../../source/System/Compare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/system/System/Events/EventDispatcher.js b/dist/system/System/Events/EventDispatcher.js deleted file mode 100644 index 00dadb26..00000000 --- a/dist/system/System/Events/EventDispatcher.js +++ /dev/null @@ -1,177 +0,0 @@ -/*! - * @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, context_1) { - 'use strict'; - var __moduleName = context_1 && context_1.id; - var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - var shallowCopy_1, DisposableBase_1, AU; - var DISPOSING, DISPOSED, EventDispatcherEntry, EventDispatcher; - return { - setters:[ - function (shallowCopy_1_1) { - shallowCopy_1 = shallowCopy_1_1; - }, - function (DisposableBase_1_1) { - DisposableBase_1 = DisposableBase_1_1; - }, - function (AU_1) { - AU = AU_1; - }], - execute: function() { - DISPOSING = 'disposing', DISPOSED = 'disposed'; - EventDispatcherEntry = (function (_super) { - __extends(EventDispatcherEntry, _super); - function EventDispatcherEntry(type, listener, useCapture, priority) { - if (useCapture === void 0) { useCapture = false; } - if (priority === void 0) { priority = 0; } - _super.call(this); - this.type = type; - this.listener = listener; - this.useCapture = useCapture; - this.priority = priority; - var _ = this; - _.type = type; - _.listener = listener; - _.useCapture = useCapture; - _.priority = priority; - } - EventDispatcherEntry.prototype.dispose = function () { - this.listener = null; - }; - Object.defineProperty(EventDispatcherEntry.prototype, "wasDisposed", { - get: function () { - return this.listener == null; - }, - enumerable: true, - configurable: true - }); - EventDispatcherEntry.prototype.matches = function (type, listener, useCapture) { - if (useCapture === void 0) { useCapture = false; } - var _ = this; - return _.type == type - && _.listener == listener - && _.useCapture == useCapture; - }; - EventDispatcherEntry.prototype.equals = function (other) { - var _ = this; - return _.type == other.type - && _.listener == other.listener - && _.useCapture == other.useCapture - && _.priority == other.priority; - }; - return EventDispatcherEntry; - }(DisposableBase_1.default)); - exports_1("default", EventDispatcherEntry); - EventDispatcher = (function (_super) { - __extends(EventDispatcher, _super); - function EventDispatcher() { - _super.apply(this, arguments); - this._isDisposing = false; - } - EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority) { - if (useCapture === void 0) { useCapture = false; } - if (priority === void 0) { priority = 0; } - var l = this._listeners; - if (!l) - this._listeners = l = []; - l.push(new EventDispatcherEntry(type, listener, useCapture, priority)); - }; - EventDispatcher.prototype.registerEventListener = function (type, listener, useCapture, priority) { - if (useCapture === void 0) { useCapture = false; } - if (priority === void 0) { priority = 0; } - if (!this.hasEventListener(type, listener, useCapture)) - this.addEventListener(type, listener, useCapture, priority); - }; - EventDispatcher.prototype.hasEventListener = function (type, listener, useCapture) { - if (useCapture === void 0) { useCapture = false; } - var l = this._listeners; - return l && l.some(function (value) { - return type == value.type && (!listener || listener == value.listener && useCapture == value.useCapture); - }); - }; - EventDispatcher.prototype.removeEventListener = function (type, listener, userCapture) { - if (userCapture === void 0) { userCapture = false; } - var l = this._listeners; - if (l) { - var i = AU.findIndex(l, function (entry) { return entry.matches(type, listener, userCapture); }); - if (i != -1) { - var e = l[i]; - l.splice(i, 1); - e.dispose(); - } - } - }; - EventDispatcher.prototype.dispatchEvent = function (e, params) { - var _this = this; - var _ = this, l = _._listeners; - if (!l || !l.length) - return false; - var event; - if (typeof e == "string") { - event = Object.create(Event); - if (!params) - params = {}; - event.cancelable = !!params.cancelable; - event.target = _; - event.type = e; - } - else - event = e; - var type = event.type; - var entries = []; - 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; }); - entries.forEach(function (entry) { - var newEvent = Object.create(Event); - shallowCopy_1.default(event, newEvent); - newEvent.target = _this; - entry.listener(newEvent); - }); - return true; - }; - Object.defineProperty(EventDispatcher, "DISPOSING", { - get: function () { return DISPOSING; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventDispatcher, "DISPOSED", { - get: function () { return DISPOSED; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventDispatcher.prototype, "isDisposing", { - get: function () { - return this._isDisposing; - }, - enumerable: true, - configurable: true - }); - EventDispatcher.prototype.dispose = function () { - var _ = this; - if (!_.wasDisposed && !_._isDisposing) { - _._isDisposing = true; - _.dispatchEvent(DISPOSING); - _super.prototype.dispose.call(this); - _.dispatchEvent(DISPOSED); - var l = _._listeners; - if (l) { - this._listeners = null; - l.forEach(function (e) { return e.dispose(); }); - } - } - }; - return EventDispatcher; - }(DisposableBase_1.default)); - } - } -}); -//# sourceMappingURL=EventDispatcher.js.map \ No newline at end of file diff --git a/dist/system/System/Events/EventDispatcher.js.map b/dist/system/System/Events/EventDispatcher.js.map deleted file mode 100644 index 22d2a58d..00000000 --- a/dist/system/System/Events/EventDispatcher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../source/System/Events/EventDispatcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;;IAIH,YAAY,CAAC;;;;;;;;QAOP,SAAS,EACT,QAAQ;;;;;;;;;;;;;YADR,SAAS,GAAU,WAAW,EAC9B,QAAQ,GAAU,UAAU,CAAC;YAEnC;gBACmC,wCAAc;gBAGhD,8BACQ,IAAW,EACX,QAAsB,EACtB,UAA0B,EAC1B,QAAmB;oBAD1B,0BAAiC,GAAjC,kBAAiC;oBACjC,wBAA0B,GAA1B,YAA0B;oBAE1B,iBAAO,CAAC;oBALD,SAAI,GAAJ,IAAI,CAAO;oBACX,aAAQ,GAAR,QAAQ,CAAc;oBACtB,eAAU,GAAV,UAAU,CAAgB;oBAC1B,aAAQ,GAAR,QAAQ,CAAW;oBAG1B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACtB,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1B,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAEvB,CAAC;gBAID,sCAAO,GAAP;oBACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,sBAAI,6CAAW;yBAAf;wBACC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC;oBAC5B,CAAC;;;mBAAA;gBAED,sCAAO,GAAP,UAAQ,IAAW,EAAE,QAAsB,EAAE,UAA0B;oBAA1B,0BAA0B,GAA1B,kBAA0B;oBACtE,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI;2BACT,CAAC,CAAC,QAAQ,IAAE,QAAQ;2BACpB,CAAC,CAAC,UAAU,IAAE,UAAU,CAAC;gBACpC,CAAC;gBAED,qCAAM,GAAN,UAAO,KAA0B;oBAChC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,KAAK,CAAC,IAAI;2BACf,CAAC,CAAC,QAAQ,IAAE,KAAK,CAAC,QAAQ;2BAC1B,CAAC,CAAC,UAAU,IAAE,KAAK,CAAC,UAAU;2BAC9B,CAAC,CAAC,QAAQ,IAAE,KAAK,CAAC,QAAQ,CAElC;gBACH,CAAC;gBACF,2BAAC;YAAD,CAAC,AA7CD,CACmC,wBAAc,GA4ChD;YA7CD,0CA6CC,CAAA;YAED;gBAA8B,mCAAc;gBAA5C;oBAA8B,8BAAc;oBAyGnC,iBAAY,GAAW,KAAK,CAAC;gBA2BtC,CAAC;gBA/HA,0CAAgB,GAAhB,UACC,IAAW,EACX,QAAsB,EACtB,UAA0B,EAC1B,QAAmB;oBADnB,0BAA0B,GAA1B,kBAA0B;oBAC1B,wBAAmB,GAAnB,YAAmB;oBAEnB,IAAI,CAAC,GAA0B,IAAI,CAAC,UAAU,CAAC;oBAC/C,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;wBACL,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC;oBAI1B,CAAC,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxE,CAAC;gBAGD,+CAAqB,GAArB,UACC,IAAW,EACX,QAAsB,EACtB,UAA0B,EAC1B,QAAmB;oBADnB,0BAA0B,GAA1B,kBAA0B;oBAC1B,wBAAmB,GAAnB,YAAmB;oBAEnB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC9D,CAAC;gBAED,0CAAgB,GAAhB,UAAiB,IAAW,EAAE,QAAuB,EAAE,UAA0B;oBAA1B,0BAA0B,GAA1B,kBAA0B;oBAChF,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAChB,UAAC,KAA0B;wBAChB,OAAA,IAAI,IAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,IAAE,KAAK,CAAC,QAAQ,IAAI,UAAU,IAAE,KAAK,CAAC,UAAU,CAAC;oBAA3F,CAA2F,CACtG,CAAC;gBAEJ,CAAC;gBAED,6CAAmB,GAAnB,UAAoB,IAAW,EAAE,QAAsB,EAAE,WAA2B;oBAA3B,2BAA2B,GAA3B,mBAA2B;oBAEnF,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;oBAExB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;wBACN,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,UAAA,KAAK,IAAG,OAAA,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAA1C,CAA0C,CAAC,CAAC;wBAC5E,EAAE,CAAA,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACb,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACf,CAAC,CAAC,OAAO,EAAE,CAAC;wBACb,CAAC;oBACF,CAAC;gBAEF,CAAC;gBAID,uCAAa,GAAb,UAAc,CAAK,EAAE,MAAW;oBAAhC,iBAyCC;oBAvCA,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;oBAC/B,EAAE,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;wBAClB,MAAM,CAAC,KAAK,CAAC;oBAEd,IAAI,KAAW,CAAC;oBAEhB,EAAE,CAAA,CAAC,OAAO,CAAC,IAAE,QAAQ,CAAC,CAAC,CAAC;wBACvB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC7B,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;4BACV,MAAM,GAAG,EAAE,CAAC;wBACb,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;wBACvC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;wBACjB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChB,CAAC;oBACD,IAAI;wBACH,KAAK,GAAU,CAAC,CAAC;oBAElB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAGtB,IAAI,OAAO,GAA0B,EAAE,CAAC;oBACxC,CAAC,CAAC,OAAO,CAAC,UAAC,CAAsB,IAAY,EAAE,CAAA,CAAC,CAAC,CAAC,IAAI,IAAE,IAAI,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClF,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;wBAClB,MAAM,CAAC,KAAK,CAAC;oBAEd,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAGlE,OAAO,CAAC,OAAO,CACb,UAAA,KAAK;wBACL,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACpC,qBAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAC7B,QAAQ,CAAC,MAAM,GAAG,KAAI,CAAC;wBACvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC,CACD,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC;gBAEb,CAAC;gBAED,sBAAW,4BAAS;yBAApB,cAAyB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;;;mBAAA;gBAE5C,sBAAW,2BAAQ;yBAAnB,cAAwB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;;;mBAAA;gBAI1C,sBAAI,wCAAW;yBAAf;wBACC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC1B,CAAC;;;mBAAA;gBAGM,iCAAO,GAAd;oBAGC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;wBACtC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;wBACtB,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;wBAE3B,gBAAK,CAAC,OAAO,WAAE,CAAC;wBAEhB,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBAE1B,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;wBACrB,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;4BACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;4BACvB,CAAC,CAAC,OAAO,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,OAAO,EAAE,EAAX,CAAW,CAAC,CAAC;wBAC5B,CAAC;oBACF,CAAC;gBACF,CAAC;gBAGF,sBAAC;YAAD,CAAC,AApID,CAA8B,wBAAc,GAoI3C"} \ No newline at end of file diff --git a/dist/system/System/Observable/SubscribableBase.js b/dist/system/System/Observable/SubscribableBase.js index fddb9b6c..82236a8d 100644 --- a/dist/system/System/Observable/SubscribableBase.js +++ b/dist/system/System/Observable/SubscribableBase.js @@ -4,15 +4,15 @@ * 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, context_1) { +System.register(["../Collections/LinkedNodeList", "../Disposable/Utility", "./Subscription"], function(exports_1, context_1) { 'use strict'; var __moduleName = context_1 && context_1.id; - var LinkedList_1, DisposeUtility, Subscription_1; + var LinkedNodeList_1, DisposeUtility, Subscription_1; var SubscribableBase; return { setters:[ - function (LinkedList_1_1) { - LinkedList_1 = LinkedList_1_1; + function (LinkedNodeList_1_1) { + LinkedNodeList_1 = LinkedNodeList_1_1; }, function (DisposeUtility_1) { DisposeUtility = DisposeUtility_1; @@ -23,24 +23,18 @@ System.register(['../Collections/LinkedList', '../Disposable/Utility', './Subscr execute: function() { SubscribableBase = (function () { function SubscribableBase() { - this.__subscriptions = new LinkedList_1.default(); + this.__subscriptions + = new LinkedNodeList_1.default(); } SubscribableBase.prototype._getSubscribers = function () { - return this.__subscriptions - .toArray() - .map(function (s) { return s.subscriber; }); + return this + .__subscriptions + .map(function (node) { return node.value && node.value.subscriber; }); }; SubscribableBase.prototype._findEntryNode = function (subscriber) { - var node = this.__subscriptions.first; - while (node) { - if (node.value.subscriber === subscriber) { - break; - } - else { - node = node.next; - } - } - return node; + return this + .__subscriptions + .find(function (n) { return n.value.subscriber === subscriber; }); }; SubscribableBase.prototype.subscribe = function (subscriber) { var _ = this; @@ -48,21 +42,25 @@ System.register(['../Collections/LinkedList', '../Disposable/Utility', './Subscr if (n) return n.value; var s = new Subscription_1.default(_, subscriber); - _.__subscriptions.add(s); + _.__subscriptions.addNode({ + value: s, + previous: null, next: null + }); return s; }; SubscribableBase.prototype.unsubscribe = function (subscriber) { - var n = this._findEntryNode(subscriber); + var _ = this; + var n = _._findEntryNode(subscriber); if (n) { var s = n.value; - n.remove(); + _.__subscriptions.removeNode(n); s.dispose(); } }; SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) { if (returnSubscribers === void 0) { returnSubscribers = false; } var _ = this, _s = _.__subscriptions; - var s = _s.toArray(); + var s = _s.map(function (n) { return n.value; }); var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null; _s.clear(); DisposeUtility.disposeThese(s); diff --git a/dist/system/System/Observable/SubscribableBase.js.map b/dist/system/System/Observable/SubscribableBase.js.map index 1f166bcc..7dec372d 100644 --- a/dist/system/System/Observable/SubscribableBase.js.map +++ b/dist/system/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAIH,YAAY,CAAC;;;;;;;;;;;;;;;;YAQb;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 +{"version":3,"file":"SubscribableBase.js","sourceRoot":"","sources":["../../../../source/System/Observable/SubscribableBase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;IAIH,YAAY,CAAC;;;;;;;;;;;;;;;;YAQb;gBAeC;oBAEC,IAAI,CAAC,eAAe;0BACjB,IAAI,wBAAc,EAAmD,CAAC;gBAC1E,CAAC;gBAXS,0CAAe,GAAzB;oBAEC,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,GAAG,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAnC,CAAmC,CAAC,CAAC;gBAClD,CAAC;gBAQO,yCAAc,GAAtB,UACC,UAAsB;oBAEtB,MAAM,CAAC,IAAI;yBACT,eAAe;yBACf,IAAI,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,CAAC,UAAU,KAAG,UAAU,EAA/B,CAA+B,CAAC,CAAC;gBAC5C,CAAC;gBAGD,oCAAS,GAAT,UAAU,UAAsB;oBAE/B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC;wBACJ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;oBAEhB,IAAI,CAAC,GAAG,IAAI,sBAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;wBACzB,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;qBAC1B,CAAC,CAAC;oBAEH,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,sCAAW,GAAX,UAAY,UAAsB;oBAEjC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACrC,EAAE,CAAA,CAAC,CAAC,CAAC,CACL,CAAC;wBACA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBAChB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACb,CAAC;gBACF,CAAC;gBAES,0CAAe,GAAzB,UAA0B,iBAAiC;oBAAjC,iCAAiC,GAAjC,yBAAiC;oBAE1D,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC;oBACrC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,GAAG,IAAI,CAAC;oBAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;oBAEX,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBAE/B,MAAM,CAAC,CAAC,CAAC;gBACV,CAAC;gBAED,yCAAc,GAAd;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAED,kCAAO,GAAP;oBAEC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxB,CAAC;gBAEF,uBAAC;YAAD,CAAC,AAhFD,IAgFC;YAhFD,sCAgFC,CAAA"} \ No newline at end of file diff --git a/dist/system/System/Types.js b/dist/system/System/Types.js index 93ce6f5f..54ddb455 100644 --- a/dist/system/System/Types.js +++ b/dist/system/System/Types.js @@ -128,8 +128,9 @@ System.register([], function(exports_1, context_1) { return typeof value === _FUNCTION; } Type.isFunction = isFunction; - function isObject(value) { - return typeof value === _OBJECT; + function isObject(value, allowNull) { + if (allowNull === void 0) { allowNull = false; } + return typeof value === _OBJECT && (allowNull || value !== null); } Type.isObject = isObject; function numberOrNaN(value) { diff --git a/dist/system/System/Types.js.map b/dist/system/System/Types.js.map index 2fc1e596..32c8d74d 100644 --- a/dist/system/System/Types.js.map +++ b/dist/system/System/Types.js.map @@ -1 +1 @@ -{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../source/System/Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Utility.js.map b/dist/umd.min/System/Collections/Array/Utility.js.map index d4b450a6..beb5c4a5 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":["factory","module","exports","v","require","undefined","define","amd","initialize","length","Integer_1","assert","array","Array","copy","source","sourceIndex","Infinity","copyTo","Math","min","max","destination","destinationIndex","ArgumentNullException_1","CBN","ArgumentOutOfRangeException_1","CBL0","sourceLength","maxLength","isFinite","i","contains","item","equalityComparer","Compare_1","areEqual","isArray","indexOf","replace","old","newValue","count","updateRange","value","index","end","clear","register","len","ok","findIndex","predicate","Types_1","isFunction","ArgumentException_1","forEach","fn","applyTo","target","removeIndex","exists","splice","remove","repeat","element","result","push","flatten","a","recurseDepth","x","n"],"mappings":"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","file":"System/Collections/Array/Utility.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(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', '../../Integer', '../../Compare', '../../Exceptions/ArgumentException', '../../Exceptions/ArgumentNullException', '../../Exceptions/ArgumentOutOfRangeException'], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require('../../Types');\n var Integer_1 = require('../../Integer');\n var Compare_1 = require('../../Compare');\n var ArgumentException_1 = require('../../Exceptions/ArgumentException');\n var ArgumentNullException_1 = require('../../Exceptions/ArgumentNullException');\n var ArgumentOutOfRangeException_1 = require('../../Exceptions/ArgumentOutOfRangeException');\n function initialize(length) {\n Integer_1.default.assert(length, 'length');\n var array;\n if (length > 65536)\n array = new Array(length);\n else {\n array = [];\n array.length = length;\n }\n return array;\n }\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});\n","/*!\r\n * @author 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 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});\n","/*!\r\n * @author 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///\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport Type from '../../Types';\r\nimport DisposableBase from '../../Disposable/DisposableBase';\r\nimport 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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\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","Empty","Array","isArray","ArrayEnumerator_1","Types_1","isPrimitive","isArrayLike","IndexEnumerator_1","length","pointer","step","isEnumerable","getEnumerator","Error","instance","hasMemberOfType","FUNCTION","isEnumerator","forEach","e","action","index","moveNext","current","EmptyEnumerator","Object","defineProperty","prototype","get","enumerable","configurable","reset","dispose","freeze","empty"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,cAAe,oBAAqB,qBAAsBN,IAE7F,SAAUI,EAASF,GCFtB,YA8BA,SAAAM,GAAwBC,GAGvB,IAAIA,EACH,MAAOC,EAER,IAAGC,MAAMC,QAAQH,GAChB,MAAO,IAAII,GAAAA,WAAwBJ,EAGpC,KAAIK,EAAAA,WAAKC,YAAYN,GACrB,CACC,GAAGK,EAAAA,WAAKE,YAAeP,GAEtB,MAAO,IAAIQ,GAAAA,WACV,WAEC,OACCR,OAAQA,EACRS,OAAQT,EAAOS,OACfC,QAAS,EACTC,KAAM,IAKV,IAAGC,EAAgBZ,GAClB,MAAOA,GAAOa,gBAIhB,KAAM,IAAIC,OAAM,uBAGjB,QAAAF,GAAgCG,GAE/B,MAAOV,GAAAA,WAAKW,gBAAgCD,EAAU,gBAAiBV,EAAAA,WAAKY,UAG7E,QAAAC,GAAgCH,GAE/B,MAAOV,GAAAA,WAAKW,gBAAgCD,EAAU,WAAYV,EAAAA,WAAKY,UAGxE,QAAAE,GACCC,EACAC,GAEA,GAAGD,EACH,CACC,GAAGlB,MAAMC,QAAQiB,GAGhB,WADAA,GAAED,QAAQE,EASX,IALGT,EAAgBQ,KAElBA,EAAqBA,EAAGP,iBAGtBK,EAAgBE,GAIlB,IAFA,GAAIE,GAAQ,EAENF,EAAEG,YAEJF,EAAOD,EAAEI,QAASF,QAAW,MA/FpC,GAAAjB,GAAAV,EAAiB,eACjBS,EAAAT,EAA4B,qBAC5Ba,EAAAb,EAA4B,qBAG5B8B,EAAA,WAAA,QAAAA,MAeA,MAbCC,QAAAC,eAAIF,EAAAG,UAAA,WDEOC,ICFX,aDKWC,YAAY,EACZC,cAAc,ICDzBN,EAAAG,UAAAL,SAAA,WAEC,OAAO,GAGRE,EAAAG,UAAAI,MAAA,aAEAP,EAAAG,UAAAK,QAAA,aACDR,KAEMxB,EAAQ,GAAIwB,EAClBC,QAAOQ,OAAOjC,GAEDR,EAAA0C,MAAyBlC,EAGtBR,EAAAM,KAAIA,EAkCJN,EAAAmB,aAAYA,EAKZnB,EAAAyB,aAAYA,EAKZzB,EAAA0B,QAAOA","file":"System/Collections/Enumeration/Enumerator.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../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 Object.freeze(Empty);\n exports.empty = Empty;\n function from(source) {\n if (!source)\n return Empty;\n if (Array.isArray(source))\n return new ArrayEnumerator_1.default(source);\n if (!Types_1.default.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 isEnumerator(instance) {\n return Types_1.default.hasMemberOfType(instance, \"moveNext\", Types_1.default.FUNCTION);\n }\n exports.isEnumerator = isEnumerator;\n function forEach(e, action) {\n if (e) {\n if (Array.isArray(e)) {\n e.forEach(action);\n return;\n }\n if (isEnumerable(e)) {\n e = e.getEnumerator();\n }\n if (isEnumerator(e)) {\n var index = 0;\n while (e.moveNext()) {\n if (action(e.current, index++) === false)\n break;\n }\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\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 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\nObject.freeze(Empty);\r\n\r\nexport const empty:IEnumerator = Empty;\r\n\r\n// Could be array, or IEnumerable...\r\nexport function from(source: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 isEnumerator(instance:any):instance is IEnumerator\r\n{\r\n\treturn Type.hasMemberOfType>(instance, \"moveNext\", Type.FUNCTION);\r\n}\r\n\r\nexport function forEach(\r\n\te:T[]|IEnumerator|IEnumerable,\r\n\taction:(element:T, index?:number) => any):void\r\n{\r\n\tif(e)\r\n\t{\r\n\t\tif(Array.isArray(e))\r\n\t\t{\r\n\t\t\te.forEach(action);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(isEnumerable(e))\r\n\t\t{\r\n\t\t\te = (>e).getEnumerator();\r\n\t\t}\r\n\r\n\t\tif(isEnumerator(e))\r\n\t\t{\r\n\t\t\tvar index = 0;\r\n\t\t\t// Return value of action can be anything, but if it is (===) false then the forEach will discontinue.\r\n\t\t\twhile(e.moveNext())\r\n\t\t\t{\r\n\t\t\t\tif(action(e.current, index++)===false)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\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 3a09ba16..3a6fa557 100644 --- a/dist/umd.min/System/Collections/LinkedList.js +++ b/dist/umd.min/System/Collections/LinkedList.js @@ -3,5 +3,5 @@ * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!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","../Collections/Array/Utility","./Enumeration/Enumerator","./Enumeration/EnumeratorBase","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException"],t)}(function(t,e){"use strict";function n(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new p(e,t)),n}function r(t,e){if(!t)throw new f["default"]("Cannot be null.");if(t.list!=e)throw new l["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new l["default"]("Provided node is not valid.");return n}var o=t("../Compare"),i=t("../Collections/Array/Utility"),u=t("./Enumeration/Enumerator"),a=t("./Enumeration/EnumeratorBase"),s=t("./LinkedNodeList"),l=t("../Exceptions/InvalidOperationException"),f=t("../Exceptions/ArgumentNullException"),d=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new l["default"]("Adding a node that is already placed.")},t}(),c=function(){function t(t){for(var e=this,n=0,r=u.from(t),o=e._listInternal=new s["default"];r.moveNext();)o.addNode(new d(r.current)),++n;e._count=n}return t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();i.forEach(n,t),n.length=0}else this._listInternal.forEach(function(e,n){return t(e.value,n)})},t.prototype.getEnumerator=function(){var t,e,n=this;return new a["default"](function(){t=null,e=n._listInternal.first},function(n){return e?(t=e,e=t&&t.next,n.yieldReturn(t.value)):n.yieldBreak()})},t.prototype._findFirst=function(t){for(var e=o.areEqual,n=this._listInternal.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._listInternal.last;n;){if(e(t,n.value))return n;n=n.previous}return null},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._listInternal.addNode(new d(t)),this._count++},t.prototype.clear=function(){return this._count=0,this._listInternal.clear()},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){if(void 0===e&&(e=0),!t)throw new f["default"]("array");if(this._listInternal.first){var n=e+this._count;t.lengthu}),u},Object.defineProperty(t.prototype,"first",{get:function(){return n(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return n(this._listInternal.last,this)},enumerable:!0,configurable:!0}),t.prototype.getValueAt=function(t){return this._listInternal.getNodeAt(t).value},t.prototype.getNodeAt=function(t){return n(this._listInternal.getNodeAt(t),this)},t.prototype.find=function(t){return n(this._findFirst(t),this)},t.prototype.findLast=function(t){return n(this._findLast(t),this)},t.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new d(t)),++this._count},t.prototype.addLast=function(t){this.add(t)},t.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._count--},t.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&--t._count},t.prototype.removeNode=function(t){var e=this,n=e._listInternal.removeNode(r(t,e));return n&&--e._count,n},t.prototype.addBefore=function(t,e){this._listInternal.addNodeBefore(new d(e),r(t,this)),++this._count},t.prototype.addAfter=function(t,e){this._listInternal.addNodeAfter(new d(e),r(t,this)),++this._count},t.prototype.addNodeBefore=function(t,e){this._listInternal.addNodeBefore(r(e,this),r(t,this)),++this._count},t.prototype.addNodeAfter=function(t,e){this._listInternal.addNodeAfter(r(e,this),r(t,this)),++this._count},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=c;var p=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return n(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return n(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); +!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","../Collections/Array/Utility","./Enumeration/Enumerator","./LinkedNodeList","../Exceptions/InvalidOperationException","../Exceptions/ArgumentNullException"],t)}(function(t,e){"use strict";function n(t,e){if(!t)return null;var n=t.external;return n||(t.external=n=new c(e,t)),n}function o(t,e){if(!t)throw new l["default"]("Cannot be null.");if(t.list!=e)throw new s["default"]("Provided node does not belong to this list.");var n=t._nodeInternal;if(!n)throw new s["default"]("Provided node is not valid.");return n}var r=t("../Compare"),i=t("../Collections/Array/Utility"),u=t("./Enumeration/Enumerator"),a=t("./LinkedNodeList"),s=t("../Exceptions/InvalidOperationException"),l=t("../Exceptions/ArgumentNullException"),d=function(){function t(t,e,n){this.value=t,this.previous=e,this.next=n}return t.prototype.assertDetached=function(){if(this.next||this.previous)throw new s["default"]("Adding a node that is already placed.")},t}(),f=function(){function t(t){for(var e=this,n=0,o=u.from(t),r=e._listInternal=new a["default"];o.moveNext();)r.addNode(new d(o.current)),++n;e._count=n}return t.prototype.forEach=function(t,e){if(void 0===e&&(e=!1),e){var n=this.toArray();i.forEach(n,t),n.length=0}else this._listInternal.forEach(function(e,n){return t(e.value,n)})},t.prototype.getEnumerator=function(){return a["default"].valueEnumeratorFrom(this._listInternal)},t.prototype._findFirst=function(t){for(var e=r.areEqual,n=this._listInternal.first;n;){if(e(t,n.value))return n;n=n.next}return null},t.prototype._findLast=function(t){for(var e=r.areEqual,n=this._listInternal.last;n;){if(e(t,n.value))return n;n=n.previous}return null},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._listInternal.addNode(new d(t)),this._count++},t.prototype.clear=function(){return this._count=0,this._listInternal.clear()},t.prototype.contains=function(t){var e=!1,n=r.areEqual;return this.forEach(function(o){return!(e=n(t,o))}),e},t.prototype.copyTo=function(t,e){if(void 0===e&&(e=0),!t)throw new l["default"]("array");var n=e+this._count;return t.lengthu}),u},Object.defineProperty(t.prototype,"first",{get:function(){return n(this._listInternal.first,this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return n(this._listInternal.last,this)},enumerable:!0,configurable:!0}),t.prototype.getValueAt=function(t){return this._listInternal.getNodeAt(t).value},t.prototype.getNodeAt=function(t){return n(this._listInternal.getNodeAt(t),this)},t.prototype.find=function(t){return n(this._findFirst(t),this)},t.prototype.findLast=function(t){return n(this._findLast(t),this)},t.prototype.addFirst=function(t){this._listInternal.addNodeBefore(new d(t)),++this._count},t.prototype.addLast=function(t){this.add(t)},t.prototype.removeFirst=function(){var t=this,e=t._listInternal.first;e&&t._listInternal.removeNode(e)&&t._count--},t.prototype.removeLast=function(){var t=this,e=t._listInternal.last;e&&t._listInternal.removeNode(e)&&--t._count},t.prototype.removeNode=function(t){var e=this,n=e._listInternal.removeNode(o(t,e));return n&&--e._count,n},t.prototype.addBefore=function(t,e){this._listInternal.addNodeBefore(new d(e),o(t,this)),++this._count},t.prototype.addAfter=function(t,e){this._listInternal.addNodeAfter(new d(e),o(t,this)),++this._count},t.prototype.addNodeBefore=function(t,e){this._listInternal.addNodeBefore(o(e,this),o(t,this)),++this._count},t.prototype.addNodeAfter=function(t,e){this._listInternal.addNodeAfter(o(e,this),o(t,this)),++this._count},t}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=f;var c=function(){function t(t,e){this._list=t,this._nodeInternal=e}return Object.defineProperty(t.prototype,"list",{get:function(){return this._list},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previous",{get:function(){return n(this._nodeInternal.previous,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"next",{get:function(){return n(this._nodeInternal.next,this._list)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._nodeInternal.value},set:function(t){this._nodeInternal.value=t},enumerable:!0,configurable:!0}),t.prototype.addBefore=function(t){this._list.addBefore(this,t)},t.prototype.addAfter=function(t){this._list.addAfter(this,t)},t.prototype.addNodeBefore=function(t){this._list.addNodeBefore(this,t)},t.prototype.addNodeAfter=function(t){this._list.addNodeAfter(this,t)},t.prototype.remove=function(){this._list.removeNode(this)},t}()}); //# sourceMappingURL=LinkedList.js.map diff --git a/dist/umd.min/System/Collections/LinkedList.js.map b/dist/umd.min/System/Collections/LinkedList.js.map index dcfa76f2..620d5333 100644 --- a/dist/umd.min/System/Collections/LinkedList.js.map +++ b/dist/umd.min/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ensureExternal","node","list","external","LinkedListNode","getInternal","ArgumentNullException_1","InvalidOperationException_1","n","_nodeInternal","Values","ArrayUtility","Enumerator","EnumeratorBase_1","LinkedNodeList_1","InternalNode","value","previous","next","this","prototype","assertDetached","LinkedList","source","_","c","e","from","_listInternal","moveNext","addNode","current","_count","forEach","action","useCopy","array","toArray","length","i","getEnumerator","first","yielder","yieldReturn","yieldBreak","_findFirst","entry","equals","areEqual","_findLast","prev","last","Object","defineProperty","get","enumerable","configurable","add","clear","contains","found","copyTo","index","minLength","initialize","removeOnce","remove","max","Infinity","removedCount","removeNode","getValueAt","getNodeAt","find","findLast","addFirst","addNodeBefore","addLast","removeFirst","removeLast","removed","addBefore","before","addAfter","after","addNodeAfter","_list","set"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\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\", \"../Collections/Array/Utility\", \"./Enumeration/Enumerator\", \"./Enumeration/EnumeratorBase\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = require(\"../Compare\");\n var ArrayUtility = require(\"../Collections/Array/Utility\");\n var Enumerator = require(\"./Enumeration/Enumerator\");\n var EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n 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._nodeInternal;\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;\n var e = Enumerator.from(source);\n var list = _._listInternal = new LinkedNodeList_1.default();\n while (e.moveNext()) {\n list.addNode(new InternalNode(e.current));\n ++c;\n }\n _._count = c;\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 this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n var _ = this, current, next;\n return new EnumeratorBase_1.default(function () {\n current = null;\n next = _._listInternal.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var equals = Values.areEqual, prev = this._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\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._listInternal.addNode(new InternalNode(entry));\n this._count++;\n };\n LinkedList.prototype.clear = function () {\n this._count = 0;\n return this._listInternal.clear();\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 if (!array)\n throw new ArgumentNullException_1.default('array');\n if (this._listInternal.first) {\n var minLength = index + this._count;\n if (array.length < minLength)\n array.length = minLength;\n this.forEach(function (entry, i) {\n array[index + i] = entry;\n });\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 return this.remove(entry, 1) !== 0;\n };\n LinkedList.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var equals = Values.areEqual;\n var _ = this, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node)) {\n --_._count;\n ++removedCount;\n }\n return removedCount < max;\n });\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n return this._listInternal.getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n ++this._count;\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first)) {\n _._count--;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last)) {\n --_._count;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this, removed = _._listInternal.removeNode(getInternal(node, _));\n if (removed)\n --_._count;\n return removed;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, this));\n ++this._count;\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n this._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._listInternal.addNodeBefore(getInternal(before, this), getInternal(node, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._listInternal.addNodeAfter(getInternal(after, this), getInternal(node, this));\n ++this._count;\n };\n return LinkedList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../Compare\";\r\nimport * as ArrayUtility from \"../Collections/Array/Utility\";\r\nimport * as Enumerator from \"./Enumeration/Enumerator\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\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:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nimplements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\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;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tvar list = _._listInternal = new LinkedNodeList>();\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlist.addNode( new InternalNode(e.current) );\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._count = c;\r\n\t}\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\tthis._listInternal.forEach((node, i)=>action(node.value, i));\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,\r\n\t\t current:InternalNode,\r\n\t\t next:InternalNode;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = _._listInternal.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\t//noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\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._listInternal.addNode(new InternalNode(entry));\r\n\t\tthis._count++;\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tthis._count = 0;\r\n\t\treturn this._listInternal.clear();\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\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\tif(this._listInternal.first)\r\n\t\t{\r\n\t\t\tvar minLength = index + this._count;\r\n\t\t\tif(array.length\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = entry;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\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\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar equals = Values.areEqual;\r\n\t\tvar _ = this, list = _._listInternal, removedCount:number = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\t--_._count;\r\n\t\t\t\t++removedCount;\r\n\t\t\t}\r\n\t\t\treturn removedCount\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\treturn this._listInternal.getNodeAt(index).value;\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first)) {\r\n\t\t\t_._count--;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last)) {\r\n\t\t\t--_._count;\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\t removed = _._listInternal.removeNode(getInternal(node, _));\r\n\r\n\t\tif(removed) --_._count;\r\n\r\n\t\treturn removed;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.js","System/Collections/LinkedList.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ensureExternal","node","list","external","LinkedListNode","getInternal","ArgumentNullException_1","InvalidOperationException_1","n","_nodeInternal","Values","ArrayUtility","Enumerator","LinkedNodeList_1","InternalNode","value","previous","next","this","prototype","assertDetached","LinkedList","source","_","c","e","from","_listInternal","moveNext","addNode","current","_count","forEach","action","useCopy","array","toArray","length","i","getEnumerator","valueEnumeratorFrom","_findFirst","entry","equals","areEqual","first","_findLast","prev","last","Object","defineProperty","get","enumerable","configurable","add","clear","contains","found","copyTo","index","minLength","copyValues","initialize","removeOnce","remove","max","Infinity","removedCount","removeNode","getValueAt","getNodeAt","find","findLast","addFirst","addNodeBefore","addLast","removeFirst","removeLast","removed","addBefore","before","addAfter","after","addNodeAfter","_list","set"],"mappings":"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","file":"System/Collections/LinkedList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\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\", \"../Collections/Array/Utility\", \"./Enumeration/Enumerator\", \"./LinkedNodeList\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var Values = require(\"../Compare\");\n var ArrayUtility = require(\"../Collections/Array/Utility\");\n var Enumerator = require(\"./Enumeration/Enumerator\");\n var LinkedNodeList_1 = require(\"./LinkedNodeList\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var InternalNode = (function () {\n function InternalNode(value, previous, next) {\n this.value = value;\n this.previous = previous;\n this.next = next;\n }\n InternalNode.prototype.assertDetached = function () {\n if (this.next || this.previous)\n throw new InvalidOperationException_1.default(\"Adding a node that is already placed.\");\n };\n return InternalNode;\n }());\n function ensureExternal(node, list) {\n if (!node)\n return null;\n 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._nodeInternal;\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;\n var e = Enumerator.from(source);\n var list = _._listInternal = new LinkedNodeList_1.default();\n while (e.moveNext()) {\n list.addNode(new InternalNode(e.current));\n ++c;\n }\n _._count = c;\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 this._listInternal.forEach(function (node, i) { return action(node.value, i); });\n }\n };\n LinkedList.prototype.getEnumerator = function () {\n return LinkedNodeList_1.default.valueEnumeratorFrom(this._listInternal);\n };\n LinkedList.prototype._findFirst = function (entry) {\n var equals = Values.areEqual, next = this._listInternal.first;\n while (next) {\n if (equals(entry, next.value))\n return next;\n next = next.next;\n }\n return null;\n };\n LinkedList.prototype._findLast = function (entry) {\n var equals = Values.areEqual, prev = this._listInternal.last;\n while (prev) {\n if (equals(entry, prev.value))\n return prev;\n prev = prev.previous;\n }\n return null;\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._listInternal.addNode(new InternalNode(entry));\n this._count++;\n };\n LinkedList.prototype.clear = function () {\n this._count = 0;\n return this._listInternal.clear();\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 if (!array)\n throw new ArgumentNullException_1.default('array');\n var minLength = index + this._count;\n if (array.length < minLength)\n array.length = minLength;\n return LinkedNodeList_1.default.copyValues(this._listInternal, array, index);\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 return this.remove(entry, 1) !== 0;\n };\n LinkedList.prototype.remove = function (entry, max) {\n if (max === void 0) { max = Infinity; }\n var equals = Values.areEqual;\n var _ = this, list = _._listInternal, removedCount = 0;\n list.forEach(function (node) {\n if (equals(entry, node.value) && list.removeNode(node)) {\n --_._count;\n ++removedCount;\n }\n return removedCount < max;\n });\n return removedCount;\n };\n Object.defineProperty(LinkedList.prototype, \"first\", {\n get: function () {\n return ensureExternal(this._listInternal.first, this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedList.prototype, \"last\", {\n get: function () {\n return ensureExternal(this._listInternal.last, this);\n },\n enumerable: true,\n configurable: true\n });\n LinkedList.prototype.getValueAt = function (index) {\n return this._listInternal.getNodeAt(index).value;\n };\n LinkedList.prototype.getNodeAt = function (index) {\n return ensureExternal(this._listInternal.getNodeAt(index), this);\n };\n LinkedList.prototype.find = function (entry) {\n return ensureExternal(this._findFirst(entry), this);\n };\n LinkedList.prototype.findLast = function (entry) {\n return ensureExternal(this._findLast(entry), this);\n };\n LinkedList.prototype.addFirst = function (entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry));\n ++this._count;\n };\n LinkedList.prototype.addLast = function (entry) {\n this.add(entry);\n };\n LinkedList.prototype.removeFirst = function () {\n var _ = this, first = _._listInternal.first;\n if (first && _._listInternal.removeNode(first)) {\n _._count--;\n }\n };\n LinkedList.prototype.removeLast = function () {\n var _ = this, last = _._listInternal.last;\n if (last && _._listInternal.removeNode(last)) {\n --_._count;\n }\n };\n LinkedList.prototype.removeNode = function (node) {\n var _ = this, removed = _._listInternal.removeNode(getInternal(node, _));\n if (removed)\n --_._count;\n return removed;\n };\n LinkedList.prototype.addBefore = function (before, entry) {\n this._listInternal.addNodeBefore(new InternalNode(entry), getInternal(before, this));\n ++this._count;\n };\n LinkedList.prototype.addAfter = function (after, entry) {\n this._listInternal.addNodeAfter(new InternalNode(entry), getInternal(after, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeBefore = function (node, before) {\n this._listInternal.addNodeBefore(getInternal(before, this), getInternal(node, this));\n ++this._count;\n };\n LinkedList.prototype.addNodeAfter = function (node, after) {\n this._listInternal.addNodeAfter(getInternal(after, this), getInternal(node, this));\n ++this._count;\n };\n return LinkedList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedList;\n var LinkedListNode = (function () {\n function LinkedListNode(_list, _nodeInternal) {\n this._list = _list;\n this._nodeInternal = _nodeInternal;\n }\n Object.defineProperty(LinkedListNode.prototype, \"list\", {\n get: function () {\n return this._list;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"previous\", {\n get: function () {\n return ensureExternal(this._nodeInternal.previous, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"next\", {\n get: function () {\n return ensureExternal(this._nodeInternal.next, this._list);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedListNode.prototype, \"value\", {\n get: function () {\n return this._nodeInternal.value;\n },\n set: function (v) {\n this._nodeInternal.value = v;\n },\n enumerable: true,\n configurable: true\n });\n LinkedListNode.prototype.addBefore = function (entry) {\n this._list.addBefore(this, entry);\n };\n LinkedListNode.prototype.addAfter = function (entry) {\n this._list.addAfter(this, entry);\n };\n LinkedListNode.prototype.addNodeBefore = function (before) {\n this._list.addNodeBefore(this, before);\n };\n LinkedListNode.prototype.addNodeAfter = function (after) {\n this._list.addNodeAfter(this, after);\n };\n LinkedListNode.prototype.remove = function () {\n this._list.removeNode(this);\n };\n return LinkedListNode;\n }());\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Based Upon: http://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as Values from \"../Compare\";\r\nimport * as ArrayUtility from \"../Collections/Array/Utility\";\r\nimport * as Enumerator from \"./Enumeration/Enumerator\";\r\nimport LinkedNodeList from \"./LinkedNodeList\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/*\r\n * An internal node is used to manage the order without exposing underlying link chain to the consumer.\r\n */\r\nclass InternalNode\r\nimplements ILinkedNode>, INodeWithValue\r\n{\r\n\tconstructor(\r\n\t\tpublic value?:T,\r\n\t\tpublic previous?:InternalNode,\r\n\t\tpublic next?:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\texternal:ILinkedListNode;\r\n\r\n\tassertDetached():void\r\n\t{\r\n\t\tif(this.next || this.previous)\r\n\t\t\tthrow new InvalidOperationException(\r\n\t\t\t\t\"Adding a node that is already placed.\");\r\n\t}\r\n\r\n}\r\n\r\nfunction ensureExternal(node:InternalNode, list:LinkedList):ILinkedListNode\r\n{\r\n\tif(!node)\r\n\t\treturn null;\r\n\r\n\tvar external:ILinkedListNode = node.external;\r\n\tif(!external)\r\n\t\tnode.external = external = new LinkedListNode(list, node);\r\n\r\n\treturn external;\r\n}\r\n\r\nfunction getInternal(node:ILinkedListNode, list:LinkedList):InternalNode\r\n{\r\n\tif(!node)\r\n\t\tthrow new ArgumentNullException(\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:InternalNode = (node)._nodeInternal;\r\n\tif(!n)\r\n\t\tthrow new InvalidOperationException(\r\n\t\t\t\"Provided node is not valid.\");\r\n\r\n\treturn n;\r\n}\r\n\r\nexport default\r\nclass LinkedList\r\nimplements ILinkedList\r\n{\r\n\tprivate _listInternal:LinkedNodeList>;\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;\r\n\t\tvar e = Enumerator.from(source);\r\n\r\n\t\tvar list = _._listInternal = new LinkedNodeList>();\r\n\r\n\t\twhile(e.moveNext())\r\n\t\t{\r\n\t\t\tlist.addNode(new InternalNode(e.current));\r\n\t\t\t++c;\r\n\t\t}\r\n\r\n\t\t_._count = c;\r\n\t}\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\tthis._listInternal.forEach((node, i)=>action(node.value, i));\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\treturn LinkedNodeList.valueEnumeratorFrom(this._listInternal);\r\n\t}\r\n\r\n\t// #endregion\r\n\r\n\tprivate _findFirst(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t next = this._listInternal.first;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\tif(equals(entry, next.value))\r\n\t\t\t\treturn next;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _findLast(entry:T):InternalNode\r\n\t{\r\n\t\tvar equals = Values.areEqual,\r\n\t\t prev = this._listInternal.last;\r\n\t\twhile(prev)\r\n\t\t{\r\n\t\t\tif(equals(entry, prev.value))\r\n\t\t\t\treturn prev;\r\n\t\t\tprev = prev.previous;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// #region ICollection\r\n\tget count():number\r\n\t{\r\n\t\treturn this._count;\r\n\t}\r\n\r\n\t//noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\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._listInternal.addNode(new InternalNode(entry));\r\n\t\tthis._count++;\r\n\t}\r\n\r\n\r\n\tclear():number\r\n\t{\r\n\t\tthis._count = 0;\r\n\t\treturn this._listInternal.clear();\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\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\tvar minLength = index + this._count;\r\n\t\tif(array.lengththis._listInternal, array, index);\r\n\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\treturn this.remove(entry, 1)!==0;\r\n\t}\r\n\r\n\tremove(entry:T, max:number = Infinity):number\r\n\t{\r\n\t\tvar equals = Values.areEqual;\r\n\t\tvar _ = this, list = _._listInternal, removedCount:number = 0;\r\n\r\n\t\tlist.forEach(node=>\r\n\t\t{\r\n\t\t\tif(equals(entry, node.value) && list.removeNode(node))\r\n\t\t\t{\r\n\t\t\t\t--_._count;\r\n\t\t\t\t++removedCount;\r\n\t\t\t}\r\n\t\t\treturn removedCount\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.first, this);\r\n\t}\r\n\r\n\tget last():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.last, this);\r\n\t}\r\n\r\n\t// get methods are available for convenience but is an n*index operation.\r\n\r\n\r\n\tgetValueAt(index:number):T\r\n\t{\r\n\t\treturn this._listInternal.getNodeAt(index).value;\r\n\t}\r\n\r\n\tgetNodeAt(index:number):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._listInternal.getNodeAt(index), this);\r\n\t}\r\n\r\n\tfind(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findFirst(entry), this);\r\n\t}\r\n\r\n\tfindLast(entry:T):ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._findLast(entry), this);\r\n\t}\r\n\r\n\taddFirst(entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(new InternalNode(entry));\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddLast(entry:T):void\r\n\t{\r\n\t\tthis.add(entry);\r\n\t}\r\n\r\n\tremoveFirst():void\r\n\t{\r\n\t\tvar _ = this, first = _._listInternal.first;\r\n\t\tif(first && _._listInternal.removeNode(first))\r\n\t\t{\r\n\t\t\t_._count--;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLast():void\r\n\t{\r\n\t\tvar _ = this, last = _._listInternal.last;\r\n\t\tif(last && _._listInternal.removeNode(last))\r\n\t\t{\r\n\t\t\t--_._count;\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\t removed = _._listInternal.removeNode(getInternal(node, _));\r\n\r\n\t\tif(removed) --_._count;\r\n\r\n\t\treturn removed;\r\n\t}\r\n\r\n\taddBefore(before:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(before, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n\taddAfter(after:ILinkedListNode, entry:T):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tnew InternalNode(entry),\r\n\t\t\tgetInternal(after, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeBefore(node:ILinkedListNode, before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeBefore(\r\n\t\t\tgetInternal(before, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\taddNodeAfter(node:ILinkedListNode, after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._listInternal.addNodeAfter(\r\n\t\t\tgetInternal(after, this),\r\n\t\t\tgetInternal(node, this)\r\n\t\t);\r\n\t\t++this._count;\r\n\t}\r\n\r\n\r\n}\r\n\r\n// Use an internal node class to prevent mucking up the LinkedList.\r\nclass LinkedListNode implements ILinkedListNode\r\n{\r\n\tconstructor(\r\n\t\tprivate _list:LinkedList,\r\n\t\tprivate _nodeInternal:InternalNode)\r\n\t{\r\n\t}\r\n\r\n\tget list():LinkedList\r\n\t{\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\tget previous():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.previous, this._list);\r\n\t}\r\n\r\n\tget next():ILinkedListNode\r\n\t{\r\n\t\treturn ensureExternal(this._nodeInternal.next, this._list);\r\n\t}\r\n\r\n\tget value():T\r\n\t{\r\n\t\treturn this._nodeInternal.value;\r\n\t}\r\n\r\n\tset value(v:T)\r\n\t{\r\n\t\tthis._nodeInternal.value = v;\r\n\t}\r\n\r\n\taddBefore(entry:T):void\r\n\t{\r\n\t\tthis._list.addBefore(this, entry);\r\n\t}\r\n\r\n\taddAfter(entry:T):void\r\n\t{\r\n\t\tthis._list.addAfter(this, entry);\r\n\t}\r\n\r\n\taddNodeBefore(before:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeBefore(this, before);\r\n\t}\r\n\r\n\taddNodeAfter(after:ILinkedListNode):void\r\n\t{\r\n\t\tthis._list.addNodeAfter(this, after);\r\n\t}\r\n\r\n\tremove():void\r\n\t{\r\n\t\tthis._list.removeNode(this);\r\n\t}\r\n\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/LinkedNodeList.js b/dist/umd.min/System/Collections/LinkedNodeList.js index 5f35ce04..9b9fd911 100644 --- a/dist/umd.min/System/Collections/LinkedNodeList.js +++ b/dist/umd.min/System/Collections/LinkedNodeList.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(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","../Text/Utility","../Exceptions/InvalidOperationException","../Exceptions/ArgumentException","../Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";function r(e,t){if(void 0===t&&(t="node"),null==e)throw new s["default"](t);if(e.next||e.previous)throw new n["default"]("Cannot add a node to a LinkedNodeList that is already linked.")}var o=e("../Text/Utility"),n=e("../Exceptions/InvalidOperationException"),i=e("../Exceptions/ArgumentException"),s=e("../Exceptions/ArgumentNullException"),u=function(){function e(){this._first=null,this._last=null}return Object.defineProperty(e.prototype,"first",{get:function(){return this._first},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this._last},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){for(var e=this._first,t=0;e;)t++,e=e.next;return t},enumerable:!0,configurable:!0}),e.prototype.forEach=function(e){var t=null,r=this.first,o=0;do t=r,r=t&&t.next;while(t&&e(t,o++)!==!1)},e.prototype.clear=function(){var e,t=this,r=0,o=0;for(e=t._first,t._first=null;e;){r++;var n=e;e=e.next,n.next=null}for(e=t._last,t._last=null;e;){o++;var n=e;e=e.previous,n.previous=null}return r!==o&&console.warn("LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: "+r+", Reverse: "+o),r},e.prototype.dispose=function(){this.clear()},e.prototype.contains=function(e){return-1!=this.indexOf(e)},e.prototype.getNodeAt=function(e){if(0>e)return null;for(var t=this._first,r=0;t&&et)return null;for(var e=this._first,r=0;e&&t\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number {\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile (current\r\n\t\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n) {\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n) {\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: '+cF+\", Reverse: \"+cL);\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!=-1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index>(node:TNode, propName:string = 'node') {\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedNodeList.js","System/Collections/LinkedNodeList.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","assertValidDetached","node","propName","ArgumentNullException_1","next","previous","InvalidOperationException_1","TextUtility","ArgumentException_1","EnumeratorBase_1","LinkedNodeList","this","_first","_last","Object","defineProperty","prototype","get","enumerable","configurable","i","forEach","action","current","first","index","map","selector","result","push","clear","n","_","cF","cL","console","warn","dispose","contains","indexOf","getNodeAt","find","condition","c","removeFirst","removeNode","removeLast","prev","a","b","format","addNode","addNodeAfter","addNodeBefore","before","after","replace","replacement","valueEnumeratorFrom","list","yielder","yieldReturn","value","yieldBreak","copyValues","array"],"mappings":"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","file":"System/Collections/LinkedNodeList.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Text/Utility\", \"../Exceptions/InvalidOperationException\", \"../Exceptions/ArgumentException\", \"../Exceptions/ArgumentNullException\", \"./Enumeration/EnumeratorBase\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var TextUtility = require(\"../Text/Utility\");\n var InvalidOperationException_1 = require(\"../Exceptions/InvalidOperationException\");\n var ArgumentException_1 = require(\"../Exceptions/ArgumentException\");\n var ArgumentNullException_1 = require(\"../Exceptions/ArgumentNullException\");\n var EnumeratorBase_1 = require(\"./Enumeration/EnumeratorBase\");\n var LinkedNodeList = (function () {\n function LinkedNodeList() {\n this._first = null;\n this._last = null;\n }\n Object.defineProperty(LinkedNodeList.prototype, \"first\", {\n get: function () {\n return this._first;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"last\", {\n get: function () {\n return this._last;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNodeList.prototype, \"count\", {\n get: function () {\n var next = this._first, i = 0;\n while (next) {\n i++;\n next = next.next;\n }\n return i;\n },\n enumerable: true,\n configurable: true\n });\n LinkedNodeList.prototype.forEach = function (action) {\n var current = null, next = this.first, index = 0;\n do {\n current = next;\n next = current && current.next;\n } while (current\n && action(current, index++) !== false);\n };\n LinkedNodeList.prototype.map = function (selector) {\n if (!selector)\n throw new ArgumentNullException_1.default('selector');\n var result = [];\n this.forEach(function (node) {\n result.push(selector(node));\n });\n return result;\n };\n LinkedNodeList.prototype.clear = function () {\n var _ = this, n, cF = 0, cL = 0;\n n = _._first;\n _._first = null;\n while (n) {\n cF++;\n var current = n;\n n = n.next;\n current.next = null;\n }\n n = _._last;\n _._last = null;\n while (n) {\n cL++;\n var current = n;\n n = n.previous;\n current.previous = null;\n }\n if (cF !== cL)\n console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\n return cF;\n };\n LinkedNodeList.prototype.dispose = function () {\n this.clear();\n };\n LinkedNodeList.prototype.contains = function (node) {\n return this.indexOf(node) != -1;\n };\n LinkedNodeList.prototype.getNodeAt = function (index) {\n if (index < 0)\n return null;\n var next = this._first, i = 0;\n while (next && index < i++) {\n next = next.next;\n }\n return next;\n };\n LinkedNodeList.prototype.find = function (condition) {\n var node = null;\n this.forEach(function (n, i) {\n if (condition(n, i)) {\n node = n;\n return false;\n }\n });\n return node;\n };\n LinkedNodeList.prototype.indexOf = function (node) {\n if (node && (node.previous || node.next)) {\n var index = 0;\n var c, n = this._first;\n do {\n c = n;\n if (c === node)\n return index;\n index++;\n } while ((n = c && c.next));\n }\n return -1;\n };\n LinkedNodeList.prototype.removeFirst = function () {\n return this.removeNode(this._first);\n };\n LinkedNodeList.prototype.removeLast = function () {\n return this.removeNode(this._last);\n };\n LinkedNodeList.prototype.removeNode = function (node) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n var _ = this;\n var prev = node.previous, next = node.next, a = false, b = false;\n if (prev)\n prev.next = next;\n else if (_._first == node)\n _._first = next;\n else\n a = true;\n if (next)\n next.previous = prev;\n else if (_._last == node)\n _._last = prev;\n else\n b = true;\n if (a !== b) {\n throw new ArgumentException_1.default('node', TextUtility.format(\"Provided node is has no {0} reference but is not the {1} node!\", a ? \"previous\" : \"next\", a ? \"first\" : \"last\"));\n }\n return !a && !b;\n };\n LinkedNodeList.prototype.addNode = function (node) {\n this.addNodeAfter(node);\n };\n LinkedNodeList.prototype.addNodeBefore = function (node, before) {\n assertValidDetached(node);\n var _ = this;\n if (!before) {\n before = _._first;\n }\n if (before) {\n var prev = before.previous;\n node.previous = prev;\n node.next = before;\n before.previous = node;\n if (prev)\n prev.next = node;\n if (before == _._first)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n };\n LinkedNodeList.prototype.addNodeAfter = function (node, after) {\n assertValidDetached(node);\n var _ = this;\n if (!after) {\n after = _._last;\n }\n if (after) {\n var next = after.next;\n node.next = next;\n node.previous = after;\n after.next = node;\n if (next)\n next.previous = node;\n if (after == _._last)\n _._last = node;\n }\n else {\n _._first = _._last = node;\n }\n };\n LinkedNodeList.prototype.replace = function (node, replacement) {\n if (node == null)\n throw new ArgumentNullException_1.default('node');\n assertValidDetached(replacement, 'replacement');\n var _ = this;\n replacement.previous = node.previous;\n replacement.next = node.next;\n if (node.previous)\n node.previous.next = replacement;\n if (node.next)\n node.next.previous = replacement;\n if (node == _._first)\n _._first = replacement;\n if (node == _._last)\n _._last = replacement;\n };\n LinkedNodeList.valueEnumeratorFrom = function (list) {\n if (!list)\n throw new ArgumentNullException_1.default('list');\n var _ = this, current, next;\n return new EnumeratorBase_1.default(function () {\n current = null;\n next = list.first;\n }, function (yielder) {\n if (next) {\n current = next;\n next = current && current.next;\n return yielder.yieldReturn(current.value);\n }\n return yielder.yieldBreak();\n });\n };\n LinkedNodeList.copyValues = function (list, array, index) {\n if (index === void 0) { index = 0; }\n if (list && list.first) {\n if (!array)\n throw new ArgumentNullException_1.default('array');\n list.forEach(function (node, i) {\n array[index + i] = node.value;\n });\n }\n return array;\n };\n return LinkedNodeList;\n }());\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = LinkedNodeList;\n function assertValidDetached(node, propName) {\n if (propName === void 0) { propName = 'node'; }\n if (node == null)\n throw new ArgumentNullException_1.default(propName);\n if (node.next || node.previous)\n throw new InvalidOperationException_1.default(\"Cannot add a node to a LinkedNodeList that is already linked.\");\n }\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport * as TextUtility from \"../Text/Utility\";\r\nimport InvalidOperationException from \"../Exceptions/InvalidOperationException\";\r\nimport ArgumentException from \"../Exceptions/ArgumentException\";\r\nimport ArgumentNullException from \"../Exceptions/ArgumentNullException\";\r\nimport EnumeratorBase from \"./Enumeration/EnumeratorBase\";\r\n\r\n\r\n/*****************************\r\n * IMPORTANT NOTES ABOUT PERFORMANCE:\r\n * http://jsperf.com/simulating-a-queue\r\n *\r\n * Adding to an array is very fast, but modifying is slow.\r\n * LinkedList wins when modifying contents.\r\n * http://stackoverflow.com/questions/166884/array-versus-linked-list\r\n *****************************/\r\n\r\n/**\r\n * This class is useful for managing a list of linked nodes, but it does not protect against modifying individual links.\r\n * If the consumer modifies a link (sets the previous or next value) it will effectively break the collection.\r\n *\r\n * It is possible to declare a node type of any kind as long as it contains a previous and next value that can reference another node.\r\n * Although not as safe as the included LinkedList, this class has less overhead and is more flexible.\r\n *\r\n * The count (or length) of this LinkedNodeList is not tracked since it could be corrupted at any time.\r\n */\r\nexport default\r\nclass LinkedNodeList>\r\nimplements ILinkedNodeList, IDisposable\r\n{\r\n\r\n\tprivate _first:TNode;\r\n\tprivate _last:TNode;\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis._first = null;\r\n\t\tthis._last = null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * The first node. Will be null if the collection is empty.\r\n\t */\r\n\tget first():TNode\r\n\t{\r\n\t\treturn this._first;\r\n\t}\r\n\r\n\t/**\r\n\t * The last node.\r\n\t */\r\n\tget last():TNode\r\n\t{\r\n\t\treturn this._last;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Iteratively counts the number of linked nodes and returns the value.\r\n\t * @returns {number}\r\n\t */\r\n\tget count():number\r\n\t{\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next)\r\n\t\t{\r\n\t\t\ti++;\r\n\t\t\tnext = next.next;\r\n\t\t}\r\n\r\n\t\treturn i;\r\n\t}\r\n\r\n\tforEach(\r\n\t\taction:Predicate | Action):void\r\n\t{\r\n\t\tvar current:TNode = null,\r\n\t\t next:TNode = this.first, // Be sure to track the next node so if current node is removed.\r\n\t\t index:number = 0;\r\n\r\n\t\tdo {\r\n\t\t\tcurrent = next;\r\n\t\t\tnext = current && current.next;\r\n\t\t}\r\n\t\twhile(current\r\n\t\t&& action(current, index++)!==false);\r\n\t}\r\n\r\n\tmap(selector:Selector):T[]\r\n\t{\r\n\t\tif(!selector) throw new ArgumentNullException('selector');\r\n\r\n\t\tvar result:T[] = [];\r\n\t\tthis.forEach(node=>\r\n\t\t{\r\n\t\t\tresult.push(selector(node));\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Erases the linked node's references to each other and returns the number of nodes.\r\n\t * @returns {number}\r\n\t */\r\n\tclear():number\r\n\t{\r\n\t\tvar _ = this, n:TNode, cF:number = 0, cL:number = 0;\r\n\r\n\t\t// First, clear in the forward direction.\r\n\t\tn = _._first;\r\n\t\t_._first = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcF++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.next;\r\n\t\t\tcurrent.next = null;\r\n\t\t}\r\n\r\n\t\t// Last, clear in the reverse direction.\r\n\t\tn = _._last;\r\n\t\t_._last = null;\r\n\r\n\t\twhile(n)\r\n\t\t{\r\n\t\t\tcL++;\r\n\t\t\tlet current = n;\r\n\t\t\tn = n.previous;\r\n\t\t\tcurrent.previous = null;\r\n\t\t}\r\n\r\n\t\tif(cF!==cL) console.warn('LinkedNodeList: Forward versus reverse count does not match when clearing. Forward: ' + cF + \", Reverse: \" + cL);\r\n\r\n\t\treturn cF;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the list.\r\n\t */\r\n\tdispose():void\r\n\t{\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to see if a node exists.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tcontains(node:TNode):boolean\r\n\t{\r\n\t\treturn this.indexOf(node)!= -1;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets the index of a particular node.\r\n\t * @param index\r\n\t */\r\n\tgetNodeAt(index:number):TNode\r\n\t{\r\n\t\tif(index<0)\r\n\t\t\treturn null;\r\n\r\n\t\tvar next = this._first, i:number = 0;\r\n\t\twhile(next && index):TNode {\r\n\t\tvar node:TNode = null;\r\n\t\tthis.forEach((n,i)=>{\r\n\t\t\tif(condition(n,i)) {\r\n\t\t\t\tnode = n;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * Iterates the list to find the specified node and returns its index.\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tindexOf(node:TNode):number\r\n\t{\r\n\t\tif(node && (node.previous || node.next))\r\n\t\t{\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tvar c:TNode, n:TNode = this._first;\r\n\t\t\tdo {\r\n\t\t\t\tc = n;\r\n\t\t\t\tif(c===node) return index;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t\twhile((n = c && c.next));\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the first node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveFirst():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._first);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the last node and returns true if successful.\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveLast():boolean\r\n\t{\r\n\t\treturn this.removeNode(this._last);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Removes the specified node.\r\n\t * Returns true if successful and false if not found (already removed).\r\n\t * @param node\r\n\t * @returns {boolean}\r\n\t */\r\n\tremoveNode(node:TNode):boolean\r\n\t{\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tvar _ = this;\r\n\t\tvar prev = node.previous, next = node.next, a:boolean = false, b:boolean = false;\r\n\r\n\t\tif(prev) prev.next = next;\r\n\t\telse if(_._first==node) _._first = next;\r\n\t\telse a = true;\r\n\r\n\t\tif(next) next.previous = prev;\r\n\t\telse if(_._last==node) _._last = prev;\r\n\t\telse b = true;\r\n\r\n\t\tif(a!==b)\r\n\t\t{\r\n\t\t\tthrow new ArgumentException(\r\n\t\t\t\t'node', TextUtility.format(\r\n\t\t\t\t\t\"Provided node is has no {0} reference but is not the {1} node!\",\r\n\t\t\t\t\ta ? \"previous\" : \"next\", a ? \"first\" : \"last\"\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn !a && !b;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a node to the end of the list.\r\n\t * @param node\r\n\t */\r\n\taddNode(node:TNode):void\r\n\t{\r\n\t\tthis.addNodeAfter(node);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inserts a node before the specified 'before' node.\r\n\t * If no 'before' node is specified, it inserts it as the first node.\r\n\t * @param node\r\n\t * @param before\r\n\t */\r\n\taddNodeBefore(node:TNode, before?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!before)\r\n\t\t{\r\n\t\t\tbefore = _._first;\r\n\t\t}\r\n\r\n\t\tif(before)\r\n\t\t{\r\n\t\t\tlet prev = before.previous;\r\n\t\t\tnode.previous = prev;\r\n\t\t\tnode.next = before;\r\n\r\n\t\t\tbefore.previous = node;\r\n\t\t\tif(prev) prev.next = node;\r\n\t\t\tif(before==_._first) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a node after the specified 'after' node.\r\n\t * If no 'after' node is specified, it appends it as the last node.\r\n\t * @param node\r\n\t * @param after\r\n\t */\r\n\taddNodeAfter(node:TNode, after?:TNode):void\r\n\t{\r\n\t\tassertValidDetached(node);\r\n\r\n\t\tvar _ = this;\r\n\r\n\t\tif(!after)\r\n\t\t{\r\n\t\t\tafter = _._last;\r\n\t\t}\r\n\r\n\t\tif(after)\r\n\t\t{\r\n\t\t\tlet next = after.next;\r\n\t\t\tnode.next = next;\r\n\t\t\tnode.previous = after;\r\n\r\n\t\t\tafter.next = node;\r\n\t\t\tif(next) next.previous = node;\r\n\t\t\tif(after==_._last) _._last = node;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_._first = _._last = node;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Takes and existing node and replaces it.\r\n\t * @param node\r\n\t * @param replacement\r\n\t */\r\n\treplace(node:TNode, replacement:TNode):void\r\n\t{\r\n\r\n\t\tif(node==null)\r\n\t\t\tthrow new ArgumentNullException('node');\r\n\r\n\t\tassertValidDetached(replacement, 'replacement');\r\n\r\n\t\tvar _ = this;\r\n\t\treplacement.previous = node.previous;\r\n\t\treplacement.next = node.next;\r\n\r\n\t\tif(node.previous) node.previous.next = replacement;\r\n\t\tif(node.next) node.next.previous = replacement;\r\n\r\n\t\tif(node==_._first) _._first = replacement;\r\n\t\tif(node==_._last) _._last = replacement;\r\n\t}\r\n\r\n\tstatic valueEnumeratorFrom(list:LinkedNodeList>):IEnumerator {\r\n\r\n\t\tif(!list) throw new ArgumentNullException('list');\r\n\r\n\t\tvar _ = this,\r\n\t\t current:ILinkedNodeWithValue,\r\n\t\t next:ILinkedNodeWithValue;\r\n\r\n\t\treturn new EnumeratorBase(\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t// Initialize anchor...\r\n\t\t\t\tcurrent = null;\r\n\t\t\t\tnext = list.first;\r\n\t\t\t},\r\n\t\t\t(yielder)=>\r\n\t\t\t{\r\n\r\n\t\t\t\tif(next)\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrent = next;\r\n\t\t\t\t\tnext = current && current.next;\r\n\t\t\t\t\treturn yielder.yieldReturn(current.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn yielder.yieldBreak();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic copyValues(list:LinkedNodeList>, array:T[], index:number = 0):T[]\r\n\t{\r\n\t\tif(list && list.first)\r\n\t\t{\r\n\t\t\tif(!array) throw new ArgumentNullException('array');\r\n\r\n\t\t\tlist.forEach(\r\n\t\t\t\t(node, i) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tarray[index + i] = node.value;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n}\r\n\r\nfunction assertValidDetached>(node:TNode, propName:string = 'node')\r\n{\r\n\r\n\tif(node==null)\r\n\t\tthrow new ArgumentNullException(propName);\r\n\r\n\tif(node.next || node.previous)\r\n\t\tthrow new InvalidOperationException(\"Cannot add a node to a LinkedNodeList that is already linked.\");\r\n\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System/Compare.js b/dist/umd.min/System/Compare.js index 8d423031..e6141f2f 100644 --- a/dist/umd.min/System/Compare.js +++ b/dist/umd.min/System/Compare.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var o=e(require,exports);void 0!==o&&(module.exports=o)}else"function"==typeof define&&define.amd&&define(["require","exports","./Types"],e)}(function(e,o){"use strict";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,n)?e.compareTo(o):o&&u["default"].hasMember(o,n)?-o.compareTo(e):e>o||t&&(0===e&&0==o||null===e&&o===i)?1:o>e||t&&(0===o&&0==e||null===o&&e===i)?-1:NaN}var u=e("./Types"),a=u["default"].isTrueNaN,i=void 0;o.areEqual=r;var n="compareTo";o.compare=t}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Types"],e)}(function(e,t){"use strict";function r(e,t,r){return void 0===r&&(r=!0),e===t||!r&&e==t||i(e)&&i(t)}function u(e,t,u){return void 0===u&&(u=!0),r(e,t,u)?0:e&&o["default"].hasMember(e,f)?e.compareTo(t):t&&o["default"].hasMember(t,f)?-t.compareTo(e):e>t||u&&(0===e&&0==t||null===e&&t===l)?1:t>e||u&&(0===t&&0==e||null===t&&e===l)?-1:NaN}function n(e,t,u,i){if(void 0===u&&(u=!0),void 0===i&&(i=0),r(e,t,!0))return!0;if(null===e||e===l||null==t||t===l)return u?o["default"].isObject(e)?!Object.keys(e).length:o["default"].isObject(t)?!Object.keys(t).length:!(null!==e&&e!==l||null!=t&&t!==l):!1;if(o["default"].isObject(e)&&o["default"].isObject(t)){var f=Object.keys(e),a=Object.keys(t),s=f.length;if(s!=a.length)return!1;f.sort(),a.sort();for(var c=0;s>c;++c){var d=f[c];if(d!==a[c]||!r(e[d],t[d],!0))return!1}if(i>0)for(var v=0,p=f;v b || strict && (a === 0 && b == 0 || a === null && b === VOID0))\n return 1;\n if (b > a || strict && (b === 0 && a == 0 || b === null && a === VOID0))\n return -1;\n return NaN;\n }\n exports.compare = compare;\n});\n","/*!\r\n * @author 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); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Compare.js","System/Compare.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","areEqual","a","b","strict","isTrueNaN","compare","Types_1","hasMember","COMPARE_TO","compareTo","VOID0","NaN","areEquivalent","nullEquivalency","extraDepth","isObject","Object","keys","length","aKeys","bKeys","len","sort","i","key","_i","aKeys_1"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,WAAYN,IAE/C,SAAUI,EAASF,GAClB,YCQJ,SAAAM,GAAyBC,EAAOC,EAAOC,GAEtC,MAFsC,UAAAA,IAAAA,GAAA,GAE/BF,IAAIC,IAAMC,GAAUF,GAAGC,GAAKE,EAAUH,IAAMG,EAAUF,GAY9D,QAAAG,GAAwBJ,EAAOC,EAAOC,GAGrC,MAHqC,UAAAA,IAAAA,GAAA,GAGlCH,EAASC,EAAGC,EAAGC,GACV,EAELF,GAAKK,EAAAA,WAAKC,UAAUN,EAAGO,GAClBP,EAAEQ,UAAUP,GACZA,GAAKI,EAAAA,WAAKC,UAAUL,EAAGM,IACtBN,EAAEO,UAAUR,GAIlBA,EAAEC,GAAKC,IAAe,IAAJF,GAAY,GAAHC,GAAY,OAAJD,GAAYC,IAAIQ,GAC9C,EAELR,EAAED,GAAKE,IAAe,IAAJD,GAAY,GAAHD,GAAY,OAAJC,GAAYD,IAAIS,GAC9C,GAEDC,IAWR,QAAAC,GAA8BX,EAAOC,EAAOW,EAAgCC,GAI3E,GAJ2C,SAAAD,IAAAA,GAAA,GAAgC,SAAAC,IAAAA,EAAA,GAIxEd,EAASC,EAAGC,GAAG,GAAO,OAAO,CAEhC,IAAO,OAAJD,GAAYA,IAAIS,GAAY,MAAHR,GAAWA,IAAIQ,EAE1C,MAAIG,GAEDP,EAAAA,WAAKS,SAASd,IAERe,OAAOC,KAAKhB,GAAGiB,OAGrBZ,EAAAA,WAAKS,SAASb,IAERc,OAAOC,KAAKf,GAAGgB,SAGZ,OAAJjB,GAAYA,IAAIS,GAAc,MAAHR,GAAWA,IAAIQ,IAZtB,CAe7B,IAAGJ,EAAAA,WAAKS,SAASd,IAAMK,EAAAA,WAAKS,SAASb,GACrC,CAEC,GAAIiB,GAAQH,OAAOC,KAAKhB,GAAImB,EAAQJ,OAAOC,KAAKf,GAAImB,EAAMF,EAAMD,MAChE,IAAGG,GAAKD,EAAMF,OACb,OAAO,CAERC,GAAMG,OACNF,EAAME,MAEN,KAAI,GAAIC,GAAI,EAAKF,EAAFE,IAASA,EACxB,CACC,GAAIC,GAAML,EAAMI,EAChB,IAAGC,IAAMJ,EAAMG,KAAOvB,EAASC,EAAEuB,GAAMtB,EAAEsB,IAAM,GAAO,OAAO,EAI9D,GAAGV,EAAW,EAEb,IAAe,GAAAW,GAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAR,OAAAO,IAAM,CAAjB,GAAID,GAAGE,EAAAD,EACV,KAAIb,EAAcX,EAAEuB,GAAMtB,EAAEsB,GAAMX,EAAiBC,EAAW,GAAI,OAAO,EAI3E,OAAO,EAGR,OAAO,EA1GR,GAAAR,GAAAV,EAAiB,WACVQ,EAAYE,EAAAA,WAAKF,UAElBM,EAAY,MASFhB,GAAAM,SAAQA,CAKxB,IAAMQ,GAAa,WASHd,GAAAW,QAAOA,EA8BPX,EAAAkB,cAAaA","file":"System/Compare.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Types\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"./Types\");\n var isTrueNaN = Types_1.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 function areEquivalent(a, b, nullEquivalency, extraDepth) {\n if (nullEquivalency === void 0) { nullEquivalency = true; }\n if (extraDepth === void 0) { extraDepth = 0; }\n if (areEqual(a, b, true))\n return true;\n if (a === null || a === VOID0 || b == null || b === VOID0) {\n if (!nullEquivalency)\n return false;\n if (Types_1.default.isObject(a)) {\n return !Object.keys(a).length;\n }\n if (Types_1.default.isObject(b)) {\n return !Object.keys(b).length;\n }\n return (a === null || a === VOID0) && (b == null || b === VOID0);\n }\n if (Types_1.default.isObject(a) && Types_1.default.isObject(b)) {\n var aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\n if (len != bKeys.length)\n return false;\n aKeys.sort();\n bKeys.sort();\n for (var i = 0; i < len; ++i) {\n var key = aKeys[i];\n if (key !== bKeys[i] || !areEqual(a[key], b[key], true))\n return false;\n }\n if (extraDepth > 0) {\n for (var _i = 0, aKeys_1 = aKeys; _i < aKeys_1.length; _i++) {\n var key = aKeys_1[_i];\n if (!areEquivalent(a[key], b[key], nullEquivalency, extraDepth - 1))\n return false;\n }\n }\n return true;\n }\n return false;\n }\n exports.areEquivalent = areEquivalent;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n///\r\n///\r\n///\r\nimport Type from \"./Types\";\r\nimport isTrueNaN = Type.isTrueNaN;\r\n\r\nconst VOID0:any = void 0;\r\n\r\n/**\r\n * Used for special comparison including NaN.\r\n * @param a\r\n * @param b\r\n * @param strict\r\n * @returns {boolean|any}\r\n */\r\nexport function areEqual(a:any, b:any, strict:boolean = true):boolean\r\n{\r\n\treturn a===b || !strict && a==b || isTrueNaN(a) && isTrueNaN(b);\r\n}\r\n\r\nconst COMPARE_TO = \"compareTo\";\r\n\r\n/**\r\n * Compares two comparable objects or primitives.\r\n * @param a\r\n * @param b\r\n */\r\nexport function compare(a:IComparable, b:IComparable):number;\r\nexport function compare(a:T, b:T, strict?:boolean):CompareResult;\r\nexport function compare(a:any, b:any, strict:boolean = true):CompareResult\r\n{\r\n\r\n\tif(areEqual(a, b, strict))\r\n\t\treturn CompareResult.Equal;\r\n\r\n\tif(a && Type.hasMember(a, COMPARE_TO))\r\n\t\treturn a.compareTo(b); // If a has compareTo, use it.\r\n\telse if(b && Type.hasMember(b, COMPARE_TO))\r\n\t\treturn -b.compareTo(a); // a doesn't have compareTo? check if b does and invert.\r\n\r\n\t// Allow for special inequality..\r\n\r\n\tif(a>b || strict && (a===0 && b==0 || a===null && b===VOID0))\r\n\t\treturn CompareResult.Greater;\r\n\r\n\tif(b>a || strict && (b===0 && a==0 || b===null && a===VOID0))\r\n\t\treturn CompareResult.Less;\r\n\r\n\treturn NaN;\r\n}\r\n\r\n/**\r\n * Determines if two primitives are equal or if two objects have the same key/value combinations.\r\n * @param a\r\n * @param b\r\n * @param nullEquivalency If true, null/undefined will be equivalent to an empty object {}.\r\n * @param extraDepth\r\n * @returns {boolean}\r\n */\r\nexport function areEquivalent(a:any, b:any, nullEquivalency:boolean = true, extraDepth:number = 0):boolean\r\n{\r\n\r\n\t// Take a step by step approach to ensure efficiency.\r\n\tif(areEqual(a, b, true)) return true;\r\n\r\n\tif(a===null || a===VOID0 || b==null || b===VOID0)\r\n\t{\r\n\t\tif(!nullEquivalency) return false;\r\n\r\n\t\tif(Type.isObject(a))\r\n\t\t{\r\n\t\t\treturn !Object.keys(a).length;\r\n\t\t}\r\n\r\n\t\tif(Type.isObject(b))\r\n\t\t{\r\n\t\t\treturn !Object.keys(b).length;\r\n\t\t}\r\n\r\n\t\treturn (a===null || a===VOID0) && (b==null || b===VOID0);\r\n\t}\r\n\r\n\tif(Type.isObject(a) && Type.isObject(b))\r\n\t{\r\n\r\n\t\tvar aKeys = Object.keys(a), bKeys = Object.keys(b), len = aKeys.length;\r\n\t\tif(len!=bKeys.length)\r\n\t\t\treturn false;\r\n\r\n\t\taKeys.sort();\r\n\t\tbKeys.sort();\r\n\r\n\t\tfor(let i = 0; i0) {\r\n\r\n\t\t\tfor(let key of aKeys) {\r\n\t\t\t\tif(!areEquivalent(a[key], b[key], nullEquivalency, extraDepth-1)) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Events/EventDispatcher.js b/dist/umd.min/System/Events/EventDispatcher.js deleted file mode 100644 index 30407c02..00000000 --- a/dist/umd.min/System/Events/EventDispatcher.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 - */ -var __extends=this&&this.__extends||function(e,t){function i(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Utility/shallowCopy","../Disposable/DisposableBase","../Collections/Array/Utility"],e)}(function(e,t){"use strict";var i=e("../Utility/shallowCopy"),r=e("../Disposable/DisposableBase"),n=e("../Collections/Array/Utility"),s="disposing",o="disposed",p=function(e){function t(t,i,r,n){void 0===r&&(r=!1),void 0===n&&(n=0),e.call(this),this.type=t,this.listener=i,this.useCapture=r,this.priority=n;var s=this;s.type=t,s.listener=i,s.useCapture=r,s.priority=n}return __extends(t,e),t.prototype.dispose=function(){this.listener=null},Object.defineProperty(t.prototype,"wasDisposed",{get:function(){return null==this.listener},enumerable:!0,configurable:!0}),t.prototype.matches=function(e,t,i){void 0===i&&(i=!1);var r=this;return r.type==e&&r.listener==t&&r.useCapture==i},t.prototype.equals=function(e){var t=this;return t.type==e.type&&t.listener==e.listener&&t.useCapture==e.useCapture&&t.priority==e.priority},t}(r["default"]);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=p;(function(e){function t(){e.apply(this,arguments),this._isDisposing=!1}return __extends(t,e),t.prototype.addEventListener=function(e,t,i,r){void 0===i&&(i=!1),void 0===r&&(r=0);var n=this._listeners;n||(this._listeners=n=[]),n.push(new p(e,t,i,r))},t.prototype.registerEventListener=function(e,t,i,r){void 0===i&&(i=!1),void 0===r&&(r=0),this.hasEventListener(e,t,i)||this.addEventListener(e,t,i,r)},t.prototype.hasEventListener=function(e,t,i){void 0===i&&(i=!1);var r=this._listeners;return r&&r.some(function(r){return e==r.type&&(!t||t==r.listener&&i==r.useCapture)})},t.prototype.removeEventListener=function(e,t,i){void 0===i&&(i=!1);var r=this._listeners;if(r){var s=n.findIndex(r,function(r){return r.matches(e,t,i)});if(-1!=s){var o=r[s];r.splice(s,1),o.dispose()}}},t.prototype.dispatchEvent=function(e,t){var r=this,n=this,s=n._listeners;if(!s||!s.length)return!1;var o;"string"==typeof e?(o=Object.create(Event),t||(t={}),o.cancelable=!!t.cancelable,o.target=n,o.type=e):o=e;var p=o.type,u=[];return s.forEach(function(e){e.type==p&&u.push(e)}),u.length?(u.sort(function(e,t){return t.priority-e.priority}),u.forEach(function(e){var t=Object.create(Event);i["default"](o,t),t.target=r,e.listener(t)}),!0):!1},Object.defineProperty(t,"DISPOSING",{get:function(){return s},enumerable:!0,configurable:!0}),Object.defineProperty(t,"DISPOSED",{get:function(){return o},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisposing",{get:function(){return this._isDisposing},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!t.wasDisposed&&!t._isDisposing){t._isDisposing=!0,t.dispatchEvent(s),e.prototype.dispose.call(this),t.dispatchEvent(o);var i=t._listeners;i&&(this._listeners=null,i.forEach(function(e){return e.dispose()}))}},t})(r["default"])}); -//# sourceMappingURL=EventDispatcher.js.map diff --git a/dist/umd.min/System/Events/EventDispatcher.js.map b/dist/umd.min/System/Events/EventDispatcher.js.map deleted file mode 100644 index 275a4c11..00000000 --- a/dist/umd.min/System/Events/EventDispatcher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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","type","listener","useCapture","priority","call","_","dispose","defineProperty","get","enumerable","configurable","matches","equals","other","value","EventDispatcher","apply","arguments","_isDisposing","addEventListener","l","_listeners","push","registerEventListener","hasEventListener","some","removeEventListener","userCapture","i","findIndex","entry","e","splice","dispatchEvent","params","_this","length","event","Event","cancelable","target","entries","forEach","sort","a","newEvent","wasDisposed"],"mappings":"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","file":"System/Events/EventDispatcher.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Utility/shallowCopy', '../Disposable/DisposableBase', '../Collections/Array/Utility'], 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nimport shallowCopy from '../Utility/shallowCopy';\r\nimport DisposableBase from '../Disposable/DisposableBase';\r\nimport * as AU from '../Collections/Array/Utility';\r\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/Observable/SubscribableBase.js b/dist/umd.min/System/Observable/SubscribableBase.js index 4c58e03c..ca4806ee 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.js +++ b/dist/umd.min/System/Observable/SubscribableBase.js @@ -4,5 +4,5 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Collections/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}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../Collections/LinkedNodeList","../Disposable/Utility","./Subscription"],e)}(function(e,t){"use strict";var i=e("../Collections/LinkedNodeList"),n=e("../Disposable/Utility"),r=e("./Subscription"),o=function(){function e(){this.__subscriptions=new i["default"]}return e.prototype._getSubscribers=function(){return this.__subscriptions.map(function(e){return e.value&&e.value.subscriber})},e.prototype._findEntryNode=function(e){return this.__subscriptions.find(function(t){return t.value.subscriber===e})},e.prototype.subscribe=function(e){var t=this,i=t._findEntryNode(e);if(i)return i.value;var n=new r["default"](t,e);return t.__subscriptions.addNode({value:n,previous:null,next:null}),n},e.prototype.unsubscribe=function(e){var t=this,i=t._findEntryNode(e);if(i){var n=i.value;t.__subscriptions.removeNode(i),n.dispose()}},e.prototype._unsubscribeAll=function(e){void 0===e&&(e=!1);var t=this,i=t.__subscriptions,r=i.map(function(e){return e.value}),o=e?r.map(function(e){return e.subscriber}):null;return i.clear(),n.disposeThese(r),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 4768479a..e6bce33d 100644 --- a/dist/umd.min/System/Observable/SubscribableBase.js.map +++ b/dist/umd.min/System/Observable/SubscribableBase.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Observable/SubscribableBase.js","System/Observable/SubscribableBase.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","LinkedList_1","DisposeUtility","Subscription_1","SubscribableBase","this","__subscriptions","prototype","_getSubscribers","toArray","map","s","subscriber","_findEntryNode","node","first","value","next","subscribe","_","n","add","unsubscribe","remove","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","disposeThese","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,4BAA6B,wBAAyB,kBAAmBN,IAE5G,SAAUI,EAASF,GCJtB,YAEA,IAAAM,GAAAJ,EAAuB,6BACXK,EAAcL,EAAM,yBAChCM,EAAAN,EAAyB,kBAIzBO,EAAA,WAcC,QAAAA,KAECC,KAAKC,gBAAkB,GAAIL,GAAAA,WAkE7B,MA1EWG,GAAAG,UAAAC,gBAAV,WACC,MAAOH,MAAKC,gBACVG,UACAC,IAAI,SAAAC,GAAG,MAAAA,GAAEC,cAQJR,EAAAG,UAAAM,eAAR,SACCD,GAGA,IADA,GAAIE,GAAOT,KAAKC,gBAAgBS,MAC1BD,GAEFA,EAAKE,MAAMJ,aAAaA,GAM1BE,EAAOA,EAAKG,IAId,OAAOH,IAIRV,EAAAG,UAAAW,UAAA,SAAUN,GAET,GAAIO,GAAId,KACJe,EAAID,EAAEN,eAAeD,EACzB,IAAGQ,EACF,MAAOA,GAAEJ,KAEV,IAAIL,GAAI,GAAIR,GAAAA,WAAagB,EAAGP,EAG5B,OAFAO,GAAEb,gBAAgBe,IAAIV,GAEfA,GAGRP,EAAAG,UAAAe,YAAA,SAAYV,GAEX,GAAIQ,GAAIf,KAAKQ,eAAeD,EAC5B,IAAGQ,EACH,CACC,GAAIT,GAAIS,EAAEJ,KACVI,GAAEG,SACFZ,EAAEa,YAIMpB,EAAAG,UAAAkB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EACzB,IAAIP,GAAId,KAAMsB,EAAKR,EAAEb,gBACjBK,EAAIgB,EAAGlB,UACPmB,EAAIF,EAAoBf,EAAED,IAAI,SAAAmB,GAAG,MAAAA,GAAEjB,aAAc,IAKrD,OAJAe,GAAGG,QAEH5B,EAAe6B,aAAapB,GAErBiB,GAGRxB,EAAAG,UAAAyB,eAAA,WACC3B,KAAKoB,mBAGNrB,EAAAG,UAAAiB,QAAA,WACCnB,KAAKoB,mBAGPrB,IAlFA6B,QAAAC,eAAAvC,EAAA,cAAAqB,OAAA,IDyDIrB,EAAAA,WAAkBS","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", '../Collections/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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\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","LinkedNodeList_1","DisposeUtility","Subscription_1","SubscribableBase","this","__subscriptions","prototype","_getSubscribers","map","node","value","subscriber","_findEntryNode","find","n","subscribe","_","s","addNode","previous","next","unsubscribe","removeNode","dispose","_unsubscribeAll","returnSubscribers","_s","u","o","clear","disposeThese","unsubscribeAll","Object","defineProperty"],"mappings":";;;;;;CAMA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,gCAAiC,wBAAyB,kBAAmBN,IAEhH,SAAUI,EAASF,GCJtB,YAEA,IAAAM,GAAAJ,EAA2B,iCACfK,EAAcL,EAAM,yBAChCM,EAAAN,EAAyB,kBAIzBO,EAAA,WAeC,QAAAA,KAECC,KAAKC,gBACF,GAAIL,GAAAA,WA8DT,MAxEWG,GAAAG,UAAAC,gBAAV,WAEC,MAAOH,MACLC,gBACAG,IAAI,SAAAC,GAAM,MAAAA,GAAKC,OAASD,EAAKC,MAAMC,cAS9BR,EAAAG,UAAAM,eAAR,SACCD,GAEA,MAAOP,MACLC,gBACAQ,KAAK,SAAAC,GAAG,MAAAA,GAAEJ,MAAMC,aAAaA,KAIhCR,EAAAG,UAAAS,UAAA,SAAUJ,GAET,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACF,MAAOA,GAAEJ,KAEV,IAAIO,GAAI,GAAIf,GAAAA,WAAac,EAAGL,EAM5B,OALAK,GAAEX,gBAAgBa,SACjBR,MAAOO,EACPE,SAAU,KAAMC,KAAM,OAGhBH,GAGRd,EAAAG,UAAAe,YAAA,SAAYV,GAEX,GAAIK,GAAIZ,KACJU,EAAIE,EAAEJ,eAAeD,EACzB,IAAGG,EACH,CACC,GAAIG,GAAIH,EAAEJ,KACVM,GAAEX,gBAAgBiB,WAAWR,GAC7BG,EAAEM,YAIMpB,EAAAG,UAAAkB,gBAAV,SAA0BC,GAAA,SAAAA,IAAAA,GAAA,EAEzB,IAAIT,GAAIZ,KAAMsB,EAAKV,EAAEX,gBACjBY,EAAIS,EAAGlB,IAAI,SAAAM,GAAG,MAAAA,GAAEJ,QAChBiB,EAAIF,EAAoBR,EAAET,IAAI,SAAAoB,GAAG,MAAAA,GAAEjB,aAAc,IAKrD,OAJAe,GAAGG,QAEH5B,EAAe6B,aAAab,GAErBU,GAGRxB,EAAAG,UAAAyB,eAAA,WAEC3B,KAAKoB,mBAGNrB,EAAAG,UAAAiB,QAAA,WAECnB,KAAKoB,mBAGPrB,IAhFA6B,QAAAC,eAAAvC,EAAA,cAAAgB,OAAA,IDuDIhB,EAAAA,WAAkBS","file":"System/Observable/SubscribableBase.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Based upon .NET source.\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../Collections/LinkedNodeList\", \"../Disposable/Utility\", \"./Subscription\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var LinkedNodeList_1 = require(\"../Collections/LinkedNodeList\");\n var DisposeUtility = require(\"../Disposable/Utility\");\n var Subscription_1 = require(\"./Subscription\");\n var SubscribableBase = (function () {\n function SubscribableBase() {\n this.__subscriptions\n = new LinkedNodeList_1.default();\n }\n SubscribableBase.prototype._getSubscribers = function () {\n return this\n .__subscriptions\n .map(function (node) { return node.value && node.value.subscriber; });\n };\n SubscribableBase.prototype._findEntryNode = function (subscriber) {\n return this\n .__subscriptions\n .find(function (n) { return n.value.subscriber === subscriber; });\n };\n SubscribableBase.prototype.subscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n)\n return n.value;\n var s = new Subscription_1.default(_, subscriber);\n _.__subscriptions.addNode({\n value: s,\n previous: null, next: null\n });\n return s;\n };\n SubscribableBase.prototype.unsubscribe = function (subscriber) {\n var _ = this;\n var n = _._findEntryNode(subscriber);\n if (n) {\n var s = n.value;\n _.__subscriptions.removeNode(n);\n s.dispose();\n }\n };\n SubscribableBase.prototype._unsubscribeAll = function (returnSubscribers) {\n if (returnSubscribers === void 0) { returnSubscribers = false; }\n var _ = this, _s = _.__subscriptions;\n var s = _s.map(function (n) { return n.value; });\n var u = returnSubscribers ? s.map(function (o) { return o.subscriber; }) : null;\n _s.clear();\n 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\nimport LinkedNodeList from \"../Collections/LinkedNodeList\";\r\nimport * 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:LinkedNodeList>>;\r\n\r\n\tprotected _getSubscribers():TSubscriber[]\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.map(node=>node.value && node.value.subscriber);\r\n\t}\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.__subscriptions\r\n\t\t\t= new LinkedNodeList>>();\r\n\t}\r\n\r\n\tprivate _findEntryNode(\r\n\t\tsubscriber:TSubscriber):ILinkedNodeWithValue>\r\n\t{\r\n\t\treturn this\r\n\t\t\t.__subscriptions\r\n\t\t\t.find(n=>n.value.subscriber===subscriber);\r\n\t}\r\n\r\n\t// It is possible that the same observer could call subscribe more than once and therefore we need to retain a single instance of the subscriber.\r\n\tsubscribe(subscriber:TSubscriber):IDisposable\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n) // Ensure only one instance of the existing subscription exists.\r\n\t\t\treturn n.value;\r\n\r\n\t\tvar s = new Subscription(_, subscriber);\r\n\t\t_.__subscriptions.addNode({\r\n\t\t\tvalue: s,\r\n\t\t\tprevious: null, next: null\r\n\t\t});\r\n\r\n\t\treturn s;\r\n\t}\r\n\r\n\tunsubscribe(subscriber:TSubscriber):void\r\n\t{\r\n\t\tvar _ = this;\r\n\t\tvar n = _._findEntryNode(subscriber);\r\n\t\tif(n)\r\n\t\t{\r\n\t\t\tvar s = n.value;\r\n\t\t\t_.__subscriptions.removeNode(n);\r\n\t\t\ts.dispose(); // Prevent further usage of a dead subscription.\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _unsubscribeAll(returnSubscribers:boolean = false):TSubscriber[]\r\n\t{\r\n\t\tvar _ = this, _s = _.__subscriptions;\r\n\t\tvar s = _s.map(n=>n.value);\r\n\t\tvar u = returnSubscribers ? s.map(o=>o.subscriber) : null;\r\n\t\t_s.clear(); // Reset...\r\n\r\n\t\tDisposeUtility.disposeThese(s);\r\n\r\n\t\treturn u;\r\n\t}\r\n\r\n\tunsubscribeAll():void\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis._unsubscribeAll();\r\n\t}\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Types.js b/dist/umd.min/System/Types.js index 48ccb108..c0c692fb 100644 --- a/dist/umd.min/System/Types.js +++ b/dist/umd.min/System/Types.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var 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}); +!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",o="string",s=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 o: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 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 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===o}function p(e){var i=typeof e;switch(i){case r:case o:case n:case u:return!0;case s:return null===e}return!1}function y(e){return typeof e===a}function d(e,i){return void 0===i&&(i=!1),typeof e===s&&(i||null!==e)}function b(e){return isNaN(e)?NaN:e}function m(e){return c.getFor(e)}function v(e,i){return e&&!p(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=o,e.OBJECT=s,e.UNDEFINED=u,e.FUNCTION=a,e.isBoolean=i,e.isNumber=f,e.isTrueNaN=N,e.isString=l,e.isPrimitive=p,e.isFunction=y,e.isObject=d,e.numberOrNaN=b,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 8ffcf60c..d1b5c6c5 100644 --- a/dist/umd.min/System/Types.js.map +++ b/dist/umd.min/System/Types.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Types.js","System/Types.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","VOID0","_BOOLEAN","_NUMBER","_STRING","_OBJECT","_UNDEFINED","_FUNCTION","typeInfoRegistry","TypeInfo","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","info","Type","value","allowNaN","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { };\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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {};\r\n\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 +{"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","target","_","this","isBoolean","isNumber","isString","isTrueNaN","isObject","isFunction","isUndefined","isNull","isPrimitive","type","isNaN","isFinite","isValidNumber","isNullOrUndefined","Object","freeze","prototype","member","name","t","getFor","info","Type","value","allowNaN","allowNull","numberOrNaN","NaN","of","hasMember","property","hasMemberOfType","instance","isArrayLike","Array","BOOLEAN","NUMBER","STRING","OBJECT","UNDEFINED","FUNCTION","defineProperty"],"mappings":"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","file":"System/Types.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\n 'use strict';\n var VOID0 = void (0), _BOOLEAN = typeof true, _NUMBER = typeof 0, _STRING = typeof \"\", _OBJECT = typeof {}, _UNDEFINED = typeof VOID0, _FUNCTION = typeof function () { };\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, allowNull) {\n if (allowNull === void 0) { allowNull = false; }\n return typeof value === _OBJECT && (allowNull || value !== null);\n }\n Type.isObject = isObject;\n function numberOrNaN(value) {\n return isNaN(value) ? NaN : value;\n }\n Type.numberOrNaN = numberOrNaN;\n function of(target) {\n return TypeInfo.getFor(target);\n }\n Type.of = of;\n function hasMember(value, property) {\n return value && !isPrimitive(value) && (property) in (value);\n }\n Type.hasMember = hasMember;\n function hasMemberOfType(instance, property, type) {\n return hasMember(instance, property) && typeof (instance[property]) === type;\n }\n Type.hasMemberOfType = hasMemberOfType;\n function isArrayLike(instance) {\n return instance instanceof Array || 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\r\n///\r\n///\r\n'use strict'; // For compatibility with (let, const, function, class);\r\n\r\n\r\nconst\r\n\tVOID0:any = void(0),\r\n\t_BOOLEAN:string = typeof true,\r\n\t_NUMBER:string = typeof 0,\r\n\t_STRING:string = typeof \"\",\r\n\t_OBJECT:string = typeof {},\r\n\t_UNDEFINED:string = typeof VOID0,\r\n\t_FUNCTION:string = typeof function() {};\r\n\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 * @param allowNull If false (default) null is not considered an object.\r\n\t * @returns {boolean}\r\n\t */\r\n\texport function isObject(value:any, allowNull:boolean = false):boolean\r\n\t{\r\n\t\treturn typeof value===_OBJECT && (allowNull || value!==null) ;\r\n\t}\r\n\r\n\t/**\r\n\t * Guarantees a number value or NaN instead.\r\n\t * @param value\r\n\t * @returns {number}\r\n\t */\r\n\texport function numberOrNaN(value:any):number\r\n\t{\r\n\t\treturn isNaN(value) ? NaN : value;\r\n\t}\r\n\r\n\texport function of(target:any):TypeInfo\r\n\t{\r\n\t\treturn TypeInfo.getFor(target);\r\n\t}\r\n\r\n\texport function hasMember(value:any, property:string):boolean\r\n\t{\r\n\t\treturn value && !isPrimitive(value) && (property)in(value);\r\n\t}\r\n\r\n\texport function hasMemberOfType(instance:any, property:string, type:string):instance is T\r\n\t{\r\n\t\treturn hasMember(instance, property) && typeof(instance[property])===type;\r\n\t}\r\n\r\n\texport function isArrayLike(instance:any):instance is IArray\r\n\t{\r\n\t\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/package.json b/package.json index 04b083d6..e4bc9bd8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "2.7.1", + "version": "2.7.2", "license": "MIT", "author": "electricessence ", "description": "A JavaScript-Friendly .NET Based TypeScript Library.", diff --git a/source/System/Collections/Enumeration/Enumerator.js b/source/System/Collections/Enumeration/Enumerator.js index 653c86af..b8c046b7 100644 --- a/source/System/Collections/Enumeration/Enumerator.js +++ b/source/System/Collections/Enumeration/Enumerator.js @@ -7,13 +7,13 @@ 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(["require", "exports", "../../Types", "./ArrayEnumerator", "./IndexEnumerator"], factory); } })(function (require, exports) { 'use strict'; - var Types_1 = require('../../Types'); - var ArrayEnumerator_1 = require('./ArrayEnumerator'); - var IndexEnumerator_1 = require('./IndexEnumerator'); + var Types_1 = require("../../Types"); + var ArrayEnumerator_1 = require("./ArrayEnumerator"); + var IndexEnumerator_1 = require("./IndexEnumerator"); var EmptyEnumerator = (function () { function EmptyEnumerator() { } diff --git a/source/System/Collections/Enumeration/Enumerator.js.map b/source/System/Collections/Enumeration/Enumerator.js.map index 90ee81b4..b90bc9b3 100644 --- a/source/System/Collections/Enumeration/Enumerator.js.map +++ b/source/System/Collections/Enumeration/Enumerator.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Enumerator.js","sourceRoot":"","sources":["Enumerator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/mocha/System.Linq/Enumerable.js b/tests/mocha/System.Linq/Enumerable.js index 47d9c340..9b062024 100644 --- a/tests/mocha/System.Linq/Enumerable.js +++ b/tests/mocha/System.Linq/Enumerable.js @@ -156,4 +156,5 @@ assert.equal(group_B.sum(function (x) { return x.Salary; }), 1000000000.00, "Expected sum to be correct."); }); }); -//# sourceMappingURL=Enumerable.js.map \ No newline at end of file + +//# sourceMappingURL=Enumerable.js.map diff --git a/tests/mocha/System.Linq/Enumerable.js.map b/tests/mocha/System.Linq/Enumerable.js.map index 9146654c..5cb54263 100644 --- a/tests/mocha/System.Linq/Enumerable.js.map +++ b/tests/mocha/System.Linq/Enumerable.js.map @@ -1 +1 @@ -{"version":3,"file":"Enumerable.js","sourceRoot":"","sources":["Enumerable.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System.Linq/Enumerable.ts"],"names":[],"mappings":"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","file":"System.Linq/Enumerable.js","sourcesContent":["///\r\n\r\nimport {contains} from '../../../source/System/Collections/Array/Utility';\r\nimport Enumerable from '../../../source/System.Linq/Linq';\r\nvar assert = require('../../../node_modules/assert/assert');\r\n\r\n\r\ninterface TestItem\r\n{\r\n\ta:number;\r\n\tb:number;\r\n\tc:string;\r\n}\r\n\r\n\r\nconst source:{a:number,b:number,c:string}[] = Object.freeze([\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 2,\r\n\t\tc: \"a\"\r\n\t},\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 1,\r\n\t\tc: \"b\"\r\n\t},\r\n\t{\r\n\t\ta: 1,\r\n\t\tb: 3,\r\n\t\tc: \"c\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 2,\r\n\t\tc: \"d\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 1,\r\n\t\tc: \"e\"\r\n\t},\r\n\t{\r\n\t\ta: 2,\r\n\t\tb: 3,\r\n\t\tc: \"f\"\r\n\t}\r\n]);\r\n\r\nvar sourceEnumerable = Enumerable.fromArray(source);\r\n\r\nit(\".memoize()\", ()=>\r\n{\r\n\r\n\tvar source = sourceEnumerable;\r\n\tvar A = source.memoize();\r\n\r\n\tvar sum = A.sum(o=>o.a);\r\n\r\n\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after memoize pass 1.\");\r\n\r\n\tsum = A.sum(o=>o.b);\r\n\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after memoize pass 2.\");\r\n});\r\n\r\nit(\".where(predicate).memoize()\", ()=>\r\n{\r\n\tvar source = sourceEnumerable.where(i => i.a==1);\r\n\r\n\tvar sum:number, A = source;\r\n\r\n\tsum = A.sum(o=>o.a);\r\n\r\n\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after where pass 1.\");\r\n\r\n\tsum = A.sum(o=>o.b);\r\n\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after where pass 2.\");\r\n\r\n\r\n\tA = source.memoize();\r\n\r\n\tsum = A.sum(o=>o.a);\r\n\r\n\tassert.equal(sum, source.sum(o=>o.a), \"Values must be equal after memoize pass 1.\");\r\n\r\n\tsum = A.sum(o=>o.b);\r\n\tassert.equal(sum, source.sum(o=>o.b), \"Values must be equal after memoize pass 2.\");\r\n\r\n});\r\n\r\nit(\".orderBy(selector)\", ()=>\r\n{\r\n\r\n\tvar source = sourceEnumerable.reverse();\r\n\r\n\tvar A = source.orderBy(o=>o.a).toArray();\r\n\tfor(let i = 0; i<3; i++)\r\n\t{\r\n\t\tassert.equal(A[i].a, 1, \"First three 'a' values should be 1 when ordered by 'a'.\");\r\n\t}\r\n\tfor(let i = 3; i<6; i++)\r\n\t{\r\n\t\tassert.equal(A[i].a, 2, \"Last three 'a' values should be 2 when ordered by 'a'.\");\r\n\t}\r\n\r\n\tvar B = source.orderBy(o=> o.b).toArray();\r\n\tfor(let i = 0; i<2; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 1, \"First two 'b' values should be 1 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 2; i<4; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 4; i<6; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 3, \"Last two 'b' values should be 3 when ordered by 'b'.\");\r\n\t}\r\n\r\n});\r\n\r\n\r\nit(\".orderByDescending(selector)\", ()=>\r\n{\r\n\r\n\tvar source = sourceEnumerable.reverse();\r\n\r\n\tvar A = source.orderByDescending((o:TestItem)=> o.a).toArray();\r\n\tfor(let i = 0; i<3; i++)\r\n\t{\r\n\t\tassert.equal(A[i].a, 2, \"First three 'a' values should be 2 when ordered by 'a'.\");\r\n\t}\r\n\tfor(let i = 3; i<6; i++)\r\n\t{\r\n\t\tassert.equal(A[i].a, 1, \"Last three 'a' values should be 1 when ordered by 'a'.\");\r\n\t}\r\n\r\n\tvar B = source.orderByDescending((o:TestItem)=> o.b).toArray();\r\n\tfor(let i = 0; i<2; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 3, \"First two 'b' values should be 3 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 2; i<4; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 4; i<6; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 1, \"Last two 'b' values should be 1 when ordered by 'b'.\");\r\n\t}\r\n\r\n});\r\n\r\nit(\".orderBy(selector).thenBy(selector)\", ()=>\r\n{\r\n\r\n\tvar B = sourceEnumerable\r\n\t\t.orderBy(o => o.b)\r\n\t\t.thenBy(o => o.c)\r\n\t\t.toArray();\r\n\r\n\tfor(let i = 0; i<2; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 1, \"First two 'b' values should be 1 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 2; i<4; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 2, \"Second two 'b' values should be 2 when ordered by 'b'.\");\r\n\t}\r\n\tfor(let i = 4; i<6; i++)\r\n\t{\r\n\t\tassert.equal(B[i].b, 3, \"Last two 'b' values should be 3 when ordered by 'b'.\");\r\n\t}\r\n\r\n\tassert.equal(B[0].c, \"b\");\r\n\tassert.equal(B[1].c, \"e\");\r\n\r\n\tassert.equal(B[2].c, \"a\");\r\n\tassert.equal(B[3].c, \"d\");\r\n\r\n\tassert.equal(B[4].c, \"c\");\r\n\tassert.equal(B[5].c, \"f\");\r\n\r\n\r\n});\r\n\r\n\r\nit(\".groupBy(selector)\", ()=>\r\n{\r\n\tvar A_distinct = sourceEnumerable\r\n\t\t.select(o=>o.a).distinct();\r\n\tvar A = sourceEnumerable\r\n\t\t.groupBy(o=>o.a);\r\n\r\n\tassert.equal(A_distinct.count(), A.count(), \"Number of groups should match distinct values.\");\r\n\r\n\tvar B = sourceEnumerable\r\n\t\t.groupBy(o=>o.b);\r\n\tvar B_distinct = sourceEnumerable\r\n\t\t.select(o=>o.b).distinct();\r\n\r\n\tassert.equal(B_distinct.count(), B.count(), \"Number of groups should match distinct values.\");\r\n\r\n\r\n\tconst COMPANY_A = \"Microsoft\", COMPANY_B = \"Hell Corp.\";\r\n\tvar objArray = [\r\n\t\t{ Name: \"John\", Id: 0, Salary: 1300.00, Company: COMPANY_A },\r\n\t\t{ Name: \"Peter\", Id: 1, Salary: 4800.50, Company: COMPANY_A },\r\n\t\t{ Name: \"Sandra\", Id: 2, Salary: 999.99, Company: COMPANY_A },\r\n\t\t{ Name: \"Me\", Id: 3, Salary: 1000000000.00, Company: COMPANY_B }\r\n\t];\r\n\tvar groups = Enumerable.from(objArray).groupBy(x => x.Company);\r\n\tvar companies = groups.select(x => x.key).toArray();\r\n\r\n\tassert.equal(companies.length,2, \"2 groups expected.\");\r\n\tassert.ok(contains(companies,COMPANY_A), \"Expect \"+COMPANY_A);\r\n\tassert.ok(contains(companies,COMPANY_B), \"Expect \"+COMPANY_B);\r\n\tvar group_A = groups.where(g=>g.key==COMPANY_A).single();\r\n\tvar group_B = groups.where(g=>g.key==COMPANY_B).single();\r\n\tassert.equal(group_A.count(),3, \"Expected count of 3.\");\r\n\tassert.equal(group_A.sum(x => x.Salary),7100.49, \"Expected sum to be correct.\");\r\n\tassert.equal(group_B.count(),1, \"Expected count of 1.\");\r\n\tassert.equal(group_B.sum(x => x.Salary),1000000000.00, \"Expected sum to be correct.\");\r\n\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Compare.js b/tests/mocha/System/Collections/Arrays/Compare.js index b7350abe..b64c8829 100644 --- a/tests/mocha/System/Collections/Arrays/Compare.js +++ b/tests/mocha/System/Collections/Arrays/Compare.js @@ -9,4 +9,5 @@ "use strict"; var assert = require('../../../../../node_modules/assert/assert'); }); -//# sourceMappingURL=Compare.js.map \ No newline at end of file + +//# sourceMappingURL=Compare.js.map diff --git a/tests/mocha/System/Collections/Arrays/Compare.js.map b/tests/mocha/System/Collections/Arrays/Compare.js.map index a60db0e3..304fc78e 100644 --- a/tests/mocha/System/Collections/Arrays/Compare.js.map +++ b/tests/mocha/System/Collections/Arrays/Compare.js.map @@ -1 +1 @@ -{"version":3,"file":"Compare.js","sourceRoot":"","sources":["Compare.ts"],"names":[],"mappings":";;;;;;;;;IAGA,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Compare.ts"],"names":[],"mappings":";;;;;;;;;IAGA,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC","file":"System/Collections/Arrays/Compare.js","sourcesContent":["///\r\n\r\nimport * as ArrayCompare from '../../../../../source/System/Collections/Array/Compare';\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Dispatch.js b/tests/mocha/System/Collections/Arrays/Dispatch.js index 7887d973..22f09991 100644 --- a/tests/mocha/System/Collections/Arrays/Dispatch.js +++ b/tests/mocha/System/Collections/Arrays/Dispatch.js @@ -25,4 +25,5 @@ assert.equal(result, 2400); }); }); -//# sourceMappingURL=Dispatch.js.map \ No newline at end of file + +//# sourceMappingURL=Dispatch.js.map diff --git a/tests/mocha/System/Collections/Arrays/Dispatch.js.map b/tests/mocha/System/Collections/Arrays/Dispatch.js.map index 9c6d7f8a..ff5657b4 100644 --- a/tests/mocha/System/Collections/Arrays/Dispatch.js.map +++ b/tests/mocha/System/Collections/Arrays/Dispatch.js.map @@ -1 +1 @@ -{"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["Dispatch.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yDAAyD,CAAC,CAAA;IAC/E,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElE,EAAE,CAAC,gCAAgC,EAAE;QAEpC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG;YACP,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;SACD,CAAC;QAEF,kBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1B,kBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Dispatch.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yDAAyD,CAAC,CAAA;IAC/E,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElE,EAAE,CAAC,gCAAgC,EAAE;QAEpC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG;YACP,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;YACD,UAAC,CAAQ;gBAER,MAAM,IAAI,CAAC,CAAC;YACb,CAAC;SACD,CAAC;QAEF,kBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1B,kBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC","file":"System/Collections/Arrays/Dispatch.js","sourcesContent":["///\r\n\r\nimport dispatch from \"../../../../../source/System/Collections/Array/Dispatch\";\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nit(\"should apply closures in order\", ()=>\r\n{\r\n\tvar result = 0;\r\n\tvar a = [\r\n\t\t(p:number)=>\r\n\t\t{\r\n\t\t\tresult += p;\r\n\t\t},\r\n\t\t(p:number)=>\r\n\t\t{\r\n\t\t\tresult *= p;\r\n\t\t}\r\n\t];\r\n\r\n\tdispatch(a, 10);\r\n\tassert.equal(result, 100);\r\n\r\n\tdispatch(a, 20);\r\n\tassert.equal(result, 2400);\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Procedure.js b/tests/mocha/System/Collections/Arrays/Procedure.js index 5fd4ad65..62148c97 100644 --- a/tests/mocha/System/Collections/Arrays/Procedure.js +++ b/tests/mocha/System/Collections/Arrays/Procedure.js @@ -44,4 +44,5 @@ }); }); }); -//# sourceMappingURL=Procedure.js.map \ No newline at end of file + +//# sourceMappingURL=Procedure.js.map diff --git a/tests/mocha/System/Collections/Arrays/Procedure.js.map b/tests/mocha/System/Collections/Arrays/Procedure.js.map index c3c53800..35f5f9ff 100644 --- a/tests/mocha/System/Collections/Arrays/Procedure.js.map +++ b/tests/mocha/System/Collections/Arrays/Procedure.js.map @@ -1 +1 @@ -{"version":3,"file":"Procedure.js","sourceRoot":"","sources":["Procedure.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,cAAc,WAAM,0DAA0D,CAAC,CAAA;IAC3F,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAGlE,IACA,IAAI,GAAM,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAC7D,CAAC,GAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAC1C,CAAC,GAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACrD,GAAG,GAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAC5C,OAAO,GAAG,GAAG,GAAC,CAAC,EACf,OAAO,GAAG,CAAC,GAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC;IAGnC,2BACC,MAAe,EACf,KAAY,EACZ,CAA6C;QAE7C,EAAE,CAAC,eAAe,EAAE;YAEnB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,YAAY,GAAG,KAAK,EAAE;YAExB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,cAAc,EAAE;QAExB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAE5B,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,kBAAkB,EAAE;QAE5B,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,cAAc,EAAE;QAExB,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QAExB,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Procedure.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,cAAc,WAAM,0DAA0D,CAAC,CAAA;IAC3F,IAAI,MAAM,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAGlE,IACA,IAAI,GAAM,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAC7D,CAAC,GAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAC1C,CAAC,GAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACrD,GAAG,GAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAC5C,OAAO,GAAG,GAAG,GAAC,CAAC,EACf,OAAO,GAAG,CAAC,GAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC;IAGnC,2BACC,MAAe,EACf,KAAY,EACZ,CAA6C;QAE7C,EAAE,CAAC,eAAe,EAAE;YAEnB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,YAAY,GAAG,KAAK,EAAE;YAExB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,cAAc,EAAE;QAExB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAE5B,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,kBAAkB,EAAE;QAE5B,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,cAAc,EAAE;QAExB,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QAExB,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,EAAE;YAEb,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Collections/Arrays/Procedure.js","sourcesContent":["///\r\n\r\nimport * as ArrayProcedure from '../../../../../source/System/Collections/Array/Procedure';\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\n\r\nconst\r\nminA = -10, maxA = 2000, minB = -Infinity, maxB = Infinity,\r\na = [5, minA, -1, maxA, -2, NaN, 20],\r\nb = [5, 2000, maxB, -1, NaN, -10, minB, -2, 20],\r\nsum = 5 + minA + (-1) + maxA + (-2) + 20,\r\naverage = sum/6, // Not including NaN\r\nproduct = 5*minA*(-1)*maxA*(-2)*20;\r\n\r\n\r\nfunction procedureShouldBe(\r\n\tsource:number[],\r\n\tvalue:number,\r\n\tp:(array:number[], ignoreNaN:boolean)=>number)\r\n{\r\n\tit('should be NaN', ()=>\r\n\t{\r\n\t\tassert.ok(isNaN(p(source, false)));\r\n\t});\r\n\tit('should be ' + value, ()=>\r\n\t{\r\n\t\tassert.equal(p(source, true), value);\r\n\t});\r\n}\r\n\r\ndescribe(\".sum(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, sum, ArrayProcedure.sum);\r\n});\r\n\r\ndescribe(\".average(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, average, ArrayProcedure.average);\r\n});\r\n\r\n\r\ndescribe(\".product(source)\", ()=>\r\n{\r\n\tprocedureShouldBe(a, product, ArrayProcedure.product);\r\n});\r\n\r\n\r\ndescribe(\".min(source)\", ()=>\r\n{\r\n\tdescribe(\"a\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(a, minA, ArrayProcedure.min);\r\n\t});\r\n\r\n\tdescribe(\"b\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(b, minB, ArrayProcedure.min);\r\n\t});\r\n});\r\n\r\ndescribe(\".max(source)\", ()=>\r\n{\r\n\tdescribe(\"a\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(a, maxA, ArrayProcedure.max);\r\n\t});\r\n\r\n\tdescribe(\"b\", ()=>\r\n\t{\r\n\t\tprocedureShouldBe(b, maxB, ArrayProcedure.max);\r\n\t});\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Arrays/Utility.js b/tests/mocha/System/Collections/Arrays/Utility.js index 7879d22d..2ac3f172 100644 --- a/tests/mocha/System/Collections/Arrays/Utility.js +++ b/tests/mocha/System/Collections/Arrays/Utility.js @@ -98,4 +98,5 @@ }); }); }); -//# sourceMappingURL=Utility.js.map \ No newline at end of file + +//# sourceMappingURL=Utility.js.map diff --git a/tests/mocha/System/Collections/Arrays/Utility.js.map b/tests/mocha/System/Collections/Arrays/Utility.js.map index 37403da2..c5c44219 100644 --- a/tests/mocha/System/Collections/Arrays/Utility.js.map +++ b/tests/mocha/System/Collections/Arrays/Utility.js.map @@ -1 +1 @@ -{"version":3,"file":"Utility.js","sourceRoot":"","sources":["Utility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Utility.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Utility.js","sourcesContent":["///\r\n\r\nimport * as Arrays from '../../../../../source/System/Collections/Array/Compare';\r\nimport * as ArrayUtility from '../../../../../source/System/Collections/Array/Utility';\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\n\r\n// Min/Max tests...\r\nconst minA = -10, maxA = 2000;\r\n\r\nfunction initTestArray()\r\n{\r\n\treturn [5, minA, -1, maxA, -2, NaN, 20]\r\n}\r\n\r\ndescribe(\".initialize(length)\", ()=>\r\n{\r\n\tfunction testLength(len:number):void\r\n\t{\r\n\t\tit(\"should be length \" + len, ()=>\r\n\t\t{\r\n\t\t\tlen = 100;\r\n\t\t\tvar a = ArrayUtility.initialize(len);\r\n\t\t\tassert.equal(a.length, len, \".length should be \" + len);\r\n\t\t});\r\n\t}\r\n\r\n\ttestLength(100);\r\n\ttestLength(100000);\r\n});\r\n\r\n\r\ndescribe(\".copy(source) & .equals(old,new)\", ()=>\r\n{\r\n\tit(\"should equal\", ()=>\r\n\t{\r\n\t\tvar s1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3];\r\n\t\tvar s2 = ArrayUtility.copy(s1);\r\n\t\tassert.ok(Arrays.areEqual(s1, s2));\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".contains(source,value)\", ()=>\r\n{\r\n\tvar a = initTestArray();\r\n\tit(\"should return true for a value contained\", ()=>\r\n\t{\r\n\t\tassert.ok(ArrayUtility.contains(a, -1));\r\n\t});\r\n\tit(\"should return false for a value that is not present\", ()=>\r\n\t{\r\n\t\tassert.ok(!ArrayUtility.contains(a, -9876));\r\n\t});\r\n});\r\n\r\ndescribe(\".findIndex(source,of)\", ()=>\r\n{\r\n\tvar a = initTestArray();\r\n\tit(\"should find and return the correct index\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.findIndex(a, (v:number)=>v== -1), 2);\r\n\t});\r\n\tit(\"should return -1 when the value is not present\", ()=>\r\n\t{\r\n\t\tassert.equal(ArrayUtility.findIndex(a, (v:number)=> v== -9876), -1);\r\n\t});\r\n});\r\n\r\ndescribe(\".register(target,value)\", ()=>\r\n{\r\n\tit(\"should add a value that isn't present\", ()=>\r\n\t{\r\n\t\tvar a = initTestArray();\r\n\t\tvar len = a.length;\r\n\t\tassert.ok(ArrayUtility.register(a, -9876));\r\n\t\tassert.equal(a.length, len + 1);\r\n\t});\r\n\r\n\tit(\"should not add a value that is present\", ()=>\r\n\t{\r\n\t\tvar a = initTestArray();\r\n\t\tvar len = a.length;\r\n\t\tassert.ok(!ArrayUtility.register(a, -1));\r\n\t\tassert.equal(a.length, len);\r\n\t});\r\n});\r\n\r\n\r\ndescribe(\".remove(target,value)\", ()=>\r\n{\r\n\tit(\"should remove the item/value request and return the number of instances removed\", ()=>\r\n\t{\r\n\t\tvar s = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3];\r\n\t\tvar len = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 9), 1, \"Only 9 removed once\");\r\n\t\tassert.equal(s.length, len - 1, \".length should be less by one\");\r\n\t\tassert.equal(s[1], 8, \"Index [1] is now 8\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 2), 2, \"2 removed twice\");\r\n\t\tassert.equal(s.length, len - 2, \".length should be less by two\");\r\n\t\tassert.equal(s[7], 1, \"Index [7] is now 1\");\r\n\t\tassert.equal(s[10], 3, \"Index [10] is now 3\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.equal(ArrayUtility.remove(s, 15), 0, \"15 does not exist\");\r\n\t\tassert.equal(s.length, len, \".length should be the same\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.ok(ArrayUtility.removeIndex(s, 5), \"Index [5] removed\");\r\n\t\tassert.equal(s.length, len - 1, \".length should be less by one\");\r\n\t\tlen = s.length;\r\n\r\n\t\tassert.ok(!ArrayUtility.removeIndex(s, 15), \"Index [15] doesn't exist\");\r\n\t\tassert.equal(s.length, len, \".length should be the same\");\r\n\t});\r\n\r\n});\r\n\r\n/*\tUtility.applyTo skipped.\r\n It has too many permutations while being a straight forward function. */\r\n\r\n\r\ndescribe(\".repeat(value,count)\", ()=>\r\n{\r\n\tit(\"should correctly repeat the value requested\", ()=>\r\n\t{\r\n\t\tvar value = 10, count = 3;\r\n\t\tvar r = ArrayUtility.repeat(value, count);\r\n\t\tassert.ok(r.length==count, \".length should be 3\");\r\n\t\tfor(let i = 0; i\r\n\r\nimport {TypeInfo} from '../../../../../source/System/Types';\r\nimport Queue from '../../../../../source/System/Collections/Queue';\r\nimport * as Enumerator from '../../../../../source/System/Collections/Enumeration/Enumerator';\r\nvar assert = require('../../../../../node_modules/assert/assert');\r\n\r\nit(\".from(IEnumerable)\",()=>{\r\n\tvar a = [0,1,2,3,4];\r\n\tvar len = a.length, count = 0;\r\n\tvar q = new Queue(a);\r\n\tvar type = new TypeInfo(q);\r\n\ttype.member(\"getEnumerator\");\r\n\tvar test = Enumerator.from(q);\r\n\twhile(test.moveNext()) {\r\n\t\tcount++;\r\n\t}\r\n\tassert.equal(count,len);\r\n});\r\n\r\nit(\".from(Array)\",()=>{\r\n\tvar a = [0,1,2,3,4];\r\n\tvar type = new TypeInfo(a);\r\n\ttype.member(\"length\");\r\n\tvar len = a.length, count = 0;\r\n\tvar test = Enumerator.from({getEnumerator:()=>Enumerator.from(a)});\r\n\twhile(test.moveNext()) {\r\n\t\tcount++;\r\n\t}\r\n\tassert.equal(count,len);\r\n});\r\n\r\nit(\".from(IArray)\",()=>{\r\n\tvar a:IArray = {0:0,1:1,2:2,3:3,4:4,length:5};\r\n\tvar type = new TypeInfo(a);\r\n\ttype.member(\"length\");\r\n\tvar len = a.length, count = 0;\r\n\tvar test = Enumerator.from(a);\r\n\twhile(test.moveNext()) {\r\n\t\tcount++;\r\n\t}\r\n\tassert.equal(count,len);\r\n});\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/ICollection.js b/tests/mocha/System/Collections/ICollection.js index 77ba6c53..9da0d2bc 100644 --- a/tests/mocha/System/Collections/ICollection.js +++ b/tests/mocha/System/Collections/ICollection.js @@ -140,4 +140,5 @@ } exports.InstanceCollection = InstanceCollection; }); -//# sourceMappingURL=ICollection.js.map \ No newline at end of file + +//# sourceMappingURL=ICollection.js.map diff --git a/tests/mocha/System/Collections/ICollection.js.map b/tests/mocha/System/Collections/ICollection.js.map index 066f5927..119f2151 100644 --- a/tests/mocha/System/Collections/ICollection.js.map +++ b/tests/mocha/System/Collections/ICollection.js.map @@ -1 +1 @@ -{"version":3,"file":"ICollection.js","sourceRoot":"","sources":["ICollection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/ICollection.ts"],"names":[],"mappings":";;;;;;;;;IAIA,IAAY,EAAE,WAAM,qDAAqD,CAAC,CAAA;IAC1E,wCAAoC,8DAA8D,CAAC,CAAA;IACnG,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAM/D,iBACC,UAA8B;QAE9B,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE7B,QAAQ,CAAC,QAAQ,EAAE;YAElB,cAAc,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IATe,eAAO,UAStB,CAAA;IAED,wBAAwB,KAAS,EAAE,OAA0C;QAA1C,uBAA0C,GAA1C,mCAA0C;QAE5E,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,sBAAyB,CAAgB,EAAE,CAAK;QAE/C,EAAE,CAAC,aAAa,EAAE;YAEjB,IAAI,KAAY,CAAC;YACjB,GAAG,CAAA,CAAU,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;gBAAX,IAAI,CAAC,UAAA;gBAER,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBACjD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACT,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,+BAA+B,CAAC,CAAC;gBAClE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC;aAC5D;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,2BAA8B,CAAgB;QAE7C,EAAE,CAAC,2BAA2B,EAAE;YAE/B,IAAI,KAAK,GAAU,CAAC,CAAC,KAAK,CAAC;YAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,EAAE,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC;gBAAC,MAAM,sEAAsE,CAAC;YAEzF,IAAI,CAAC,GAAO,EAAE,CAAC;YAEf,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,8DAA8D,CAAC,CAAC;YAC9F,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,+DAA+D,CAAC,CAAC;YAG1F,GAAG,CAAA,CAAU,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;gBAAX,IAAI,CAAC,UAAA;gBAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAAA;YAEzB,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAI,KAAK,GAAG,SAAS,CAAC,CAAC;YAE5C,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,0GAA0G,CAAC,CAAC;YACtJ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAC,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,mFAAmF,CAAC,CAAC;YACrI,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,+DAA+D,CAAC,CAAC;YAG1F,GAAG,CAAA,CAAU,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;gBAAX,IAAI,CAAC,UAAA;gBAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAAA;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IAEJ,CAAC;IAED,wBAA2B,CAAgB;QAE1C,EAAE,CAAC,iBAAiB,EAAE;YAGrB,IAAI,KAAY,CAAC;YACjB,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAChC,EAAE,CAAA,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC;gBAAC,MAAM,wDAAwD,CAAC;YAE7E,IAAI,CAAC,GAAO,EAAE,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAExB,IACA,CAAC;gBACA,GAAG,CAAA,CAAU,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;oBAAX,IAAI,CAAC,UAAA;oBAER,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACrB,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,0CAA0C,CAAC,CAAC;oBACzE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,wCAAwC,CAAC,CAAC;iBACpE;YACF,CACA;YAAA,KAAK,CAAA,CAAC,EAAE,CAAC,CACT,CAAC;gBACA,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,YAAU,CAAC,iCAAuB,CAAC,CAAC,CAC3C,CAAC;gBAED,CAAC;gBACD,IAAI,CACJ,CAAC;oBACA,MAAM,EAAE,CAAC;gBACV,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC;IAED,oBACC,IAAW,EACX,UAAyB,EACzB,YAAgB;QAEhB,EAAE,CAAA,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAG,CAAC,CAAC,CAAC;YAClC,MAAM,qFAAqF,CAAC;QAM7F,QAAQ,CAAC,IAAI,EAAE;YAEd,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACvC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC9B,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3B,EAAE,CAAC,sCAAsC,EAAE;gBAE1C,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAA;QAEH,CAAC,CAAC,CAAC;IAEJ,CAAC;IAxBe,kBAAU,aAwBzB,CAAA;IAED,0BACC,IAAW,EACX,UAA8B;QAI9B,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,EAAE,UAAU,EAAE;YAC9C,EAAE;YACF,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;SACP,CAAC,CAAA;IAGH,CAAC;IAfe,wBAAgB,mBAe/B,CAAA;IAED,0BACC,IAAW,EACX,UAA8B;QAG9B,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,EAAE,UAAU,EAAE;YAC9C,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC;YACD,GAAG;SACH,CAAC,CAAC;IAGJ,CAAC;IAjBe,wBAAgB,mBAiB/B,CAAA;IAED,4BACC,IAAW,EACX,UAA8B;QAE9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,EAAE,UAAU,EAAE;YAC9C,SAAS;YACT,EAAE;YACF,MAAM;YACN,EAAE;YACF,MAAM;SACN,CAAC,CAAA;IACH,CAAC;IAbe,0BAAkB,qBAajC,CAAA","file":"System/Collections/ICollection.js","sourcesContent":["///\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\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n/*\r\n * This is a reusable set of unit test for use with any ICollection to ensure all features of that ICollection function properly.\r\n */\r\n\r\nexport function General(\r\n\tcollection:ICollection):void\r\n{\r\n\tvar count = collection.count;\r\n\r\n\tdescribe(\".count\", ()=>\r\n\t{\r\n\t\tassertIsNumber(count);\r\n\t});\r\n}\r\n\r\nfunction assertIsNumber(value:any, message:string = \"should be a real number\")\r\n{\r\n\tassert.ok(!isNaN(value), message);\r\n}\r\n\r\nfunction assertAdding(c:ICollection, a:T[])\r\n{\r\n\tit(\".add(value)\", ()=>\r\n\t{\r\n\t\tvar count:number;\r\n\t\tfor(let v of a)\r\n\t\t{\r\n\t\t\tassertIsNumber(count = c.count, \"before adding\");\r\n\t\t\tc.add(v);\r\n\t\t\tassertIsNumber(c.count, \"after adding\");\r\n\t\t\tassert.equal(c.count, count + 1, \"count should have incremented\");\r\n\t\t\tassert.ok(c.contains(v), \"'value' must exist after adding\");\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction assertCopyToClear(c:ICollection)\r\n{\r\n\tit(\".copyTo(other) & .clear()\", ()=>\r\n\t{\r\n\t\tvar count:number = c.count;\r\n\t\tassertIsNumber(count);\r\n\t\tif(count<2) throw \"Can't assert '.copyTo()' or '.clear()' without at least (2) entries.\";\r\n\r\n\t\tvar a:T[] = [];\r\n\r\n\t\tc.copyTo(a);\r\n\t\tassertIsNumber(c.count, 'count');\r\n\t\tassert.equal(a.length, count, \"An empty array's length should match the count if copied to.\");\r\n\t\tc.clear();\r\n\t\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t\t// Restore contents.\r\n\t\tfor(let v of a) c.add(v);\r\n\r\n\t\tvar extraSize = 10;\r\n\t\tvar b = AU.initialize(count + extraSize);\r\n\r\n\t\tc.copyTo(b, 1);\r\n\t\tassert.equal(b.length, count + extraSize, \"An array's length should be equal to it's original length if the count added does not exceed the length.\");\r\n\t\tc.copyTo(b, count + extraSize - 1);\r\n\t\tassert.equal(b.length, 2*count + extraSize - 1, \"An array's length should be equal to index+count if the count exceeds the length.\");\r\n\t\tc.clear();\r\n\t\tassert.equal(c.count, 0, \"A collection's count should be zero after calling '.clear()'.\");\r\n\r\n\t\t// Restore contents.\r\n\t\tfor(let v of a) c.add(v);\r\n\t\tassert.equal(c.count, a.length, \"A collection's count should be equal to the number of items added.\");\r\n\t});\r\n\r\n}\r\n\r\nfunction assertRemoving(c:ICollection)\r\n{\r\n\tit(\".remove(values)\", ()=>\r\n\t{\r\n\r\n\t\tvar count:number;\r\n\t\tassertIsNumber(count = c.count);\r\n\t\tif(c.count<2) throw \"Can't assert '.remove()' without at least (2) entries.\";\r\n\r\n\t\tvar a:T[] = [];\r\n\t\tc.copyTo(a);\r\n\t\tassertIsNumber(c.count);\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tfor(let v of a)\r\n\t\t\t{\r\n\t\t\t\tcount -= c.remove(v); // More than one instance can exist and it should remove both.\r\n\t\t\t\tassertIsNumber(c.count, \"after removing\");\r\n\t\t\t\tassert.equal(c.count, count, \"'count' should increment after removing.\");\r\n\t\t\t\tassert.ok(!c.contains(v), \"'value' must not exist after removing.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(ex)\r\n\t\t{\r\n\t\t\tif((ex)instanceof(NotImplementedException))\r\n\t\t\t{\r\n\t\t\t\t//console.log(ex);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthrow ex;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n}\r\n\r\nexport function Collection(\r\n\tname:string,\r\n\tcollection:ICollection,\r\n\tsourceValues:T[]):void\r\n{\r\n\tif(sourceValues.indexOf(null)!= -1)\r\n\t\tthrow \"Source values should not contain null as checking against null is one of the tests.\";\r\n\r\n\t/* The following tests inherently test:\r\n\t - count\r\n\t - contains\r\n\t */\r\n\tdescribe(name, ()=>\r\n\t{\r\n\t\tassertAdding(collection, sourceValues);\r\n\t\tassertCopyToClear(collection);\r\n\t\tassertRemoving(collection);\r\n\t\tit(\"equality comparison should be strict\", ()=>\r\n\t\t{\r\n\t\t\tassert.ok(!collection.contains(null));\r\n\t\t})\r\n\r\n\t});\r\n\r\n}\r\n\r\nexport function StringCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'string>', collection, [\r\n\t\t\"\",\r\n\t\t\"lorem\",\r\n\t\t\"ipsum\",\r\n\t\t\"dolem\",\r\n\t\t\"ipsum\" // Have a repeated entry to test removing multiple.\r\n\t])\r\n\r\n\r\n}\r\n\r\nexport function NumberCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'number>', collection, [\r\n\t\t0,\r\n\t\t1,\r\n\t\t1, // Have a repeated entry to test removing multiple.\r\n\t\t2,\r\n\t\t3,\r\n\t\t5,\r\n\t\t8,\r\n\t\tNaN // Must be able to reconginze NaN\r\n\t]);\r\n\r\n\r\n}\r\n\r\nexport function InstanceCollection(\r\n\tname:string,\r\n\tcollection:ICollection):void\r\n{\r\n\tvar repeat = {};\r\n\t//noinspection SpellCheckingInspection\r\n\tCollection(name + '<' + 'Object>', collection, [\r\n\t\tundefined,\r\n\t\t{},\r\n\t\trepeat,\r\n\t\t{},\r\n\t\trepeat // Have a repeated entry to test removing multiple.\r\n\t])\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/LinkedList.js b/tests/mocha/System/Collections/LinkedList.js index e6b1e31d..d96ccaa7 100644 --- a/tests/mocha/System/Collections/LinkedList.js +++ b/tests/mocha/System/Collections/LinkedList.js @@ -42,4 +42,5 @@ }); }); }); -//# sourceMappingURL=LinkedList.js.map \ No newline at end of file + +//# sourceMappingURL=LinkedList.js.map diff --git a/tests/mocha/System/Collections/LinkedList.js.map b/tests/mocha/System/Collections/LinkedList.js.map index 6d011567..7a8544d4 100644 --- a/tests/mocha/System/Collections/LinkedList.js.map +++ b/tests/mocha/System/Collections/LinkedList.js.map @@ -1 +1 @@ -{"version":3,"file":"LinkedList.js","sourceRoot":"","sources":["LinkedList.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,kDAAkD,CAAC,CAAA;IAC1E,wBAAuB,qDAAqD,CAAC,CAAA;IAC7E,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACzE,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACzE,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAE3E,QAAQ,CAAC,wBAAwB,EAAE;QAElC,IAAI,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,oBAAU,CAAS,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAI3B,EAAE,CAAC,qCAAqC,EAAE;YAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE;YAExD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE;YAEvD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IAGJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/LinkedList.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,kDAAkD,CAAC,CAAA;IAC1E,wBAAuB,qDAAqD,CAAC,CAAA;IAC7E,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACzE,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IACzE,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAE3E,QAAQ,CAAC,wBAAwB,EAAE;QAElC,IAAI,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,KAAK,GAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,oBAAU,CAAS,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAI3B,EAAE,CAAC,qCAAqC,EAAE;YAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE;YAExD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE;YAEvD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,kBAAQ,CAAC,YAAY,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IAGJ,CAAC,CAAC,CAAC","file":"System/Collections/LinkedList.js","sourcesContent":["///\r\n\r\nimport * as ICollectionTests from \"./ICollection\";\r\nimport LinkedList from \"../../../../source/System/Collections/LinkedList\";\r\nimport {areEqual} from \"../../../../source/System/Collections/Array/Compare\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nICollectionTests.StringCollection('LinkedList',new LinkedList());\r\nICollectionTests.NumberCollection('LinkedList',new LinkedList());\r\nICollectionTests.InstanceCollection('LinkedList',new LinkedList());\r\n\r\ndescribe('.addAfter & .addBefore', ()=>\r\n{\r\n\tvar part1:number[] = [1,2,3], part2:number[] = [5,6,7];\r\n\tvar parts = part1.concat(part2), len1 = parts.length;\r\n\tvar list = new LinkedList(parts);\r\n\tvar list1 = list.toArray();\r\n\tvar count1 = list.count;\r\n\r\n\tvar partsSpliced = part1.concat([4]).concat(part2);\r\n\tvar len2 = partsSpliced.length;\r\n\tlist.find(5).addBefore(4);\r\n\tvar count2 = list.count;\r\n\tvar list2 = list.toArray();\r\n\tlist.find(6).addAfter(6.5);\r\n\tvar count3 = list.count;\r\n\tvar list3 = list.toArray();\r\n\r\n\r\n\t\r\n\tit('should match expected initial count', ()=>\r\n\t{\r\n\t\tassert.equal(len1, count1);\r\n\t\tassert.ok(areEqual(parts,list1));\r\n\t});\r\n\r\n\tit('should match expected count after inserting before', ()=>\r\n\t{\r\n\t\tassert.equal(len2, count2);\r\n\t\tassert.ok(areEqual(partsSpliced,list2), partsSpliced.join(',') + \" != \" + list2.join(',') );\r\n\t});\r\n\r\n\tit('should match expected count after inserting after', ()=>\r\n\t{\r\n\t\tassert.equal(len2+1, count3);\r\n\t\tassert.ok(areEqual(partsSpliced,list2), list3.join(',') );\r\n\t});\r\n\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js index 879ee625..eb9198fd 100644 --- a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js +++ b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js @@ -18,4 +18,5 @@ { key: 'F', value: 6 } ]); }); -//# sourceMappingURL=OrderedStringKeyDictionary.js.map \ No newline at end of file + +//# sourceMappingURL=OrderedStringKeyDictionary.js.map diff --git a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map index cfdcebf2..10c5c25f 100644 --- a/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map +++ b/tests/mocha/System/Collections/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,+EAA+E,CAAC,CAAA;IAEvH,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;QACC,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;KACpB,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,+EAA+E,CAAC,CAAA;IAEvH,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;QACC,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;QACpB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC;KACpB,CAAC,CAAC","file":"System/Collections/OrderedStringKeyDictionary.js","sourcesContent":["/// \r\nimport * as ICollectionTests from './ICollection';\r\nimport OrderedStringKeyDictionary from '../../../../source/System/Collections/Dictionaries/OrderedStringKeyDictionary';\r\n\r\nICollectionTests.Collection>(\r\n\t'OrderedStringKeyDictionary',\r\n\tnew OrderedStringKeyDictionary(),\r\n\t[\r\n\t\t{key: 'A', value: 1},\r\n\t\t{key: 'B', value: 2},\r\n\t\t{key: 'C', value: 3},\r\n\t\t{key: 'D', value: 4},\r\n\t\t{key: 'E', value: 5},\r\n\t\t{key: 'F', value: 6}\r\n\t]);\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Queue.js b/tests/mocha/System/Collections/Queue.js index 97c971fe..01a7dcc4 100644 --- a/tests/mocha/System/Collections/Queue.js +++ b/tests/mocha/System/Collections/Queue.js @@ -13,4 +13,5 @@ ICollectionTests.NumberCollection('Queue', new Queue_1.default()); ICollectionTests.InstanceCollection('Queue', new Queue_1.default()); }); -//# sourceMappingURL=Queue.js.map \ No newline at end of file + +//# sourceMappingURL=Queue.js.map diff --git a/tests/mocha/System/Collections/Queue.js.map b/tests/mocha/System/Collections/Queue.js.map index feb60257..70749243 100644 --- a/tests/mocha/System/Collections/Queue.js.map +++ b/tests/mocha/System/Collections/Queue.js.map @@ -1 +1 @@ -{"version":3,"file":"Queue.js","sourceRoot":"","sources":["Queue.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,6CAA6C,CAAC,CAAA;IAEhE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Queue.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,6CAA6C,CAAC,CAAA;IAEhE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC","file":"System/Collections/Queue.js","sourcesContent":["import * as ICollectionTests from './ICollection';\r\nimport Queue from '../../../../source/System/Collections/Queue';\r\n\r\nICollectionTests.StringCollection('Queue', new Queue());\r\nICollectionTests.NumberCollection('Queue', new Queue());\r\nICollectionTests.InstanceCollection('Queue', new Queue());\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Collections/Set.js b/tests/mocha/System/Collections/Set.js index fb60a2b4..8def722a 100644 --- a/tests/mocha/System/Collections/Set.js +++ b/tests/mocha/System/Collections/Set.js @@ -144,4 +144,5 @@ }); }); }); -//# sourceMappingURL=Set.js.map \ No newline at end of file + +//# sourceMappingURL=Set.js.map diff --git a/tests/mocha/System/Collections/Set.js.map b/tests/mocha/System/Collections/Set.js.map index 8e8c208d..b8882ac3 100644 --- a/tests/mocha/System/Collections/Set.js.map +++ b/tests/mocha/System/Collections/Set.js.map @@ -1 +1 @@ -{"version":3,"file":"Set.js","sourceRoot":"","sources":["Set.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Collections/Set.ts"],"names":[],"mappings":";;;;;;;;;IAGA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,oBAAgB,2CAA2C,CAAC,CAAA;IAC5D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAG/D,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,EAAE,IAAI,aAAG,EAAU,EAAE;QAClE,EAAE;QACF,OAAO;QACP,OAAO;QACP,OAAO;KACP,CAAC,CAAC;IAEH,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,EAAE,IAAI,aAAG,EAAU,EAAE;QAClE,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,EAAE;QACF,EAAE;KACF,CAAC,CAAC;IAGH,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY,EAAE,IAAI,aAAG,EAAa,EAAE;QACxE,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,CAAC;QACD,EAAE;QACF,EAAE;QACF,EAAE;QACF,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;KAEL,CAAC,CAAC;IAEH,IAAI,gBAAgB,GAAG;QACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;KACvD,CAAC;IACF,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,CAAC,CAAC;IAGhD,EAAE,CAAC,2BAA2B,EAAE;QAE/B,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;QAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE1B,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,cAAc,EAAE;QAGxB,EAAE,CAAC,+EAA+E,EAAE;YAEnF,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YAEd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC;YACrF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kCAAkC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,mCAAmC,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,oCAAoC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAG3B,EAAE,CAAC,mEAAmE,EAAE;YAEvE,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,iDAAiD,CAAC,CAAC;YACxG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,oCAAoC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,uBAAuB,EAAE;QAGjC,EAAE,CAAC,mEAAmE,EAAE;YAEvE,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,2DAA2D,CAAC,CAAC;YACzH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC;YACpF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,oCAAoC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE;QAGzB,EAAE,CAAC,yEAAyE,EAAE;YAE7E,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,iDAAiD,CAAC,CAAC;YACtG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,qBAAqB,EAAE;QAG/B,EAAE,CAAC,gEAAgE,EAAE;YAEpE,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,2DAA2D,CAAC,CAAC;YACvH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE;QAGzB,EAAE,CAAC,iDAAiD,EAAE;YAErD,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAC7C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAC;YAEtB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAG5B,EAAE,CAAC,iDAAiD,EAAE;YAErD,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAC7C,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAEpC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QAGxB,EAAE,CAAC,iDAAiD,EAAE;YAErD,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAEhC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE;QAGlC,EAAE,CAAC,uCAAuC,EAAE;YAE3C,IAAI,CAAC,GAAG,IAAI,aAAG,CAAY,gBAAgB,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAE1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC","file":"System/Collections/Set.js","sourcesContent":["///\r\n///\r\n\r\nimport * as ICollectionTests from \"./ICollection\";\r\nimport Set from \"../../../../source/System/Collections/Set\";\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n//noinspection SpellCheckingInspection\r\nICollectionTests.Collection('Set<' + 'string>', new Set(), [\r\n\t\"\",\r\n\t\"lorem\",\r\n\t\"ipsum\",\r\n\t\"dolem\"\r\n]);\r\n\r\nICollectionTests.Collection('Set<' + 'number>', new Set(), [\r\n\t0,\r\n\t1,\r\n\t2,\r\n\t3,\r\n\t5,\r\n\t7,\r\n\t11,\r\n\t13\r\n]);\r\n\r\n\r\nICollectionTests.Collection('Set<' + 'Primitive>', new Set(), [\r\n\t0,\r\n\t1,\r\n\t2,\r\n\t3,\r\n\t5,\r\n\t7,\r\n\t11,\r\n\t13,\r\n\t\"\",\r\n\t\"0\",\r\n\t\"1\",\r\n\t\"2\",\r\n\t\"3\",\r\n\t\"5\",\r\n\t\"7\",\r\n\t\"11\",\r\n\t\"13\",\r\n\ttrue,\r\n\tfalse\r\n\r\n]);\r\n\r\nvar sourcePrimitives = [\r\n\t1, 2, 1, \"1\", true, false, \"hello\", \"hello\", \"hi\", true\r\n];\r\nvar subset = sourcePrimitives.slice(4);\r\nvar superset = sourcePrimitives.slice();\r\nsuperset.push(\"NO\");\r\nvar otherWithIntersect = [1,\"1\",4000,\"goodbye\"];\r\n\r\n\r\nit(\"should not repeat entries\", ()=>\r\n{\r\n\tvar s = new Set(sourcePrimitives);\r\n\r\n\tassert.equal(s.count, 7);\r\n\r\n});\r\n\r\n\r\ndescribe(\".setEquals()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should equal to the same set and not equal for different sets\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar v = sourcePrimitives.slice();\r\n\t\tv[8] = \"hola\";\r\n\r\n\t\tassert.equal(s.setEquals(sourcePrimitives), true, \"Exact same set should be equal.\");\r\n\t\tassert.equal(s.setEquals(subset), false, \"Smaller set should not be equal.\");\r\n\t\tassert.equal(s.setEquals(superset), false, \"Larger set should not be a equal.\");\r\n\t\tassert.equal(s.setEquals(v), false, \"Similar set should not be a equal.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".isSupersetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a super set of any equal or smaller set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isSupersetOf(sourcePrimitives), true, \"Exact same set should be a superset and subset.\");\r\n\t\tassert.equal(s.isSupersetOf(subset), true, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isSupersetOf(superset), false, \"Larger set should not be a subset.\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".isProperSupersetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a super set of any smaller matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isProperSupersetOf(sourcePrimitives), false, \"Exact same set should not be a proper superset or subset.\");\r\n\t\tassert.equal(s.isProperSupersetOf(subset), true, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isProperSupersetOf(superset), false, \"Larger set should not be a subset.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".isSubsetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a sub set of any equal or larger matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isSubsetOf(sourcePrimitives), true, \"Exact same set should be a superset and subset.\");\r\n\t\tassert.equal(s.isSubsetOf(subset), false, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isSubsetOf(superset), true, \"Larger set should be a superset.\");\r\n\t});\r\n\r\n});\r\n\r\n\r\ndescribe(\".isProperSubsetOf()\", ()=>\r\n{\r\n\r\n\tit(\"the current set should be a sub set of any larger matching set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\r\n\t\tassert.equal(s.isProperSubsetOf(sourcePrimitives), false, \"Exact same set should not be a proper superset or subset.\");\r\n\t\tassert.equal(s.isProperSubsetOf(subset), false, \"Smaller set should be a subset.\");\r\n\t\tassert.equal(s.isProperSubsetOf(superset), true, \"Larger set should be a superset.\");\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".exceptWith()\", ()=>\r\n{\r\n\r\n\tit(\"should remove the specified items fromt the set\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\ts.exceptWith([1,\"1\"]);\r\n\r\n\t\tassert.equal(s.count, 5);\r\n\t\tassert.equal(s.contains(1), false);\r\n\t\tassert.equal(s.contains(\"1\"), false);\r\n\t\tassert.equal(s.contains(\"hello\"), true);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".intersectWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave the intersecting items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\ts.intersectWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, 2);\r\n\t\tassert.equal(s.contains(1), true);\r\n\t\tassert.equal(s.contains(\"1\"), true);\r\n\t\tassert.equal(s.contains(\"hello\"), false);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".unionWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave the intersecting items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar c = s.count;\r\n\t\ts.unionWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, c+2);\r\n\t\tassert.equal(s.contains(4000), true);\r\n\t\tassert.equal(s.contains(\"goodbye\"), true);\r\n\t});\r\n\r\n});\r\n\r\ndescribe(\".symmetricExceptWith()\", ()=>\r\n{\r\n\r\n\tit(\"should only leave unique items behind\", ()=>\r\n\t{\r\n\t\tvar s = new Set(sourcePrimitives);\r\n\t\tvar c = s.count;\r\n\t\ts.symmetricExceptWith(otherWithIntersect);\r\n\r\n\t\tassert.equal(s.count, c-2+2);\r\n\t\tassert.equal(s.contains(4000), true);\r\n\t\tassert.equal(s.contains(\"goodbye\"), true);\r\n\t\tassert.equal(s.contains(1), false);\r\n\t\tassert.equal(s.contains(\"1\"), false);\r\n\t});\r\n\r\n});"]} \ No newline at end of file diff --git a/tests/mocha/System/Integer.js b/tests/mocha/System/Integer.js index 44650a41..ab75d039 100644 --- a/tests/mocha/System/Integer.js +++ b/tests/mocha/System/Integer.js @@ -34,4 +34,5 @@ }); }); }); -//# sourceMappingURL=Integer.js.map \ No newline at end of file + +//# sourceMappingURL=Integer.js.map diff --git a/tests/mocha/System/Integer.js.map b/tests/mocha/System/Integer.js.map index 10069373..31263122 100644 --- a/tests/mocha/System/Integer.js.map +++ b/tests/mocha/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"file":"Integer.js","sourceRoot":"","sources":["Integer.ts"],"names":[],"mappings":";;;;;;;;;IAEA,wBAAoB,gCAAgC,CAAC,CAAA;IACrD,IAAI,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAG5D,IAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE;QAE3B,EAAE,CAAC,yDAAyD,EAAE;YAE7D,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,UAAU,CAAC,EACnB,QAAQ,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,YAAY,EAAE;QAEtB,EAAE,CAAC,+CAA+C,EAAE;YAEnD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EACtB,KAAK,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE;YAE/C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EACpB,IAAI,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,gBAAgB,EAAE;QAE1B,EAAE,CAAC,+CAA+C,EAAE;YAEnD,MAAM,CAAC,MAAM,CAAC;gBAEb,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE;YAE/C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACxB,IAAI,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Integer.ts"],"names":[],"mappings":";;;;;;;;;IAEA,wBAAoB,gCAAgC,CAAC,CAAA;IACrD,IAAI,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAG5D,IAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE;QAE3B,EAAE,CAAC,yDAAyD,EAAE;YAE7D,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,UAAU,CAAC,EACnB,QAAQ,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,YAAY,EAAE;QAEtB,EAAE,CAAC,+CAA+C,EAAE;YAEnD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EACtB,KAAK,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE;YAE/C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EACpB,IAAI,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,gBAAgB,EAAE;QAE1B,EAAE,CAAC,+CAA+C,EAAE;YAEnD,MAAM,CAAC,MAAM,CAAC;gBAEb,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE;YAE/C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACxB,IAAI,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","file":"System/Integer.js","sourcesContent":["///\r\n\r\nimport Integer from '../../../source/System/Integer';\r\nvar assert = require('../../../node_modules/assert/assert');\r\n\r\n\r\nconst TEST_FLOAT = 10.915, TEST_INT = 10;\r\n\r\ndescribe('.convert(value)', ()=>\r\n{\r\n\tit('should convert float number to integer without rounding', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger(TEST_FLOAT),\r\n\t\t\tTEST_INT);\r\n\t});\r\n});\r\n\r\n\r\ndescribe('.is(value)', ()=>\r\n{\r\n\tit('should detect a number that is not an integer', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(TEST_FLOAT),\r\n\t\t\tfalse);\r\n\t});\r\n\r\n\tit('should detect a number that is an integer', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.is(TEST_INT),\r\n\t\t\ttrue);\r\n\t});\r\n});\r\n\r\n\r\ndescribe('.assert(value)', ()=>\r\n{\r\n\tit('should detect a number that is not an integer', ()=>\r\n\t{\r\n\t\tassert.throws(()=>\r\n\t\t{\r\n\t\t\tInteger.assert(TEST_FLOAT);\r\n\t\t});\r\n\t});\r\n\r\n\tit('should detect a number that is an integer', ()=>\r\n\t{\r\n\t\tassert.equal(\r\n\t\t\tInteger.assert(TEST_INT),\r\n\t\t\ttrue);\r\n\t});\r\n});\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Time/ClockTime.js b/tests/mocha/System/Time/ClockTime.js index e6394d26..4863b907 100644 --- a/tests/mocha/System/Time/ClockTime.js +++ b/tests/mocha/System/Time/ClockTime.js @@ -31,4 +31,5 @@ assert.equal(c2.millisecond, millisecond); }); }); -//# sourceMappingURL=ClockTime.js.map \ No newline at end of file + +//# sourceMappingURL=ClockTime.js.map diff --git a/tests/mocha/System/Time/ClockTime.js.map b/tests/mocha/System/Time/ClockTime.js.map index f1a509c0..2b81188f 100644 --- a/tests/mocha/System/Time/ClockTime.js.map +++ b/tests/mocha/System/Time/ClockTime.js.map @@ -1 +1 @@ -{"version":3,"file":"ClockTime.js","sourceRoot":"","sources":["ClockTime.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,0CAA0C,CAAC,CAAA;IACjE,wBAAoB,mCAAmC,CAAC,CAAA;IACxD,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IACA,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACvC,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,GAAG,IAAI,mBAAS,CACrB,IAAI,GAAC,QAA4B;UAC/B,IAAI,GAAC,OAA6B;UAClC,MAAM,GAAC,KAA+B;UACtC,MAAM,GAAC,IAA+B;UACtC,WAAW,CAAC,CAAC;IAEhB,EAAE,CAAC,iCAAiC,EAAE;QAErC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAEhC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Time/ClockTime.ts"],"names":[],"mappings":";;;;;;;;;IAGA,0BAAsB,0CAA0C,CAAC,CAAA;IACjE,wBAAoB,mCAAmC,CAAC,CAAA;IACxD,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAE/D,IACA,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACvC,IAAI,GAAU,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,MAAM,GAAQ,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,GAAG,IAAI,mBAAS,CACrB,IAAI,GAAC,QAA4B;UAC/B,IAAI,GAAC,OAA6B;UAClC,MAAM,GAAC,KAA+B;UACtC,MAAM,GAAC,IAA+B;UACtC,WAAW,CAAC,CAAC;IAEhB,EAAE,CAAC,iCAAiC,EAAE;QAErC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAEhC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC","file":"System/Time/ClockTime.js","sourcesContent":["///\r\n///\r\n\r\nimport ClockTime from '../../../../source/System/Time/ClockTime';\r\nimport Integer from '../../../../source/System/Integer';\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\nconst\r\ndays = Integer.random.under(365),\r\nhour = Integer.random.under(24),\r\nminute = Integer.random.under(60),\r\nsecond = Integer.random.under(60),\r\nmillisecond = Integer.random.under(1000);\r\n\r\nvar c1 = new ClockTime(hour, minute, second, millisecond);\r\nvar c2 = new ClockTime(\r\n\tdays*HowMany.Milliseconds.Per.Day\r\n\t+ hour*HowMany.Milliseconds.Per.Hour\r\n\t+ minute*HowMany.Milliseconds.Per.Minute\r\n\t+ second*HowMany.Milliseconds.Per.Second\r\n\t+ millisecond);\r\n\r\nit('should match constructor values', ()=>\r\n{\r\n\tassert.equal(c1.hour, hour);\r\n\tassert.equal(c1.minute, minute);\r\n\tassert.equal(c1.second, second);\r\n\tassert.equal(c1.millisecond, millisecond);\r\n});\r\n\r\nit('should match summed values', ()=>\r\n{\r\n\tassert.equal(c2.days, days);\r\n\tassert.equal(c2.hour, hour);\r\n\tassert.equal(c2.minute, minute);\r\n\tassert.equal(c2.second, second);\r\n\tassert.equal(c2.millisecond, millisecond);\r\n});\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Time/DateTime.js b/tests/mocha/System/Time/DateTime.js index 21b97b78..ca45bb59 100644 --- a/tests/mocha/System/Time/DateTime.js +++ b/tests/mocha/System/Time/DateTime.js @@ -39,4 +39,5 @@ }); }); }); -//# sourceMappingURL=DateTime.js.map \ No newline at end of file + +//# sourceMappingURL=DateTime.js.map diff --git a/tests/mocha/System/Time/DateTime.js.map b/tests/mocha/System/Time/DateTime.js.map index b5b984b1..829dc14b 100644 --- a/tests/mocha/System/Time/DateTime.js.map +++ b/tests/mocha/System/Time/DateTime.js.map @@ -1 +1 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["DateTime.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yCAAyC,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAK/D,QAAQ,CAAC,8CAA8C,EAAC;QAGvD,IAAM,SAAS,GAAG,IAAI,CAAC;QACvB,IAAM,YAAY,GAAG;YACpB,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACF,CAAC;QAEF,EAAE,CAAC,uCAAuC,EAAE;YAE3C,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,SAAS,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAE,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,kBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"sources":["System/Time/DateTime.ts"],"names":[],"mappings":";;;;;;;;;IAEA,yBAAqB,yCAAyC,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAK/D,QAAQ,CAAC,8CAA8C,EAAC;QAGvD,IAAM,SAAS,GAAG,IAAI,CAAC;QACvB,IAAM,YAAY,GAAG;YACpB,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACF,CAAC;QAEF,EAAE,CAAC,uCAAuC,EAAE;YAE3C,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,SAAS,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAE,CAAC;oBACtB,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,IAAI,kBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,KAAK,CAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC,CAAC,CAAC","file":"System/Time/DateTime.js","sourcesContent":["///\r\n\r\nimport DateTime from '../../../../source/System/Time/DateTime';\r\nvar assert = require('../../../../node_modules/assert/assert');\r\n\r\n\r\n\r\n\r\ndescribe(\".daysInMonth(year,month) & .isLeapYear(year)\",()=>{\r\n\r\n\r\n\tconst startYear = 2000;\r\n\tconst daysPerMonth = [\r\n\t\t31, //January,\r\n\t\t28,//February,\r\n\t\t31,//March,\r\n\t\t30,//April,\r\n\t\t31,//May,\r\n\t\t30,//June,\r\n\t\t31,//July,\r\n\t\t31,//August,\r\n\t\t30,//September,\r\n\t\t31,//October,\r\n\t\t30,//November,\r\n\t\t31//December\r\n\t];\r\n\r\n\tit('should match actual Gregorian values.', ()=>\r\n\t{\r\n\t\tfor(let y=startYear;y<2004;y++) {\r\n\t\t\tfor(let m=0;m<12;m++) {\r\n\t\t\t\tif(m==1 && DateTime.isLeapYear(y)) {\r\n\t\t\t\t\tassert.equal(DateTime.daysInMonth(y,m),29);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tassert.equal(DateTime.daysInMonth(y,m),daysPerMonth[m]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n});\r\n\r\n"]} \ No newline at end of file diff --git a/tests/mocha/System/Uri/Uri.js b/tests/mocha/System/Uri/Uri.js index 0f9d5a7f..600b0e74 100644 --- a/tests/mocha/System/Uri/Uri.js +++ b/tests/mocha/System/Uri/Uri.js @@ -56,4 +56,5 @@ }); }); }); -//# sourceMappingURL=Uri.js.map \ No newline at end of file + +//# sourceMappingURL=Uri.js.map diff --git a/tests/mocha/System/Uri/Uri.js.map b/tests/mocha/System/Uri/Uri.js.map index d8128883..53a98a10 100644 --- a/tests/mocha/System/Uri/Uri.js.map +++ b/tests/mocha/System/Uri/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["System/Uri/Uri.ts"],"names":[],"mappings":"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","file":"System/Uri/Uri.js","sourcesContent":["///\r\n\r\nimport Uri from '../../../../source/System/Uri/Uri';\r\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('.baseUri', ()=>\r\n{\r\n\tit('should equal ' + path, ()=>\r\n\t{\r\n\t\tassert.equal(u.baseUri, path);\r\n\t});\r\n});\r\n\r\ndescribe('.query', ()=>\r\n{\r\n\tit('should equal ' + query, ()=>\r\n\t{\r\n\t\tassert.equal(u.query, query);\r\n\t});\r\n});\r\n\r\n\r\n\r\ndescribe('.queryParams', ()=>\r\n{\r\n\tit('should equal contain correct values', ()=>\r\n\t{\r\n\t\tassert.equal(u.queryParams[params[0][0]], params[0][1]);\r\n\t\tassert.equal(u.queryParams[params[1][0]], params[1][1]);\r\n\t});\r\n\r\n\r\n});\r\n\r\n\r\ndescribe('KVP versus Tuple', ()=>\r\n{\r\n\r\n\tit('should be equal', ()=>\r\n\t{\r\n\t\tvar uTuples = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,params);\r\n\t\tvar uKvp = new Uri(u.scheme,u.userInfo,u.host,u.port,u.path,u.queryParams);\r\n\r\n\t\tassert.equal(uTuples.toString(),uKvp.toString());\r\n\t});\r\n\r\n\r\n\r\n});\r\n\r\n\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/import-tests.js b/tests/mocha/import-tests.js index 44d42fe9..5a32d098 100644 --- a/tests/mocha/import-tests.js +++ b/tests/mocha/import-tests.js @@ -57,4 +57,5 @@ console.log("Importing Tests:"); importRecursive(); }); -//# sourceMappingURL=import-tests.js.map \ No newline at end of file + +//# sourceMappingURL=import-tests.js.map diff --git a/tests/mocha/import-tests.js.map b/tests/mocha/import-tests.js.map index 36bc1dea..c849e2e6 100644 --- a/tests/mocha/import-tests.js.map +++ b/tests/mocha/import-tests.js.map @@ -1 +1 @@ -{"version":3,"file":"import-tests.js","sourceRoot":"","sources":["import-tests.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,EAAE,WAAM,IAAI,CAAC,CAAA;IAEzB,IAAM,IAAI,GAAG,gBAAgB,CAAC;IAE9B,oBAAoB,IAAW,EAAE,GAAW;QAE3C,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI;YACb,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;mBACtD,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE;QAD1C,CAC0C,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B,IAAW;QAEpC,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI,IAAG,OAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAA5C,CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,yBAAyB,IAAgB,EAAE,WAA2B,EAAE,IAAgB;QAA/D,oBAAgB,GAAhB,SAAgB;QAAE,2BAA2B,GAA3B,mBAA2B;QAAE,oBAAgB,GAAhB,SAAgB;QAEvF,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC1B,EAAE,CAAA,CAAC,WAAW,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC;aAC9B,IAAI,EAAE;aACN,OAAO,CAAC,UAAC,OAAO;YAEhB,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE;gBAEvB,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEJ,EAAE,CAAA,CAAC,WAAW,CAAC,CACf,CAAC;YACA,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAEpE,KAAK;iBACH,IAAI,EAAE;iBACN,OAAO,CAAC,UAAC,QAAQ;gBAEjB,IAAI,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAE3B,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,GAAG;oBAEP,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBAGF,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI;oBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAExB,CAAC,CAAC,CAAC;QACL,CAAC;IAEF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC"} \ No newline at end of file +{"version":3,"sources":["import-tests.ts"],"names":[],"mappings":";;;;;;;;;IAEA,IAAY,EAAE,WAAM,IAAI,CAAC,CAAA;IAEzB,IAAM,IAAI,GAAG,gBAAgB,CAAC;IAE9B,oBAAoB,IAAW,EAAE,GAAW;QAE3C,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI;YACb,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;mBACtD,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE;QAD1C,CAC0C,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B,IAAW;QAEpC,MAAM,CAAC,EAAE;aACP,WAAW,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,UAAC,IAAI,IAAG,OAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAA5C,CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,yBAAyB,IAAgB,EAAE,WAA2B,EAAE,IAAgB;QAA/D,oBAAgB,GAAhB,SAAgB;QAAE,2BAA2B,GAA3B,mBAA2B;QAAE,oBAAgB,GAAhB,SAAgB;QAEvF,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC1B,EAAE,CAAA,CAAC,WAAW,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC;aAC9B,IAAI,EAAE;aACN,OAAO,CAAC,UAAC,OAAO;YAEhB,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE;gBAEvB,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEJ,EAAE,CAAA,CAAC,WAAW,CAAC,CACf,CAAC;YACA,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAEpE,KAAK;iBACH,IAAI,EAAE;iBACN,OAAO,CAAC,UAAC,QAAQ;gBAEjB,IAAI,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAE3B,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,GAAG;oBAEP,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBAGF,EAAE,CAAA,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI;oBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAExB,CAAC,CAAC,CAAC;QACL,CAAC;IAEF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC","file":"import-tests.js","sourcesContent":["///\r\n\r\nimport * as fs from \"fs\";\r\n\r\nconst root = \"./tests/mocha/\";\r\n\r\nfunction getFilesAt(path:string, ext?:string):string[]\r\n{\r\n\treturn fs\r\n\t\t.readdirSync(path)\r\n\t\t.filter((name)=>\r\n\t\t(!ext || name.lastIndexOf(ext)==name.length - ext.length)\r\n\t\t&& fs.statSync(path + '/' + name).isFile());\r\n}\r\n\r\nfunction getDirectoriesAt(path:string):string[]\r\n{\r\n\treturn fs\r\n\t\t.readdirSync(path)\r\n\t\t.filter((name)=>fs.statSync(path + '/' + name).isDirectory());\r\n}\r\n\r\nfunction importRecursive(path:string = \"\", importFiles:boolean = false, base:string = \"\")\r\n{\r\n\tvar dirPath = base + path;\r\n\tif(importFiles) console.log(dirPath);\r\n\tgetDirectoriesAt(root + dirPath)\r\n\t\t.sort()\r\n\t\t.forEach((dirname)=>\r\n\t\t{\r\n\t\t\tdescribe(dirname + '/', ()=>\r\n\t\t\t{\r\n\t\t\t\timportRecursive(dirname, true, dirPath + '/');\r\n\t\t\t});\r\n\t\t});\r\n\r\n\tif(importFiles)\r\n\t{\r\n\t\tvar files = getFilesAt(root + dirPath, '.js'), count = files.length;\r\n\r\n\t\tfiles\r\n\t\t\t.sort()\r\n\t\t\t.forEach((filename)=>\r\n\t\t\t{\r\n\t\t\t\tvar filePath = dirPath + '/' + filename;\r\n\t\t\t\tconsole.log(\" \", filename);\r\n\r\n\t\t\t\tvar name = filename.replace(/\\.js$/, '');\r\n\r\n\t\t\t\tvar i = ()=>\r\n\t\t\t\t{\r\n\t\t\t\t\trequire('./' + filePath);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Allows for simple default instead of recursive.\r\n\t\t\t\tif(count==1 && name==path) i();\r\n\t\t\t\telse describe(name, i);\r\n\r\n\t\t\t});\r\n\t}\r\n\r\n}\r\nconsole.log(\"Importing Tests:\");\r\nimportRecursive();\r\n"]} \ No newline at end of file diff --git a/tests/qunit/Arrays/Compare.js b/tests/qunit/Arrays/Compare.js index 6b22bf0c..e19beb5d 100644 --- a/tests/qunit/Arrays/Compare.js +++ b/tests/qunit/Arrays/Compare.js @@ -12,4 +12,5 @@ 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 2ba69913..46930aa4 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":[],"mappings":";;;;;;;;;IAKA;IAEA,CAAC;IAFD;yBAEC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Arrays/Compare.ts"],"names":[],"mappings":";;;;;;;;;IAKA;IAEA,CAAC;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 3fa569af..7e0b93f2 100644 --- a/tests/qunit/Arrays/Procedure.js +++ b/tests/qunit/Arrays/Procedure.js @@ -38,4 +38,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 769edb6b..48bd520d 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":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["Arrays/Procedure.ts"],"names":[],"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 4379f310..eddb1a62 100644 --- a/tests/qunit/Arrays/Utility.js +++ b/tests/qunit/Arrays/Utility.js @@ -78,4 +78,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 cccc6533..c0f9728e 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":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["Arrays/Utility.ts"],"names":[],"mappings":"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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 b9fd8e1e..f7381169 100644 --- a/tests/qunit/Arrays/_all.js +++ b/tests/qunit/Arrays/_all.js @@ -18,4 +18,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 f2eb79f1..9e510cc8 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":[],"mappings":";;;;;;;;;IAGA,wBAAoB,WAAW,CAAC,CAAA;IAChC,0BAAsB,aAAa,CAAC,CAAA;IACpC,wBAAoB,WAAW,CAAC,CAAA;IAEhC;QACI,iBAAO,EAAE,CAAC;QACV,mBAAS,EAAE,CAAC;QACZ,iBAAO,EAAE,CAAC;IACd,CAAC;IAJD;yBAIC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Arrays/_all.ts"],"names":[],"mappings":";;;;;;;;;IAGA,wBAAoB,WAAW,CAAC,CAAA;IAChC,0BAAsB,aAAa,CAAC,CAAA;IACpC,wBAAoB,WAAW,CAAC,CAAA;IAEhC;QACI,iBAAO,EAAE,CAAC;QACV,mBAAS,EAAE,CAAC;QACZ,iBAAO,EAAE,CAAC;IACd,CAAC;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 68e54267..76cf8a6f 100644 --- a/tests/qunit/Collections/ICollection.js +++ b/tests/qunit/Collections/ICollection.js @@ -132,4 +132,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 e2d16af6..a7ad1a78 100644 --- a/tests/qunit/Collections/ICollection.js.map +++ b/tests/qunit/Collections/ICollection.js.map @@ -1 +1 @@ -{"version":3,"file":"ICollection.js","sourceRoot":"","sources":["ICollection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["Collections/ICollection.ts"],"names":[],"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 9081f3c7..3982e9f6 100644 --- a/tests/qunit/Collections/LinkedList.js +++ b/tests/qunit/Collections/LinkedList.js @@ -17,4 +17,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 efd8a343..744109bd 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":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,sCAAsC,CAAC,CAAA;IAE9D;QACC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;QACzE,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;QACzE,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAC5E,CAAC;IAJD;yBAIC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Collections/LinkedList.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2BAAuB,sCAAsC,CAAC,CAAA;IAE9D;QACC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;QACzE,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;QACzE,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAC,IAAI,oBAAU,EAAU,CAAC,CAAC;IAC5E,CAAC;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 e8ed8197..9ef19fe8 100644 --- a/tests/qunit/Collections/OrderedStringKeyDictionary.js +++ b/tests/qunit/Collections/OrderedStringKeyDictionary.js @@ -22,4 +22,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 3e8019ab..c506aa49 100644 --- a/tests/qunit/Collections/OrderedStringKeyDictionary.js.map +++ b/tests/qunit/Collections/OrderedStringKeyDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"OrderedStringKeyDictionary.js","sourceRoot":"","sources":["OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAE3G;QAGC,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;YACC,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAdD;yBAcC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Collections/OrderedStringKeyDictionary.ts"],"names":[],"mappings":";;;;;;;;;IACA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,2CAAuC,mEAAmE,CAAC,CAAA;IAE3G;QAGC,gBAAgB,CAAC,UAAU,CAC1B,oCAAoC,EACpC,IAAI,oCAA0B,EAAU,EACxC;YACC,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;YACjB,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAdD;yBAcC,CAAA","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 5bec68b4..b4b7b8c7 100644 --- a/tests/qunit/Collections/Queue.js +++ b/tests/qunit/Collections/Queue.js @@ -17,4 +17,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 024f062c..7f33a5de 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":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,iCAAiC,CAAC,CAAA;IAEpD;QAEC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;QAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;QAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IACnE,CAAC;IALD;yBAKC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Collections/Queue.ts"],"names":[],"mappings":";;;;;;;;;IAAA,IAAY,gBAAgB,WAAM,eAAe,CAAC,CAAA;IAClD,sBAAkB,iCAAiC,CAAC,CAAA;IAEpD;QAEC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;QAChE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;QAChE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAK,EAAU,CAAC,CAAC;IACnE,CAAC;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 218a1d60..7e770aca 100644 --- a/tests/qunit/Collections/_all.js +++ b/tests/qunit/Collections/_all.js @@ -18,4 +18,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 e164f820..5bce706d 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":[],"mappings":";;;;;;;;;IAGA,2BAAuB,cAAc,CAAC,CAAA;IACtC,sBAAkB,SAAS,CAAC,CAAA;IAC5B,2CAAuC,8BAA8B,CAAC,CAAA;IAEtE;QAEC,oBAAU,EAAE,CAAC;QACb,eAAK,EAAE,CAAC;QACR,oCAA0B,EAAE,CAAC;IAC9B,CAAC;IALD;yBAKC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Collections/_all.ts"],"names":[],"mappings":";;;;;;;;;IAGA,2BAAuB,cAAc,CAAC,CAAA;IACtC,sBAAkB,SAAS,CAAC,CAAA;IAC5B,2CAAuC,8BAA8B,CAAC,CAAA;IAEtE;QAEC,oBAAU,EAAE,CAAC;QACb,eAAK,EAAE,CAAC;QACR,oCAA0B,EAAE,CAAC;IAC9B,CAAC;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 2a5df631..b240b3bc 100644 --- a/tests/qunit/Integer.js +++ b/tests/qunit/Integer.js @@ -27,4 +27,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 58c48ac4..f2027820 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":[],"mappings":";;;;;;;;;IAGA,wBAAoB,uBAAuB,CAAC,CAAA;IAG5C;QAGC,IAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC;QAEzC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,MAAkB;YAGjD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,UAAU,CAAC,EACnB,QAAQ,EACR,0DAA0D,CAAC,CAAC;QAE9D,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,MAAkB;YAG5C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EACtB,KAAK,EACL,gDAAgD,CAAC,CAAC;YAEnD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EACpB,IAAI,EACJ,4CAA4C,CAAC,CAAC;QAEhD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,MAAkB;YAGhD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACxB,IAAI,EACJ,4CAA4C,CAAC,CAAC;YAE/C,MAAM,CAAC,MAAM,CAAC;gBAEb,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACJ,CAAC;IA5CD;yBA4CC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Integer.ts"],"names":[],"mappings":";;;;;;;;;IAGA,wBAAoB,uBAAuB,CAAC,CAAA;IAG5C;QAGC,IAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC;QAEzC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,MAAkB;YAGjD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,UAAU,CAAC,EACnB,QAAQ,EACR,0DAA0D,CAAC,CAAC;QAE9D,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,MAAkB;YAG5C,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EACtB,KAAK,EACL,gDAAgD,CAAC,CAAC;YAEnD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EACpB,IAAI,EACJ,4CAA4C,CAAC,CAAC;QAEhD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,MAAkB;YAGhD,MAAM,CAAC,KAAK,CACX,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACxB,IAAI,EACJ,4CAA4C,CAAC,CAAC;YAE/C,MAAM,CAAC,MAAM,CAAC;gBAEb,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACJ,CAAC;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 3264f450..47833779 100644 --- a/tests/qunit/Linq/_all.js +++ b/tests/qunit/Linq/_all.js @@ -140,4 +140,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 56e303c4..90fe6476 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":[],"mappings":";;;;;;;;;IAGA,qBAAuB,yBAAyB,CAAC,CAAA;IASjD;QAGC,IAAI,MAAM,GAAkC;YAC3C;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;YACD;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;YACD;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;YACD;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;YACD;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;YACD;gBACC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACN;SACD,CAAC;QAEF,IAAI,gBAAgB,GAAG,cAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpD,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,MAAkB;YAGtD,IAAI,MAAM,GAAG,gBAAgB,CAAC;YAC9B,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAEzB,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YAExB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;YAEpF,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,MAAkB;YAE5D,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,IAAE,CAAC,EAAN,CAAM,CAAC,CAAC;YAEjD,IAAI,GAAU,EAAE,CAAC,GAAG,MAAM,CAAC;YAE3B,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,0CAA0C,CAAC,CAAC;YAElF,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,0CAA0C,CAAC,CAAC;YAGlF,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAErB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;YAEpF,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;QAErF,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,MAAkB;YAGtD,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACzC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,yDAAyD,CAAC,CAAC;YACpF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,UAAA,CAAC,IAAG,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,uDAAuD,CAAC,CAAC;YAClF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACnF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sDAAsD,CAAC,CAAC;YACjF,CAAC;QAEF,CAAC,CAAC,CAAC;QAGH,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,MAAkB;YAGhE,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,UAAC,CAAU,IAAI,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/D,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,yDAAyD,CAAC,CAAC;YACpF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,UAAC,CAAU,IAAI,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/D,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,uDAAuD,CAAC,CAAC;YAClF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACnF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sDAAsD,CAAC,CAAC;YACjF,CAAC;QAEF,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,MAAkB;YAG7D,IAAI,CAAC,GAAG,gBAAgB;iBACtB,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;iBACjB,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;iBAChB,OAAO,EAAE,CAAC;YAEZ,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,uDAAuD,CAAC,CAAC;YAClF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACnF,CAAC;YACD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EACvB,CAAC;gBACA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sDAAsD,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAE1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAE1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAG3B,CAAC,CAAC,CAAC;QAGH,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,MAAkB;YAEtD,IAAI,UAAU,GAAG,gBAAgB;iBAC/B,MAAM,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,gBAAgB;iBACtB,OAAO,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YAElB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,gDAAgD,CAAC,CAAC;YAE9F,IAAI,CAAC,GAAG,gBAAgB;iBACtB,OAAO,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;YAClB,IAAI,UAAU,GAAG,gBAAgB;iBAC/B,MAAM,CAAC,UAAA,CAAC,IAAE,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE5B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,gDAAgD,CAAC,CAAC;QAG/F,CAAC,CAAC,CAAC;IAGJ,CAAC;IAlMD;yBAkMC,CAAA"} \ No newline at end of file +{"version":3,"sources":["Linq/_all.ts"],"names":[],"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 875ae749..3a4ca83f 100644 --- a/tests/qunit/Uri.js +++ b/tests/qunit/Uri.js @@ -73,4 +73,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 8a3a8013..9d173336 100644 --- a/tests/qunit/Uri.js.map +++ b/tests/qunit/Uri.js.map @@ -1 +1 @@ -{"version":3,"file":"Uri.js","sourceRoot":"","sources":["Uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["Uri.ts"],"names":[],"mappings":"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","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 1a8becca..e24e1037 100644 --- a/tests/qunit/main.js +++ b/tests/qunit/main.js @@ -19,4 +19,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 50553872..cef5d5b9 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":";;;;;;;;;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"} \ 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 a8711664..8aa241ae 100644 --- a/tests/qunit/require.config.js +++ b/tests/qunit/require.config.js @@ -14,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 5d6fb690..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":"AAGA,OAAO,CAAC,MAAM,CAAC;IAEX,OAAO,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI,GAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEjC,KAAK,EAAE;QACH,OAAO,EAAE,wBAAwB,GAAC,oBAAoB;QACtD,QAAQ,EAAE,gBAAgB,GAAC,EAAE;KAChC;IAED,IAAI,EAAE;QACF,OAAO,EAAE;YAIL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBAEF,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC"} \ No newline at end of file +{"version":3,"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