@babylonjs/core 5.8.2 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/Buffers/buffer.js +2 -3
  2. package/Buffers/buffer.js.map +1 -1
  3. package/Culling/ray.js.map +1 -1
  4. package/Engines/Processors/shaderCodeNode.js +3 -4
  5. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  6. package/Engines/thinEngine.js +2 -2
  7. package/Engines/thinEngine.js.map +1 -1
  8. package/Lights/shadowLight.d.ts +2 -0
  9. package/Lights/shadowLight.js +8 -0
  10. package/Lights/shadowLight.js.map +1 -1
  11. package/Loading/Plugins/babylonFileLoader.js +5 -2
  12. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  13. package/Loading/sceneLoader.js +1 -2
  14. package/Loading/sceneLoader.js.map +1 -1
  15. package/Materials/Node/nodeMaterialBuildState.js +2 -3
  16. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  17. package/Materials/Textures/Loaders/basisTextureLoader.js +1 -2
  18. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  19. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -2
  20. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  21. package/Materials/Textures/Loaders/envTextureLoader.js +1 -2
  22. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  23. package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -2
  24. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  25. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -2
  26. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  27. package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -2
  28. package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
  29. package/Materials/Textures/cubeTexture.d.ts +2 -1
  30. package/Materials/Textures/cubeTexture.js +2 -2
  31. package/Materials/Textures/cubeTexture.js.map +1 -1
  32. package/Materials/Textures/texture.d.ts +5 -2
  33. package/Materials/Textures/texture.js +15 -11
  34. package/Materials/Textures/texture.js.map +1 -1
  35. package/Maths/math.vector.d.ts +45 -0
  36. package/Maths/math.vector.js +92 -7
  37. package/Maths/math.vector.js.map +1 -1
  38. package/Meshes/abstractMesh.js +2 -3
  39. package/Meshes/abstractMesh.js.map +1 -1
  40. package/Meshes/geometry.js +1 -1
  41. package/Meshes/geometry.js.map +1 -1
  42. package/Meshes/instancedMesh.js +11 -9
  43. package/Meshes/instancedMesh.js.map +1 -1
  44. package/Meshes/linesMesh.js +3 -0
  45. package/Meshes/linesMesh.js.map +1 -1
  46. package/Meshes/mesh.js +2 -2
  47. package/Meshes/mesh.js.map +1 -1
  48. package/Misc/deepCopier.js +1 -2
  49. package/Misc/deepCopier.js.map +1 -1
  50. package/Misc/index.d.ts +0 -1
  51. package/Misc/index.js +0 -1
  52. package/Misc/index.js.map +1 -1
  53. package/Misc/reflector.js +1 -2
  54. package/Misc/reflector.js.map +1 -1
  55. package/Misc/sceneSerializer.js +7 -2
  56. package/Misc/sceneSerializer.js.map +1 -1
  57. package/Misc/stringTools.d.ts +2 -0
  58. package/Misc/stringTools.js +4 -2
  59. package/Misc/stringTools.js.map +1 -1
  60. package/Misc/tools.d.ts +0 -17
  61. package/Misc/tools.js +0 -25
  62. package/Misc/tools.js.map +1 -1
  63. package/Particles/solidParticleSystem.js +6 -7
  64. package/Particles/solidParticleSystem.js.map +1 -1
  65. package/Rendering/edgesRenderer.js +1 -2
  66. package/Rendering/edgesRenderer.js.map +1 -1
  67. package/abstractScene.d.ts +1 -0
  68. package/abstractScene.js +1 -0
  69. package/abstractScene.js.map +1 -1
  70. package/package.json +1 -1
  71. package/scene.d.ts +2 -0
  72. package/scene.js +4 -6
  73. package/scene.js.map +1 -1
  74. package/Misc/promise.d.ts +0 -11
  75. package/Misc/promise.js +0 -230
  76. package/Misc/promise.js.map +0 -1
  77. package/Misc/sliceTools.d.ts +0 -22
  78. package/Misc/sliceTools.js +0 -37
  79. package/Misc/sliceTools.js.map +0 -1
