@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.
- package/Buffers/buffer.js +2 -3
- package/Buffers/buffer.js.map +1 -1
- package/Culling/ray.js.map +1 -1
- package/Engines/Processors/shaderCodeNode.js +3 -4
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Lights/shadowLight.d.ts +2 -0
- package/Lights/shadowLight.js +8 -0
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +5 -2
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/sceneLoader.js +1 -2
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +2 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Textures/Loaders/basisTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -2
- package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +2 -1
- package/Materials/Textures/cubeTexture.js +2 -2
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +5 -2
- package/Materials/Textures/texture.js +15 -11
- package/Materials/Textures/texture.js.map +1 -1
- package/Maths/math.vector.d.ts +45 -0
- package/Maths/math.vector.js +92 -7
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/abstractMesh.js +2 -3
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +1 -1
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/instancedMesh.js +11 -9
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.js +3 -0
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.js +2 -2
- package/Meshes/mesh.js.map +1 -1
- package/Misc/deepCopier.js +1 -2
- package/Misc/deepCopier.js.map +1 -1
- package/Misc/index.d.ts +0 -1
- package/Misc/index.js +0 -1
- package/Misc/index.js.map +1 -1
- package/Misc/reflector.js +1 -2
- package/Misc/reflector.js.map +1 -1
- package/Misc/sceneSerializer.js +7 -2
- package/Misc/sceneSerializer.js.map +1 -1
- package/Misc/stringTools.d.ts +2 -0
- package/Misc/stringTools.js +4 -2
- package/Misc/stringTools.js.map +1 -1
- package/Misc/tools.d.ts +0 -17
- package/Misc/tools.js +0 -25
- package/Misc/tools.js.map +1 -1
- package/Particles/solidParticleSystem.js +6 -7
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Rendering/edgesRenderer.js +1 -2
- package/Rendering/edgesRenderer.js.map +1 -1
- package/abstractScene.d.ts +1 -0
- package/abstractScene.js +1 -0
- package/abstractScene.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +2 -0
- package/scene.js +4 -6
- package/scene.js.map +1 -1
- package/Misc/promise.d.ts +0 -11
- package/Misc/promise.js +0 -230
- package/Misc/promise.js.map +0 -1
- package/Misc/sliceTools.d.ts +0 -22
- package/Misc/sliceTools.js +0 -37
- 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
|
package/Misc/promise.js.map
DELETED
|
@@ -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"]}
|
package/Misc/sliceTools.d.ts
DELETED
|
@@ -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
|
-
}
|
package/Misc/sliceTools.js
DELETED
|
@@ -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
|
package/Misc/sliceTools.js.map
DELETED
|
@@ -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"]}
|