@igo2/utils 1.8.2 → 1.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.
@@ -1,1044 +1,1077 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('bowser'), require('rxjs'), require('rxjs/operators')) :
3
3
  typeof define === 'function' && define.amd ? define('@igo2/utils', ['exports', 'bowser', 'rxjs', 'rxjs/operators'], factory) :
4
- (global = global || self, factory((global.igo2 = global.igo2 || {}, global.igo2.utils = {}), global.bowser, global.rxjs, global.rxjs.operators));
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.igo2 = global.igo2 || {}, global.igo2.utils = {}), global.bowser, global.rxjs, global.rxjs.operators));
5
5
  }(this, (function (exports, Bowser, rxjs, operators) { 'use strict';
6
6
 
7
- /* tslint:disable */
8
- var ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
9
- var Base64 = /** @class */ (function () {
10
- function Base64() {
11
- }
12
- Base64.getByte = function (s, i) {
13
- var x = s.charCodeAt(i);
14
- return x;
15
- };
16
- Base64.getByte64 = function (s, i) {
17
- var idx = this.ALPHA.indexOf(s.charAt(i));
18
- return idx;
19
- };
20
- Base64.decode = function (s) {
21
- var pads = 0, i, b10, imax = s.length, x = [];
22
- s = String(s);
23
- if (imax === 0) {
24
- return s;
25
- }
26
- if (s.charAt(imax - 1) === this.PADCHAR) {
27
- pads = 1;
28
- if (s.charAt(imax - 2) === this.PADCHAR) {
29
- pads = 2;
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () {
17
+ return e[k];
18
+ }
19
+ });
30
20
  }
31
- imax -= 4;
32
- }
33
- for (i = 0; i < imax; i += 4) {
34
- b10 =
35
- (this.getByte64(s, i) << 18) |
36
- (this.getByte64(s, i + 1) << 12) |
37
- (this.getByte64(s, i + 2) << 6) |
38
- this.getByte64(s, i + 3);
39
- x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));
40
- }
41
- switch (pads) {
42
- case 1:
43
- b10 =
44
- (this.getByte64(s, i) << 18) |
45
- (this.getByte64(s, i + 1) << 12) |
46
- (this.getByte64(s, i + 2) << 6);
47
- x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));
48
- break;
49
- case 2:
50
- b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);
51
- x.push(String.fromCharCode(b10 >> 16));
52
- break;
53
- }
54
- return x.join('');
55
- };
56
- Base64.encode = function (s) {
57
- s = String(s);
58
- var i, b10, x = [], imax = s.length - s.length % 3;
59
- if (s.length === 0) {
60
- return s;
61
- }
62
- for (i = 0; i < imax; i += 3) {
63
- b10 =
64
- (this.getByte(s, i) << 16) |
65
- (this.getByte(s, i + 1) << 8) |
66
- this.getByte(s, i + 2);
67
- x.push(this.ALPHA.charAt(b10 >> 18));
68
- x.push(this.ALPHA.charAt((b10 >> 12) & 63));
69
- x.push(this.ALPHA.charAt((b10 >> 6) & 63));
70
- x.push(this.ALPHA.charAt(b10 & 63));
71
- }
72
- switch (s.length - imax) {
73
- case 1:
74
- b10 = this.getByte(s, i) << 16;
75
- x.push(this.ALPHA.charAt(b10 >> 18) +
76
- this.ALPHA.charAt((b10 >> 12) & 63) +
77
- this.PADCHAR +
78
- this.PADCHAR);
79
- break;
80
- case 2:
81
- b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);
82
- x.push(this.ALPHA.charAt(b10 >> 18) +
83
- this.ALPHA.charAt((b10 >> 12) & 63) +
84
- this.ALPHA.charAt((b10 >> 6) & 63) +
85
- this.PADCHAR);
86
- break;
87
- }
88
- return x.join('');
89
- };
90
- return Base64;
91
- }());
92
- Base64.PADCHAR = '=';
93
- Base64.ALPHA = ALPHA;
21
+ });
22
+ }
23
+ n['default'] = e;
24
+ return Object.freeze(n);
25
+ }
94
26
 
95
- var userAgent = Bowser.getParser(window.navigator.userAgent);
27
+ var Bowser__namespace = /*#__PURE__*/_interopNamespace(Bowser);
96
28
 
97
- var Clipboard = /** @class */ (function () {
98
- function Clipboard() {
99
- }
100
- Clipboard.copy = function (element) {
101
- var successful = false;
102
- if (typeof element === 'string') {
103
- var textArea = Clipboard.createTextArea(element);
104
- Clipboard.selectText(textArea);
105
- successful = Clipboard.copyTextToClipboard();
106
- Clipboard.destroyTextArea(textArea);
107
- }
108
- else {
109
- Clipboard.selectText(element);
110
- successful = Clipboard.copyTextToClipboard();
111
- }
112
- return successful;
113
- };
114
- Clipboard.createTextArea = function (text) {
115
- var textArea = document.createElement('textArea');
116
- textArea.value = text;
117
- document.body.appendChild(textArea);
118
- return textArea;
119
- };
120
- Clipboard.destroyTextArea = function (textArea) {
121
- document.body.removeChild(textArea);
122
- };
123
- Clipboard.selectText = function (textArea) {
124
- if (userAgent.getOSName() === 'iOS') {
125
- var oldContentEditable = textArea.contentEditable;
126
- var oldReadOnly = textArea.readOnly;
127
- var range = document.createRange();
128
- var selection = window.getSelection();
129
- textArea.contenteditable = true;
130
- textArea.readonly = false;
131
- range.selectNodeContents(textArea);
132
- selection.removeAllRanges();
133
- selection.addRange(range);
134
- textArea.setSelectionRange(0, 999999);
135
- textArea.contentEditable = oldContentEditable;
136
- textArea.readOnly = oldReadOnly;
137
- }
138
- else {
139
- textArea.select();
140
- }
141
- };
142
- Clipboard.copyTextToClipboard = function () {
143
- if (!(userAgent.getOSName() === 'iOS' && userAgent.compareVersion('<10'))) {
144
- return document.execCommand('copy');
145
- }
146
- return false;
147
- };
148
- return Clipboard;
149
- }());
29
+ /* tslint:disable */
30
+ var ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
31
+ var Base64 = /** @class */ (function () {
32
+ function Base64() {
33
+ }
34
+ Base64.getByte = function (s, i) {
35
+ var x = s.charCodeAt(i);
36
+ return x;
37
+ };
38
+ Base64.getByte64 = function (s, i) {
39
+ var idx = this.ALPHA.indexOf(s.charAt(i));
40
+ return idx;
41
+ };
42
+ Base64.decode = function (s) {
43
+ var pads = 0, i, b10, imax = s.length, x = [];
44
+ s = String(s);
45
+ if (imax === 0) {
46
+ return s;
47
+ }
48
+ if (s.charAt(imax - 1) === this.PADCHAR) {
49
+ pads = 1;
50
+ if (s.charAt(imax - 2) === this.PADCHAR) {
51
+ pads = 2;
52
+ }
53
+ imax -= 4;
54
+ }
55
+ for (i = 0; i < imax; i += 4) {
56
+ b10 =
57
+ (this.getByte64(s, i) << 18) |
58
+ (this.getByte64(s, i + 1) << 12) |
59
+ (this.getByte64(s, i + 2) << 6) |
60
+ this.getByte64(s, i + 3);
61
+ x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));
62
+ }
63
+ switch (pads) {
64
+ case 1:
65
+ b10 =
66
+ (this.getByte64(s, i) << 18) |
67
+ (this.getByte64(s, i + 1) << 12) |
68
+ (this.getByte64(s, i + 2) << 6);
69
+ x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));
70
+ break;
71
+ case 2:
72
+ b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);
73
+ x.push(String.fromCharCode(b10 >> 16));
74
+ break;
75
+ }
76
+ return x.join('');
77
+ };
78
+ Base64.encode = function (s) {
79
+ s = String(s);
80
+ var i, b10, x = [], imax = s.length - s.length % 3;
81
+ if (s.length === 0) {
82
+ return s;
83
+ }
84
+ for (i = 0; i < imax; i += 3) {
85
+ b10 =
86
+ (this.getByte(s, i) << 16) |
87
+ (this.getByte(s, i + 1) << 8) |
88
+ this.getByte(s, i + 2);
89
+ x.push(this.ALPHA.charAt(b10 >> 18));
90
+ x.push(this.ALPHA.charAt((b10 >> 12) & 63));
91
+ x.push(this.ALPHA.charAt((b10 >> 6) & 63));
92
+ x.push(this.ALPHA.charAt(b10 & 63));
93
+ }
94
+ switch (s.length - imax) {
95
+ case 1:
96
+ b10 = this.getByte(s, i) << 16;
97
+ x.push(this.ALPHA.charAt(b10 >> 18) +
98
+ this.ALPHA.charAt((b10 >> 12) & 63) +
99
+ this.PADCHAR +
100
+ this.PADCHAR);
101
+ break;
102
+ case 2:
103
+ b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);
104
+ x.push(this.ALPHA.charAt(b10 >> 18) +
105
+ this.ALPHA.charAt((b10 >> 12) & 63) +
106
+ this.ALPHA.charAt((b10 >> 6) & 63) +
107
+ this.PADCHAR);
108
+ break;
109
+ }
110
+ return x.join('');
111
+ };
112
+ return Base64;
113
+ }());
114
+ Base64.PADCHAR = '=';
115
+ Base64.ALPHA = ALPHA;
150
116
 