package/Misc/promise.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * Helper class that provides a small promise polyfill
3
- */
4
- export declare class PromisePolyfill {
5
- /**
6
- * Static function used to check if the polyfill is required
7
- * If this is the case then the function will inject the polyfill to window.Promise
8
- * @param force defines a boolean used to force the injection (mostly for testing purposes)
9
- */
10
- static Apply(force?: boolean): void;
11
- }
package/Misc/promise.js DELETED
@@ -1,230 +0,0 @@
1
- var PromiseStates;
2
- (function (PromiseStates) {
3
- PromiseStates[PromiseStates["Pending"] = 0] = "Pending";
4
- PromiseStates[PromiseStates["Fulfilled"] = 1] = "Fulfilled";
5
- PromiseStates[PromiseStates["Rejected"] = 2] = "Rejected";
6
- })(PromiseStates || (PromiseStates = {}));
7
- var FulFillmentAgregator = /** @class */ (function () {
8
- function FulFillmentAgregator() {
9
- this.count = 0;
10
- this.target = 0;
11
- this.results = [];
12
- }
13
- return FulFillmentAgregator;
14
- }());
15
- var InternalPromise = /** @class */ (function () {
16
- function InternalPromise(resolver) {
17
- var _this = this;
18
- this._state = PromiseStates.Pending;
19
- this._children = new Array();
20
- this._rejectWasConsumed = false;
21
- if (!resolver) {
22
- return;
23
- }
24
- try {
25
- resolver(function (value) {
26
- _this._resolve(value);
27
- }, function (reason) {
28
- _this._reject(reason);
29
- });
30
- }
31
- catch (e) {
32
- this._reject(e);
33
- }
34
- }
35
- Object.defineProperty(InternalPromise.prototype, "_result", {
36
- get: function () {
37
- return this._resultValue;
38
- },
39
- set: function (value) {
40
- this._resultValue = value;
41
- if (this._parent && this._parent._result === undefined) {
42
- this._parent._result = value;
43
- }
44
- },
45
- enumerable: false,
46
- configurable: true
47
- });
48
- InternalPromise.prototype.catch = function (onRejected) {
49
- return this.then(undefined, onRejected);
50
- };
51
- InternalPromise.prototype.then = function (onFulfilled, onRejected) {
52
- var _this = this;
53
- var newPromise = new InternalPromise();
54
- newPromise._onFulfilled = onFulfilled;
55
- newPromise._onRejected = onRejected;
56
- // Composition
57
- this._children.push(newPromise);
58
- newPromise._parent = this;
59
- if (this._state !== PromiseStates.Pending) {
60
- setTimeout(function () {
61
- if (_this._state === PromiseStates.Fulfilled || _this._rejectWasConsumed) {
62
- newPromise._resolve(_this._result);
63
- }
64
- else {
65
- newPromise._reject(_this._reason);
66
- }
67
- });
68
- }
69
- return newPromise;
70
- };
71
- InternalPromise.prototype._moveChildren = function (children) {
72
- var _a;
73
- var _this = this;
74
- (_a = this._children).push.apply(_a, children.splice(0, children.length));
75
- this._children.forEach(function (child) {
76
- child._parent = _this;
77
- });
78
- if (this._state === PromiseStates.Fulfilled) {
79
- for (var _i = 0, _b = this._children; _i < _b.length; _i++) {
80
- var child = _b[_i];
81
- child._resolve(this._result);
82
- }
83
- }
84
- else if (this._state === PromiseStates.Rejected) {
85
- for (var _c = 0, _d = this._children; _c < _d.length; _c++) {
86
- var child = _d[_c];
87
- child._reject(this._reason);
88
- }
89
- }
90
- };
91
- InternalPromise.prototype._resolve = function (value) {
92
- try {
93
- this._state = PromiseStates.Fulfilled;
94
- var returnedValue = null;
95
- if (this._onFulfilled) {
96
- returnedValue = this._onFulfilled(value);
97
- }
98
- if (returnedValue !== undefined && returnedValue !== null) {
99
- if (returnedValue._state !== undefined) {
100
- // Transmit children
101
- var returnedPromise = returnedValue;
102
- returnedPromise._parent = this;
103
- returnedPromise._moveChildren(this._children);
104
- value = returnedPromise._result;
105
- }
106
- else {
107
- value = returnedValue;
108
- }
109
- }
110
- this._result = value;
111
- for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
112
- var child = _a[_i];
113
- child._resolve(value);
114
- }
115
- this._children.length = 0;
116
- delete this._onFulfilled;
117
- delete this._onRejected;
118
- }
119
- catch (e) {
120
- this._reject(e, true);
121
- }
122
- };
123
- InternalPromise.prototype._reject = function (reason, onLocalThrow) {
124
- if (onLocalThrow === void 0) { onLocalThrow = false; }
125
- this._state = PromiseStates.Rejected;
126
- this._reason = reason;
127
- if (this._onRejected && !onLocalThrow) {
128
- try {
129
- this._onRejected(reason);
130
- this._rejectWasConsumed = true;
131
- }
132
- catch (e) {
133
- reason = e;
134
- }
135
- }
136
- for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
137
- var child = _a[_i];
138
- if (this._rejectWasConsumed) {
139
- child._resolve(null);
140
- }
141
- else {
142
- child._reject(reason);
143
- }
144
- }
145
- this._children.length = 0;
146
- delete this._onFulfilled;
147
- delete this._onRejected;
148
- };
149
- // eslint-disable-next-line @typescript-eslint/naming-convention
150
- InternalPromise.resolve = function (value) {
151
- var newPromise = new InternalPromise();
152
- newPromise._resolve(value);
153
- return newPromise;
154
- };
155
- InternalPromise._RegisterForFulfillment = function (promise, agregator, index) {
156
- promise.then(function (value) {
157
- agregator.results[index] = value;
158
- agregator.count++;
159
- if (agregator.count === agregator.target) {
160
- agregator.rootPromise._resolve(agregator.results);
161
- }
162
- return null;
163
- }, function (reason) {
164
- if (agregator.rootPromise._state !== PromiseStates.Rejected) {
165
- agregator.rootPromise._reject(reason);
166
- }
167
- });
168
- };
169
- // eslint-disable-next-line @typescript-eslint/naming-convention
170
- InternalPromise.all = function (promises) {
171
- var newPromise = new InternalPromise();
172
- var agregator = new FulFillmentAgregator();
173
- agregator.target = promises.length;
174
- agregator.rootPromise = newPromise;
175
- if (promises.length) {
176
- for (var index = 0; index < promises.length; index++) {
177
- InternalPromise._RegisterForFulfillment(promises[index], agregator, index);
178
- }
179
- }
180
- else {
181
- newPromise._resolve([]);
182
- }
183
- return newPromise;
184
- };
185
- // eslint-disable-next-line @typescript-eslint/naming-convention
186
- InternalPromise.race = function (promises) {
187
- var newPromise = new InternalPromise();
188
- if (promises.length) {
189
- for (var _i = 0, promises_1 = promises; _i < promises_1.length; _i++) {
190
- var promise = promises_1[_i];
191
- promise.then(function (value) {
192
- if (newPromise) {
193
- newPromise._resolve(value);
194
- newPromise = null;
195
- }
196
- return null;
197
- }, function (reason) {
198
- if (newPromise) {
199
- newPromise._reject(reason);
200
- newPromise = null;
201
- }
202
- });
203
- }
204
- }
205
- return newPromise;
206
- };
207
- return InternalPromise;
208
- }());
209
- /**
210
- * Helper class that provides a small promise polyfill
211
- */
212
- var PromisePolyfill = /** @class */ (function () {
213
- function PromisePolyfill() {
214
- }
215
- /**
216
- * Static function used to check if the polyfill is required
217
- * If this is the case then the function will inject the polyfill to window.Promise
218
- * @param force defines a boolean used to force the injection (mostly for testing purposes)
219
- */
220
- PromisePolyfill.Apply = function (force) {
221
- if (force === void 0) { force = false; }
222
- if (force || typeof Promise === "undefined") {
223
- var root = window;
224
- root.Promise = InternalPromise;
225
- }
226
- };
227
- return PromisePolyfill;
228
- }());
229
- export { PromisePolyfill };
230
- //# sourceMappingURL=promise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/promise.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\n\r\nenum PromiseStates {\r\n Pending,\r\n Fulfilled,\r\n Rejected,\r\n}\r\n\r\nclass FulFillmentAgregator<T> {\r\n public count = 0;\r\n public target = 0;\r\n public rootPromise: InternalPromise<T>;\r\n public results: any[] = [];\r\n}\r\n\r\nclass InternalPromise<T> {\r\n private _state = PromiseStates.Pending;\r\n private _resultValue?: Nullable<T>;\r\n private _reason: any;\r\n private _children = new Array<InternalPromise<T>>();\r\n private _parent: Nullable<InternalPromise<T>>;\r\n private _onFulfilled?: (fulfillment?: Nullable<T>) => Nullable<InternalPromise<T>> | T;\r\n private _onRejected?: (reason: any) => void;\r\n private _rejectWasConsumed = false;\r\n\r\n private get _result(): Nullable<T> | undefined {\r\n return this._resultValue;\r\n }\r\n\r\n private set _result(value: Nullable<T> | undefined) {\r\n this._resultValue = value;\r\n\r\n if (this._parent && this._parent._result === undefined) {\r\n this._parent._result = value;\r\n }\r\n }\r\n\r\n public constructor(resolver?: (resolve: (value?: Nullable<T>) => void, reject: (reason: any) => void) => void) {\r\n if (!resolver) {\r\n return;\r\n }\r\n\r\n try {\r\n resolver(\r\n (value?: Nullable<T>) => {\r\n this._resolve(value);\r\n },\r\n (reason: any) => {\r\n this._reject(reason);\r\n }\r\n );\r\n } catch (e) {\r\n this._reject(e);\r\n }\r\n }\r\n\r\n public catch(onRejected: (reason: any) => void): InternalPromise<T> {\r\n return this.then(undefined, onRejected);\r\n }\r\n\r\n public then(onFulfilled?: (fulfillment?: Nullable<T>) => Nullable<InternalPromise<T>> | T, onRejected?: (reason: any) => void): InternalPromise<T> {\r\n const newPromise = new InternalPromise<T>();\r\n newPromise._onFulfilled = onFulfilled;\r\n newPromise._onRejected = onRejected;\r\n\r\n // Composition\r\n this._children.push(newPromise);\r\n newPromise._parent = this;\r\n\r\n if (this._state !== PromiseStates.Pending) {\r\n setTimeout(() => {\r\n if (this._state === PromiseStates.Fulfilled || this._rejectWasConsumed) {\r\n newPromise._resolve(this._result);\r\n } else {\r\n newPromise._reject(this._reason);\r\n }\r\n });\r\n }\r\n\r\n return newPromise;\r\n }\r\n\r\n private _moveChildren(children: InternalPromise<T>[]): void {\r\n this._children.push(...children.splice(0, children.length));\r\n\r\n this._children.forEach((child) => {\r\n child._parent = this;\r\n });\r\n\r\n if (this._state === PromiseStates.Fulfilled) {\r\n for (const child of this._children) {\r\n child._resolve(this._result);\r\n }\r\n } else if (this._state === PromiseStates.Rejected) {\r\n for (const child of this._children) {\r\n child._reject(this._reason);\r\n }\r\n }\r\n }\r\n\r\n private _resolve(value?: Nullable<T>): void {\r\n try {\r\n this._state = PromiseStates.Fulfilled;\r\n let returnedValue: Nullable<InternalPromise<T>> | T = null;\r\n\r\n if (this._onFulfilled) {\r\n returnedValue = this._onFulfilled(value);\r\n }\r\n\r\n if (returnedValue !== undefined && returnedValue !== null) {\r\n if ((<InternalPromise<T>>returnedValue)._state !== undefined) {\r\n // Transmit children\r\n const returnedPromise = returnedValue as InternalPromise<T>;\r\n returnedPromise._parent = this;\r\n returnedPromise._moveChildren(this._children);\r\n\r\n value = returnedPromise._result;\r\n } else {\r\n value = <T>returnedValue;\r\n }\r\n }\r\n\r\n this._result = value;\r\n\r\n for (const child of this._children) {\r\n child._resolve(value);\r\n }\r\n\r\n this._children.length = 0;\r\n delete this._onFulfilled;\r\n delete this._onRejected;\r\n } catch (e) {\r\n this._reject(e, true);\r\n }\r\n }\r\n\r\n private _reject(reason: any, onLocalThrow = false): void {\r\n this._state = PromiseStates.Rejected;\r\n this._reason = reason;\r\n\r\n if (this._onRejected && !onLocalThrow) {\r\n try {\r\n this._onRejected(reason);\r\n this._rejectWasConsumed = true;\r\n } catch (e) {\r\n reason = e;\r\n }\r\n }\r\n\r\n for (const child of this._children) {\r\n if (this._rejectWasConsumed) {\r\n child._resolve(null);\r\n } else {\r\n child._reject(reason);\r\n }\r\n }\r\n\r\n this._children.length = 0;\r\n delete this._onFulfilled;\r\n delete this._onRejected;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static resolve<T>(value: T): InternalPromise<T> {\r\n const newPromise = new InternalPromise<T>();\r\n\r\n newPromise._resolve(value);\r\n\r\n return newPromise;\r\n }\r\n\r\n private static _RegisterForFulfillment<T>(promise: InternalPromise<T>, agregator: FulFillmentAgregator<T[]>, index: number) {\r\n promise.then(\r\n (value?: Nullable<T>) => {\r\n agregator.results[index] = value;\r\n agregator.count++;\r\n\r\n if (agregator.count === agregator.target) {\r\n agregator.rootPromise._resolve(agregator.results);\r\n }\r\n return null;\r\n },\r\n (reason: any) => {\r\n if (agregator.rootPromise._state !== PromiseStates.Rejected) {\r\n agregator.rootPromise._reject(reason);\r\n }\r\n }\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static all<T>(promises: InternalPromise<T>[]): InternalPromise<T[]> {\r\n const newPromise = new InternalPromise<T[]>();\r\n const agregator = new FulFillmentAgregator<T[]>();\r\n agregator.target = promises.length;\r\n agregator.rootPromise = newPromise;\r\n\r\n if (promises.length) {\r\n for (let index = 0; index < promises.length; index++) {\r\n InternalPromise._RegisterForFulfillment(promises[index], agregator, index);\r\n }\r\n } else {\r\n newPromise._resolve([]);\r\n }\r\n\r\n return newPromise;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static race<T>(promises: InternalPromise<T>[]): InternalPromise<T> {\r\n let newPromise: Nullable<InternalPromise<T>> = new InternalPromise();\r\n\r\n if (promises.length) {\r\n for (const promise of promises) {\r\n promise.then(\r\n (value?: Nullable<T>) => {\r\n if (newPromise) {\r\n newPromise._resolve(value);\r\n newPromise = null;\r\n }\r\n return null;\r\n },\r\n (reason: any) => {\r\n if (newPromise) {\r\n newPromise._reject(reason);\r\n newPromise = null;\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n return newPromise;\r\n }\r\n}\r\n\r\n/**\r\n * Helper class that provides a small promise polyfill\r\n */\r\nexport class PromisePolyfill {\r\n /**\r\n * Static function used to check if the polyfill is required\r\n * If this is the case then the function will inject the polyfill to window.Promise\r\n * @param force defines a boolean used to force the injection (mostly for testing purposes)\r\n */\r\n public static Apply(force = false): void {\r\n if (force || typeof Promise === \"undefined\") {\r\n const root: any = window;\r\n root.Promise = InternalPromise;\r\n }\r\n }\r\n}\r\n"]}
@@ -1,22 +0,0 @@
1
- /**
2
- * Class used to provide helpers for slicing
3
- */
4
- export declare class SliceTools {
5
- /**
6
- * Provides a slice function that will work even on IE
7
- * @param data defines the array to slice
8
- * @param start defines the start of the data (optional)
9
- * @param end defines the end of the data (optional)
10
- * @returns the new sliced array
11
- */
12
- static Slice<T>(data: T, start?: number, end?: number): T;
13
- /**
14
- * Provides a slice function that will work even on IE
15
- * The difference between this and Slice is that this will force-convert to array
16
- * @param data defines the array to slice
17
- * @param start defines the start of the data (optional)
18
- * @param end defines the end of the data (optional)
19
- * @returns the new sliced array
20
- */
21
- static SliceToArray<T, P>(data: T, start?: number, end?: number): Array<P>;
22
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * Class used to provide helpers for slicing
3
- */
4
- var SliceTools = /** @class */ (function () {
5
- function SliceTools() {
6
- }
7
- /**
8
- * Provides a slice function that will work even on IE
9
- * @param data defines the array to slice
10
- * @param start defines the start of the data (optional)
11
- * @param end defines the end of the data (optional)
12
- * @returns the new sliced array
13
- */
14
- SliceTools.Slice = function (data, start, end) {
15
- if (data.slice) {
16
- return data.slice(start, end);
17
- }
18
- return Array.prototype.slice.call(data, start, end);
19
- };
20
- /**
21
- * Provides a slice function that will work even on IE
22
- * The difference between this and Slice is that this will force-convert to array
23
- * @param data defines the array to slice
24
- * @param start defines the start of the data (optional)
25
- * @param end defines the end of the data (optional)
26
- * @returns the new sliced array
27
- */
28
- SliceTools.SliceToArray = function (data, start, end) {
29
- if (Array.isArray(data)) {
30
- return data.slice(start, end);
31
- }
32
- return Array.prototype.slice.call(data, start, end);
33
- };
34
- return SliceTools;
35
- }());
36
- export { SliceTools };
37
- //# sourceMappingURL=sliceTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sliceTools.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/sliceTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAAA;IA+BA,CAAC;IA9BG;;;;;;OAMG;IACW,gBAAK,GAAnB,UAAuB,IAAO,EAAE,KAAc,EAAE,GAAY;QACxD,IAAK,IAAY,CAAC,KAAK,EAAE;YACrB,OAAQ,IAAY,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACW,uBAAY,GAA1B,UAAiC,IAAO,EAAE,KAAc,EAAE,GAAY;QAClE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,OAAQ,IAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC/C;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACL,iBAAC;AAAD,CAAC,AA/BD,IA+BC","sourcesContent":["/**\r\n * Class used to provide helpers for slicing\r\n */\r\nexport class SliceTools {\r\n /**\r\n * Provides a slice function that will work even on IE\r\n * @param data defines the array to slice\r\n * @param start defines the start of the data (optional)\r\n * @param end defines the end of the data (optional)\r\n * @returns the new sliced array\r\n */\r\n public static Slice<T>(data: T, start?: number, end?: number): T {\r\n if ((data as any).slice) {\r\n return (data as any).slice(start, end);\r\n }\r\n\r\n return Array.prototype.slice.call(data, start, end);\r\n }\r\n\r\n /**\r\n * Provides a slice function that will work even on IE\r\n * The difference between this and Slice is that this will force-convert to array\r\n * @param data defines the array to slice\r\n * @param start defines the start of the data (optional)\r\n * @param end defines the end of the data (optional)\r\n * @returns the new sliced array\r\n */\r\n public static SliceToArray<T, P>(data: T, start?: number, end?: number): Array<P> {\r\n if (Array.isArray(data)) {\r\n return (data as Array<P>).slice(start, end);\r\n }\r\n\r\n return Array.prototype.slice.call(data, start, end);\r\n }\r\n}\r\n"]}