custom-permutation 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,5 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var CustomPermutation_1 = require("./CustomPermutation");
3
+ const CustomPermutation_1 = require("./CustomPermutation");
4
+ let customPerm = new CustomPermutation_1.default([], {}, {});
5
+ let count = 0;
6
+ while (true) {
7
+ let next = customPerm.next();
8
+ if (!next) {
9
+ break;
10
+ }
11
+ count++;
12
+ }
4
13
  module.exports = CustomPermutation_1.default;
5
14
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yDAAoD;AACpD,MAAM,CAAC,OAAO,GAAG,2BAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2DAAoD;AAEpD,IAAI,UAAU,GAAG,IAAI,2BAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,OAAO,IAAI,EAAE;IACX,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,IAAI,EAAE;QACT,MAAM;KACP;IAED,KAAK,EAAE,CAAC;CACT;AAED,MAAM,CAAC,OAAO,GAAG,2BAAiB,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "custom-permutation",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "description": "Permutation generator with custom options.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "scripts": {
8
8
  "test": "jest --config jestconfig.json",
9
9
  "build": "tsc",
10
- "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
10
+ "format": "prettier --write \"src/**/*.ts\"",
11
11
  "lint": "tslint -p tsconfig.json",
12
12
  "prepare": "npm run build",
13
13
  "prepublishOnly": "npm test && npm run preversion",
@@ -39,9 +39,9 @@
39
39
  "jest": "^27.0.6",
40
40
  "prettier": "^2.3.2",
41
41
  "ts-jest": "^27.0.3",
42
+ "ts-node": "^10.9.2",
42
43
  "tslint": "^6.1.3",
43
44
  "tslint-config-prettier": "^1.18.0",
44
45
  "typescript": "^4.3.5"
45
- },
46
- "dependencies": {}
46
+ }
47
47
  }