151
- /*! *****************************************************************************
152
- Copyright (c) Microsoft Corporation.
117
+ var userAgent = Bowser__namespace.getParser(window.navigator.userAgent);
153
118
 
154
- Permission to use, copy, modify, and/or distribute this software for any
155
- purpose with or without fee is hereby granted.
119
+ var Clipboard = /** @class */ (function () {
120
+ function Clipboard() {
121
+ }
122
+ Clipboard.copy = function (element) {
123
+ var successful = false;
124
+ if (typeof element === 'string') {
125
+ var textArea = Clipboard.createTextArea(element);
126
+ Clipboard.selectText(textArea);
127
+ successful = Clipboard.copyTextToClipboard();
128
+ Clipboard.destroyTextArea(textArea);
129
+ }
130
+ else {
131
+ Clipboard.selectText(element);
132
+ successful = Clipboard.copyTextToClipboard();
133
+ }
134
+ return successful;
135
+ };
136
+ Clipboard.createTextArea = function (text) {
137
+ var textArea = document.createElement('textArea');
138
+ textArea.value = text;
139
+ document.body.appendChild(textArea);
140
+ return textArea;
141
+ };
142
+ Clipboard.destroyTextArea = function (textArea) {
143
+ document.body.removeChild(textArea);
144
+ };
145
+ Clipboard.selectText = function (textArea) {
146
+ if (userAgent.getOSName() === 'iOS') {
147
+ var oldContentEditable = textArea.contentEditable;
148
+ var oldReadOnly = textArea.readOnly;
149
+ var range = document.createRange();
150
+ var selection = window.getSelection();
151
+ textArea.contenteditable = true;
152
+ textArea.readonly = false;
153
+ range.selectNodeContents(textArea);
154
+ selection.removeAllRanges();
155
+ selection.addRange(range);
156
+ textArea.setSelectionRange(0, 999999);
157
+ textArea.contentEditable = oldContentEditable;
158
+ textArea.readOnly = oldReadOnly;
159
+ }
160
+ else {
161
+ textArea.select();
162
+ }
163
+ };
164
+ Clipboard.copyTextToClipboard = function () {
165
+ if (!(userAgent.getOSName() === 'iOS' && userAgent.compareVersion('<10'))) {
166
+ return document.execCommand('copy');
167
+ }
168
+ return false;
169
+ };
170
+ return Clipboard;
171
+ }());
156
172
 
