tnp-helpers 16.5.5 → 16.5.7
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/esm2022/lib/base-project.mjs +35 -2
- package/browser/esm2022/lib/helpers-array-obj.mjs +33 -1
- package/browser/fesm2022/tnp-helpers.mjs +66 -1
- package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
- package/browser/lib/base-project.d.ts +2 -1
- package/browser/lib/helpers-array-obj.d.ts +10 -0
- package/client/esm2022/lib/base-project.mjs +35 -2
- package/client/esm2022/lib/helpers-array-obj.mjs +33 -1
- package/client/fesm2022/tnp-helpers.mjs +66 -1
- package/client/fesm2022/tnp-helpers.mjs.map +1 -1
- package/client/lib/base-project.d.ts +2 -1
- package/client/lib/helpers-array-obj.d.ts +10 -0
- package/client/package.json +32 -32
- package/lib/base-project.d.ts +2 -1
- package/lib/base-project.js +37 -0
- package/lib/base-project.js.map +1 -1
- package/lib/for-backend/helpers-file-folders.backend.d.ts +3 -1
- package/lib/for-backend/helpers-file-folders.backend.js +5 -4
- package/lib/for-backend/helpers-file-folders.backend.js.map +1 -1
- package/lib/for-browser/angular.helper.js +3 -3
- package/lib/helpers-array-obj.d.ts +10 -0
- package/lib/helpers-array-obj.js +39 -0
- package/lib/helpers-array-obj.js.map +1 -1
- package/lib/old/base-component.js +3 -3
- package/lib/old/base-formly-component.js +3 -3
- package/lib/old/dual-component-ctrl.js +3 -3
- package/package.json +4 -4
- package/tmp-environment.json +36 -36
- package/websql/esm2022/lib/base-project.mjs +35 -2
- package/websql/esm2022/lib/helpers-array-obj.mjs +33 -1
- package/websql/fesm2022/tnp-helpers.mjs +66 -1
- package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
- package/websql/lib/base-project.d.ts +2 -1
- package/websql/lib/helpers-array-obj.d.ts +10 -0
package/tmp-environment.json
CHANGED
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"firedev-helpers"
|
|
43
43
|
]
|
|
44
44
|
},
|
|
45
|
-
"version": "16.5.
|
|
45
|
+
"version": "16.5.7",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"json10-writer": "~16.5.
|
|
47
|
+
"json10-writer": "~16.5.6",
|
|
48
48
|
"task.js": "0.1.5",
|
|
49
|
-
"tnp-models": "~16.5.
|
|
49
|
+
"tnp-models": "~16.5.6"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -138,9 +138,9 @@
|
|
|
138
138
|
"angular-material-css-vars": "5.0.2",
|
|
139
139
|
"angular-resize-event": "3.2.0",
|
|
140
140
|
"animate.css": "4.1.1 ",
|
|
141
|
-
"any-project-cli": "~16.5.
|
|
141
|
+
"any-project-cli": "~16.5.5",
|
|
142
142
|
"axios": "1.3.5",
|
|
143
|
-
"background-worker-process": "~16.5.
|
|
143
|
+
"background-worker-process": "~16.5.5",
|
|
144
144
|
"base32": "0.0.7",
|
|
145
145
|
"bcryptjs": "2.4.3",
|
|
146
146
|
"better-sqlite3": "7.6.2",
|
|
@@ -187,13 +187,13 @@
|
|
|
187
187
|
"file-saver": "2.0.5",
|
|
188
188
|
"file-type": "18.5.0",
|
|
189
189
|
"firedev": "^16",
|
|
190
|
-
"firedev-crud": "~16.5.
|
|
191
|
-
"firedev-crud-deamon": "~16.5.
|
|
192
|
-
"firedev-ports": "~16.5.
|
|
193
|
-
"firedev-storage": "~16.5.
|
|
194
|
-
"firedev-type-sql": "~16.5.
|
|
195
|
-
"firedev-typeorm": "~16.5.
|
|
196
|
-
"firedev-ui": "~16.5.
|
|
190
|
+
"firedev-crud": "~16.5.5",
|
|
191
|
+
"firedev-crud-deamon": "~16.5.5",
|
|
192
|
+
"firedev-ports": "~16.5.5",
|
|
193
|
+
"firedev-storage": "~16.5.5",
|
|
194
|
+
"firedev-type-sql": "~16.5.5",
|
|
195
|
+
"firedev-typeorm": "~16.5.6",
|
|
196
|
+
"firedev-ui": "~16.5.5",
|
|
197
197
|
"fkill": "6.1.0",
|
|
198
198
|
"font-awesome": "4.7.0",
|
|
199
199
|
"form-data": "4.0.0",
|
|
@@ -210,11 +210,11 @@
|
|
|
210
210
|
"image-focus": "1.2.1",
|
|
211
211
|
"immer": "10.0.2",
|
|
212
212
|
"immutable": "4.3.0",
|
|
213
|
-
"incremental-compiler": "~16.5.
|
|
213
|
+
"incremental-compiler": "~16.5.15",
|
|
214
214
|
"inquirer": "7.3.3",
|
|
215
215
|
"inquirer-autocomplete-prompt": "1.3.0",
|
|
216
216
|
"is-elevated": "3.0.0",
|
|
217
|
-
"isomorphic-region-loader": "~16.5.
|
|
217
|
+
"isomorphic-region-loader": "~16.5.5",
|
|
218
218
|
"istanbul-instrumenter-loader": "2.0.0",
|
|
219
219
|
"jest": "29.5.0",
|
|
220
220
|
"jest-date-mock": "1.0.8",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
"joi": "17.9.2",
|
|
226
226
|
"jscodeshift": "0.6.3",
|
|
227
227
|
"json-stringify-safe": "5.0.1",
|
|
228
|
-
"json10": "~16.5.
|
|
228
|
+
"json10": "~16.5.5",
|
|
229
229
|
"json5": "2.2.1",
|
|
230
230
|
"json5-writer": "0.2.0",
|
|
231
231
|
"jszip": "3.10.1",
|
|
@@ -234,23 +234,23 @@
|
|
|
234
234
|
"localforage": "1.10.0",
|
|
235
235
|
"lockfile": "1.0.4",
|
|
236
236
|
"lodash": "4.17.20",
|
|
237
|
-
"lodash-walk-object": "~16.5.
|
|
237
|
+
"lodash-walk-object": "~16.5.5",
|
|
238
238
|
"lowdb": "1.0.0",
|
|
239
|
-
"magic-renamer": "~16.5.
|
|
239
|
+
"magic-renamer": "~16.5.5",
|
|
240
240
|
"material-design-icons": "3.0.1",
|
|
241
241
|
"method-override": "2.3.10",
|
|
242
242
|
"minimist": "1.2.0",
|
|
243
243
|
"mkdirp": "0.5.1",
|
|
244
244
|
"mocha": "10.2.0",
|
|
245
245
|
"moment": "2.29.3",
|
|
246
|
-
"morphi": "~16.5.
|
|
246
|
+
"morphi": "~16.5.5",
|
|
247
247
|
"ng-for-track-by-property": "16.0.1",
|
|
248
248
|
"ng-in-viewport": "15.0.2",
|
|
249
249
|
"ng-lock": "16.0.1",
|
|
250
250
|
"ng-packagr": "16.0.1",
|
|
251
|
-
"ng-talkback": "~16.5.
|
|
252
|
-
"ng2-logger": "~16.5.
|
|
253
|
-
"ng2-rest": "~16.5.
|
|
251
|
+
"ng-talkback": "~16.5.5",
|
|
252
|
+
"ng2-logger": "~16.5.6",
|
|
253
|
+
"ng2-rest": "~16.5.5",
|
|
254
254
|
"ngx-ace-wrapper": "14.0.0",
|
|
255
255
|
"ngx-editor": "15.3.0",
|
|
256
256
|
"ngx-highlightjs": "9.0.0",
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
"ngx-scrolltop": "6.0.0",
|
|
264
264
|
"ngx-store": "3.1.1",
|
|
265
265
|
"ngx-typed-js": "2.1.1",
|
|
266
|
-
"node-cli-tester": "~16.5.
|
|
266
|
+
"node-cli-tester": "~16.5.5",
|
|
267
267
|
"node-localstorage": "2.1.6",
|
|
268
268
|
"node-notifier": "6.0.0",
|
|
269
269
|
"node-polyfill-webpack-plugin": "2.0.1",
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
"q": "1.5.1",
|
|
291
291
|
"rallax.js": "2.0.4",
|
|
292
292
|
"randomcolor": "0.5.3",
|
|
293
|
-
"record-replay-req-res-scenario": "~16.5.
|
|
293
|
+
"record-replay-req-res-scenario": "~16.5.5",
|
|
294
294
|
"reflect-metadata": "0.1.10",
|
|
295
295
|
"rimraf": "2.6.2",
|
|
296
296
|
"rxjs": "~7.8.0",
|
|
@@ -301,18 +301,18 @@
|
|
|
301
301
|
"socket.io": "2.4.1",
|
|
302
302
|
"sort-package-json": "1.11.0",
|
|
303
303
|
"sql.js": "1.8.0",
|
|
304
|
-
"static-columns": "~16.5.
|
|
304
|
+
"static-columns": "~16.5.6",
|
|
305
305
|
"string-similarity": "4.0.2",
|
|
306
306
|
"sudo-block": "3.0.0",
|
|
307
307
|
"supertest": "6.3.3",
|
|
308
308
|
"sweetalert2": "11.7.12",
|
|
309
309
|
"systeminformation": "3.45.7",
|
|
310
310
|
"threads": "1.7.0",
|
|
311
|
-
"tnp-cli": "~16.5.
|
|
312
|
-
"tnp-config": "~16.5.
|
|
313
|
-
"tnp-core": "~16.5.
|
|
314
|
-
"tnp-db": "~16.5.
|
|
315
|
-
"tnp-helpers": "~16.5.
|
|
311
|
+
"tnp-cli": "~16.5.5",
|
|
312
|
+
"tnp-config": "~16.5.6",
|
|
313
|
+
"tnp-core": "~16.5.11",
|
|
314
|
+
"tnp-db": "~16.5.5",
|
|
315
|
+
"tnp-helpers": "~16.5.6",
|
|
316
316
|
"ts-debug": "1.3.0",
|
|
317
317
|
"ts-loader": "2.3.1",
|
|
318
318
|
"ts-node": "10.9.1",
|
|
@@ -321,30 +321,30 @@
|
|
|
321
321
|
"turndown": "7.1.2",
|
|
322
322
|
"typeorm": "~0.3.10",
|
|
323
323
|
"typescript": "~5.0.2",
|
|
324
|
-
"typescript-class-helpers": "~16.5.
|
|
324
|
+
"typescript-class-helpers": "~16.5.6",
|
|
325
325
|
"typescript-formatter": "~7.2.2",
|
|
326
326
|
"underscore": "1.9.1",
|
|
327
327
|
"uuid": "8.3.2",
|
|
328
328
|
"validator": "9.2.0",
|
|
329
329
|
"video.js": "8.3.0",
|
|
330
|
-
"vpn-split": "~16.5.
|
|
330
|
+
"vpn-split": "~16.5.6",
|
|
331
331
|
"watch": "1.0.2",
|
|
332
332
|
"yup": "1.1.1",
|
|
333
333
|
"zone.js": "~0.13.0"
|
|
334
334
|
},
|
|
335
|
-
"lastBuildTagHash": "
|
|
335
|
+
"lastBuildTagHash": "30e51ec2200cc86ef70a95ed00f2299c116a09e4"
|
|
336
336
|
},
|
|
337
337
|
"build": {
|
|
338
|
-
"number":
|
|
339
|
-
"date": "2024-01-
|
|
340
|
-
"hash": "
|
|
338
|
+
"number": 624,
|
|
339
|
+
"date": "2024-01-07T18:55:30.000Z",
|
|
340
|
+
"hash": "3907deca575b8403e5260ef24c9ac80c4d01b7ff",
|
|
341
341
|
"options": {}
|
|
342
342
|
},
|
|
343
343
|
"currentProjectName": "tnp-helpers",
|
|
344
344
|
"currentProjectGenericName": "tnp-helpers",
|
|
345
345
|
"currentProjectTasksConfiguration": "{\"version\":\"2.0.0\",\"tasks\":[{\"label\":\"terminateall\",\"command\":\"echo ${input:terminate}\",\"type\":\"shell\",\"problemMatcher\":[]},{\"label\":\"Ng Serve\",\"type\":\"shell\",\"command\":\"tnp build\",\"isBackground\":true,\"presentation\":{\"reveal\":\"always\"},\"group\":{\"kind\":\"build\",\"isDefault\":true},\"problemMatcher\":{\"owner\":\"typescript\",\"source\":\"ts\",\"applyTo\":\"closedDocuments\",\"fileLocation\":[\"relative\",\"${cwd}\"],\"pattern\":\"$tsc\",\"background\":{\"activeOnStart\":true,\"beginsPattern\":{\"regexp\":\"(.*?)\"},\"endsPattern\":{\"regexp\":\"Compiled |Failed to compile.\"}}}}],\"inputs\":[{\"id\":\"terminate\",\"type\":\"command\",\"command\":\"workbench.action.tasks.terminate\",\"args\":\"terminateAll\"}]}",
|
|
346
346
|
"currentProjectType": "isomorphic-lib",
|
|
347
|
-
"currentFrameworkVersion": "16.5.
|
|
347
|
+
"currentFrameworkVersion": "16.5.15",
|
|
348
348
|
"isStandaloneProject": true,
|
|
349
349
|
"isSmartContainer": false,
|
|
350
350
|
"frameworks": [
|
|
@@ -11,6 +11,33 @@ const Helpers = HelpersFiredev.Instance;
|
|
|
11
11
|
const takenPorts = [];
|
|
12
12
|
class BaseProject {
|
|
13
13
|
static { this.ins = new BaseProjectResolver(BaseProject); }
|
|
14
|
+
static sortGroupOfProject(projects, resoveDepsArray, projNameToCompare) {
|
|
15
|
+
const visited = {};
|
|
16
|
+
const stack = {};
|
|
17
|
+
const result = [];
|
|
18
|
+
const visit = (project) => {
|
|
19
|
+
if (stack[projNameToCompare(project)]) {
|
|
20
|
+
Helpers.error(`Circular dependency detected involving project: ${projNameToCompare(project)}`);
|
|
21
|
+
}
|
|
22
|
+
if (!visited[projNameToCompare(project)]) {
|
|
23
|
+
visited[projNameToCompare(project)] = true;
|
|
24
|
+
stack[projNameToCompare(project)] = true;
|
|
25
|
+
const depsResolved = resoveDepsArray(project);
|
|
26
|
+
depsResolved.forEach(dependency => {
|
|
27
|
+
const dependentProject = projects.find(p => {
|
|
28
|
+
return projNameToCompare(p) === dependency;
|
|
29
|
+
});
|
|
30
|
+
if (dependentProject) {
|
|
31
|
+
visit(dependentProject);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
stack[projNameToCompare(project)] = false;
|
|
35
|
+
result.push(project);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
projects.forEach(project => visit(project));
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
14
41
|
get name() {
|
|
15
42
|
return this.packageJSON?.name;
|
|
16
43
|
}
|
|
@@ -153,7 +180,13 @@ class BaseProject {
|
|
|
153
180
|
/* */
|
|
154
181
|
return (void 0);
|
|
155
182
|
}
|
|
156
|
-
async assignFreePort(startFrom, howManyFreePortsAfterThatPort = 0) {
|
|
183
|
+
async assignFreePort(startFrom = 4200, howManyFreePortsAfterThatPort = 0) {
|
|
184
|
+
/* */
|
|
185
|
+
/* */
|
|
186
|
+
/* */
|
|
187
|
+
/* */
|
|
188
|
+
/* */
|
|
189
|
+
/* */
|
|
157
190
|
/* */
|
|
158
191
|
/* */
|
|
159
192
|
/* */
|
|
@@ -180,4 +213,4 @@ class BaseProject {
|
|
|
180
213
|
export { BaseProject };
|
|
181
214
|
;
|
|
182
215
|
({}); // @--end-of-file-for-module=tnp-helpers lib/base-project.ts
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxPQUFPLEVBQUUsSUFBSSxFQUFxQixNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7QUFHeEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBR3RCLE1BQWEsV0FBVzthQUtmLFFBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFjLFdBQVcsQ0FBQyxDQUFDO0lBTy9ELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElB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ICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvd2Vic3FsJztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAndG5wLW1vZGVscy93ZWJzcWwnO1xuaW1wb3J0IHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gJy4vYmFzZS1wcm9qZWN0LXJlc29sdmVyJztcblxuXG5jb25zdCBIZWxwZXJzID0gSGVscGVyc0ZpcmVkZXYuSW5zdGFuY2U7XG5cblxuY29uc3QgdGFrZW5Qb3J0cyA9IFtdO1xuXG5cbmV4cG9ydCBjbGFzcyBCYXNlUHJvamVjdDxUID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuICBzdGF0aWMgaW5zID0gbmV3IEJhc2VQcm9qZWN0UmVzb2x2ZXI8QmFzZVByb2plY3Q+KEJhc2VQcm9qZWN0KTtcbiAgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFQ+O1xuICAvKipcbiAgICogaXQgZG8gbm90IG5lZWQgdG8gYmUgcmVhbHQgcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYmFzZW5hbWU6IHN0cmluZztcbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWU7XG4gIH1cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIHBlZXJEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcGVlckRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLnBlZXJEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuICAvKipcbiAgICogZGV2RGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IGRldkRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRldkRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqICBvYmplY3Qgd2l0aCBhbGwgZGVwcyBmcm9tIHBhY2thZ2UganNvblxuICAgKi9cbiAgZ2V0IGFsbERlcGVuZGVuY2llcygpOiB7IFtwYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiBfLm1lcmdlKHtcbiAgICAgIC4uLnRoaXMuZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5kZXBlbmRlbmNpZXMsXG4gICAgICAuLi50aGlzLnJlc29sdXRpb25zXG4gICAgfSkgYXMgYW55O1xuICB9XG5cbiAgZ2V0IHRucCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udG5wO1xuICB9XG5cbiAgZ2V0IGZpcmVkZXYoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/LmZpcmVkZXY7XG4gIH1cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhY2thZ2VKU09OOiBNb2RlbHMubnBtLklQYWNrYWdlSlNPTjtcbiAgLyoqXG4gICAqIG9ubHkgYXZhaWxhYmxlIGFmdGVyIGV4ZWN1dGluZyAqdGhpcy5hc3NpZ25GcmVlUG9ydCgpKlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogc3RyaW5nO1xuXG5cbiAgZ2V0IHBhcmVudCgpOiBUIHtcblxuICAgIHJldHVybiB0aGlzLmlucy5Gcm9tKHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCAnLi4nKSk7XG5cbiAgfVxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcblxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnBhcmVudCBhcyBhbnkgYXMgQmFzZVByb2plY3Q7XG4gICAgcmV0dXJuIFtcbiAgICAgIHBhcmVudCA/IHBhdGguYmFzZW5hbWUocGF0aC5kaXJuYW1lKHBhcmVudC5sb2NhdGlvbikpIDogdm9pZCAwLFxuICAgICAgcGFyZW50ID8gcGFyZW50LmJhc2VuYW1lIDogcGF0aC5iYXNlbmFtZSh0aGlzLmxvY2F0aW9uKSxcbiAgICAgIHRoaXMuYmFzZW5hbWUsXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgXVxuICAgICAgLmZpbHRlcihmID0+ICEhZilcbiAgICAgIC5qb2luKCcvJylcblxuICB9XG5cbiAgLyoqXG4gICAqIHRyeSBydW4gYnV0IGNvbnRpbnVlIHdoZW4gaXQgZmFpbHNcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRyeVJ1blN5bmMoY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgd3JpdGVKc29uKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBqc29uOiBvYmplY3QpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIG91dHB1dEZyb20oY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBsaW5rTm9kZU1vZHVsZXNUbyhwcm9qOiBQYXJ0aWFsPEJhc2VQcm9qZWN0Pikge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcmVpbnN0YWxsTm9kZU1vZHVsZXMoZm9yY2VyUmVtb3ZlTm9kZU1vZHVsZXMgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChzdGFydEZyb206IG51bWJlciwgaG93TWFueUZyZWVQb3J0c0FmdGVyVGhhdFBvcnQ6IG51bWJlciA9IDApOiBQcm9taXNlPG51bWJlcj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS1wcm9qZWN0LnRzIl19
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxPQUFPLEVBQUUsSUFBSSxFQUFxQixNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7QUFHeEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBR3RCLE1BQWEsV0FBVzthQUtmLFFBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFjLFdBQVcsQ0FBQyxDQUFDO0lBRXhELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBZ0QsUUFBYSxFQUFFLGVBQXNDLEVBQUUsaUJBQXNDO1FBRTNLLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLEdBQStCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFVLEVBQUUsRUFBRTtZQUMzQixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUVyQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEc7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixD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UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDOztTQTNTVSxXQUFXO0FBaVR2QixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDREQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvd2Vic3FsJztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAndG5wLW1vZGVscy93ZWJzcWwnO1xuaW1wb3J0IHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gJy4vYmFzZS1wcm9qZWN0LXJlc29sdmVyJztcblxuXG5jb25zdCBIZWxwZXJzID0gSGVscGVyc0ZpcmVkZXYuSW5zdGFuY2U7XG5cblxuY29uc3QgdGFrZW5Qb3J0cyA9IFtdO1xuXG5cbmV4cG9ydCBjbGFzcyBCYXNlUHJvamVjdDxUID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuICBzdGF0aWMgaW5zID0gbmV3IEJhc2VQcm9qZWN0UmVzb2x2ZXI8QmFzZVByb2plY3Q+KEJhc2VQcm9qZWN0KTtcblxuICBwdWJsaWMgc3RhdGljIHNvcnRHcm91cE9mUHJvamVjdDxUIGV4dGVuZHMgQmFzZVByb2plY3Q8YW55PiA9IEJhc2VQcm9qZWN0PGFueT4+KHByb2plY3RzOiBUW10sIHJlc292ZURlcHNBcnJheTogKHByb2o6IFQpID0+IHN0cmluZ1tdLCBwcm9qTmFtZVRvQ29tcGFyZTogKHByb2o6IFQpID0+IHN0cmluZyk6IFRbXSB7XG5cbiAgICBjb25zdCB2aXNpdGVkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICAgIGNvbnN0IHN0YWNrOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICAgIGNvbnN0IHJlc3VsdDogVFtdID0gW107XG5cbiAgICBjb25zdCB2aXNpdCA9IChwcm9qZWN0OiBUKSA9PiB7XG4gICAgICBpZiAoc3RhY2tbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldKSB7XG5cbiAgICAgICAgSGVscGVycy5lcnJvcihgQ2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZCBpbnZvbHZpbmcgcHJvamVjdDogJHtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KX1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuICAgICAgICB2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZGVwc1Jlc29sdmVkID0gcmVzb3ZlRGVwc0FycmF5KHByb2plY3QpO1xuICAgICAgICBkZXBzUmVzb2x2ZWQuZm9yRWFjaChkZXBlbmRlbmN5ID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBlbmRlbnRQcm9qZWN0ID0gcHJvamVjdHMuZmluZChwID0+IHtcblxuICAgICAgICAgICAgcmV0dXJuIHByb2pOYW1lVG9Db21wYXJlKHApID09PSBkZXBlbmRlbmN5O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChkZXBlbmRlbnRQcm9qZWN0KSB7XG4gICAgICAgICAgICB2aXNpdChkZXBlbmRlbnRQcm9qZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IGZhbHNlO1xuICAgICAgICByZXN1bHQucHVzaChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvamVjdHMuZm9yRWFjaChwcm9qZWN0ID0+IHZpc2l0KHByb2plY3QpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuXG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFQ+O1xuICAvKipcbiAgICogaXQgZG8gbm90IG5lZWQgdG8gYmUgcmVhbHQgcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYmFzZW5hbWU6IHN0cmluZztcbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWU7XG4gIH1cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIHBlZXJEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcGVlckRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLnBlZXJEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuICAvKipcbiAgICogZGV2RGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IGRldkRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRldkRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqICBvYmplY3Qgd2l0aCBhbGwgZGVwcyBmcm9tIHBhY2thZ2UganNvblxuICAgKi9cbiAgZ2V0IGFsbERlcGVuZGVuY2llcygpOiB7IFtwYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiBfLm1lcmdlKHtcbiAgICAgIC4uLnRoaXMuZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5kZXBlbmRlbmNpZXMsXG4gICAgICAuLi50aGlzLnJlc29sdXRpb25zXG4gICAgfSkgYXMgYW55O1xuICB9XG5cbiAgZ2V0IHRucCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udG5wO1xuICB9XG5cbiAgZ2V0IGZpcmVkZXYoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/LmZpcmVkZXY7XG4gIH1cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhY2thZ2VKU09OOiBNb2RlbHMubnBtLklQYWNrYWdlSlNPTjtcbiAgLyoqXG4gICAqIG9ubHkgYXZhaWxhYmxlIGFmdGVyIGV4ZWN1dGluZyAqdGhpcy5hc3NpZ25GcmVlUG9ydCgpKlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogc3RyaW5nO1xuXG5cbiAgZ2V0IHBhcmVudCgpOiBUIHtcblxuICAgIHJldHVybiB0aGlzLmlucy5Gcm9tKHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCAnLi4nKSk7XG5cbiAgfVxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcblxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnBhcmVudCBhcyBhbnkgYXMgQmFzZVByb2plY3Q7XG4gICAgcmV0dXJuIFtcbiAgICAgIHBhcmVudCA/IHBhdGguYmFzZW5hbWUocGF0aC5kaXJuYW1lKHBhcmVudC5sb2NhdGlvbikpIDogdm9pZCAwLFxuICAgICAgcGFyZW50ID8gcGFyZW50LmJhc2VuYW1lIDogcGF0aC5iYXNlbmFtZSh0aGlzLmxvY2F0aW9uKSxcbiAgICAgIHRoaXMuYmFzZW5hbWUsXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgXVxuICAgICAgLmZpbHRlcihmID0+ICEhZilcbiAgICAgIC5qb2luKCcvJylcblxuICB9XG5cbiAgLyoqXG4gICAqIHRyeSBydW4gYnV0IGNvbnRpbnVlIHdoZW4gaXQgZmFpbHNcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRyeVJ1blN5bmMoY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgd3JpdGVKc29uKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBqc29uOiBvYmplY3QpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIG91dHB1dEZyb20oY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBsaW5rTm9kZU1vZHVsZXNUbyhwcm9qOiBQYXJ0aWFsPEJhc2VQcm9qZWN0Pikge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcmVpbnN0YWxsTm9kZU1vZHVsZXMoZm9yY2VyUmVtb3ZlTm9kZU1vZHVsZXMgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChzdGFydEZyb206IG51bWJlciA9IDQyMDAsIGhvd01hbnlGcmVlUG9ydHNBZnRlclRoYXRQb3J0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxudW1iZXI+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbn1cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UtcHJvamVjdC50cyJdfQ==
|
|
@@ -15,6 +15,10 @@ export class HelpersArrayObj {
|
|
|
15
15
|
}
|
|
16
16
|
return arr[1];
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated
|
|
20
|
+
* use moveObjectBefore
|
|
21
|
+
*/
|
|
18
22
|
arrayMoveElementBefore(arr, a, b, prop) {
|
|
19
23
|
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
20
24
|
_.pullAt(arr, indexA);
|
|
@@ -27,6 +31,10 @@ export class HelpersArrayObj {
|
|
|
27
31
|
}
|
|
28
32
|
return arr;
|
|
29
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated
|
|
36
|
+
* use moveObjectAfter
|
|
37
|
+
*/
|
|
30
38
|
arrayMoveElementAfterB(arr, a, b, prop) {
|
|
31
39
|
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
32
40
|
_.pullAt(arr, indexA);
|
|
@@ -39,6 +47,30 @@ export class HelpersArrayObj {
|
|
|
39
47
|
}
|
|
40
48
|
return arr;
|
|
41
49
|
}
|
|
50
|
+
moveObjectBefore(array, target, before) {
|
|
51
|
+
const newArray = [...array];
|
|
52
|
+
const targetIndex = newArray.findIndex(item => item === target);
|
|
53
|
+
const beforeIndex = newArray.findIndex(item => item === before);
|
|
54
|
+
if (targetIndex === -1 || beforeIndex === -1) {
|
|
55
|
+
console.error("Target or Before object not found in the array");
|
|
56
|
+
return newArray;
|
|
57
|
+
}
|
|
58
|
+
newArray.splice(targetIndex, 1);
|
|
59
|
+
newArray.splice(beforeIndex, 0, target);
|
|
60
|
+
return newArray;
|
|
61
|
+
}
|
|
62
|
+
moveObjectAfter(array, target, after) {
|
|
63
|
+
const newArray = [...array];
|
|
64
|
+
const targetIndex = newArray.findIndex(item => item === target);
|
|
65
|
+
const afterIndex = newArray.findIndex(item => item === after);
|
|
66
|
+
if (targetIndex === -1 || afterIndex === -1) {
|
|
67
|
+
console.error("Target or After object not found in the array");
|
|
68
|
+
return newArray;
|
|
69
|
+
}
|
|
70
|
+
newArray.splice(targetIndex, 1);
|
|
71
|
+
newArray.splice(afterIndex + 1, 0, target);
|
|
72
|
+
return newArray;
|
|
73
|
+
}
|
|
42
74
|
uniqArray(array, uniqueProperty) {
|
|
43
75
|
var seen = {};
|
|
44
76
|
return array
|
|
@@ -79,4 +111,4 @@ export class HelpersArrayObj {
|
|
|
79
111
|
}
|
|
80
112
|
;
|
|
81
113
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUcvQixNQUFNLE9BQU8sZUFBZTtJQUUxQixJQUFJLENBQUMsQ0FBb0I7UUFDdkIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELHNCQUFzQixDQUFVLEdBQVUsRUFBRSxDQUFNLEVBQUUsQ0FBTSxFQUFFLElBQWM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FB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TyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25HLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlFQUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCAqIGFzIGZ1enp5IGZyb20gJ2Z1enp5JztcblxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0FycmF5T2JqIHtcblxuICBmcm9tKHM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChfLmlzQXJyYXkocykpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzKSkge1xuICAgICAgcmV0dXJuIHMuc3BsaXQoJyAnKVxuICAgIH1cbiAgfVxuXG4gIHNlY29uZChhcnIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSB8fCBhcnIubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuICBhcnJbMV07XG4gIH1cblxuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHVuaXFBcnJheTxUID0gYW55PihhcnJheTogYW55W10sIHVuaXF1ZVByb3BlcnR5PzogKGtleW9mIFQpKSB7XG4gICAgdmFyIHNlZW4gPSB7fTtcbiAgICByZXR1cm4gYXJyYXlcbiAgICAgIC5maWx0ZXIoZiA9PiAhIWYpXG4gICAgICAuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBzZWVuLmhhc093blByb3BlcnR5KHVuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtKSA/IGZhbHNlXG4gICAgICAgICAgOiAoc2Vlblt1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbV0gPSB0cnVlKTtcbiAgICAgIH0pIGFzIFRbXTtcbiAgfVxuXG4gIHNvcnRLZXlzKG9iaikge1xuICAgIGlmIChfLmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5tYXAodGhpcy5zb3J0S2V5cyk7XG4gICAgfVxuICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIHJldHVybiBfLmZyb21QYWlycyhfLmtleXMob2JqKS5zb3J0KCkubWFwKGtleSA9PiBba2V5LCB0aGlzLnNvcnRLZXlzKG9ialtrZXldKV0pKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfTtcblxuICAvKipcbiAgICogRnV6enkgc2VhcmNoXG4gICAqL1xuICBmdXp6eTxUID0gYW55PihxdWVyeTogc3RyaW5nLCBsaXN0OiBUW10sIHZhbHVlRm4/OiAobW9kZWxGcm9tTGlzdDogVCkgPT4gc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0c0Z1enp5ID0gZnV6enkuZmlsdGVyKFxuICAgICAgcXVlcnksXG4gICAgICBsaXN0Lm1hcChrID0+IHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogayksXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdHNGdXp6eUtlYmFiID0gZnV6enkuZmlsdGVyKFxuICAgICAgXy5rZWJhYkNhc2UocXVlcnkpLFxuICAgICAgbGlzdC5tYXAoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpKSxcbiAgICApXG4gICAgY29uc3QgbWF0Y2hlcyA9IHJlc3VsdHNGdXp6eS5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuICAgIGNvbnN0IG1hdGNoZXNLZWJhYiA9IHJlc3VsdHNGdXp6eUtlYmFiLm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gKHJlc3VsdHNGdXp6eS5sZW5ndGggPT09IDApID8gW10gOiBsaXN0LmZpbHRlcihrID0+IHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmluY2x1ZGVzKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSk7XG4gICAgfSlcblxuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCAmJiBtYXRjaGVzS2ViYWIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbSA9IGxpc3QuZmluZChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkgPT09IF8uZmlyc3QobWF0Y2hlc0tlYmFiKSk7XG4gICAgICByZXN1bHRzLnB1c2gobSk7XG4gICAgICBtYXRjaGVzLnB1c2goKHZhbHVlRm4gPyB2YWx1ZUZuKG0pIDogbSkgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtYXRjaGVzLCByZXN1bHRzIH07XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUcvQixNQUFNLE9BQU8sZUFBZTtJQUUxQixJQUFJLENBQUMsQ0FBb0I7UUFDdkIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQixDQUFVLEdBQVUsRUFBRSxDQUFNLEVBQUUsQ0FBTSxFQUFFLElBQWM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQjthQUFNO1lBQ0wsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQixDQUFVLEdBQVUsRUFBRSxDQUFNLEVBQUUsQ0FBTSxFQUFFLElBQWM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2I7YUFBTTtZQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxnQkFBZ0IsQ0FBVSxLQUFVLEVBQUUsTUFBUyxFQUFFLE1BQVM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztRQUVoRSxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFFNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBR0QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFHaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxlQUFlLENBQVUsS0FBVSxFQUFFLE1BQVMsRUFBRSxLQUFRO1FBQ3RELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUM1QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7UUFFOUQsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBRTNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUMvRCxPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUdELFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBR2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0MsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBVSxLQUFZLEVBQUUsY0FBMEI7UUFDekQsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxLQUFLO2FBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQixNQUFNLENBQUMsVUFBVSxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQzlFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFRLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQUc7UUFDVixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQUEsQ0FBQztJQUVGOztPQUVHO0lBQ0gsS0FBSyxDQUFVLEtBQWEsRUFBRSxJQUFTLEVBQUUsT0FBc0M7UUFDN0UsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDL0IsS0FBSyxFQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hDLENBQUE7UUFDRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3BDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUMsQ0FDOUQsQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5RCxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDbkcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7U0FDakQ7UUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0ICogYXMgZnV6enkgZnJvbSAnZnV6enknO1xuXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQXJyYXlPYmoge1xuXG4gIGZyb20oczogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKF8uaXNBcnJheShzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHMpKSB7XG4gICAgICByZXR1cm4gcy5zcGxpdCgnICcpXG4gICAgfVxuICB9XG5cbiAgc2Vjb25kKGFycikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpIHx8IGFyci5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gYXJyWzFdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIHVzZSBtb3ZlT2JqZWN0QmVmb3JlXG4gICAqL1xuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1vdmVPYmplY3RBZnRlclxuICAgKi9cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIG1vdmVPYmplY3RCZWZvcmU8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBiZWZvcmU6IFQpOiBUW10ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCB0YXJnZXRJbmRleCA9IG5ld0FycmF5LmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRhcmdldCk7XG4gICAgY29uc3QgYmVmb3JlSW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBiZWZvcmUpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBiZWZvcmVJbmRleCA9PT0gLTEpIHtcblxuICAgICAgY29uc29sZS5lcnJvcihcIlRhcmdldCBvciBCZWZvcmUgb2JqZWN0IG5vdCBmb3VuZCBpbiB0aGUgYXJyYXlcIik7XG4gICAgICByZXR1cm4gbmV3QXJyYXk7XG4gICAgfVxuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UodGFyZ2V0SW5kZXgsIDEpO1xuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UoYmVmb3JlSW5kZXgsIDAsIHRhcmdldCk7XG5cbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH1cblxuICBtb3ZlT2JqZWN0QWZ0ZXI8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBhZnRlcjogVCk6IFRbXSB7XG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gdGFyZ2V0KTtcbiAgICBjb25zdCBhZnRlckluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gYWZ0ZXIpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBhZnRlckluZGV4ID09PSAtMSkge1xuXG4gICAgICBjb25zb2xlLmVycm9yKFwiVGFyZ2V0IG9yIEFmdGVyIG9iamVjdCBub3QgZm91bmQgaW4gdGhlIGFycmF5XCIpO1xuICAgICAgcmV0dXJuIG5ld0FycmF5O1xuICAgIH1cblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKHRhcmdldEluZGV4LCAxKTtcblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKGFmdGVySW5kZXggKyAxLCAwLCB0YXJnZXQpO1xuXG4gICAgcmV0dXJuIG5ld0FycmF5O1xuICB9XG5cbiAgdW5pcUFycmF5PFQgPSBhbnk+KGFycmF5OiBhbnlbXSwgdW5pcXVlUHJvcGVydHk/OiAoa2V5b2YgVCkpIHtcbiAgICB2YXIgc2VlbiA9IHt9O1xuICAgIHJldHVybiBhcnJheVxuICAgICAgLmZpbHRlcihmID0+ICEhZilcbiAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHNlZW4uaGFzT3duUHJvcGVydHkodW5pcXVlUHJvcGVydHkgPyBpdGVtW3VuaXF1ZVByb3BlcnR5XSA6IGl0ZW0pID8gZmFsc2VcbiAgICAgICAgICA6IChzZWVuW3VuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtXSA9IHRydWUpO1xuICAgICAgfSkgYXMgVFtdO1xuICB9XG5cbiAgc29ydEtleXMob2JqKSB7XG4gICAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCh0aGlzLnNvcnRLZXlzKTtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgcmV0dXJuIF8uZnJvbVBhaXJzKF8ua2V5cyhvYmopLnNvcnQoKS5tYXAoa2V5ID0+IFtrZXksIHRoaXMuc29ydEtleXMob2JqW2tleV0pXSkpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGdXp6eSBzZWFyY2hcbiAgICovXG4gIGZ1enp5PFQgPSBhbnk+KHF1ZXJ5OiBzdHJpbmcsIGxpc3Q6IFRbXSwgdmFsdWVGbj86IChtb2RlbEZyb21MaXN0OiBUKSA9PiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHRzRnV6enkgPSBmdXp6eS5maWx0ZXIoXG4gICAgICBxdWVyeSxcbiAgICAgIGxpc3QubWFwKGsgPT4gdmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSxcbiAgICApXG4gICAgY29uc3QgcmVzdWx0c0Z1enp5S2ViYWIgPSBmdXp6eS5maWx0ZXIoXG4gICAgICBfLmtlYmFiQ2FzZShxdWVyeSksXG4gICAgICBsaXN0Lm1hcChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkpLFxuICAgIClcbiAgICBjb25zdCBtYXRjaGVzID0gcmVzdWx0c0Z1enp5Lm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG4gICAgY29uc3QgbWF0Y2hlc0tlYmFiID0gcmVzdWx0c0Z1enp5S2ViYWIubWFwKChlbCkgPT4gZWwuc3RyaW5nKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSAocmVzdWx0c0Z1enp5Lmxlbmd0aCA9PT0gMCkgPyBbXSA6IGxpc3QuZmlsdGVyKGsgPT4ge1xuICAgICAgcmV0dXJuIG1hdGNoZXMuaW5jbHVkZXMoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KTtcbiAgICB9KVxuXG4gICAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwICYmIG1hdGNoZXNLZWJhYi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtID0gbGlzdC5maW5kKGsgPT4gXy5rZWJhYkNhc2UoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KSA9PT0gXy5maXJzdChtYXRjaGVzS2ViYWIpKTtcbiAgICAgIHJlc3VsdHMucHVzaChtKTtcbiAgICAgIG1hdGNoZXMucHVzaCgodmFsdWVGbiA/IHZhbHVlRm4obSkgOiBtKSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHJldHVybiB7IG1hdGNoZXMsIHJlc3VsdHMgfTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy1hcnJheS1vYmoudHMiXX0=
|
|
@@ -143,6 +143,10 @@ class HelpersArrayObj {
|
|
|
143
143
|
}
|
|
144
144
|
return arr[1];
|
|
145
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* @deprecated
|
|
148
|
+
* use moveObjectBefore
|
|
149
|
+
*/
|
|
146
150
|
arrayMoveElementBefore(arr, a, b, prop) {
|
|
147
151
|
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
148
152
|
_.pullAt(arr, indexA);
|
|
@@ -155,6 +159,10 @@ class HelpersArrayObj {
|
|
|
155
159
|
}
|
|
156
160
|
return arr;
|
|
157
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* @deprecated
|
|
164
|
+
* use moveObjectAfter
|
|
165
|
+
*/
|
|
158
166
|
arrayMoveElementAfterB(arr, a, b, prop) {
|
|
159
167
|
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
160
168
|
_.pullAt(arr, indexA);
|
|
@@ -167,6 +175,30 @@ class HelpersArrayObj {
|
|
|
167
175
|
}
|
|
168
176
|
return arr;
|
|
169
177
|
}
|
|
178
|
+
moveObjectBefore(array, target, before) {
|
|
179
|
+
const newArray = [...array];
|
|
180
|
+
const targetIndex = newArray.findIndex(item => item === target);
|
|
181
|
+
const beforeIndex = newArray.findIndex(item => item === before);
|
|
182
|
+
if (targetIndex === -1 || beforeIndex === -1) {
|
|
183
|
+
console.error("Target or Before object not found in the array");
|
|
184
|
+
return newArray;
|
|
185
|
+
}
|
|
186
|
+
newArray.splice(targetIndex, 1);
|
|
187
|
+
newArray.splice(beforeIndex, 0, target);
|
|
188
|
+
return newArray;
|
|
189
|
+
}
|
|
190
|
+
moveObjectAfter(array, target, after) {
|
|
191
|
+
const newArray = [...array];
|
|
192
|
+
const targetIndex = newArray.findIndex(item => item === target);
|
|
193
|
+
const afterIndex = newArray.findIndex(item => item === after);
|
|
194
|
+
if (targetIndex === -1 || afterIndex === -1) {
|
|
195
|
+
console.error("Target or After object not found in the array");
|
|
196
|
+
return newArray;
|
|
197
|
+
}
|
|
198
|
+
newArray.splice(targetIndex, 1);
|
|
199
|
+
newArray.splice(afterIndex + 1, 0, target);
|
|
200
|
+
return newArray;
|
|
201
|
+
}
|
|
170
202
|
uniqArray(array, uniqueProperty) {
|
|
171
203
|
var seen = {};
|
|
172
204
|
return array
|
|
@@ -1449,6 +1481,33 @@ const Helpers$1 = HelpersFiredev.Instance;
|
|
|
1449
1481
|
const takenPorts = [];
|
|
1450
1482
|
class BaseProject {
|
|
1451
1483
|
static { this.ins = new BaseProjectResolver(BaseProject); }
|
|
1484
|
+
static sortGroupOfProject(projects, resoveDepsArray, projNameToCompare) {
|
|
1485
|
+
const visited = {};
|
|
1486
|
+
const stack = {};
|
|
1487
|
+
const result = [];
|
|
1488
|
+
const visit = (project) => {
|
|
1489
|
+
if (stack[projNameToCompare(project)]) {
|
|
1490
|
+
Helpers$1.error(`Circular dependency detected involving project: ${projNameToCompare(project)}`);
|
|
1491
|
+
}
|
|
1492
|
+
if (!visited[projNameToCompare(project)]) {
|
|
1493
|
+
visited[projNameToCompare(project)] = true;
|
|
1494
|
+
stack[projNameToCompare(project)] = true;
|
|
1495
|
+
const depsResolved = resoveDepsArray(project);
|
|
1496
|
+
depsResolved.forEach(dependency => {
|
|
1497
|
+
const dependentProject = projects.find(p => {
|
|
1498
|
+
return projNameToCompare(p) === dependency;
|
|
1499
|
+
});
|
|
1500
|
+
if (dependentProject) {
|
|
1501
|
+
visit(dependentProject);
|
|
1502
|
+
}
|
|
1503
|
+
});
|
|
1504
|
+
stack[projNameToCompare(project)] = false;
|
|
1505
|
+
result.push(project);
|
|
1506
|
+
}
|
|
1507
|
+
};
|
|
1508
|
+
projects.forEach(project => visit(project));
|
|
1509
|
+
return result;
|
|
1510
|
+
}
|
|
1452
1511
|
get name() {
|
|
1453
1512
|
return this.packageJSON?.name;
|
|
1454
1513
|
}
|
|
@@ -1591,7 +1650,13 @@ class BaseProject {
|
|
|
1591
1650
|
/* */
|
|
1592
1651
|
return (void 0);
|
|
1593
1652
|
}
|
|
1594
|
-
async assignFreePort(startFrom, howManyFreePortsAfterThatPort = 0) {
|
|
1653
|
+
async assignFreePort(startFrom = 4200, howManyFreePortsAfterThatPort = 0) {
|
|
1654
|
+
/* */
|
|
1655
|
+
/* */
|
|
1656
|
+
/* */
|
|
1657
|
+
/* */
|
|
1658
|
+
/* */
|
|
1659
|
+
/* */
|
|
1595
1660
|
/* */
|
|
1596
1661
|
/* */
|
|
1597
1662
|
/* */
|