package/lib/Enums.d.ts DELETED
@@ -1,39 +0,0 @@
1
- export declare enum SlotTypeEnum {
2
- Weekday = 1,
3
- Holiday = 2
4
- }
5
- export declare enum MonthEnum {
6
- January = 0,
7
- February = 1,
8
- March = 2,
9
- April = 3,
10
- May = 4,
11
- June = 5,
12
- July = 6,
13
- August = 7,
14
- September = 8,
15
- October = 9,
16
- November = 10,
17
- December = 11
18
- }
19
- export declare enum CheckFunctionsErrorTypeEnum {
20
- SamePersonInSameDayInBothList = 0,
21
- ConsecutiveSamePersonInSameList = 1,
22
- SamePersonAtNorthWest = 2,
23
- SamePersonAtNorthEast = 3,
24
- SamePersonAtSouthEast = 4,
25
- SamePersonAtSouthWest = 5
26
- }
27
- export declare enum PermResultTypeEnum {
28
- FOUND = 1,
29
- TRYNEXT = 2,
30
- ENDOFPERMUTATION = 3
31
- }
32
- export declare enum CheckResultEnum {
33
- TRYNEXT = 1,
34
- TRYNEXTWD = 2,
35
- TRYNEXTHD = 3,
36
- TRYNEXTHDANDWDBOTH = 4,
37
- NOSOLUTION = 5,
38
- NOTTRIEDYET = 6
39
- }
package/lib/Enums.js DELETED
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CheckResultEnum = exports.PermResultTypeEnum = exports.CheckFunctionsErrorTypeEnum = exports.MonthEnum = exports.SlotTypeEnum = void 0;
4
- var SlotTypeEnum;
5
- (function (SlotTypeEnum) {
6
- SlotTypeEnum[SlotTypeEnum["Weekday"] = 1] = "Weekday";
7
- SlotTypeEnum[SlotTypeEnum["Holiday"] = 2] = "Holiday";
8
- })(SlotTypeEnum = exports.SlotTypeEnum || (exports.SlotTypeEnum = {}));
9
- var MonthEnum;
10
- (function (MonthEnum) {
11
- MonthEnum[MonthEnum["January"] = 0] = "January";
12
- MonthEnum[MonthEnum["February"] = 1] = "February";
13
- MonthEnum[MonthEnum["March"] = 2] = "March";
14
- MonthEnum[MonthEnum["April"] = 3] = "April";
15
- MonthEnum[MonthEnum["May"] = 4] = "May";
16
- MonthEnum[MonthEnum["June"] = 5] = "June";
17
- MonthEnum[MonthEnum["July"] = 6] = "July";
18
- MonthEnum[MonthEnum["August"] = 7] = "August";
19
- MonthEnum[MonthEnum["September"] = 8] = "September";
20
- MonthEnum[MonthEnum["October"] = 9] = "October";
21
- MonthEnum[MonthEnum["November"] = 10] = "November";
22
- MonthEnum[MonthEnum["December"] = 11] = "December";
23
- })(MonthEnum = exports.MonthEnum || (exports.MonthEnum = {}));
24
- var CheckFunctionsErrorTypeEnum;
25
- (function (CheckFunctionsErrorTypeEnum) {
26
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["SamePersonInSameDayInBothList"] = 0] = "SamePersonInSameDayInBothList";
27
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["ConsecutiveSamePersonInSameList"] = 1] = "ConsecutiveSamePersonInSameList";
28
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["SamePersonAtNorthWest"] = 2] = "SamePersonAtNorthWest";
29
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["SamePersonAtNorthEast"] = 3] = "SamePersonAtNorthEast";
30
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["SamePersonAtSouthEast"] = 4] = "SamePersonAtSouthEast";
31
- CheckFunctionsErrorTypeEnum[CheckFunctionsErrorTypeEnum["SamePersonAtSouthWest"] = 5] = "SamePersonAtSouthWest";
32
- })(CheckFunctionsErrorTypeEnum = exports.CheckFunctionsErrorTypeEnum || (exports.CheckFunctionsErrorTypeEnum = {}));
33
- // Permutation Results
34
- var PermResultTypeEnum;
35
- (function (PermResultTypeEnum) {
36
- PermResultTypeEnum[PermResultTypeEnum["FOUND"] = 1] = "FOUND";
37
- PermResultTypeEnum[PermResultTypeEnum["TRYNEXT"] = 2] = "TRYNEXT";
38
- PermResultTypeEnum[PermResultTypeEnum["ENDOFPERMUTATION"] = 3] = "ENDOFPERMUTATION";
39
- })(PermResultTypeEnum = exports.PermResultTypeEnum || (exports.PermResultTypeEnum = {}));
40
- var CheckResultEnum;
41
- (function (CheckResultEnum) {
42
- CheckResultEnum[CheckResultEnum["TRYNEXT"] = 1] = "TRYNEXT";
43
- CheckResultEnum[CheckResultEnum["TRYNEXTWD"] = 2] = "TRYNEXTWD";
44
- CheckResultEnum[CheckResultEnum["TRYNEXTHD"] = 3] = "TRYNEXTHD";
45
- CheckResultEnum[CheckResultEnum["TRYNEXTHDANDWDBOTH"] = 4] = "TRYNEXTHDANDWDBOTH";
46
- CheckResultEnum[CheckResultEnum["NOSOLUTION"] = 5] = "NOSOLUTION";
47
- CheckResultEnum[CheckResultEnum["NOTTRIEDYET"] = 6] = "NOTTRIEDYET";
48
- })(CheckResultEnum = exports.CheckResultEnum || (exports.CheckResultEnum = {}));
49
- //# sourceMappingURL=Enums.js.map
package/lib/Enums.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Enums.js","sourceRoot":"","sources":["../src/Enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qDAAW,CAAA;IACX,qDAAW,CAAA;AACb,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,yCAAQ,CAAA;IACR,6CAAU,CAAA;IACV,mDAAa,CAAA;IACb,+CAAW,CAAA;IACX,kDAAa,CAAA;IACb,kDAAa,CAAA;AACf,CAAC,EAbW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAapB;AAGD,IAAY,2BAOX;AAPD,WAAY,2BAA2B;IACrC,+HAA6B,CAAA;IAC7B,mIAA+B,CAAA;IAC/B,+GAAqB,CAAA;IACrB,+GAAqB,CAAA;IACrB,+GAAqB,CAAA;IACrB,+GAAqB,CAAA;AACvB,CAAC,EAPW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAOtC;AAED,sBAAsB;AACtB,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6DAAS,CAAA;IACT,iEAAO,CAAA;IACP,mFAAgB,CAAA;AAClB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2DAAW,CAAA;IACX,+DAAS,CAAA;IACT,+DAAS,CAAA;IACT,iFAAkB,CAAA;IAClB,iEAAU,CAAA;IACV,mEAAW,CAAA;AACb,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B"}
@@ -1,26 +0,0 @@
1
- export declare class Permutation {
2
- private list;
3
- private stepCount;
4
- private dayIndexes;
5
- uniformedArr: any[];
6
- permGen: any;
7
- previous: any[];
8
- current: any[];
9
- cursor: number;
10
- history: any[];
11
- constructor(list: any[], stepCount: number, dayIndexes: number[]);
12
- init(list: any[], stepCount: number, dayIndexes: number[]): void;
13
- prev(): any;
14
- next(): any;
15
- reset(): void;
16
- getList(): any[];
17
- isEmpty(): boolean;
18
- last(): void;
19
- areArraysEqual(arr1: any[], arr2: any[]): boolean;
20
- distributeItemsUniformly_old(arr: any): any[];
21
- getFreqs(arr: any): {};
22
- getKeysSortedByFreq(freq: any): any[];
23
- distributeItemsUniformly(arr: any): any[];
24
- giveNotConsecutives(arrToBePermutated: any): Generator<any, void, unknown>;
25
- anyConsecutiveNonZeroItem(arr: any): boolean;
26
- }
@@ -1,265 +0,0 @@
1
- "use strict";
2
- var __generator = (this && this.__generator) || function (thisArg, body) {
3
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
4
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5
- function verb(n) { return function (v) { return step([n, v]); }; }
6
- function step(op) {
7
- if (f) throw new TypeError("Generator is already executing.");
8
- while (_) try {
9
- 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) return t;
10
- if (y = 0, t) op = [op[0] & 2, t.value];
11
- switch (op[0]) {
12
- case 0: case 1: t = op; break;
13
- case 4: _.label++; return { value: op[1], done: false };
14
- case 5: _.label++; y = op[1]; op = [0]; continue;
15
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
16
- default:
17
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
18
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
19
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
20
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
21
- if (t[2]) _.ops.pop();
22
- _.trys.pop(); continue;
23
- }
24
- op = body.call(thisArg, _);
25
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
27
- }
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.Permutation = void 0;
31
- var G = require('generatorics');
32
- var Permutation = /** @class */ (function () {
33
- function Permutation(list, stepCount, dayIndexes) {
34
- if (stepCount === void 0) { stepCount = 1; }
35
- this.list = list;
36
- this.stepCount = stepCount;
37
- this.dayIndexes = dayIndexes;
38
- this.previous = [];
39
- this.current = [];
40
- this.cursor = 0;
41
- this.history = [];
42
- this.init(list, stepCount, dayIndexes);
43
- }
44
- Permutation.prototype.init = function (list, stepCount, dayIndexes) {
45
- if (stepCount === void 0) { stepCount = 1; }
46
- if (list.length === 0) {
47
- console.warn('Empty list permutation!');
48
- }
49
- this.uniformedArr = this.distributeItemsUniformly(list.slice());
50
- this.permGen = this.giveNotConsecutives(this.uniformedArr.slice());
51
- // this.permGen = this.giveNotConsecutives(this.list.slice());
52
- };
53
- Permutation.prototype.prev = function () {
54
- // cursor points the one after current element, index of cursor-1 points to the last given element, so current cursor - 2 is prev
55
- if (this.cursor > 1) {
56
- this.cursor -= 1;
57
- }
58
- else {
59
- alert('at very first of perm');
60
- }
61
- return this.history[this.cursor - 1];
62
- };
63
- Permutation.prototype.next = function () {
64
- // if cursor does not point the new element, then give from history
65
- if (this.cursor < this.history.length) {
66
- return this.history[this.cursor++];
67
- }
68
- Object.assign(this.previous, this.current);
69
- var next = this.permGen.next() || {};
70
- Object.assign(this.current, next.value);
71
- /*prev-> this.cursor ? this.history[this.cursor-1] : [] */
72
- while (this.areArraysEqual(this.previous, this.current)) {
73
- // console.log("equal", this.previous, this.current)
74
- Object.assign(this.previous, this.current);
75
- var obj = this.permGen.next();
76
- if (!obj || obj.done) {
77
- return;
78
- }
79
- Object.assign(this.current, obj.value);
80
- }
81
- this.history.push(this.current.slice());
82
- this.cursor++;
83
- return this.current;
84
- };
85
- // do not delete history, since it will be needed for prev()
86
- Permutation.prototype.reset = function () {
87
- // this.permGen = this.giveNotConsecutives(this.uniformedArr);
88
- this.cursor = 0;
89
- };
90
- Permutation.prototype.getList = function () {
91
- return this.list || [];
92
- };
93
- Permutation.prototype.isEmpty = function () {
94
- return this.list.length === 0 || !this.list;
95
- };
96
- Permutation.prototype.last = function () {
97
- this.cursor = this.history.length - 1;
98
- };
99
- Permutation.prototype.areArraysEqual = function (arr1, arr2) {
100
- if (arr1.length !== arr2.length) {
101
- return false;
102
- }
103
- for (var i = 0; i < arr1.length; i++) {
104
- if (arr1[i] !== arr2[i]) {
105
- return false;
106
- }
107
- }
108
- return true;
109
- };
110
- // old
111
- Permutation.prototype.distributeItemsUniformly_old = function (arr) {
112
- var freqs = {};
113
- var uniformed = [];
114
- for (var i = 0; i < arr.length; i++) {
115
- freqs[arr[i]] = freqs[arr[i]] + 1 || 1;
116
- }
117
- var keys = Object.keys(freqs);
118
- var consumedKeyCount = 0;
119
- while (consumedKeyCount < keys.length) {
120
- consumedKeyCount = 0;
121
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
122
- var key = keys_1[_i];
123
- if (freqs[key]) {
124
- uniformed.push(key);
125
- freqs[key]--;
126
- }
127
- else {
128
- consumedKeyCount++;
129
- }
130
- }
131
- }
132
- return uniformed;
133
- };
134
- Permutation.prototype.getFreqs = function (arr) {
135
- var freqs = {};
136
- for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
137
- var item = arr_1[_i];
138
- if (freqs[item]) {
139
- freqs[item]++;
140
- }
141
- else {
142
- freqs[item] = 1;
143
- }
144
- }
145
- return freqs;
146
- };
147
- // first element will be max valued
148
- Permutation.prototype.getKeysSortedByFreq = function (freq) {
149
- var keys = Object.keys(freq);
150
- var keysSortedByFreq = [];
151
- var valuesSortedByFreq = [];
152
- var _loop_1 = function () {
153
- var keyOfMax = keys[0];
154
- var max = freq[keyOfMax];
155
- for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
156
- var key = keys_2[_i];
157
- if (max < freq[key]) {
158
- keyOfMax = key;
159
- max = freq[key];
160
- }
161
- }
162
- keysSortedByFreq.push(keyOfMax);
163
- valuesSortedByFreq.push(max);
164
- keys = keys.filter(function (x) { return x !== keyOfMax; });
165
- };
166
- while (keys.length > 0) {
167
- _loop_1();
168
- }
169
- return keysSortedByFreq;
170
- };
171
- Permutation.prototype.distributeItemsUniformly = function (arr) {
172
- var freqs = this.getFreqs(arr);
173
- console.log(freqs);
174
- var size = 0;
175
- var keys = this.getKeysSortedByFreq(freqs);
176
- console.log(keys);
177
- for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {
178
- var key = keys_3[_i];
179
- size += freqs[key];
180
- }
181
- var uniformedArr = Array(size).fill(undefined);
182
- for (var _a = 0, keys_4 = keys; _a < keys_4.length; _a++) {
183
- var key = keys_4[_a];
184
- var freqOfKey = freqs[key];
185
- var start = uniformedArr.indexOf(undefined);
186
- var shift = 0;
187
- var freqOfEl = freqs[key];
188
- var shiftAmount = Math.ceil(size / freqOfEl);
189
- var index = 0;
190
- while (freqs[key]) {
191
- var index_1 = start + shift;
192
- // if el on index is not empty, go next
193
- while (uniformedArr[index_1] && index_1 < size) {
194
- index_1++;
195
- }
196
- // if until end no any empty, go prev
197
- if (index_1 === size) {
198
- while (uniformedArr[index_1] && index_1 >= 0) {
199
- index_1--;
200
- }
201
- }
202
- if (index_1 < size && index_1 >= 0) {
203
- uniformedArr[index_1] = key;
204
- shift += shiftAmount;
205
- freqs[key]--;
206
- }
207
- else {
208
- console.log('distributeUniformly: Element is not set to an index!');
209
- break;
210
- }
211
- }
212
- }
213
- return uniformedArr;
214
- // console.log(uniformedArr);
215
- };
216
- // give permutations
217
- Permutation.prototype.giveNotConsecutives = function (arrToBePermutated) {
218
- var differentConsecutives, perms, perm, i, j;
219
- return __generator(this, function (_a) {
220
- switch (_a.label) {
221
- case 0:
222
- differentConsecutives = [];
223
- perms = G.permutation(arrToBePermutated);
224
- i = 0;
225
- _a.label = 1;
226
- case 1:
227
- if (!true) return [3 /*break*/, 4];
228
- j = 0;
229
- while (j++ < this.stepCount) {
230
- perm = perms.next();
231
- }
232
- if (!perm || perm.done) {
233
- return [3 /*break*/, 4];
234
- }
235
- if (!!this.anyConsecutiveNonZeroItem(perm.value)) return [3 /*break*/, 3];
236
- differentConsecutives.push(perm.value.slice());
237
- return [4 /*yield*/, (perm.value)];
238
- case 2:
239
- _a.sent();
240
- return [3 /*break*/, 3];
241
- case 3: return [3 /*break*/, 1];
242
- case 4: return [2 /*return*/];
243
- }
244
- });
245
- };
246
- // Since holidays and weekdays are seperated, doesn't sense to check consecutively
247
- Permutation.prototype.anyConsecutiveNonZeroItem = function (arr) {
248
- // for (let i = 1; i < arr.length; i++) {
249
- // if (Number(arr[i]) && arr[i] === arr[i - 1]) {
250
- // return true;
251
- // }
252
- // }
253
- for (var i = 1; i < this.dayIndexes.length; i++) {
254
- if (Math.abs(this.dayIndexes[i] - this.dayIndexes[i - 1]) == 1) { // means consecutive
255
- if (arr[i] == arr[i - 1] && Number(arr[i])) {
256
- return true;
257
- }
258
- }
259
- }
260
- return false;
261
- };
262
- return Permutation;
263
- }());
264
- exports.Permutation = Permutation;
265
- //# sourceMappingURL=Permutation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Permutation.js","sourceRoot":"","sources":["../src/Permutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEhC;IASE,qBAAoB,IAAW,EAAU,SAAqB,EAAU,UAAoB;QAAnD,0BAAA,EAAA,aAAqB;QAA1C,SAAI,GAAJ,IAAI,CAAO;QAAU,cAAS,GAAT,SAAS,CAAY;QAAU,eAAU,GAAV,UAAU,CAAU;QAL5F,aAAQ,GAAU,EAAE,CAAC;QACrB,YAAO,GAAU,EAAE,CAAC;QACpB,WAAM,GAAG,CAAC,CAAC;QACX,YAAO,GAAU,EAAE,CAAC;QAGlB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,0BAAI,GAAJ,UAAK,IAAW,EAAE,SAAqB,EAAE,UAAoB;QAA3C,0BAAA,EAAA,aAAqB;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;SACxC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,8DAA8D;IAChE,CAAC;IAED,0BAAI,GAAJ;QACE,iIAAiI;QACjI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;SAClB;aAAM;YACL,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,0BAAI,GAAJ;QACE,mEAAmE;QACnE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACpC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,0DAA0D;QAC1D,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YACvD,oDAAoD;YACpD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;gBACpB,OAAO;aACR;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QAGd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,4DAA4D;IAC5D,2BAAK,GAAL;QACE,8DAA8D;QAC9D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,6BAAO,GAAP;QACE,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,6BAAO,GAAP;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,0BAAI,GAAJ;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,oCAAc,GAAd,UAAe,IAAW,EAAE,IAAW;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;IACN,kDAA4B,GAA5B,UAA6B,GAAG;QAC9B,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,OAAO,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE;YACrC,gBAAgB,GAAG,CAAC,CAAC;YACrB,KAAgB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAjB,IAAI,GAAG,aAAA;gBACV,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;oBACd,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAA;iBACb;qBACI;oBACH,gBAAgB,EAAE,CAAC;iBACpB;aACF;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8BAAQ,GAAR,UAAS,GAAG;QACV,IAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,KAAmB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;YAAnB,IAAM,IAAI,YAAA;YACb,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;gBACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;aACf;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACjB;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mCAAmC;IACnC,yCAAmB,GAAnB,UAAoB,IAAI;QAEtB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,IAAM,kBAAkB,GAAG,EAAE,CAAC;;YAG5B,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAnB,IAAM,GAAG,aAAA;gBACZ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;oBACnB,QAAQ,GAAG,GAAG,CAAC;oBACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjB;aACF;YAED,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,QAAQ,EAAd,CAAc,CAAC,CAAC;;QAZ1C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;;SAarB;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,8CAAwB,GAAxB,UAAyB,GAAG;QAE1B,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACZ,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QAED,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEjD,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YAEZ,IAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE9C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;YAC/C,IAAM,KAAK,GAAG,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE;gBACjB,IAAI,OAAK,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC1B,uCAAuC;gBACvC,OAAO,YAAY,CAAC,OAAK,CAAC,IAAI,OAAK,GAAG,IAAI,EAAE;oBAC1C,OAAK,EAAE,CAAC;iBACT;gBACD,qCAAqC;gBACrC,IAAI,OAAK,KAAK,IAAI,EAAE;oBAClB,OAAO,YAAY,CAAC,OAAK,CAAC,IAAI,OAAK,IAAI,CAAC,EAAE;wBACxC,OAAK,EAAE,CAAC;qBACT;iBACF;gBAED,IAAI,OAAK,GAAG,IAAI,IAAI,OAAK,IAAI,CAAC,EAAE;oBAC9B,YAAY,CAAC,OAAK,CAAC,GAAG,GAAG,CAAC;oBAC1B,KAAK,IAAI,WAAW,CAAC;oBACrB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;iBACd;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;oBACpE,MAAM;iBACP;aACF;SAEF;QAED,OAAO,YAAY,CAAC;QACpB,6BAA6B;IAC/B,CAAC;IAED,oBAAoB;IACnB,yCAAmB,GAApB,UAAqB,iBAAiB;;;;;oBAEhC,qBAAqB,GAAG,EAAE,CAAC;oBAC3B,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;oBAGzC,CAAC,GAAG,CAAC,CAAC;;;yBAEH,IAAI;oBAKL,CAAC,GAAG,CAAC,CAAC;oBACV,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;wBAC3B,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;qBACrB;oBAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;wBACtB,wBAAM;qBACP;yBAEG,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAA3C,wBAA2C;oBAC7C,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC/C,qBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA;;oBAAlB,SAAkB,CAAC;;;;;;KASxB;IAED,kFAAkF;IAClF,+CAAyB,GAAzB,UAA0B,GAAG;QAE3B,yCAAyC;QAEzC,mDAAmD;QACnD,mBAAmB;QACnB,MAAM;QACN,IAAI;QAEJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB;gBACpF,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC1C,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEH,kBAAC;AAAD,CAAC,AA9QD,IA8QC;AA9QY,kCAAW"}
package/lib/Utils.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare class Utils {
2
- static shuffleArray(array: []): [];
3
- static shuffle(array: any[], swapTimes?: number): any[];
4
- }
package/lib/Utils.js DELETED
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Utils = void 0;
4
- var Utils = /** @class */ (function () {
5
- function Utils() {
6
- }
7
- Utils.shuffleArray = function (array) {
8
- var _a;
9
- for (var i = array.length - 1; i > 0; i--) {
10
- var j = Math.floor(Math.random() * (i + 1));
11
- _a = [array[j], array[i]], array[i] = _a[0], array[j] = _a[1];
12
- }
13
- return array;
14
- };
15
- Utils.shuffle = function (array, swapTimes) {
16
- if (swapTimes === void 0) { swapTimes = array.length; }
17
- var currentIndex = swapTimes;
18
- var temporaryValue, randomIndex;
19
- // While there remain elements to shuffle...
20
- while (0 !== currentIndex) {
21
- // Pick a remaining element...
22
- randomIndex = Math.floor(Math.random() * currentIndex);
23
- currentIndex -= 1;
24
- // And swap it with the current element.
25
- temporaryValue = array[currentIndex];
26
- array[currentIndex] = array[randomIndex];
27
- array[randomIndex] = temporaryValue;
28
- }
29
- return array;
30
- };
31
- return Utils;
32
- }());
33
- exports.Utils = Utils;
34
- //# sourceMappingURL=Utils.js.map
package/lib/Utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":";;;AAAA;IAAA;IAiCA,CAAC;IA/BQ,kBAAY,GAAnB,UAAoB,KAAS;;QAC3B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAA1C,KAAK,CAAC,CAAC,CAAC,QAAA,EAAE,KAAK,CAAC,CAAC,CAAC,QAAA,CAAyB;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAGM,aAAO,GAAd,UAAe,KAAY,EAAE,SAAwB;QAAxB,0BAAA,EAAA,YAAY,KAAK,CAAC,MAAM;QACnD,IAAI,YAAY,GAAG,SAAmB,CAAC;QACvC,IAAI,cAAc,EAAE,WAAW,CAAC;QAEhC,4CAA4C;QAC5C,OAAO,CAAC,KAAK,YAAY,EAAE;YAEzB,8BAA8B;YAC9B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;YACvD,YAAY,IAAI,CAAC,CAAC;YAElB,wCAAwC;YACxC,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACrC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,KAAK,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;SACrC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAGH,YAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,sBAAK"}