157
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
158
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
159
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
160
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
161
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
162
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
163
- PERFORMANCE OF THIS SOFTWARE.
164
- ***************************************************************************** */
165
- /* global Reflect, Promise */
166
- var extendStatics = function (d, b) {
167
- extendStatics = Object.setPrototypeOf ||
168
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
169
- function (d, b) { for (var p in b)
170
- if (Object.prototype.hasOwnProperty.call(b, p))
171
- d[p] = b[p]; };
172
- return extendStatics(d, b);
173
- };
174
- function __extends(d, b) {
175
- if (typeof b !== "function" && b !== null)
176
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
177
- extendStatics(d, b);
178
- function __() { this.constructor = d; }
179
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
180
- }
181
- var __assign = function () {
182
- __assign = Object.assign || function __assign(t) {
183
- for (var s, i = 1, n = arguments.length; i < n; i++) {
184
- s = arguments[i];
185
- for (var p in s)
186
- if (Object.prototype.hasOwnProperty.call(s, p))
187
- t[p] = s[p];
188
- }
189
- return t;
190
- };
191
- return __assign.apply(this, arguments);
192
- };
193
- function __rest(s, e) {
194
- var t = {};
195
- for (var p in s)
196
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
197
- t[p] = s[p];
198
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
199
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
200
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
201
- t[p[i]] = s[p[i]];
202
- }
203
- return t;
204
- }
205
- function __decorate(decorators, target, key, desc) {
206
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
207
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
208
- r = Reflect.decorate(decorators, target, key, desc);
209
- else
210
- for (var i = decorators.length - 1; i >= 0; i--)
211
- if (d = decorators[i])
212
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
213
- return c > 3 && r && Object.defineProperty(target, key, r), r;
214
- }
215
- function __param(paramIndex, decorator) {
216
- return function (target, key) { decorator(target, key, paramIndex); };
217
- }
218
- function __metadata(metadataKey, metadataValue) {
219
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
220
- return Reflect.metadata(metadataKey, metadataValue);
221
- }
222
- function __awaiter(thisArg, _arguments, P, generator) {
223
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
224
- return new (P || (P = Promise))(function (resolve, reject) {
225
- function fulfilled(value) { try {
226
- step(generator.next(value));
227
- }
228
- catch (e) {
229
- reject(e);
230
- } }
231
- function rejected(value) { try {
232
- step(generator["throw"](value));
233
- }
234
- catch (e) {
235
- reject(e);
236
- } }
237
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
238
- step((generator = generator.apply(thisArg, _arguments || [])).next());
239
- });
240
- }
241
- function __generator(thisArg, body) {
242
- var _ = { label: 0, sent: function () { if (t[0] & 1)
243
- throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
244
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
245
- function verb(n) { return function (v) { return step([n, v]); }; }
246
- function step(op) {
247
- if (f)
248
- throw new TypeError("Generator is already executing.");
249
- while (_)
250
- try {
251
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
252
- return t;
253
- if (y = 0, t)
254
- op = [op[0] & 2, t.value];
255
- switch (op[0]) {
256
- case 0:
257
- case 1:
258
- t = op;
259
- break;
260
- case 4:
261
- _.label++;
262
- return { value: op[1], done: false };
263
- case 5:
264
- _.label++;
265
- y = op[1];
266
- op = [0];
267
- continue;
268
- case 7:
269
- op = _.ops.pop();
270
- _.trys.pop();
271
- continue;
272
- default:
273
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
274
- _ = 0;
275
- continue;
276
- }
277
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
278
- _.label = op[1];
279
- break;
280
- }
281
- if (op[0] === 6 && _.label < t[1]) {
282
- _.label = t[1];
283
- t = op;
284
- break;
285
- }
286
- if (t && _.label < t[2]) {
287
- _.label = t[2];
288
- _.ops.push(op);
289
- break;
290
- }
291
- if (t[2])
292
- _.ops.pop();
293
- _.trys.pop();
294
- continue;
295
- }
296
- op = body.call(thisArg, _);
297
- }
298
- catch (e) {
299
- op = [6, e];
300
- y = 0;
301
- }
302
- finally {
303
- f = t = 0;
304
- }
305
- if (op[0] & 5)
306
- throw op[1];
307
- return { value: op[0] ? op[1] : void 0, done: true };
308
- }
309
- }
310
- var __createBinding = Object.create ? (function (o, m, k, k2) {
311
- if (k2 === undefined)
312
- k2 = k;
313
- Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
314
- }) : (function (o, m, k, k2) {
315
- if (k2 === undefined)
316
- k2 = k;
317
- o[k2] = m[k];
318
- });
319
- function __exportStar(m, o) {
320
- for (var p in m)
321
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
322
- __createBinding(o, m, p);
323
- }
324
- function __values(o) {
325
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
326
- if (m)
327
- return m.call(o);
328
- if (o && typeof o.length === "number")
329
- return {
330
- next: function () {
331
- if (o && i >= o.length)
332
- o = void 0;
333
- return { value: o && o[i++], done: !o };
334
- }
335
- };
336
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
337
- }
338
- function __read(o, n) {
339
- var m = typeof Symbol === "function" && o[Symbol.iterator];
340
- if (!m)
341
- return o;
342
- var i = m.call(o), r, ar = [], e;
343
- try {
344
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
345
- ar.push(r.value);
346
- }
347
- catch (error) {
348
- e = { error: error };
349
- }
350
- finally {
351
- try {
352
- if (r && !r.done && (m = i["return"]))
353
- m.call(i);
354
- }
355
- finally {
356
- if (e)
357
- throw e.error;
358
- }
359
- }
360
- return ar;
361
- }
362
- /** @deprecated */
363
- function __spread() {
364
- for (var ar = [], i = 0; i < arguments.length; i++)
365
- ar = ar.concat(__read(arguments[i]));
366
- return ar;
367
- }
368
- /** @deprecated */
369
- function __spreadArrays() {
370
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
371
- s += arguments[i].length;
372
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
373
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
374
- r[k] = a[j];
375
- return r;
376
- }
377
- function __spreadArray(to, from) {
378
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
379
- to[j] = from[i];
380
- return to;
381
- }
382
- function __await(v) {
383
- return this instanceof __await ? (this.v = v, this) : new __await(v);
384
- }
385
- function __asyncGenerator(thisArg, _arguments, generator) {
386
- if (!Symbol.asyncIterator)
387
- throw new TypeError("Symbol.asyncIterator is not defined.");
388
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
389
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
390
- function verb(n) { if (g[n])
391
- i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
392
- function resume(n, v) { try {
393
- step(g[n](v));
394
- }
395
- catch (e) {
396
- settle(q[0][3], e);
397
- } }
398
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
399
- function fulfill(value) { resume("next", value); }
400
- function reject(value) { resume("throw", value); }
401
- function settle(f, v) { if (f(v), q.shift(), q.length)
402
- resume(q[0][0], q[0][1]); }
403
- }
404
- function __asyncDelegator(o) {
405
- var i, p;
406
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
407
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
408
- }
409
- function __asyncValues(o) {
410
- if (!Symbol.asyncIterator)
411
- throw new TypeError("Symbol.asyncIterator is not defined.");
412
- var m = o[Symbol.asyncIterator], i;
413
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
414
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
415
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
416
- }
417
- function __makeTemplateObject(cooked, raw) {
418
- if (Object.defineProperty) {
419
- Object.defineProperty(cooked, "raw", { value: raw });
420
- }
421
- else {
422
- cooked.raw = raw;
423
- }
424
- return cooked;
425
- }
426
- ;
427
- var __setModuleDefault = Object.create ? (function (o, v) {
428
- Object.defineProperty(o, "default", { enumerable: true, value: v });
429
- }) : function (o, v) {
430
- o["default"] = v;
431
- };
432
- function __importStar(mod) {
433
- if (mod && mod.__esModule)
434
- return mod;
435
- var result = {};
436
- if (mod != null)
437
- for (var k in mod)
438
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
439
- __createBinding(result, mod, k);
440
- __setModuleDefault(result, mod);
441
- return result;
442
- }
443
- function __importDefault(mod) {
444
- return (mod && mod.__esModule) ? mod : { default: mod };
445
- }
446
- function __classPrivateFieldGet(receiver, privateMap) {
447
- if (!privateMap.has(receiver)) {
448
- throw new TypeError("attempted to get private field on non-instance");
449
- }
450
- return privateMap.get(receiver);
451
- }
452
- function __classPrivateFieldSet(receiver, privateMap, value) {
453
- if (!privateMap.has(receiver)) {
454
- throw new TypeError("attempted to set private field on non-instance");
455
- }
456
- privateMap.set(receiver, value);
457
- return value;
173
+ /*! *****************************************************************************
174
+ Copyright (c) Microsoft Corporation.
175
+
176
+ Permission to use, copy, modify, and/or distribute this software for any
177
+ purpose with or without fee is hereby granted.
178
+
179
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
180
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
181
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
182
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
183
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
184
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
185
+ PERFORMANCE OF THIS SOFTWARE.
186
+ ***************************************************************************** */
187
+ /* global Reflect, Promise */
188
+ var extendStatics = function (d, b) {
189
+ extendStatics = Object.setPrototypeOf ||
190
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
191
+ function (d, b) { for (var p in b)
192
+ if (Object.prototype.hasOwnProperty.call(b, p))
193
+ d[p] = b[p]; };
194
+ return extendStatics(d, b);
195
+ };
196
+ function __extends(d, b) {
197
+ if (typeof b !== "function" && b !== null)
198
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
199
+ extendStatics(d, b);
200
+ function __() { this.constructor = d; }
201
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
202
+ }
203
+ var __assign = function () {
204
+ __assign = Object.assign || function __assign(t) {
205
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
206
+ s = arguments[i];
207
+ for (var p in s)
208
+ if (Object.prototype.hasOwnProperty.call(s, p))
209
+ t[p] = s[p];
210
+ }
211
+ return t;
212
+ };
213
+ return __assign.apply(this, arguments);
214
+ };
215
+ function __rest(s, e) {
216
+ var t = {};
217
+ for (var p in s)
218
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
219
+ t[p] = s[p];
220
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
221
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
222
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
223
+ t[p[i]] = s[p[i]];
224
+ }
225
+ return t;
226
+ }
227
+ function __decorate(decorators, target, key, desc) {
228
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
229
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
230
+ r = Reflect.decorate(decorators, target, key, desc);
231
+ else
232
+ for (var i = decorators.length - 1; i >= 0; i--)
233
+ if (d = decorators[i])
234
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
235
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
236
+ }
237
+ function __param(paramIndex, decorator) {
238
+ return function (target, key) { decorator(target, key, paramIndex); };
239
+ }
240
+ function __metadata(metadataKey, metadataValue) {
241
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
242
+ return Reflect.metadata(metadataKey, metadataValue);
243
+ }
244
+ function __awaiter(thisArg, _arguments, P, generator) {
245
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
246
+ return new (P || (P = Promise))(function (resolve, reject) {
247
+ function fulfilled(value) { try {
248
+ step(generator.next(value));
249
+ }
250
+ catch (e) {
251
+ reject(e);
252
+ } }
253
+ function rejected(value) { try {
254
+ step(generator["throw"](value));
255
+ }
256
+ catch (e) {
257
+ reject(e);
258
+ } }
259
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
260
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
261
+ });
262
+ }
263
+ function __generator(thisArg, body) {
264
+ var _ = { label: 0, sent: function () { if (t[0] & 1)
265
+ throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
266
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
267
+ function verb(n) { return function (v) { return step([n, v]); }; }
268
+ function step(op) {
269
+ if (f)
270
+ throw new TypeError("Generator is already executing.");
271
+ while (_)
272
+ try {
273
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
274
+ return t;
275
+ if (y = 0, t)
276
+ op = [op[0] & 2, t.value];
277
+ switch (op[0]) {
278
+ case 0:
279
+ case 1:
280
+ t = op;
281
+ break;
282
+ case 4:
283
+ _.label++;
284
+ return { value: op[1], done: false };
285
+ case 5:
286
+ _.label++;
287
+ y = op[1];
288
+ op = [0];
289
+ continue;
290
+ case 7:
291
+ op = _.ops.pop();
292
+ _.trys.pop();
293
+ continue;
294
+ default:
295
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
296
+ _ = 0;
297
+ continue;
298
+ }
299
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
300
+ _.label = op[1];
301
+ break;
302
+ }
303
+ if (op[0] === 6 && _.label < t[1]) {
304
+ _.label = t[1];
305
+ t = op;
306
+ break;
307
+ }
308
+ if (t && _.label < t[2]) {
309
+ _.label = t[2];
310
+ _.ops.push(op);
311
+ break;
312
+ }
313
+ if (t[2])
314
+ _.ops.pop();
315
+ _.trys.pop();
316
+ continue;
317
+ }
318
+ op = body.call(thisArg, _);
319
+ }
320
+ catch (e) {
321
+ op = [6, e];
322
+ y = 0;
323
+ }
324
+ finally {
325
+ f = t = 0;
326
+ }
327
+ if (op[0] & 5)
328
+ throw op[1];
329
+ return { value: op[0] ? op[1] : void 0, done: true };
330
+ }
331
+ }
332
+ var __createBinding = Object.create ? (function (o, m, k, k2) {
333
+ if (k2 === undefined)
334
+ k2 = k;
335
+ Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
336
+ }) : (function (o, m, k, k2) {
337
+ if (k2 === undefined)
338
+ k2 = k;
339
+ o[k2] = m[k];
340
+ });
341
+ function __exportStar(m, o) {
342
+ for (var p in m)
343
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
344
+ __createBinding(o, m, p);
345
+ }
346
+ function __values(o) {
347
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
348
+ if (m)
349
+ return m.call(o);
350
+ if (o && typeof o.length === "number")
351
+ return {
352
+ next: function () {
353
+ if (o && i >= o.length)
354
+ o = void 0;
355
+ return { value: o && o[i++], done: !o };
356
+ }
357
+ };
358
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
359
+ }
360
+ function __read(o, n) {
361
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
362
+ if (!m)
363
+ return o;
364
+ var i = m.call(o), r, ar = [], e;
365
+ try {
366
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
367
+ ar.push(r.value);
368
+ }
369
+ catch (error) {
370
+ e = { error: error };
371
+ }
372
+ finally {
373
+ try {
374
+ if (r && !r.done && (m = i["return"]))
375
+ m.call(i);
376
+ }
377
+ finally {
378
+ if (e)
379
+ throw e.error;
380
+ }
381
+ }
382
+ return ar;
383
+ }
384
+ /** @deprecated */
385
+ function __spread() {
386
+ for (var ar = [], i = 0; i < arguments.length; i++)
387
+ ar = ar.concat(__read(arguments[i]));
388
+ return ar;
389
+ }
390
+ /** @deprecated */
391
+ function __spreadArrays() {
392
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
393
+ s += arguments[i].length;
394
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
395
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
396
+ r[k] = a[j];
397
+ return r;
398
+ }
399
+ function __spreadArray(to, from, pack) {
400
+ if (pack || arguments.length === 2)
401
+ for (var i = 0, l = from.length, ar; i < l; i++) {
402
+ if (ar || !(i in from)) {
403
+ if (!ar)
404
+ ar = Array.prototype.slice.call(from, 0, i);
405
+ ar[i] = from[i];
406
+ }
407
+ }
408
+ return to.concat(ar || Array.prototype.slice.call(from));
409
+ }
410
+ function __await(v) {
411
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
412
+ }
413
+ function __asyncGenerator(thisArg, _arguments, generator) {
414
+ if (!Symbol.asyncIterator)
415
+ throw new TypeError("Symbol.asyncIterator is not defined.");
416
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
417
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
418
+ function verb(n) { if (g[n])
419
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
420
+ function resume(n, v) { try {
421
+ step(g[n](v));
422
+ }
423
+ catch (e) {
424
+ settle(q[0][3], e);
425
+ } }
426
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
427
+ function fulfill(value) { resume("next", value); }
428
+ function reject(value) { resume("throw", value); }
429
+ function settle(f, v) { if (f(v), q.shift(), q.length)
430
+ resume(q[0][0], q[0][1]); }
431
+ }
432
+ function __asyncDelegator(o) {
433
+ var i, p;
434
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
435
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
436
+ }
437
+ function __asyncValues(o) {
438
+ if (!Symbol.asyncIterator)
439
+ throw new TypeError("Symbol.asyncIterator is not defined.");
440
+ var m = o[Symbol.asyncIterator], i;
441
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
442
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
443
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
444
+ }
445
+ function __makeTemplateObject(cooked, raw) {
446
+ if (Object.defineProperty) {
447
+ Object.defineProperty(cooked, "raw", { value: raw });
448
+ }
449
+ else {
450
+ cooked.raw = raw;
451
+ }
452
+ return cooked;
453
+ }
454
+ ;
455
+ var __setModuleDefault = Object.create ? (function (o, v) {
456
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
457
+ }) : function (o, v) {
458
+ o["default"] = v;
459
+ };
460
+ function __importStar(mod) {
461
+ if (mod && mod.__esModule)
462
+ return mod;
463
+ var result = {};
464
+ if (mod != null)
465
+ for (var k in mod)
466
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
467
+ __createBinding(result, mod, k);
468
+ __setModuleDefault(result, mod);
469
+ return result;
470
+ }
471
+ function __importDefault(mod) {
472
+ return (mod && mod.__esModule) ? mod : { default: mod };
473
+ }
474
+ function __classPrivateFieldGet(receiver, state, kind, f) {
475
+ if (kind === "a" && !f)
476
+ throw new TypeError("Private accessor was defined without a getter");
477
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
478
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
479
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
480
+ }
481
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
482
+ if (kind === "m")
483
+ throw new TypeError("Private method is not writable");
484
+ if (kind === "a" && !f)
485
+ throw new TypeError("Private accessor was defined without a setter");
486
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
487
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
488
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
458
489
  }
