@igo2/utils 1.15.3 → 1.15.5

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,105 +1,105 @@
1
- export class StringUtils {
2
- static diff(s1, s2, p = 4) {
3
- if (!s1 && !s2) {
4
- return '';
5
- }
6
- if (!s1) {
7
- return '<span class="inserted">' + s2 + '</span>';
8
- }
9
- if (!s2) {
10
- return '<span class="deleted">' + s1 + '</span>';
11
- }
12
- s1 = s1.toString();
13
- s2 = s2.toString();
14
- const changeData = StringUtils.getChanges(s1, s2, '', p);
15
- const nextS = s2.slice(changeData.mtc.length + changeData.ins.length + changeData.sbs.length); // remaining part of "s"
16
- const nextThis = s1.slice(changeData.mtc.length + changeData.del.length + changeData.sbs.length); // remaining part of "this"
17
- let result = ''; // the glorious result
18
- if (changeData.del.length > 0) {
19
- changeData.del = '<span class="deleted">' + changeData.del + '</span>';
20
- }
21
- if (changeData.ins.length > 0) {
22
- changeData.ins = '<span class="inserted">' + changeData.ins + '</span>';
23
- }
24
- result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;
25
- result +=
26
- nextThis !== '' || nextS !== ''
27
- ? StringUtils.diff(nextThis, nextS, p)
28
- : '';
29
- return result;
30
- }
31
- static getMatchingSubstring(s, l, m) {
32
- // returns the first matching substring in-between the two strings
33
- let i = 0;
34
- let match = false;
35
- const slen = s.length;
36
- const o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object
37
- while (i < slen) {
38
- l[i] === s[i]
39
- ? match
40
- ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef
41
- : ((match = true), (o.fis = i), (o.sbs = s[i]))
42
- : match
43
- ? (i = slen) // stop after the first found substring
44
- : (i = i);
45
- ++i;
46
- }
47
- return o;
48
- }
49
- static getChanges(s1, s2, m, p) {
50
- const isThisLonger = s1.length >= s1.length ? true : false;
51
- let [longer, shorter] = isThisLonger ? [s1, s2] : [s2, s1]; // assignment of longer and shorter by es6 destructuring
52
- let bi = 0; // base index designating the index of first mismacthing character in both strings
53
- while (shorter[bi] === longer[bi] && bi < shorter.length) {
54
- ++bi;
55
- } // make bi the index of first mismatching character
56
- longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array
57
- shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character
58
- const len = longer.length; // length of the longer string
59
- let cd = {
60
- fis: shorter.length,
61
- fil: len,
62
- sbs: '',
63
- mtc: m + s2.slice(0, bi)
64
- }; // if exists mtc holds the matching string at the front
65
- let sub = { sbs: '' }; // returned substring per 1 character rotation of the longer string
66
- if (shorter !== '') {
67
- for (let rc = 0; rc < len && sub.sbs.length < p; rc++) {
68
- // rc -> rotate count, p -> precision factor
69
- sub = StringUtils.getMatchingSubstring(shorter, StringUtils.rotateArray(longer, rc), cd.mtc); // rotate longer string 1 char and get substring
70
- sub.fil =
71
- rc < len - sub.fis
72
- ? sub.fis + rc // mismatch is longer than the mismatch in short
73
- : sub.fis - len + rc; // mismatch is shorter than the mismatch in short
74
- if (sub.sbs.length > cd.sbs.length) {
75
- cd = sub; // only keep the one with the longest substring.
76
- }
77
- }
78
- }
79
- // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring
80
- [cd.del, cd.ins] = isThisLonger
81
- ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]
82
- : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')];
83
- return cd.del.indexOf(' ') === -1 ||
84
- cd.ins.indexOf(' ') === -1 ||
85
- cd.del === '' ||
86
- cd.ins === '' ||
87
- cd.sbs === ''
88
- ? cd
89
- : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);
90
- }
91
- static rotateArray(array, n) {
92
- const len = array.length;
93
- const res = new Array(array.length);
94
- if (n % len === 0) {
95
- return array.slice();
96
- }
97
- else {
98
- for (let i = 0; i < len; i++) {
99
- res[i] = array[(i + (len + (n % len))) % len];
100
- }
101
- }
102
- return res;
103
- }
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9zdHJpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLE9BQU8seUJBQXlCLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUCxPQUFPLHdCQUF3QixHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDbEQ7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUNwQixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLHdCQUF3QjtRQUMzQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN2QixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLDJCQUEy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QUM7SUFDeEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcclxuICBzdGF0aWMgZGlmZihzMTogc3RyaW5nLCBzMjogc3RyaW5nLCBwID0gNCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXMxICYmICFzMikge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAoIXMxKSB7XHJcbiAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJpbnNlcnRlZFwiPicgKyBzMiArICc8L3NwYW4+JztcclxuICAgIH1cclxuICAgIGlmICghczIpIHtcclxuICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cImRlbGV0ZWRcIj4nICsgczEgKyAnPC9zcGFuPic7XHJcbiAgICB9XHJcbiAgICBzMSA9IHMxLnRvU3RyaW5nKCk7XHJcbiAgICBzMiA9IHMyLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VEYXRhID0gU3RyaW5nVXRpbHMuZ2V0Q2hhbmdlcyhzMSwgczIsICcnLCBwKTtcclxuICAgIGNvbnN0IG5leHRTID0gczIuc2xpY2UoXHJcbiAgICAgIGNoYW5nZURhdGEubXRjLmxlbmd0aCArIGNoYW5nZURhdGEuaW5zLmxlbmd0aCArIGNoYW5nZURhdGEuc2JzLmxlbmd0aFxyXG4gICAgKTsgLy8gcmVtYWluaW5nIHBhcnQgb2YgXCJzXCJcclxuICAgIGNvbnN0IG5leHRUaGlzID0gczEuc2xpY2UoXHJcbiAgICAgIGNoYW5nZURhdGEubXRjLmxlbmd0aCArIGNoYW5nZURhdGEuZGVsLmxlbmd0aCArIGNoYW5nZURhdGEuc2JzLmxlbmd0aFxyXG4gICAgKTsgLy8gcmVtYWluaW5nIHBhcnQgb2YgXCJ0aGlzXCJcclxuICAgIGxldCByZXN1bHQgPSAnJzsgLy8gdGhlIGdsb3Jpb3VzIHJlc3VsdFxyXG4gICAgaWYgKGNoYW5nZURhdGEuZGVsLmxlbmd0aCA+IDApIHtcclxuICAgICAgY2hhbmdlRGF0YS5kZWwgPSAnPHNwYW4gY2xhc3M9XCJkZWxldGVkXCI+JyArIGNoYW5nZURhdGEuZGVsICsgJzwvc3Bhbj4nO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZURhdGEuaW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY2hhbmdlRGF0YS5pbnMgPSAnPHNwYW4gY2xhc3M9XCJpbnNlcnRlZFwiPicgKyBjaGFuZ2VEYXRhLmlucyArICc8L3NwYW4+JztcclxuICAgIH1cclxuICAgIHJlc3VsdCA9IGNoYW5nZURhdGEubXRjICsgY2hhbmdlRGF0YS5kZWwgKyBjaGFuZ2VEYXRhLmlucyArIGNoYW5nZURhdGEuc2JzO1xyXG4gICAgcmVzdWx0ICs9XHJcbiAgICAgIG5leHRUaGlzICE9PSAnJyB8fCBuZXh0UyAhPT0gJydcclxuICAgICAgICA/IFN0cmluZ1V0aWxzLmRpZmYobmV4dFRoaXMsIG5leHRTLCBwKVxyXG4gICAgICAgIDogJyc7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TWF0Y2hpbmdTdWJzdHJpbmcocywgbCwgbSkge1xyXG4gICAgLy8gcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2hpbmcgc3Vic3RyaW5nIGluLWJldHdlZW4gdGhlIHR3byBzdHJpbmdzXHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcclxuICAgIGNvbnN0IHNsZW4gPSBzLmxlbmd0aDtcclxuICAgIGNvbnN0IG8gPSB7IGZpczogc2xlbiwgbXRjOiBtLCBzYnM6ICcnIH07IC8vIHRlbXBvcmFyeSBvYmplY3QgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNkIChjaGFuZ2UgZGF0YSkgb2JqZWN0XHJcblxyXG4gICAgd2hpbGUgKGkgPCBzbGVuKSB7XHJcbiAgICAgIGxbaV0gPT09IHNbaV1cclxuICAgICAgICA/IG1hdGNoXHJcbiAgICAgICAgICA/IChvLnNicyArPSBzW2ldKSAvLyBvLnNicyBob2xkcyB0aGUgbWF0Y2hpbmcgc3Vic3RyaW5nIGl0c2VmXHJcbiAgICAgICAgICA6ICgobWF0Y2ggPSB0cnVlKSwgKG8uZmlzID0gaSksIChvLnNicyA9IHNbaV0pKVxyXG4gICAgICAgIDogbWF0Y2hcclxuICAgICAgICAgID8gKGkgPSBzbGVuKSAvLyBzdG9wIGFmdGVyIHRoZSBmaXJzdCBmb3VuZCBzdWJzdHJpbmdcclxuICAgICAgICAgIDogKGkgPSBpKTtcclxuICAgICAgKytpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG87XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRDaGFuZ2VzKHMxLCBzMiwgbSwgcCkge1xyXG4gICAgY29uc3QgaXNUaGlzTG9uZ2VyID0gczEubGVuZ3RoID49IHMxLmxlbmd0aCA/IHRydWUgOiBmYWxzZTtcclxuICAgIGxldCBbbG9uZ2VyLCBzaG9ydGVyXSA9IGlzVGhpc0xvbmdlciA/IFtzMSwgczJdIDogW3MyLCBzMV07IC8vIGFzc2lnbm1lbnQgb2YgbG9uZ2VyIGFuZCBzaG9ydGVyIGJ5IGVzNiBkZXN0cnVjdHVyaW5nXHJcbiAgICBsZXQgYmkgPSAwOyAvLyBiYXNlIGluZGV4IGRlc2lnbmF0aW5nIHRoZSBpbmRleCBvZiBmaXJzdCBtaXNtYWN0aGluZyBjaGFyYWN0ZXIgaW4gYm90aCBzdHJpbmdzXHJcblxyXG4gICAgd2hpbGUgKHNob3J0ZXJbYmldID09PSBsb25nZXJbYmldICYmIGJpIDwgc2hvcnRlci5sZW5ndGgpIHtcclxuICAgICAgKytiaTtcclxuICAgIH0gLy8gbWFrZSBiaSB0aGUgaW5kZXggb2YgZmlyc3QgbWlzbWF0Y2hpbmcgY2hhcmFjdGVyXHJcbiAgICBsb25nZXIgPSBsb25nZXIuc3BsaXQoJycpLnNsaWNlKGJpKTsgLy8gYXMgdGhlIGxvbmdlciBzdHJpbmcgd2lsbCBiZSByb3RhdGVkIGl0IGlzIGNvbnZlcnRlZCBpbnRvIGFycmF5XHJcbiAgICBzaG9ydGVyID0gc2hvcnRlci5zbGljZShiaSk7IC8vIHNob3J0ZXIgYW5kIGxvbmdlciBub3cgc3RhcnRzIGZyb20gdGhlIGZpcnN0IG1pc21hdGNoaW5nIGNoYXJhY3RlclxyXG5cclxuICAgIGNvbnN0IGxlbiA9IGxvbmdlci5sZW5ndGg7IC8vIGxlbmd0aCBvZiB0aGUgbG9uZ2VyIHN0cmluZ1xyXG4gICAgbGV0IGNkOiBhbnkgPSB7XHJcbiAgICAgIGZpczogc2hvcnRlci5sZW5ndGgsIC8vIHRoZSBpbmRleCBvZiBtYXRjaGluZyBzdHJpbmcgaW4gdGhlIHNob3J0ZXIgc3RyaW5nXHJcbiAgICAgIGZpbDogbGVuLCAvLyB0aGUgaW5kZXggb2YgbWF0Y2hpbmcgc3RyaW5nIGluIHRoZSBsb25nZXIgc3RyaW5nXHJcbiAgICAgIHNiczogJycsIC8vIHRoZSBtYXRjaGluZyBzdWJzdHJpbmcgaXRzZWxmXHJcbiAgICAgIG10YzogbSArIHMyLnNsaWNlKDAsIGJpKVxyXG4gICAgfTsgLy8gaWYgZXhpc3RzIG10YyBob2xkcyB0aGUgbWF0Y2hpbmcgc3RyaW5nIGF0IHRoZSBmcm9udFxyXG4gICAgbGV0IHN1YjogYW55ID0geyBzYnM6ICcnIH07IC8vIHJldHVybmVkIHN1YnN0cmluZyBwZXIgMSBjaGFyYWN0ZXIgcm90YXRpb24gb2YgdGhlIGxvbmdlciBzdHJpbmdcclxuXHJcbiAgICBpZiAoc2hvcnRlciAhPT0gJycpIHtcclxuICAgICAgZm9yIChsZXQgcmMgPSAwOyByYyA8IGxlbiAmJiBzdWIuc2JzLmxlbmd0aCA8IHA7IHJjKyspIHtcclxuICAgICAgICAvLyByYyAtPiByb3RhdGUgY291bnQsIHAgLT4gcHJlY2lzaW9uIGZhY3RvclxyXG4gICAgICAgIHN1YiA9IFN0cmluZ1V0aWxzLmdldE1hdGNoaW5nU3Vic3RyaW5nKFxyXG4gICAgICAgICAgc2hvcnRlcixcclxuICAgICAgICAgIFN0cmluZ1V0aWxzLnJvdGF0ZUFycmF5KGxvbmdlciwgcmMpLFxyXG4gICAgICAgICAgY2QubXRjXHJcbiAgICAgICAgKTsgLy8gcm90YXRlIGxvbmdlciBzdHJpbmcgMSBjaGFyIGFuZCBnZXQgc3Vic3RyaW5nXHJcbiAgICAgICAgc3ViLmZpbCA9XHJcbiAgICAgICAgICByYyA8IGxlbiAtIHN1Yi5maXNcclxuICAgICAgICAgICAgPyBzdWIuZmlzICsgcmMgLy8gbWlzbWF0Y2ggaXMgbG9uZ2VyIHRoYW4gdGhlIG1pc21hdGNoIGluIHNob3J0XHJcbiAgICAgICAgICAgIDogc3ViLmZpcyAtIGxlbiArIHJjOyAvLyBtaXNtYXRjaCBpcyBzaG9ydGVyIHRoYW4gdGhlIG1pc21hdGNoIGluIHNob3J0XHJcbiAgICAgICAgaWYgKHN1Yi5zYnMubGVuZ3RoID4gY2Quc2JzLmxlbmd0aCkge1xyXG4gICAgICAgICAgY2QgPSBzdWI7IC8vIG9ubHkga2VlcCB0aGUgb25lIHdpdGggdGhlIGxvbmdlc3Qgc3Vic3RyaW5nLlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gaW5zZXJ0IHRoZSBtaXNtYXRjaGluZyBkZWxldGUgc3Vic3J0IGFuZCBpbnNlcnQgc3Vic3RyIHRvIHRoZSBjZCBvYmplY3QgYW5kIGF0dGFjaCB0aGUgcHJldmlvdXMgc3Vic3RyaW5nXHJcbiAgICBbY2QuZGVsLCBjZC5pbnNdID0gaXNUaGlzTG9uZ2VyXHJcbiAgICAgID8gW2xvbmdlci5zbGljZSgwLCBjZC5maWwpLmpvaW4oJycpLCBzaG9ydGVyLnNsaWNlKDAsIGNkLmZpcyldXHJcbiAgICAgIDogW3Nob3J0ZXIuc2xpY2UoMCwgY2QuZmlzKSwgbG9uZ2VyLnNsaWNlKDAsIGNkLmZpbCkuam9pbignJyldO1xyXG4gICAgcmV0dXJuIGNkLmRlbC5pbmRleE9mKCcgJykgPT09IC0xIHx8XHJcbiAgICAgIGNkLmlucy5pbmRleE9mKCcgJykgPT09IC0xIHx8XHJcbiAgICAgIGNkLmRlbCA9PT0gJycgfHxcclxuICAgICAgY2QuaW5zID09PSAnJyB8fFxyXG4gICAgICBjZC5zYnMgPT09ICcnXHJcbiAgICAgID8gY2RcclxuICAgICAgOiBTdHJpbmdVdGlscy5nZXRDaGFuZ2VzKGNkLmRlbCwgY2QuaW5zLCBjZC5tdGMsIHApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgcm90YXRlQXJyYXkoYXJyYXksIG4pIHtcclxuICAgIGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aDtcclxuICAgIGNvbnN0IHJlcyA9IG5ldyBBcnJheShhcnJheS5sZW5ndGgpO1xyXG4gICAgaWYgKG4gJSBsZW4gPT09IDApIHtcclxuICAgICAgcmV0dXJuIGFycmF5LnNsaWNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgcmVzW2ldID0gYXJyYXlbKGkgKyAobGVuICsgKG4gJSBsZW4pKSkgJSBsZW5dO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ export class StringUtils {
2
+ static diff(s1, s2, p = 4) {
3
+ if (!s1 && !s2) {
4
+ return '';
5
+ }
6
+ if (!s1) {
7
+ return '<span class="inserted">' + s2 + '</span>';
8
+ }
9
+ if (!s2) {
10
+ return '<span class="deleted">' + s1 + '</span>';
11
+ }
12
+ s1 = s1.toString();
13
+ s2 = s2.toString();
14
+ const changeData = StringUtils.getChanges(s1, s2, '', p);
15
+ const nextS = s2.slice(changeData.mtc.length + changeData.ins.length + changeData.sbs.length); // remaining part of "s"
16
+ const nextThis = s1.slice(changeData.mtc.length + changeData.del.length + changeData.sbs.length); // remaining part of "this"
17
+ let result = ''; // the glorious result
18
+ if (changeData.del.length > 0) {
19
+ changeData.del = '<span class="deleted">' + changeData.del + '</span>';
20
+ }
21
+ if (changeData.ins.length > 0) {
22
+ changeData.ins = '<span class="inserted">' + changeData.ins + '</span>';
23
+ }
24
+ result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;
25
+ result +=
26
+ nextThis !== '' || nextS !== ''
27
+ ? StringUtils.diff(nextThis, nextS, p)
28
+ : '';
29
+ return result;
30
+ }
31
+ static getMatchingSubstring(s, l, m) {
32
+ // returns the first matching substring in-between the two strings
33
+ let i = 0;
34
+ let match = false;
35
+ const slen = s.length;
36
+ const o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object
37
+ while (i < slen) {
38
+ l[i] === s[i]
39
+ ? match
40
+ ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef
41
+ : ((match = true), (o.fis = i), (o.sbs = s[i]))
42
+ : match
43
+ ? (i = slen) // stop after the first found substring
44
+ : (i = i);
45
+ ++i;
46
+ }
47
+ return o;
48
+ }
49
+ static getChanges(s1, s2, m, p) {
50
+ const isThisLonger = s1.length >= s1.length ? true : false;
51
+ let [longer, shorter] = isThisLonger ? [s1, s2] : [s2, s1]; // assignment of longer and shorter by es6 destructuring
52
+ let bi = 0; // base index designating the index of first mismacthing character in both strings
53
+ while (shorter[bi] === longer[bi] && bi < shorter.length) {
54
+ ++bi;
55
+ } // make bi the index of first mismatching character
56
+ longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array
57
+ shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character
58
+ const len = longer.length; // length of the longer string
59
+ let cd = {
60
+ fis: shorter.length,
61
+ fil: len,
62
+ sbs: '',
63
+ mtc: m + s2.slice(0, bi)
64
+ }; // if exists mtc holds the matching string at the front
65
+ let sub = { sbs: '' }; // returned substring per 1 character rotation of the longer string
66
+ if (shorter !== '') {
67
+ for (let rc = 0; rc < len && sub.sbs.length < p; rc++) {
68
+ // rc -> rotate count, p -> precision factor
69
+ sub = StringUtils.getMatchingSubstring(shorter, StringUtils.rotateArray(longer, rc), cd.mtc); // rotate longer string 1 char and get substring
70
+ sub.fil =
71
+ rc < len - sub.fis
72
+ ? sub.fis + rc // mismatch is longer than the mismatch in short
73
+ : sub.fis - len + rc; // mismatch is shorter than the mismatch in short
74
+ if (sub.sbs.length > cd.sbs.length) {
75
+ cd = sub; // only keep the one with the longest substring.
76
+ }
77
+ }
78
+ }
79
+ // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring
80
+ [cd.del, cd.ins] = isThisLonger
81
+ ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]
82
+ : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')];
83
+ return cd.del.indexOf(' ') === -1 ||
84
+ cd.ins.indexOf(' ') === -1 ||
85
+ cd.del === '' ||
86
+ cd.ins === '' ||
87
+ cd.sbs === ''
88
+ ? cd
89
+ : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);
90
+ }
91
+ static rotateArray(array, n) {
92
+ const len = array.length;
93
+ const res = new Array(array.length);
94
+ if (n % len === 0) {
95
+ return array.slice();
96
+ }
97
+ else {
98
+ for (let i = 0; i < len; i++) {
99
+ res[i] = array[(i + (len + (n % len))) % len];
100
+ }
101
+ }
102
+ return res;
103
+ }
104
+ }
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9zdHJpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLE9BQU8seUJBQXlCLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUCxPQUFPLHdCQUF3QixHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDbEQ7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUNwQixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLHdCQUF3QjtRQUMzQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN2QixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLDJCQUEy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QUM7SUFDeEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcbiAgc3RhdGljIGRpZmYoczE6IHN0cmluZywgczI6IHN0cmluZywgcCA9IDQpOiBzdHJpbmcge1xuICAgIGlmICghczEgJiYgIXMyKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICghczEpIHtcbiAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJpbnNlcnRlZFwiPicgKyBzMiArICc8L3NwYW4+JztcbiAgICB9XG4gICAgaWYgKCFzMikge1xuICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cImRlbGV0ZWRcIj4nICsgczEgKyAnPC9zcGFuPic7XG4gICAgfVxuICAgIHMxID0gczEudG9TdHJpbmcoKTtcbiAgICBzMiA9IHMyLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgY2hhbmdlRGF0YSA9IFN0cmluZ1V0aWxzLmdldENoYW5nZXMoczEsIHMyLCAnJywgcCk7XG4gICAgY29uc3QgbmV4dFMgPSBzMi5zbGljZShcbiAgICAgIGNoYW5nZURhdGEubXRjLmxlbmd0aCArIGNoYW5nZURhdGEuaW5zLmxlbmd0aCArIGNoYW5nZURhdGEuc2JzLmxlbmd0aFxuICAgICk7IC8vIHJlbWFpbmluZyBwYXJ0IG9mIFwic1wiXG4gICAgY29uc3QgbmV4dFRoaXMgPSBzMS5zbGljZShcbiAgICAgIGNoYW5nZURhdGEubXRjLmxlbmd0aCArIGNoYW5nZURhdGEuZGVsLmxlbmd0aCArIGNoYW5nZURhdGEuc2JzLmxlbmd0aFxuICAgICk7IC8vIHJlbWFpbmluZyBwYXJ0IG9mIFwidGhpc1wiXG4gICAgbGV0IHJlc3VsdCA9ICcnOyAvLyB0aGUgZ2xvcmlvdXMgcmVzdWx0XG4gICAgaWYgKGNoYW5nZURhdGEuZGVsLmxlbmd0aCA+IDApIHtcbiAgICAgIGNoYW5nZURhdGEuZGVsID0gJzxzcGFuIGNsYXNzPVwiZGVsZXRlZFwiPicgKyBjaGFuZ2VEYXRhLmRlbCArICc8L3NwYW4+JztcbiAgICB9XG4gICAgaWYgKGNoYW5nZURhdGEuaW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNoYW5nZURhdGEuaW5zID0gJzxzcGFuIGNsYXNzPVwiaW5zZXJ0ZWRcIj4nICsgY2hhbmdlRGF0YS5pbnMgKyAnPC9zcGFuPic7XG4gICAgfVxuICAgIHJlc3VsdCA9IGNoYW5nZURhdGEubXRjICsgY2hhbmdlRGF0YS5kZWwgKyBjaGFuZ2VEYXRhLmlucyArIGNoYW5nZURhdGEuc2JzO1xuICAgIHJlc3VsdCArPVxuICAgICAgbmV4dFRoaXMgIT09ICcnIHx8IG5leHRTICE9PSAnJ1xuICAgICAgICA/IFN0cmluZ1V0aWxzLmRpZmYobmV4dFRoaXMsIG5leHRTLCBwKVxuICAgICAgICA6ICcnO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNYXRjaGluZ1N1YnN0cmluZyhzLCBsLCBtKSB7XG4gICAgLy8gcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2hpbmcgc3Vic3RyaW5nIGluLWJldHdlZW4gdGhlIHR3byBzdHJpbmdzXG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBtYXRjaCA9IGZhbHNlO1xuICAgIGNvbnN0IHNsZW4gPSBzLmxlbmd0aDtcbiAgICBjb25zdCBvID0geyBmaXM6IHNsZW4sIG10YzogbSwgc2JzOiAnJyB9OyAvLyB0ZW1wb3Jhcnkgb2JqZWN0IHVzZWQgdG8gY29uc3RydWN0IHRoZSBjZCAoY2hhbmdlIGRhdGEpIG9iamVjdFxuXG4gICAgd2hpbGUgKGkgPCBzbGVuKSB7XG4gICAgICBsW2ldID09PSBzW2ldXG4gICAgICAgID8gbWF0Y2hcbiAgICAgICAgICA/IChvLnNicyArPSBzW2ldKSAvLyBvLnNicyBob2xkcyB0aGUgbWF0Y2hpbmcgc3Vic3RyaW5nIGl0c2VmXG4gICAgICAgICAgOiAoKG1hdGNoID0gdHJ1ZSksIChvLmZpcyA9IGkpLCAoby5zYnMgPSBzW2ldKSlcbiAgICAgICAgOiBtYXRjaFxuICAgICAgICAgID8gKGkgPSBzbGVuKSAvLyBzdG9wIGFmdGVyIHRoZSBmaXJzdCBmb3VuZCBzdWJzdHJpbmdcbiAgICAgICAgICA6IChpID0gaSk7XG4gICAgICArK2k7XG4gICAgfVxuICAgIHJldHVybiBvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Q2hhbmdlcyhzMSwgczIsIG0sIHApIHtcbiAgICBjb25zdCBpc1RoaXNMb25nZXIgPSBzMS5sZW5ndGggPj0gczEubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGxldCBbbG9uZ2VyLCBzaG9ydGVyXSA9IGlzVGhpc0xvbmdlciA/IFtzMSwgczJdIDogW3MyLCBzMV07IC8vIGFzc2lnbm1lbnQgb2YgbG9uZ2VyIGFuZCBzaG9ydGVyIGJ5IGVzNiBkZXN0cnVjdHVyaW5nXG4gICAgbGV0IGJpID0gMDsgLy8gYmFzZSBpbmRleCBkZXNpZ25hdGluZyB0aGUgaW5kZXggb2YgZmlyc3QgbWlzbWFjdGhpbmcgY2hhcmFjdGVyIGluIGJvdGggc3RyaW5nc1xuXG4gICAgd2hpbGUgKHNob3J0ZXJbYmldID09PSBsb25nZXJbYmldICYmIGJpIDwgc2hvcnRlci5sZW5ndGgpIHtcbiAgICAgICsrYmk7XG4gICAgfSAvLyBtYWtlIGJpIHRoZSBpbmRleCBvZiBmaXJzdCBtaXNtYXRjaGluZyBjaGFyYWN0ZXJcbiAgICBsb25nZXIgPSBsb25nZXIuc3BsaXQoJycpLnNsaWNlKGJpKTsgLy8gYXMgdGhlIGxvbmdlciBzdHJpbmcgd2lsbCBiZSByb3RhdGVkIGl0IGlzIGNvbnZlcnRlZCBpbnRvIGFycmF5XG4gICAgc2hvcnRlciA9IHNob3J0ZXIuc2xpY2UoYmkpOyAvLyBzaG9ydGVyIGFuZCBsb25nZXIgbm93IHN0YXJ0cyBmcm9tIHRoZSBmaXJzdCBtaXNtYXRjaGluZyBjaGFyYWN0ZXJcblxuICAgIGNvbnN0IGxlbiA9IGxvbmdlci5sZW5ndGg7IC8vIGxlbmd0aCBvZiB0aGUgbG9uZ2VyIHN0cmluZ1xuICAgIGxldCBjZDogYW55ID0ge1xuICAgICAgZmlzOiBzaG9ydGVyLmxlbmd0aCwgLy8gdGhlIGluZGV4IG9mIG1hdGNoaW5nIHN0cmluZyBpbiB0aGUgc2hvcnRlciBzdHJpbmdcbiAgICAgIGZpbDogbGVuLCAvLyB0aGUgaW5kZXggb2YgbWF0Y2hpbmcgc3RyaW5nIGluIHRoZSBsb25nZXIgc3RyaW5nXG4gICAgICBzYnM6ICcnLCAvLyB0aGUgbWF0Y2hpbmcgc3Vic3RyaW5nIGl0c2VsZlxuICAgICAgbXRjOiBtICsgczIuc2xpY2UoMCwgYmkpXG4gICAgfTsgLy8gaWYgZXhpc3RzIG10YyBob2xkcyB0aGUgbWF0Y2hpbmcgc3RyaW5nIGF0IHRoZSBmcm9udFxuICAgIGxldCBzdWI6IGFueSA9IHsgc2JzOiAnJyB9OyAvLyByZXR1cm5lZCBzdWJzdHJpbmcgcGVyIDEgY2hhcmFjdGVyIHJvdGF0aW9uIG9mIHRoZSBsb25nZXIgc3RyaW5nXG5cbiAgICBpZiAoc2hvcnRlciAhPT0gJycpIHtcbiAgICAgIGZvciAobGV0IHJjID0gMDsgcmMgPCBsZW4gJiYgc3ViLnNicy5sZW5ndGggPCBwOyByYysrKSB7XG4gICAgICAgIC8vIHJjIC0+IHJvdGF0ZSBjb3VudCwgcCAtPiBwcmVjaXNpb24gZmFjdG9yXG4gICAgICAgIHN1YiA9IFN0cmluZ1V0aWxzLmdldE1hdGNoaW5nU3Vic3RyaW5nKFxuICAgICAgICAgIHNob3J0ZXIsXG4gICAgICAgICAgU3RyaW5nVXRpbHMucm90YXRlQXJyYXkobG9uZ2VyLCByYyksXG4gICAgICAgICAgY2QubXRjXG4gICAgICAgICk7IC8vIHJvdGF0ZSBsb25nZXIgc3RyaW5nIDEgY2hhciBhbmQgZ2V0IHN1YnN0cmluZ1xuICAgICAgICBzdWIuZmlsID1cbiAgICAgICAgICByYyA8IGxlbiAtIHN1Yi5maXNcbiAgICAgICAgICAgID8gc3ViLmZpcyArIHJjIC8vIG1pc21hdGNoIGlzIGxvbmdlciB0aGFuIHRoZSBtaXNtYXRjaCBpbiBzaG9ydFxuICAgICAgICAgICAgOiBzdWIuZmlzIC0gbGVuICsgcmM7IC8vIG1pc21hdGNoIGlzIHNob3J0ZXIgdGhhbiB0aGUgbWlzbWF0Y2ggaW4gc2hvcnRcbiAgICAgICAgaWYgKHN1Yi5zYnMubGVuZ3RoID4gY2Quc2JzLmxlbmd0aCkge1xuICAgICAgICAgIGNkID0gc3ViOyAvLyBvbmx5IGtlZXAgdGhlIG9uZSB3aXRoIHRoZSBsb25nZXN0IHN1YnN0cmluZy5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpbnNlcnQgdGhlIG1pc21hdGNoaW5nIGRlbGV0ZSBzdWJzcnQgYW5kIGluc2VydCBzdWJzdHIgdG8gdGhlIGNkIG9iamVjdCBhbmQgYXR0YWNoIHRoZSBwcmV2aW91cyBzdWJzdHJpbmdcbiAgICBbY2QuZGVsLCBjZC5pbnNdID0gaXNUaGlzTG9uZ2VyXG4gICAgICA/IFtsb25nZXIuc2xpY2UoMCwgY2QuZmlsKS5qb2luKCcnKSwgc2hvcnRlci5zbGljZSgwLCBjZC5maXMpXVxuICAgICAgOiBbc2hvcnRlci5zbGljZSgwLCBjZC5maXMpLCBsb25nZXIuc2xpY2UoMCwgY2QuZmlsKS5qb2luKCcnKV07XG4gICAgcmV0dXJuIGNkLmRlbC5pbmRleE9mKCcgJykgPT09IC0xIHx8XG4gICAgICBjZC5pbnMuaW5kZXhPZignICcpID09PSAtMSB8fFxuICAgICAgY2QuZGVsID09PSAnJyB8fFxuICAgICAgY2QuaW5zID09PSAnJyB8fFxuICAgICAgY2Quc2JzID09PSAnJ1xuICAgICAgPyBjZFxuICAgICAgOiBTdHJpbmdVdGlscy5nZXRDaGFuZ2VzKGNkLmRlbCwgY2QuaW5zLCBjZC5tdGMsIHApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcm90YXRlQXJyYXkoYXJyYXksIG4pIHtcbiAgICBjb25zdCBsZW4gPSBhcnJheS5sZW5ndGg7XG4gICAgY29uc3QgcmVzID0gbmV3IEFycmF5KGFycmF5Lmxlbmd0aCk7XG4gICAgaWYgKG4gJSBsZW4gPT09IDApIHtcbiAgICAgIHJldHVybiBhcnJheS5zbGljZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHJlc1tpXSA9IGFycmF5WyhpICsgKGxlbiArIChuICUgbGVuKSkpICUgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
- import * as Bowser from 'bowser';
2
- export const userAgent = Bowser.getParser(window.navigator.userAgent);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQU1qQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJvd3NlciBmcm9tICdib3dzZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnQgZXh0ZW5kcyBCb3dzZXIuUGFyc2VyLlBhcnNlciB7XHJcbiAgY29tcGFyZVZlcnNpb246ICh2ZXJzaW9uOiBzdHJpbmcpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB1c2VyQWdlbnQgPSBCb3dzZXIuZ2V0UGFyc2VyKFxyXG4gIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50XHJcbikgYXMgVXNlckFnZW50O1xyXG4iXX0=
1
+ import * as Bowser from 'bowser';
2
+ export const userAgent = Bowser.getParser(window.navigator.userAgent);
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQU1qQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJvd3NlciBmcm9tICdib3dzZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudCBleHRlbmRzIEJvd3Nlci5QYXJzZXIuUGFyc2VyIHtcbiAgY29tcGFyZVZlcnNpb246ICh2ZXJzaW9uOiBzdHJpbmcpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCB1c2VyQWdlbnQgPSBCb3dzZXIuZ2V0UGFyc2VyKFxuICB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudFxuKSBhcyBVc2VyQWdlbnQ7XG4iXX0=
@@ -1,9 +1,9 @@
1
- export function S4() {
2
- // eslint-disable-next-line no-bitwise
3
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
4
- }
5
- export function uuid() {
6
- const id = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;
7
- return id.toLowerCase();
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXVpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsRUFBRTtJQUNoQixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQsTUFBTSxVQUFVLElBQUk7SUFDbEIsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFFLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gUzQoKSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcclxuICByZXR1cm4gKCgoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMCkgfCAwKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcclxuICBjb25zdCBpZCA9IGAke1M0KCl9JHtTNCgpfS0ke1M0KCl9LSR7UzQoKX0tJHtTNCgpfS0ke1M0KCl9JHtTNCgpfSR7UzQoKX1gO1xyXG4gIHJldHVybiBpZC50b0xvd2VyQ2FzZSgpO1xyXG59XHJcbiJdfQ==
1
+ export function S4() {
2
+ // eslint-disable-next-line no-bitwise
3
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
4
+ }
5
+ export function uuid() {
6
+ const id = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;
7
+ return id.toLowerCase();
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXVpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsRUFBRTtJQUNoQixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQsTUFBTSxVQUFVLElBQUk7SUFDbEIsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFFLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gUzQoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gIHJldHVybiAoKCgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwKSB8IDApLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1dWlkKCkge1xuICBjb25zdCBpZCA9IGAke1M0KCl9JHtTNCgpfS0ke1M0KCl9LSR7UzQoKX0tJHtTNCgpfS0ke1M0KCl9JHtTNCgpfSR7UzQoKX1gO1xuICByZXR1cm4gaWQudG9Mb3dlckNhc2UoKTtcbn1cbiJdfQ==
@@ -1,41 +1,41 @@
1
- import { Subject } from 'rxjs';
2
- import { distinctUntilChanged } from 'rxjs/operators';
3
- export var SubjectStatus;
4
- (function (SubjectStatus) {
5
- SubjectStatus[SubjectStatus["Error"] = 0] = "Error";
6
- SubjectStatus[SubjectStatus["Done"] = 1] = "Done";
7
- SubjectStatus[SubjectStatus["Working"] = 2] = "Working";
8
- SubjectStatus[SubjectStatus["Waiting"] = 3] = "Waiting";
9
- })(SubjectStatus || (SubjectStatus = {}));
10
- export class Watcher {
11
- constructor() {
12
- this.status$ = new Subject();
13
- }
14
- get status() {
15
- return this._status;
16
- }
17
- set status(value) {
18
- this._status = value;
19
- this.status$.next(value);
20
- }
21
- // eslint-disable-next-line @typescript-eslint/ban-types
22
- subscribe(callback, scope) {
23
- this.watch();
24
- this.status$$ = this.status$
25
- .pipe(distinctUntilChanged())
26
- .subscribe((status) => {
27
- this.handleStatusChange(status);
28
- callback.call(scope, this);
29
- });
30
- }
31
- unsubscribe() {
32
- this.unwatch();
33
- if (this.status$$ !== undefined) {
34
- this.status$$.unsubscribe();
35
- this.status$$ = undefined;
36
- }
37
- this.status = SubjectStatus.Waiting;
38
- }
39
- handleStatusChange(status) { }
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3ZCLG1EQUFTLENBQUE7SUFDVCxpREFBUSxDQUFBO0lBQ1IsdURBQVcsQ0FBQTtJQUNYLHVEQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQWdCLE9BQU87SUFBN0I7UUFDUyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7SUFzQ2hELENBQUM7SUFuQ0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBT0Qsd0RBQXdEO0lBQ3hELFNBQVMsQ0FBQyxRQUFrQixFQUFFLEtBQVc7UUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTzthQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQXFCLElBQUcsQ0FBQztDQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBlbnVtIFN1YmplY3RTdGF0dXMge1xyXG4gIEVycm9yID0gMCxcclxuICBEb25lID0gMSxcclxuICBXb3JraW5nID0gMixcclxuICBXYWl0aW5nID0gM1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2F0Y2hlciB7XHJcbiAgcHVibGljIHN0YXR1cyQgPSBuZXcgU3ViamVjdDxTdWJqZWN0U3RhdHVzPigpO1xyXG4gIHByb3RlY3RlZCBzdGF0dXMkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBnZXQgc3RhdHVzKCk6IFN1YmplY3RTdGF0dXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcclxuICB9XHJcbiAgc2V0IHN0YXR1cyh2YWx1ZTogU3ViamVjdFN0YXR1cykge1xyXG4gICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXR1cyQubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0YXR1czogU3ViamVjdFN0YXR1cztcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHdhdGNoKCk7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB1bndhdGNoKCk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXHJcbiAgc3Vic2NyaWJlKGNhbGxiYWNrOiBGdW5jdGlvbiwgc2NvcGU/OiBhbnkpIHtcclxuICAgIHRoaXMud2F0Y2goKTtcclxuXHJcbiAgICB0aGlzLnN0YXR1cyQkID0gdGhpcy5zdGF0dXMkXHJcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogU3ViamVjdFN0YXR1cykgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1cyk7XHJcbiAgICAgICAgY2FsbGJhY2suY2FsbChzY29wZSwgdGhpcyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLnVud2F0Y2goKTtcclxuICAgIGlmICh0aGlzLnN0YXR1cyQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGF0dXMkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnN0YXR1cyQkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0dXMgPSBTdWJqZWN0U3RhdHVzLldhaXRpbmc7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1czogU3ViamVjdFN0YXR1cykge31cclxufVxyXG4iXX0=
1
+ import { Subject } from 'rxjs';
2
+ import { distinctUntilChanged } from 'rxjs/operators';
3
+ export var SubjectStatus;
4
+ (function (SubjectStatus) {
5
+ SubjectStatus[SubjectStatus["Error"] = 0] = "Error";
6
+ SubjectStatus[SubjectStatus["Done"] = 1] = "Done";
7
+ SubjectStatus[SubjectStatus["Working"] = 2] = "Working";
8
+ SubjectStatus[SubjectStatus["Waiting"] = 3] = "Waiting";
9
+ })(SubjectStatus || (SubjectStatus = {}));
10
+ export class Watcher {
11
+ constructor() {
12
+ this.status$ = new Subject();
13
+ }
14
+ get status() {
15
+ return this._status;
16
+ }
17
+ set status(value) {
18
+ this._status = value;
19
+ this.status$.next(value);
20
+ }
21
+ // eslint-disable-next-line @typescript-eslint/ban-types
22
+ subscribe(callback, scope) {
23
+ this.watch();
24
+ this.status$$ = this.status$
25
+ .pipe(distinctUntilChanged())
26
+ .subscribe((status) => {
27
+ this.handleStatusChange(status);
28
+ callback.call(scope, this);
29
+ });
30
+ }
31
+ unsubscribe() {
32
+ this.unwatch();
33
+ if (this.status$$ !== undefined) {
34
+ this.status$$.unsubscribe();
35
+ this.status$$ = undefined;
36
+ }
37
+ this.status = SubjectStatus.Waiting;
38
+ }
39
+ handleStatusChange(status) { }
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3ZCLG1EQUFTLENBQUE7SUFDVCxpREFBUSxDQUFBO0lBQ1IsdURBQVcsQ0FBQTtJQUNYLHVEQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQWdCLE9BQU87SUFBN0I7UUFDUyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7SUFzQ2hELENBQUM7SUFuQ0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBT0Qsd0RBQXdEO0lBQ3hELFNBQVMsQ0FBQyxRQUFrQixFQUFFLEtBQVc7UUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTzthQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQXFCLElBQUcsQ0FBQztDQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIFN1YmplY3RTdGF0dXMge1xuICBFcnJvciA9IDAsXG4gIERvbmUgPSAxLFxuICBXb3JraW5nID0gMixcbiAgV2FpdGluZyA9IDNcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdhdGNoZXIge1xuICBwdWJsaWMgc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1YmplY3RTdGF0dXM+KCk7XG4gIHByb3RlY3RlZCBzdGF0dXMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzdGF0dXMoKTogU3ViamVjdFN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgfVxuICBzZXQgc3RhdHVzKHZhbHVlOiBTdWJqZWN0U3RhdHVzKSB7XG4gICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0dXMkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3N0YXR1czogU3ViamVjdFN0YXR1cztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgd2F0Y2goKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdW53YXRjaCgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIHN1YnNjcmliZShjYWxsYmFjazogRnVuY3Rpb24sIHNjb3BlPzogYW55KSB7XG4gICAgdGhpcy53YXRjaCgpO1xuXG4gICAgdGhpcy5zdGF0dXMkJCA9IHRoaXMuc3RhdHVzJFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogU3ViamVjdFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZVN0YXR1c0NoYW5nZShzdGF0dXMpO1xuICAgICAgICBjYWxsYmFjay5jYWxsKHNjb3BlLCB0aGlzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgdGhpcy51bndhdGNoKCk7XG4gICAgaWYgKHRoaXMuc3RhdHVzJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdGF0dXMkJC51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5zdGF0dXMkJCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0dXMgPSBTdWJqZWN0U3RhdHVzLldhaXRpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1czogU3ViamVjdFN0YXR1cykge31cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- /*
2
- * Public API Surface of utils
3
- */
4
- export * from './lib';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdXRpbHNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYic7XHJcbiJdfQ==
1
+ /*
2
+ * Public API Surface of utils
3
+ */
4
+ export * from './lib';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWInO1xuIl19