459
490
 
460
- var StringUtils = /** @class */ (function () {
461
- function StringUtils() {
462
- }
463
- StringUtils.diff = function (s1, s2, p) {
464
- if (p === void 0) { p = 4; }
465
- if (!s1 && !s2) {
466
- return '';
467
- }
468
- if (!s1) {
469
- return '<span class="inserted">' + s2 + '</span>';
470
- }
471
- if (!s2) {
472
- return '<span class="deleted">' + s1 + '</span>';
473
- }
474
- s1 = s1.toString();
475
- s2 = s2.toString();
476
- var changeData = StringUtils.getChanges(s1, s2, '', p);
477
- var nextS = s2.slice(changeData.mtc.length + changeData.ins.length + changeData.sbs.length); // remaining part of "s"
478
- var nextThis = s1.slice(changeData.mtc.length + changeData.del.length + changeData.sbs.length); // remaining part of "this"
479
- var result = ''; // the glorious result
480
- if (changeData.del.length > 0) {
481
- changeData.del = '<span class="deleted">' + changeData.del + '</span>';
482
- }
483
- if (changeData.ins.length > 0) {
484
- changeData.ins = '<span class="inserted">' + changeData.ins + '</span>';
485
- }
486
- result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;
487
- result +=
488
- nextThis !== '' || nextS !== ''
489
- ? StringUtils.diff(nextThis, nextS, p)
490
- : '';
491
- return result;
492
- };
493
- StringUtils.getMatchingSubstring = function (s, l, m) {
494
- // returns the first matching substring in-between the two strings
495
- var i = 0;
496
- var match = false;
497
- var slen = s.length;
498
- var o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object
499
- while (i < slen) {
500
- l[i] === s[i]
501
- ? match
502
- ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef
503
- : ((match = true), (o.fis = i), (o.sbs = s[i]))
504
- : match
505
- ? (i = slen) // stop after the first found substring
506
- : (i = i);
507
- ++i;
508
- }
509
- return o;
510
- };
511
- StringUtils.getChanges = function (s1, s2, m, p) {
512
- var _a;
513
- var isThisLonger = s1.length >= s1.length ? true : false;
514
- var _b = __read(isThisLonger ? [s1, s2] : [s2, s1], 2), longer = _b[0], shorter = _b[1]; // assignment of longer and shorter by es6 destructuring
515
- var bi = 0; // base index designating the index of first mismacthing character in both strings
516
- while (shorter[bi] === longer[bi] && bi < shorter.length) {
517
- ++bi;
518
- } // make bi the index of first mismatching character
519
- longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array
520
- shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character
521
- var len = longer.length; // length of the longer string
522
- var cd = {
523
- fis: shorter.length,
524
- fil: len,
525
- sbs: '',
526
- mtc: m + s2.slice(0, bi)
527
- }; // if exists mtc holds the matching string at the front
528
- var sub = { sbs: '' }; // returned substring per 1 character rotation of the longer string
529
- if (shorter !== '') {
530
- for (var rc = 0; rc < len && sub.sbs.length < p; rc++) {
531
- // rc -> rotate count, p -> precision factor
532
- sub = StringUtils.getMatchingSubstring(shorter, StringUtils.rotateArray(longer, rc), cd.mtc); // rotate longer string 1 char and get substring
533
- sub.fil =
534
- rc < len - sub.fis
535
- ? sub.fis + rc // mismatch is longer than the mismatch in short
536
- : sub.fis - len + rc; // mismatch is shorter than the mismatch in short
537
- if (sub.sbs.length > cd.sbs.length) {
538
- cd = sub; // only keep the one with the longest substring.
539
- }
540
- }
541
- }
542
- // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring
543
- _a = __read(isThisLonger
544
- ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]
545
- : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')], 2), cd.del = _a[0], cd.ins = _a[1];
546
- return cd.del.indexOf(' ') === -1 ||
547
- cd.ins.indexOf(' ') === -1 ||
548
- cd.del === '' ||
549
- cd.ins === '' ||
550
- cd.sbs === ''
551
- ? cd
552
- : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);
553
- };
554
- StringUtils.rotateArray = function (array, n) {
555
- var len = array.length;
556
- var res = new Array(array.length);
557
- if (n % len === 0) {
558
- return array.slice();
559
- }
560
- else {
561
- for (var i = 0; i < len; i++) {
562
- res[i] = array[(i + (len + (n % len))) % len];
563
- }
564
- }
565
- return res;
566
- };
567
- return StringUtils;
491
+ var StringUtils = /** @class */ (function () {
492
+ function StringUtils() {
493
+ }
494
+ StringUtils.diff = function (s1, s2, p) {
495
+ if (p === void 0) { p = 4; }
496
+ if (!s1 && !s2) {
497
+ return '';
498
+ }
499
+ if (!s1) {
500
+ return '<span class="inserted">' + s2 + '</span>';
501
+ }
502
+ if (!s2) {
503
+ return '<span class="deleted">' + s1 + '</span>';
504
+ }
505
+ s1 = s1.toString();
506
+ s2 = s2.toString();
507
+ var changeData = StringUtils.getChanges(s1, s2, '', p);
508
+ var nextS = s2.slice(changeData.mtc.length + changeData.ins.length + changeData.sbs.length); // remaining part of "s"
509
+ var nextThis = s1.slice(changeData.mtc.length + changeData.del.length + changeData.sbs.length); // remaining part of "this"
510
+ var result = ''; // the glorious result
511
+ if (changeData.del.length > 0) {
512
+ changeData.del = '<span class="deleted">' + changeData.del + '</span>';
513
+ }
514
+ if (changeData.ins.length > 0) {
515
+ changeData.ins = '<span class="inserted">' + changeData.ins + '</span>';
516
+ }
517
+ result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;
518
+ result +=
519
+ nextThis !== '' || nextS !== ''
520
+ ? StringUtils.diff(nextThis, nextS, p)
521
+ : '';
522
+ return result;
523
+ };
524
+ StringUtils.getMatchingSubstring = function (s, l, m) {
525
+ // returns the first matching substring in-between the two strings
526
+ var i = 0;
527
+ var match = false;
528
+ var slen = s.length;
529
+ var o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object
530
+ while (i < slen) {
531
+ l[i] === s[i]
532
+ ? match
533
+ ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef
534
+ : ((match = true), (o.fis = i), (o.sbs = s[i]))
535
+ : match
536
+ ? (i = slen) // stop after the first found substring
537
+ : (i = i);
538
+ ++i;
539
+ }
540
+ return o;
541
+ };
542
+ StringUtils.getChanges = function (s1, s2, m, p) {
543
+ var _a;
544
+ var isThisLonger = s1.length >= s1.length ? true : false;
545
+ var _b = __read(isThisLonger ? [s1, s2] : [s2, s1], 2), longer = _b[0], shorter = _b[1]; // assignment of longer and shorter by es6 destructuring
546
+ var bi = 0; // base index designating the index of first mismacthing character in both strings
547
+ while (shorter[bi] === longer[bi] && bi < shorter.length) {
548
+ ++bi;
549
+ } // make bi the index of first mismatching character
550
+ longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array
551
+ shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character
552
+ var len = longer.length; // length of the longer string
553
+ var cd = {
554
+ fis: shorter.length,
555
+ fil: len,
556
+ sbs: '',
557
+ mtc: m + s2.slice(0, bi)
558
+ }; // if exists mtc holds the matching string at the front
559
+ var sub = { sbs: '' }; // returned substring per 1 character rotation of the longer string
560
+ if (shorter !== '') {
561
+ for (var rc = 0; rc < len && sub.sbs.length < p; rc++) {
562
+ // rc -> rotate count, p -> precision factor
563
+ sub = StringUtils.getMatchingSubstring(shorter, StringUtils.rotateArray(longer, rc), cd.mtc); // rotate longer string 1 char and get substring
564
+ sub.fil =
565
+ rc < len - sub.fis
566
+ ? sub.fis + rc // mismatch is longer than the mismatch in short
567
+ : sub.fis - len + rc; // mismatch is shorter than the mismatch in short
568
+ if (sub.sbs.length > cd.sbs.length) {
569
+ cd = sub; // only keep the one with the longest substring.
570
+ }
571
+ }
572
+ }
573
+ // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring
574
+ _a = __read(isThisLonger
575
+ ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]
576
+ : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')], 2), cd.del = _a[0], cd.ins = _a[1];
577
+ return cd.del.indexOf(' ') === -1 ||
578
+ cd.ins.indexOf(' ') === -1 ||
579
+ cd.del === '' ||
580
+ cd.ins === '' ||
581
+ cd.sbs === ''
582
+ ? cd
583
+ : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);
584
+ };
585
+ StringUtils.rotateArray = function (array, n) {
586
+ var len = array.length;
587
+ var res = new Array(array.length);
588
+ if (n % len === 0) {
589
+ return array.slice();
590
+ }
591
+ else {
592
+ for (var i = 0; i < len; i++) {
593
+ res[i] = array[(i + (len + (n % len))) % len];
594
+ }
595
+ }
596
+ return res;
597
+ };
598
+ return StringUtils;
568
599
  }());
569
600
 
570
- (function (ChangeType) {
571
- ChangeType["ADDED"] = "added";
572
- ChangeType["DELETED"] = "deleted";
573
- ChangeType["MODIFIED"] = "modified";
601
+ exports.ChangeType = void 0;
602
+ (function (ChangeType) {
603
+ ChangeType["ADDED"] = "added";
604
+ ChangeType["DELETED"] = "deleted";
605
+ ChangeType["MODIFIED"] = "modified";
574
606
  })(exports.ChangeType || (exports.ChangeType = {}));
575
607
 
576
- var ChangeUtils = /** @class */ (function () {
577
- function ChangeUtils() {
578
- }
579
- ChangeUtils.findChanges = function (obj1, obj2, ignoreKeys) {
580
- var e_1, _a;
581
- if (ignoreKeys === void 0) { ignoreKeys = []; }
582
- var items = {
583
- added: [],
584
- deleted: [],
585
- modified: []
586
- };
587
- if (!obj1 || !obj2) {
588
- return items;
589
- }
590
- var obj1Clone = __spread(obj1);
591
- var obj2Clone = __spread(obj2);
592
- var _loop_1 = function (fromItem) {
593
- var index = obj2Clone.findIndex(function (s) { return s.id === fromItem.id; });
594
- if (index === -1) {
595
- items.deleted.push({
596
- change: { type: exports.ChangeType.DELETED },
597
- value: fromItem
598
- });
599
- return "continue";
600
- }
601
- var toItem = obj2Clone.splice(index, 1)[0];
602
- var fromItemClone = JSON.parse(JSON.stringify(fromItem));
603
- var toItemClone = JSON.parse(JSON.stringify(toItem));
604
- var keysChanged = ChangeUtils.compareObject(fromItemClone, toItemClone, undefined, ignoreKeys);
605
- if (keysChanged.length) {
606
- items.modified.push({
607
- change: {
608
- type: exports.ChangeType.MODIFIED,
609
- keysChanged: keysChanged
610
- },
611
- value: fromItemClone,
612
- oldValue: fromItem,
613
- newValue: toItem
614
- });
615
- }
616
- };
617
- try {
618
- for (var obj1Clone_1 = __values(obj1Clone), obj1Clone_1_1 = obj1Clone_1.next(); !obj1Clone_1_1.done; obj1Clone_1_1 = obj1Clone_1.next()) {
619
- var fromItem = obj1Clone_1_1.value;
620
- _loop_1(fromItem);
621
- }
622
- }
623
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
624
- finally {
625
- try {
626
- if (obj1Clone_1_1 && !obj1Clone_1_1.done && (_a = obj1Clone_1.return)) _a.call(obj1Clone_1);
627
- }
628
- finally { if (e_1) throw e_1.error; }
629
- }
630
- items.added = obj2Clone.map(function (itemAdded) {
631
- return {
632
- change: { type: exports.ChangeType.ADDED },
633
- value: itemAdded
634
- };
635
- });
636
- return items;
637
- };
638
- ChangeUtils.compareObject = function (fromItem, toItem, baseKey, ignoreKeys) {
639
- var _this = this;
640
- if (ignoreKeys === void 0) { ignoreKeys = []; }
641
- var fromItemClone = JSON.parse(JSON.stringify(fromItem));
642
- var toItemClone = JSON.parse(JSON.stringify(toItem));
643
- var keys = new Set(__spread(Object.keys(fromItem), Object.keys(toItem)));
644
- var keysChanged = [];
645
- keys.forEach(function (key) {
646
- var keyString = baseKey ? baseKey + "." + key : key;
647
- if (ignoreKeys.indexOf(keyString) !== -1) {
648
- return;
649
- }
650
- if (Array.isArray(fromItem[key])) {
651
- fromItem[key] = fromItem[key].join(',<br>');
652
- }
653
- if (Array.isArray(toItem[key])) {
654
- toItem[key] = toItem[key].join(',<br>');
655
- }
656
- if (typeof fromItem[key] === 'object' &&
657
- typeof toItem[key] === 'object' &&
658
- fromItem[key] !== null &&
659
- toItem[key] !== null) {
660
- keysChanged = keysChanged.concat(_this.compareObject(fromItem[key], toItem[key], keyString));
661
- }
662
- else {
663
- if (fromItem[key] !== toItem[key]) {
664
- keysChanged.push({
665
- key: keyString,
666
- oldValue: fromItemClone[key],
667
- newValue: toItemClone[key]
668
- });
669
- fromItem[key] = StringUtils.diff(fromItem[key], toItem[key]);
670
- }
671
- }
672
- });
673
- return keysChanged;
674
- };
675
- return ChangeUtils;
608
+ var ChangeUtils = /** @class */ (function () {
609
+ function ChangeUtils() {
610
+ }
611
+ ChangeUtils.findChanges = function (obj1, obj2, ignoreKeys) {
612
+ var e_1, _a;
613
+ if (ignoreKeys === void 0) { ignoreKeys = []; }
614
+ var items = {
615
+ added: [],
616
+ deleted: [],
617
+ modified: []
618
+ };
619
+ if (!obj1 || !obj2) {
620
+ return items;
621
+ }
622
+ var obj1Clone = __spreadArray([], __read(obj1));
623
+ var obj2Clone = __spreadArray([], __read(obj2));
624
+ var _loop_1 = function (fromItem) {
625
+ var index = obj2Clone.findIndex(function (s) { return s.id === fromItem.id; });
626
+ if (index === -1) {
627
+ items.deleted.push({
628
+ change: { type: exports.ChangeType.DELETED },
629
+ value: fromItem
630
+ });
631
+ return "continue";
632
+ }
633
+ var toItem = obj2Clone.splice(index, 1)[0];
634
+ var fromItemClone = JSON.parse(JSON.stringify(fromItem));
635
+ var toItemClone = JSON.parse(JSON.stringify(toItem));
636
+ var keysChanged = ChangeUtils.compareObject(fromItemClone, toItemClone, undefined, ignoreKeys);
637
+ if (keysChanged.length) {
638
+ items.modified.push({
639
+ change: {
640
+ type: exports.ChangeType.MODIFIED,
641
+ keysChanged: keysChanged
642
+ },
643
+ value: fromItemClone,
644
+ oldValue: fromItem,
645
+ newValue: toItem
646
+ });
647
+ }
648
+ };
649
+ try {
650
+ for (var obj1Clone_1 = __values(obj1Clone), obj1Clone_1_1 = obj1Clone_1.next(); !obj1Clone_1_1.done; obj1Clone_1_1 = obj1Clone_1.next()) {
651
+ var fromItem = obj1Clone_1_1.value;
652
+ _loop_1(fromItem);
653
+ }
654
+ }
655
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
656
+ finally {
657
+ try {
658
+ if (obj1Clone_1_1 && !obj1Clone_1_1.done && (_a = obj1Clone_1.return)) _a.call(obj1Clone_1);
659
+ }
660
+ finally { if (e_1) throw e_1.error; }
661
+ }
662
+ items.added = obj2Clone.map(function (itemAdded) {
663
+ return {
664
+ change: { type: exports.ChangeType.ADDED },
665
+ value: itemAdded
666
+ };
667
+ });
668
+ return items;
669
+ };
670
+ ChangeUtils.compareObject = function (fromItem, toItem, baseKey, ignoreKeys) {
671
+ var _this = this;
672
+ if (ignoreKeys === void 0) { ignoreKeys = []; }
673
+ var fromItemClone = JSON.parse(JSON.stringify(fromItem));
674
+ var toItemClone = JSON.parse(JSON.stringify(toItem));
675
+ var keys = new Set(__spreadArray(__spreadArray([], __read(Object.keys(fromItem))), __read(Object.keys(toItem))));
676
+ var keysChanged = [];
677
+ keys.forEach(function (key) {
678
+ var keyString = baseKey ? baseKey + "." + key : key;
679
+ if (ignoreKeys.indexOf(keyString) !== -1) {
680
+ return;
681
+ }
682
+ if (Array.isArray(fromItem[key])) {
683
+ fromItem[key] = fromItem[key].join(',<br>');
684
+ }
685
+ if (Array.isArray(toItem[key])) {
686
+ toItem[key] = toItem[key].join(',<br>');
687
+ }
688
+ if (typeof fromItem[key] === 'object' &&
689
+ typeof toItem[key] === 'object' &&
690
+ fromItem[key] !== null &&
691
+ toItem[key] !== null) {
692
+ keysChanged = keysChanged.concat(_this.compareObject(fromItem[key], toItem[key], keyString));
693
+ }
694
+ else {
695
+ if (fromItem[key] !== toItem[key]) {
696
+ keysChanged.push({
697
+ key: keyString,
698
+ oldValue: fromItemClone[key],
699
+ newValue: toItemClone[key]
700
+ });
701
+ fromItem[key] = StringUtils.diff(fromItem[key], toItem[key]);
702
+ }
703
+ }
704
+ });
705
+ return keysChanged;
706
+ };
707
+ return ChangeUtils;
676
708
  }());
677
709
 
678
- /**
679
- * Trigger download of a file
680
- *
681
- * @param content File content
682
- * @param mimeType File mime type
683
- * @param fileName File name
684
- */
685
- function downloadContent(content, mimeType, fileName) {
686
- var uri = "data:" + mimeType + "," + encodeURIComponent(content);
687
- downloadFromUri(uri, fileName);
688
- }
689
- /**
690
- * Trigger download of a file
691
- *
692
- * @param content File content
693
- * @param mimeType File mime type
694
- * @param fileName File name
695
- */
696
- function downloadFromUri(uri, fileName) {
697
- var element = document.createElement('a');
698
- element.setAttribute('href', uri);
699
- element.setAttribute('download', fileName);
700
- element.style.display = 'none';
701
- document.body.appendChild(element);
702
- element.click();
703
- document.body.removeChild(element);
710
+ /**
711
+ * Trigger download of a file
712
+ *
713
+ * @param content File content
714
+ * @param mimeType File mime type
715
+ * @param fileName File name
716
+ */
717
+ function downloadContent(content, mimeType, fileName) {
718
+ var uri = "data:" + mimeType + "," + encodeURIComponent(content);
719
+ downloadFromUri(uri, fileName);
720
+ }
721
+ /**
722
+ * Trigger download of a file
723
+ *
724
+ * @param content File content
725
+ * @param mimeType File mime type
726
+ * @param fileName File name
727
+ */
728
+ function downloadFromUri(uri, fileName) {
729
+ var element = document.createElement('a');
730
+ element.setAttribute('href', uri);
731
+ element.setAttribute('download', fileName);
732
+ element.style.display = 'none';
733
+ document.body.appendChild(element);
734
+ element.click();
735
+ document.body.removeChild(element);
704
736
  }
705
737
 
706
- var ObjectUtils = /** @class */ (function () {
707
- function ObjectUtils() {
708
- }
709
- ObjectUtils.resolve = function (obj, key) {
710
- var keysArray = key
711
- .replace(/\[/g, '.')
712
- .replace(/\]/g, '')
713
- .split('.');
714
- var current = obj;
715
- while (keysArray.length) {
716
- if (typeof current !== 'object') {
717
- return undefined;
718
- }
719
- current = current[keysArray.shift()];
720
- }
721
- return current;
722
- };
723
- ObjectUtils.isObject = function (item) {
724
- return (item &&
725
- typeof item === 'object' &&
726
- !Array.isArray(item) &&
727
- item !== null &&
728
- !(item instanceof Date));
729
- };
730
- ObjectUtils.mergeDeep = function (target, source, ignoreUndefined) {
731
- if (ignoreUndefined === void 0) { ignoreUndefined = false; }
732
- var output = Object.assign({}, target);
733
- if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {
734
- Object.keys(source)
735
- .filter(function (key) { return !ignoreUndefined || source[key] !== undefined; })
736
- .forEach(function (key) {
737
- var _a, _b;
738
- if (ObjectUtils.isObject(source[key])) {
739
- if (!(key in target)) {
740
- Object.assign(output, (_a = {}, _a[key] = source[key], _a));
741
- }
742
- else {
743
- output[key] = ObjectUtils.mergeDeep(target[key], source[key], ignoreUndefined);
744
- }
745
- }
746
- else {
747
- Object.assign(output, (_b = {}, _b[key] = source[key], _b));
748
- }
749
- });
750
- }
751
- return output;
752
- };
753
- ObjectUtils.copyDeep = function (src) {
754
- var target = Array.isArray(src) ? [] : {};
755
- for (var prop in src) {
756
- if (src.hasOwnProperty(prop)) {
757
- var value = src[prop];
758
- if (value && typeof value === 'object') {
759
- target[prop] = this.copyDeep(value);
760
- }
761
- else {
762
- target[prop] = value;
763
- }
764
- }
765
- }
766
- return target;
767
- };
768
- ObjectUtils.removeDuplicateCaseInsensitive = function (obj) {
769
- var _a, _b;
770
- var summaryCapitalizeObject = {};
771
- var capitalizeObject = {};
772
- var upperCaseCount = [];
773
- for (var property in obj) {
774
- if (obj.hasOwnProperty(property)) {
775
- var upperCaseProperty = property.toUpperCase();
776
- if (!summaryCapitalizeObject.hasOwnProperty(upperCaseProperty)) {
777
- summaryCapitalizeObject[upperCaseProperty] = [
778
- (_a = {}, _a[property] = obj[property], _a)
779
- ];
780
- }
781
- else {
782
- summaryCapitalizeObject[upperCaseProperty].push((_b = {},
783
- _b[property] = obj[property],
784
- _b));
785
- }
786
- // counting the number of uppercase lettersMna
787
- upperCaseCount.push({
788
- key: property,
789
- count: property.replace(/[^A-Z]/g, '').length
790
- });
791
- }
792
- }
793
- var _loop_1 = function (capitalizedProperty) {
794
- if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {
795
- if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {
796
- var capitalizedPropertyObject = summaryCapitalizeObject[capitalizedProperty];
797
- if (capitalizedPropertyObject.length === 1) {
798
- // for single params (no duplicates)
799
- var singlePossibility = capitalizedPropertyObject[0];
800
- capitalizeObject[capitalizedProperty] =
801
- singlePossibility[Object.keys(singlePossibility)[0]];
802
- }
803
- else if (capitalizedPropertyObject.length > 1) {
804
- // defining the closest to lowercase property
805
- var paramClosestToLowercase = upperCaseCount
806
- .filter(function (f) { return f.key.toLowerCase() === capitalizedProperty.toLowerCase(); })
807
- .reduce(function (prev, current) {
808
- return prev.y < current.y ? prev : current;
809
- });
810
- capitalizeObject[paramClosestToLowercase.key.toUpperCase()] =
811
- obj[paramClosestToLowercase.key];
812
- }
813
- }
814
- }
815
- };
816
- for (var capitalizedProperty in summaryCapitalizeObject) {
817
- _loop_1(capitalizedProperty);
818
- }
819
- for (var property in obj) {
820
- if (obj.hasOwnProperty(property)) {
821
- delete obj[property];
822
- }
823
- }
824
- for (var property in capitalizeObject) {
825
- if (capitalizeObject.hasOwnProperty(property)) {
826
- obj[property] = capitalizeObject[property];
827
- }
828
- }
829
- };
830
- ObjectUtils.removeUndefined = function (obj) {
831
- var output = {};
832
- if (ObjectUtils.isObject(obj)) {
833
- Object.keys(obj)
834
- .filter(function (key) { return obj[key] !== undefined; })
835
- .forEach(function (key) {
836
- if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {
837
- output[key] = ObjectUtils.removeUndefined(obj[key]);
838
- }
839
- else {
840
- output[key] = obj[key];
841
- }
842
- });
843
- return output;
844
- }
845
- if (Array.isArray(obj)) {
846
- return obj.map(function (o) { return ObjectUtils.removeUndefined(o); });
847
- }
848
- return obj;
849
- };
850
- ObjectUtils.removeNull = function (obj) {
851
- var output = {};
852
- if (ObjectUtils.isObject(obj)) {
853
- Object.keys(obj)
854
- .filter(function (key) { return obj[key] !== null; })
855
- .forEach(function (key) {
856
- if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {
857
- output[key] = ObjectUtils.removeNull(obj[key]);
858
- }
859
- else {
860
- output[key] = obj[key];
861
- }
862
- });
863
- return output;
864
- }
865
- if (Array.isArray(obj)) {
866
- return obj.map(function (o) { return ObjectUtils.removeNull(o); });
867
- }
868
- return obj;
869
- };
870
- ObjectUtils.naturalCompare = function (a, b, direction, nullsFirst) {
871
- if (direction === void 0) { direction = 'asc'; }
872
- if (direction === 'desc') {
873
- b = [a, (a = b)][0];
874
- }
875
- // nullsFirst = undefined : end if direction = 'asc', first if direction = 'desc'
876
- // nullsFirst = true : always first
877
- // nullsFirst = false : always end
878
- if (a === null ||
879
- a === '' ||
880
- a === undefined ||
881
- b === null ||
882
- b === '' ||
883
- b === undefined) {
884
- var nullScore = a === b
885
- ? 0
886
- : a === undefined
887
- ? 3
888
- : b === undefined
889
- ? -3
890
- : a === null
891
- ? 2
892
- : b === null
893
- ? -2
894
- : a === ''
895
- ? 1
896
- : -1;
897
- if (direction === 'desc') {
898
- return nullsFirst !== false ? nullScore : nullScore * -1;
899
- }
900
- return nullsFirst === true ? nullScore * -1 : nullScore;
901
- }
902
- var ax = [];
903
- var bx = [];
904
- a = '' + a;
905
- b = '' + b;
906
- a.replace(/(\d+)|(\D+)/g, function (_, $1, $2) {
907
- ax.push([$1 || Infinity, $2 || '']);
908
- });
909
- b.replace(/(\d+)|(\D+)/g, function (_, $1, $2) {
910
- bx.push([$1 || Infinity, $2 || '']);
911
- });
912
- while (ax.length && bx.length) {
913
- var an = ax.shift();
914
- var bn = bx.shift();
915
- var nn = an[0] - bn[0] || an[1].localeCompare(bn[1]);
916
- if (nn) {
917
- return nn;
918
- }
919
- }
920
- return ax.length - bx.length;
921
- };
922
- /**
923
- * Return true if two object are equivalent.
924
- * Objects are considered equivalent if they have the same properties and
925
- * if all of their properties (first-level only) share the same value.
926
- * @param obj1 First object
927
- * @param obj2 Second object
928
- * @returns Whether two objects arer equivalent
929
- */
930
- ObjectUtils.objectsAreEquivalent = function (obj1, obj2) {
931
- var e_1, _a;
932
- if (obj1 === obj2) {
933
- return true;
934
- }
935
- var obj1Props = Object.getOwnPropertyNames(obj1);
936
- var obj2Props = Object.getOwnPropertyNames(obj2);
937
- if (obj1Props.length !== obj2Props.length) {
938
- return false;
939
- }
940
- try {
941
- for (var obj1Props_1 = __values(obj1Props), obj1Props_1_1 = obj1Props_1.next(); !obj1Props_1_1.done; obj1Props_1_1 = obj1Props_1.next()) {
942
- var prop = obj1Props_1_1.value;
943
- if (obj1[prop] !== obj2[prop]) {
944
- return false;
945
- }
946
- }
947
- }
948
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
949
- finally {
950
- try {
951
- if (obj1Props_1_1 && !obj1Props_1_1.done && (_a = obj1Props_1.return)) _a.call(obj1Props_1);
952
- }
953
- finally { if (e_1) throw e_1.error; }
954
- }
955
- return true;
956
- };
957
- /**
958
- * Return a new object with an array of keys removed
959
- * @param obj Source object
960
- * @param keys Keys to remove
961
- * @returns A new object
962
- */
963
- ObjectUtils.removeKeys = function (obj, keys) {
964
- var newObj = Object.keys(obj)
965
- .filter(function (key) { return keys.indexOf(key) < 0; })
966
- .reduce(function (_obj, key) {
967
- _obj[key] = obj[key];
968
- return _obj;
969
- }, {});
970
- return newObj;
971
- };
972
- return ObjectUtils;
738
+ var ObjectUtils = /** @class */ (function () {
739
+ function ObjectUtils() {
740
+ }
741
+ ObjectUtils.resolve = function (obj, key) {
742
+ var keysArray = key
743
+ .replace(/\[/g, '.')
744
+ .replace(/\]/g, '')
745
+ .split('.');
746
+ var current = obj;
747
+ while (keysArray.length) {
748
+ if (typeof current !== 'object') {
749
+ return undefined;
750
+ }
751
+ current = current[keysArray.shift()];
752
+ }
753
+ return current;
754
+ };
755
+ ObjectUtils.isObject = function (item) {
756
+ return (item &&
757
+ typeof item === 'object' &&
758
+ !Array.isArray(item) &&
759
+ item !== null &&
760
+ !(item instanceof Date));
761
+ };
762
+ ObjectUtils.mergeDeep = function (target, source, ignoreUndefined) {
763
+ if (ignoreUndefined === void 0) { ignoreUndefined = false; }
764
+ var output = Object.assign({}, target);
765
+ if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {
766
+ Object.keys(source)
767
+ .filter(function (key) { return !ignoreUndefined || source[key] !== undefined; })
768
+ .forEach(function (key) {
769
+ var _a, _b;
770
+ if (ObjectUtils.isObject(source[key])) {
771
+ if (!(key in target)) {
772
+ Object.assign(output, (_a = {}, _a[key] = source[key], _a));
773
+ }
774
+ else {
775
+ output[key] = ObjectUtils.mergeDeep(target[key], source[key], ignoreUndefined);
776
+ }
777
+ }
778
+ else {
779
+ Object.assign(output, (_b = {}, _b[key] = source[key], _b));
780
+ }
781
+ });
782
+ }
783
+ return output;
784
+ };
785
+ ObjectUtils.copyDeep = function (src) {
786
+ var target = Array.isArray(src) ? [] : {};
787
+ for (var prop in src) {
788
+ if (src.hasOwnProperty(prop)) {
789
+ var value = src[prop];
790
+ if (value && typeof value === 'object') {
791
+ target[prop] = this.copyDeep(value);
792
+ }
793
+ else {
794
+ target[prop] = value;
795
+ }
796
+ }
797
+ }
798
+ return target;
799
+ };
800
+ ObjectUtils.removeDuplicateCaseInsensitive = function (obj) {
801
+ var _a, _b;
802
+ var summaryCapitalizeObject = {};
803
+ var capitalizeObject = {};
804
+ var upperCaseCount = [];
805
+ for (var property in obj) {
806
+ if (obj.hasOwnProperty(property)) {
807
+ var upperCaseProperty = property.toUpperCase();
808
+ if (!summaryCapitalizeObject.hasOwnProperty(upperCaseProperty)) {
809
+ summaryCapitalizeObject[upperCaseProperty] = [
810
+ (_a = {}, _a[property] = obj[property], _a)
811
+ ];
812
+ }
813
+ else {
814
+ summaryCapitalizeObject[upperCaseProperty].push((_b = {},
815
+ _b[property] = obj[property],
816
+ _b));
817
+ }
818
+ // counting the number of uppercase lettersMna
819
+ upperCaseCount.push({
820
+ key: property,
821
+ count: property.replace(/[^A-Z]/g, '').length
822
+ });
823
+ }
824
+ }
825
+ var _loop_1 = function (capitalizedProperty) {
826
+ if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {
827
+ if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {
828
+ var capitalizedPropertyObject = summaryCapitalizeObject[capitalizedProperty];
829
+ if (capitalizedPropertyObject.length === 1) {
830
+ // for single params (no duplicates)
831
+ var singlePossibility = capitalizedPropertyObject[0];
832
+ capitalizeObject[capitalizedProperty] =
833
+ singlePossibility[Object.keys(singlePossibility)[0]];
834
+ }
835
+ else if (capitalizedPropertyObject.length > 1) {
836
+ // defining the closest to lowercase property
837
+ var paramClosestToLowercase = upperCaseCount
838
+ .filter(function (f) { return f.key.toLowerCase() === capitalizedProperty.toLowerCase(); })
839
+ .reduce(function (prev, current) {
840
+ return prev.y < current.y ? prev : current;
841
+ });
842
+ capitalizeObject[paramClosestToLowercase.key.toUpperCase()] =
843
+ obj[paramClosestToLowercase.key];
844
+ }
845
+ }
846
+ }
847
+ };
848
+ for (var capitalizedProperty in summaryCapitalizeObject) {
849
+ _loop_1(capitalizedProperty);
850
+ }
851
+ for (var property in obj) {
852
+ if (obj.hasOwnProperty(property)) {
853
+ delete obj[property];
854
+ }
855
+ }
856
+ for (var property in capitalizeObject) {
857
+ if (capitalizeObject.hasOwnProperty(property)) {
858
+ obj[property] = capitalizeObject[property];
859
+ }
860
+ }
861
+ };
862
+ ObjectUtils.removeUndefined = function (obj) {
863
+ var output = {};
864
+ if (ObjectUtils.isObject(obj)) {
865
+ Object.keys(obj)
866
+ .filter(function (key) { return obj[key] !== undefined; })
867
+ .forEach(function (key) {
868
+ if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {
869
+ output[key] = ObjectUtils.removeUndefined(obj[key]);
870
+ }
871
+ else {
872
+ output[key] = obj[key];
873
+ }
874
+ });
875
+ return output;
876
+ }
877
+ if (Array.isArray(obj)) {
878
+ return obj.map(function (o) { return ObjectUtils.removeUndefined(o); });
879
+ }
880
+ return obj;
881
+ };
882
+ ObjectUtils.removeNull = function (obj) {
883
+ var output = {};
884
+ if (ObjectUtils.isObject(obj)) {
885
+ Object.keys(obj)
886
+ .filter(function (key) { return obj[key] !== null; })
887
+ .forEach(function (key) {
888
+ if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {
889
+ output[key] = ObjectUtils.removeNull(obj[key]);
890
+ }
891
+ else {
892
+ output[key] = obj[key];
893
+ }
894
+ });
895
+ return output;
896
+ }
897
+ if (Array.isArray(obj)) {
898
+ return obj.map(function (o) { return ObjectUtils.removeNull(o); });
899
+ }
900
+ return obj;
901
+ };
902
+ ObjectUtils.naturalCompare = function (a, b, direction, nullsFirst) {
903
+ if (direction === void 0) { direction = 'asc'; }
904
+ if (direction === 'desc') {
905
+ b = [a, (a = b)][0];
906
+ }
907
+ // nullsFirst = undefined : end if direction = 'asc', first if direction = 'desc'
908
+ // nullsFirst = true : always first
909
+ // nullsFirst = false : always end
910
+ if (a === null ||
911
+ a === '' ||
912
+ a === undefined ||
913
+ b === null ||
914
+ b === '' ||
915
+ b === undefined) {
916
+ var nullScore = a === b
917
+ ? 0
918
+ : a === undefined
919
+ ? 3
920
+ : b === undefined
921
+ ? -3
922
+ : a === null
923
+ ? 2
924
+ : b === null
925
+ ? -2
926
+ : a === ''
927
+ ? 1
928
+ : -1;
929
+ if (direction === 'desc') {
930
+ return nullsFirst !== false ? nullScore : nullScore * -1;
931
+ }
932
+ return nullsFirst === true ? nullScore * -1 : nullScore;
933
+ }
934
+ var ax = [];
935
+ var bx = [];
936
+ a = '' + a;
937
+ b = '' + b;
938
+ a.replace(/(\d+)|(\D+)/g, function (_, $1, $2) {
939
+ ax.push([$1 || Infinity, $2 || '']);
940
+ });
941
+ b.replace(/(\d+)|(\D+)/g, function (_, $1, $2) {
942
+ bx.push([$1 || Infinity, $2 || '']);
943
+ });
944
+ while (ax.length && bx.length) {
945
+ var an = ax.shift();
946
+ var bn = bx.shift();
947
+ var nn = an[0] - bn[0] || an[1].localeCompare(bn[1]);
948
+ if (nn) {
949
+ return nn;
950
+ }
951
+ }
952
+ return ax.length - bx.length;
953
+ };
954
+ /**
955
+ * Return true if two object are equivalent.
956
+ * Objects are considered equivalent if they have the same properties and
957
+ * if all of their properties (first-level only) share the same value.
958
+ * @param obj1 First object
959
+ * @param obj2 Second object
960
+ * @returns Whether two objects arer equivalent
961
+ */
962
+ ObjectUtils.objectsAreEquivalent = function (obj1, obj2) {
963
+ var e_1, _a;
964
+ if (obj1 === obj2) {
965
+ return true;
966
+ }
967
+ var obj1Props = Object.getOwnPropertyNames(obj1);
968
+ var obj2Props = Object.getOwnPropertyNames(obj2);
969
+ if (obj1Props.length !== obj2Props.length) {
970
+ return false;
971
+ }
972
+ try {
973
+ for (var obj1Props_1 = __values(obj1Props), obj1Props_1_1 = obj1Props_1.next(); !obj1Props_1_1.done; obj1Props_1_1 = obj1Props_1.next()) {
974
+ var prop = obj1Props_1_1.value;
975
+ if (obj1[prop] !== obj2[prop]) {
976
+ return false;
977
+ }
978
+ }
979
+ }
980
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
981
+ finally {
982
+ try {
983
+ if (obj1Props_1_1 && !obj1Props_1_1.done && (_a = obj1Props_1.return)) _a.call(obj1Props_1);
984
+ }
985
+ finally { if (e_1) throw e_1.error; }
986
+ }
987
+ return true;
988
+ };
989
+ /**
990
+ * Return a new object with an array of keys removed
991
+ * @param obj Source object
992
+ * @param keys Keys to remove
993
+ * @returns A new object
994
+ */
995
+ ObjectUtils.removeKeys = function (obj, keys) {
996
+ var newObj = Object.keys(obj)
997
+ .filter(function (key) { return keys.indexOf(key) < 0; })
998
+ .reduce(function (_obj, key) {
999
+ _obj[key] = obj[key];
1000
+ return _obj;
1001
+ }, {});
1002
+ return newObj;
1003
+ };
1004
+ return ObjectUtils;
973
1005
  }());
974
1006
 
975
- /** Utility function to create a K:V from a list of strings */
976
- function strEnum(o) {
977
- return o.reduce(function (res, key) {
978
- res[key] = key;
979
- return res;
980
- }, Object.create(null));
1007
+ /** Utility function to create a K:V from a list of strings */
1008
+ function strEnum(o) {
1009
+ return o.reduce(function (res, key) {
1010
+ res[key] = key;
1011
+ return res;
1012
+ }, Object.create(null));
981
1013
  }
982
1014
 
983
- function S4() {
984
- // tslint:disable-next-line: no-bitwise
985
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
986
- }
987
- function uuid() {
988
- var id = "" + S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4();
989
- return id.toLowerCase();
1015
+ function S4() {
1016
+ // tslint:disable-next-line: no-bitwise
1017
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
1018
+ }
1019
+ function uuid() {
1020
+ var id = "" + S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4();
1021
+ return id.toLowerCase();
990
1022
  }
991
1023
 
992
- (function (SubjectStatus) {
993
- SubjectStatus[SubjectStatus["Error"] = 0] = "Error";
994
- SubjectStatus[SubjectStatus["Done"] = 1] = "Done";
995
- SubjectStatus[SubjectStatus["Working"] = 2] = "Working";
996
- SubjectStatus[SubjectStatus["Waiting"] = 3] = "Waiting";
997
- })(exports.SubjectStatus || (exports.SubjectStatus = {}));
998
- var Watcher = /** @class */ (function () {
999
- function Watcher() {
1000
- this.status$ = new rxjs.Subject();
1001
- }
1002
- Object.defineProperty(Watcher.prototype, "status", {
1003
- get: function () {
1004
- return this._status;
1005
- },
1006
- set: function (value) {
1007
- this._status = value;
1008
- this.status$.next(value);
1009
- },
1010
- enumerable: false,
1011
- configurable: true
1012
- });
1013
- // tslint:disable-next-line:ban-types
1014
- Watcher.prototype.subscribe = function (callback, scope) {
1015
- var _this = this;
1016
- this.watch();
1017
- this.status$$ = this.status$
1018
- .pipe(operators.distinctUntilChanged())
1019
- .subscribe(function (status) {
1020
- _this.handleStatusChange(status);
1021
- callback.call(scope, _this);
1022
- });
1023
- };
1024
- Watcher.prototype.unsubscribe = function () {
1025
- this.unwatch();
1026
- if (this.status$$ !== undefined) {
1027
- this.status$$.unsubscribe();
1028
- this.status$$ = undefined;
1029
- }
1030
- this.status = exports.SubjectStatus.Waiting;
1031
- };
1032
- Watcher.prototype.handleStatusChange = function (status) { };
1033
- return Watcher;
1024
+ exports.SubjectStatus = void 0;
1025
+ (function (SubjectStatus) {
1026
+ SubjectStatus[SubjectStatus["Error"] = 0] = "Error";
1027
+ SubjectStatus[SubjectStatus["Done"] = 1] = "Done";
1028
+ SubjectStatus[SubjectStatus["Working"] = 2] = "Working";
1029
+ SubjectStatus[SubjectStatus["Waiting"] = 3] = "Waiting";
1030
+ })(exports.SubjectStatus || (exports.SubjectStatus = {}));
1031
+ var Watcher = /** @class */ (function () {
1032
+ function Watcher() {
1033
+ this.status$ = new rxjs.Subject();
1034
+ }
1035
+ Object.defineProperty(Watcher.prototype, "status", {
1036
+ get: function () {
1037
+ return this._status;
1038
+ },
1039
+ set: function (value) {
1040
+ this._status = value;
1041
+ this.status$.next(value);
1042
+ },
1043
+ enumerable: false,
1044
+ configurable: true
1045
+ });
1046
+ // tslint:disable-next-line:ban-types
1047
+ Watcher.prototype.subscribe = function (callback, scope) {
1048
+ var _this = this;
1049
+ this.watch();
1050
+ this.status$$ = this.status$
1051
+ .pipe(operators.distinctUntilChanged())
1052
+ .subscribe(function (status) {
1053
+ _this.handleStatusChange(status);
1054
+ callback.call(scope, _this);
1055
+ });
1056
+ };
1057
+ Watcher.prototype.unsubscribe = function () {
1058
+ this.unwatch();
1059
+ if (this.status$$ !== undefined) {
1060
+ this.status$$.unsubscribe();
1061
+ this.status$$ = undefined;
1062
+ }
1063
+ this.status = exports.SubjectStatus.Waiting;
1064
+ };
1065
+ Watcher.prototype.handleStatusChange = function (status) { };
1066
+ return Watcher;
1034
1067
  }());
1035
1068
 
1036
- /*
1037
- * Public API Surface of utils
1069
+ /*
1070
+ * Public API Surface of utils
1038
1071
  */
1039
1072
 
1040
- /**
1041
- * Generated bundle index. Do not edit.
1073
+ /**
1074
+ * Generated bundle index. Do not edit.
1042
1075
  */
1043
1076
 
1044
1077
  exports.Base64 = Base64;