@kwiz/common 1.0.1
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/LICENSE +21 -0
- package/dist/_dependencies.d.ts +1 -0
- package/dist/_dependencies.js +8 -0
- package/dist/_dependencies.js.map +1 -0
- package/dist/helpers/Guid.d.ts +119 -0
- package/dist/helpers/Guid.js +183 -0
- package/dist/helpers/Guid.js.map +1 -0
- package/dist/helpers/_dependencies.d.ts +2 -0
- package/dist/helpers/_dependencies.js +21 -0
- package/dist/helpers/_dependencies.js.map +1 -0
- package/dist/helpers/base64.d.ts +8 -0
- package/dist/helpers/base64.js +178 -0
- package/dist/helpers/base64.js.map +1 -0
- package/dist/helpers/browser.d.ts +144 -0
- package/dist/helpers/browser.js +1200 -0
- package/dist/helpers/browser.js.map +1 -0
- package/dist/helpers/browserinfo.d.ts +23 -0
- package/dist/helpers/browserinfo.js +215 -0
- package/dist/helpers/browserinfo.js.map +1 -0
- package/dist/helpers/collections.base.d.ts +128 -0
- package/dist/helpers/collections.base.js +430 -0
- package/dist/helpers/collections.base.js.map +1 -0
- package/dist/helpers/collections.d.ts +18 -0
- package/dist/helpers/collections.js +99 -0
- package/dist/helpers/collections.js.map +1 -0
- package/dist/helpers/color.d.ts +11 -0
- package/dist/helpers/color.js +57 -0
- package/dist/helpers/color.js.map +1 -0
- package/dist/helpers/cookies.d.ts +6 -0
- package/dist/helpers/cookies.js +56 -0
- package/dist/helpers/cookies.js.map +1 -0
- package/dist/helpers/date.d.ts +43 -0
- package/dist/helpers/date.js +158 -0
- package/dist/helpers/date.js.map +1 -0
- package/dist/helpers/debug.d.ts +33 -0
- package/dist/helpers/debug.js +177 -0
- package/dist/helpers/debug.js.map +1 -0
- package/dist/helpers/emails.d.ts +2 -0
- package/dist/helpers/emails.js +10 -0
- package/dist/helpers/emails.js.map +1 -0
- package/dist/helpers/eval.d.ts +1 -0
- package/dist/helpers/eval.js +10 -0
- package/dist/helpers/eval.js.map +1 -0
- package/dist/helpers/file.d.ts +11 -0
- package/dist/helpers/file.js +55 -0
- package/dist/helpers/file.js.map +1 -0
- package/dist/helpers/flatted.d.ts +20 -0
- package/dist/helpers/flatted.js +135 -0
- package/dist/helpers/flatted.js.map +1 -0
- package/dist/helpers/functions.d.ts +4 -0
- package/dist/helpers/functions.js +17 -0
- package/dist/helpers/functions.js.map +1 -0
- package/dist/helpers/graph/calendar.types.d.ts +3 -0
- package/dist/helpers/graph/calendar.types.js +15 -0
- package/dist/helpers/graph/calendar.types.js.map +1 -0
- package/dist/helpers/http.d.ts +25 -0
- package/dist/helpers/http.js +70 -0
- package/dist/helpers/http.js.map +1 -0
- package/dist/helpers/images.d.ts +16 -0
- package/dist/helpers/images.js +21 -0
- package/dist/helpers/images.js.map +1 -0
- package/dist/helpers/index.d.ts +29 -0
- package/dist/helpers/index.js +46 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/json.d.ts +3 -0
- package/dist/helpers/json.js +44 -0
- package/dist/helpers/json.js.map +1 -0
- package/dist/helpers/md5.d.ts +5 -0
- package/dist/helpers/md5.js +172 -0
- package/dist/helpers/md5.js.map +1 -0
- package/dist/helpers/objects.d.ts +49 -0
- package/dist/helpers/objects.js +271 -0
- package/dist/helpers/objects.js.map +1 -0
- package/dist/helpers/promises.d.ts +14 -0
- package/dist/helpers/promises.js +112 -0
- package/dist/helpers/promises.js.map +1 -0
- package/dist/helpers/random.d.ts +2 -0
- package/dist/helpers/random.js +32 -0
- package/dist/helpers/random.js.map +1 -0
- package/dist/helpers/scheduler/scheduler.d.ts +39 -0
- package/dist/helpers/scheduler/scheduler.js +109 -0
- package/dist/helpers/scheduler/scheduler.js.map +1 -0
- package/dist/helpers/sharepoint.d.ts +112 -0
- package/dist/helpers/sharepoint.js +629 -0
- package/dist/helpers/sharepoint.js.map +1 -0
- package/dist/helpers/strings.d.ts +56 -0
- package/dist/helpers/strings.js +282 -0
- package/dist/helpers/strings.js.map +1 -0
- package/dist/helpers/typecheckers.d.ts +56 -0
- package/dist/helpers/typecheckers.js +274 -0
- package/dist/helpers/typecheckers.js.map +1 -0
- package/dist/helpers/url.d.ts +46 -0
- package/dist/helpers/url.js +199 -0
- package/dist/helpers/url.js.map +1 -0
- package/dist/helpers/urlhelper.d.ts +16 -0
- package/dist/helpers/urlhelper.js +96 -0
- package/dist/helpers/urlhelper.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/types/common.types.d.ts +19 -0
- package/dist/types/common.types.js +4 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/flatted.types.d.ts +49 -0
- package/dist/types/flatted.types.js +3 -0
- package/dist/types/flatted.types.js.map +1 -0
- package/dist/types/globals.types.d.ts +6 -0
- package/dist/types/globals.types.js +3 -0
- package/dist/types/globals.types.js.map +1 -0
- package/dist/types/graph/calendar.types.d.ts +79 -0
- package/dist/types/graph/calendar.types.js +3 -0
- package/dist/types/graph/calendar.types.js.map +1 -0
- package/dist/types/graph/index.d.ts +1 -0
- package/dist/types/graph/index.js +18 -0
- package/dist/types/graph/index.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.js +28 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/knownscript.types.d.ts +22 -0
- package/dist/types/knownscript.types.js +3 -0
- package/dist/types/knownscript.types.js.map +1 -0
- package/dist/types/libs/datajs.types.d.ts +29 -0
- package/dist/types/libs/datajs.types.js +3 -0
- package/dist/types/libs/datajs.types.js.map +1 -0
- package/dist/types/libs/ics.types.d.ts +29 -0
- package/dist/types/libs/ics.types.js +3 -0
- package/dist/types/libs/ics.types.js.map +1 -0
- package/dist/types/libs/index.d.ts +3 -0
- package/dist/types/libs/index.js +20 -0
- package/dist/types/libs/index.js.map +1 -0
- package/dist/types/libs/msal.types.d.ts +33 -0
- package/dist/types/libs/msal.types.js +63 -0
- package/dist/types/libs/msal.types.js.map +1 -0
- package/dist/types/locales.d.ts +122 -0
- package/dist/types/locales.js +1 -0
- package/dist/types/locales.js.map +1 -0
- package/dist/types/localstoragecache.types.d.ts +8 -0
- package/dist/types/localstoragecache.types.js +3 -0
- package/dist/types/localstoragecache.types.js.map +1 -0
- package/dist/types/moment.d.ts +6 -0
- package/dist/types/moment.js +1 -0
- package/dist/types/moment.js.map +1 -0
- package/dist/types/regex.types.d.ts +14 -0
- package/dist/types/regex.types.js +3 -0
- package/dist/types/regex.types.js.map +1 -0
- package/dist/types/rest.types.d.ts +81 -0
- package/dist/types/rest.types.js +24 -0
- package/dist/types/rest.types.js.map +1 -0
- package/dist/types/sharepoint.types.d.ts +1432 -0
- package/dist/types/sharepoint.types.js +629 -0
- package/dist/types/sharepoint.types.js.map +1 -0
- package/dist/types/sharepoint.utils.types.d.ts +246 -0
- package/dist/types/sharepoint.utils.types.js +26 -0
- package/dist/types/sharepoint.utils.types.js.map +1 -0
- package/dist/utils/_dependencies.d.ts +3 -0
- package/dist/utils/_dependencies.js +24 -0
- package/dist/utils/_dependencies.js.map +1 -0
- package/dist/utils/base64.d.ts +2 -0
- package/dist/utils/base64.js +41 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/consolelogger.d.ts +73 -0
- package/dist/utils/consolelogger.js +281 -0
- package/dist/utils/consolelogger.js.map +1 -0
- package/dist/utils/date.d.ts +10 -0
- package/dist/utils/date.js +30 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/emails.d.ts +2 -0
- package/dist/utils/emails.js +24 -0
- package/dist/utils/emails.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +31 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/knownscript.d.ts +99 -0
- package/dist/utils/knownscript.js +261 -0
- package/dist/utils/knownscript.js.map +1 -0
- package/dist/utils/localstoragecache.d.ts +19 -0
- package/dist/utils/localstoragecache.js +372 -0
- package/dist/utils/localstoragecache.js.map +1 -0
- package/dist/utils/rest.d.ts +17 -0
- package/dist/utils/rest.js +402 -0
- package/dist/utils/rest.js.map +1 -0
- package/dist/utils/script.d.ts +33 -0
- package/dist/utils/script.js +169 -0
- package/dist/utils/script.js.map +1 -0
- package/dist/utils/sharepoint.rest/common.d.ts +32 -0
- package/dist/utils/sharepoint.rest/common.js +146 -0
- package/dist/utils/sharepoint.rest/common.js.map +1 -0
- package/dist/utils/sharepoint.rest/date.d.ts +2 -0
- package/dist/utils/sharepoint.rest/date.js +57 -0
- package/dist/utils/sharepoint.rest/date.js.map +1 -0
- package/dist/utils/sharepoint.rest/file.folder.d.ts +58 -0
- package/dist/utils/sharepoint.rest/file.folder.js +305 -0
- package/dist/utils/sharepoint.rest/file.folder.js.map +1 -0
- package/dist/utils/sharepoint.rest/index.d.ts +11 -0
- package/dist/utils/sharepoint.rest/index.js +28 -0
- package/dist/utils/sharepoint.rest/index.js.map +1 -0
- package/dist/utils/sharepoint.rest/item.d.ts +81 -0
- package/dist/utils/sharepoint.rest/item.js +444 -0
- package/dist/utils/sharepoint.rest/item.js.map +1 -0
- package/dist/utils/sharepoint.rest/list.d.ts +228 -0
- package/dist/utils/sharepoint.rest/list.js +868 -0
- package/dist/utils/sharepoint.rest/list.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.d.ts +19 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js +629 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.d.ts +14 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js +222 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/common.d.ts +3 -0
- package/dist/utils/sharepoint.rest/listutils/common.js +198 -0
- package/dist/utils/sharepoint.rest/listutils/common.js.map +1 -0
- package/dist/utils/sharepoint.rest/user-search.d.ts +76 -0
- package/dist/utils/sharepoint.rest/user-search.js +239 -0
- package/dist/utils/sharepoint.rest/user-search.js.map +1 -0
- package/dist/utils/sharepoint.rest/user.d.ts +71 -0
- package/dist/utils/sharepoint.rest/user.js +404 -0
- package/dist/utils/sharepoint.rest/user.js.map +1 -0
- package/dist/utils/sharepoint.rest/web.d.ts +107 -0
- package/dist/utils/sharepoint.rest/web.js +929 -0
- package/dist/utils/sharepoint.rest/web.js.map +1 -0
- package/dist/utils/sod.d.ts +29 -0
- package/dist/utils/sod.js +177 -0
- package/dist/utils/sod.js.map +1 -0
- package/package.json +60 -0
- package/readme.md +13 -0
- package/src/_dependencies.ts +2 -0
- package/src/helpers/Guid.ts +182 -0
- package/src/helpers/_dependencies.ts +3 -0
- package/src/helpers/base64.ts +174 -0
- package/src/helpers/browser.test.js +9 -0
- package/src/helpers/browser.ts +1299 -0
- package/src/helpers/browserinfo.ts +293 -0
- package/src/helpers/collections.base.test.js +26 -0
- package/src/helpers/collections.base.ts +439 -0
- package/src/helpers/collections.ts +108 -0
- package/src/helpers/color.ts +55 -0
- package/src/helpers/cookies.ts +55 -0
- package/src/helpers/date.test.js +97 -0
- package/src/helpers/date.ts +163 -0
- package/src/helpers/debug.ts +187 -0
- package/src/helpers/emails.ts +7 -0
- package/src/helpers/eval.ts +5 -0
- package/src/helpers/file.test.js +51 -0
- package/src/helpers/file.ts +59 -0
- package/src/helpers/flatted.ts +150 -0
- package/src/helpers/functions.ts +17 -0
- package/src/helpers/graph/calendar.types.ts +11 -0
- package/src/helpers/http.ts +70 -0
- package/src/helpers/images.ts +23 -0
- package/src/helpers/index.ts +29 -0
- package/src/helpers/json.ts +39 -0
- package/src/helpers/md5.ts +190 -0
- package/src/helpers/objects.test.js +27 -0
- package/src/helpers/objects.ts +256 -0
- package/src/helpers/promises.test.js +18 -0
- package/src/helpers/promises.ts +102 -0
- package/src/helpers/random.ts +27 -0
- package/src/helpers/scheduler/scheduler.test.js +104 -0
- package/src/helpers/scheduler/scheduler.ts +132 -0
- package/src/helpers/sharepoint.ts +681 -0
- package/src/helpers/strings.test.js +43 -0
- package/src/helpers/strings.ts +288 -0
- package/src/helpers/typecheckers.test.js +35 -0
- package/src/helpers/typecheckers.ts +263 -0
- package/src/helpers/url.test.js +18 -0
- package/src/helpers/url.ts +202 -0
- package/src/helpers/urlhelper.ts +104 -0
- package/src/index.ts +24 -0
- package/src/types/common.types.ts +16 -0
- package/src/types/flatted.types.ts +60 -0
- package/src/types/globals.types.ts +7 -0
- package/src/types/graph/calendar.types.ts +81 -0
- package/src/types/graph/index.ts +1 -0
- package/src/types/index.ts +12 -0
- package/src/types/knownscript.types.ts +19 -0
- package/src/types/libs/datajs.types.ts +29 -0
- package/src/types/libs/ics.types.ts +31 -0
- package/src/types/libs/index.ts +4 -0
- package/src/types/libs/msal.types.ts +79 -0
- package/src/types/locales.ts +125 -0
- package/src/types/localstoragecache.types.ts +9 -0
- package/src/types/moment.ts +7 -0
- package/src/types/regex.types.ts +17 -0
- package/src/types/rest.types.ts +94 -0
- package/src/types/sharepoint.types.ts +1413 -0
- package/src/types/sharepoint.utils.types.ts +246 -0
- package/src/utils/_dependencies.ts +4 -0
- package/src/utils/base64.ts +27 -0
- package/src/utils/consolelogger.ts +315 -0
- package/src/utils/date.ts +36 -0
- package/src/utils/emails.ts +25 -0
- package/src/utils/index.ts +13 -0
- package/src/utils/knownscript.ts +280 -0
- package/src/utils/localstoragecache.ts +419 -0
- package/src/utils/rest.ts +465 -0
- package/src/utils/script.ts +168 -0
- package/src/utils/sharepoint.rest/common.ts +149 -0
- package/src/utils/sharepoint.rest/date.ts +61 -0
- package/src/utils/sharepoint.rest/file.folder.ts +368 -0
- package/src/utils/sharepoint.rest/index.ts +11 -0
- package/src/utils/sharepoint.rest/item.ts +456 -0
- package/src/utils/sharepoint.rest/list.ts +1144 -0
- package/src/utils/sharepoint.rest/listutils/GetListItemsByCaml.ts +750 -0
- package/src/utils/sharepoint.rest/listutils/GetListItemsById.ts +265 -0
- package/src/utils/sharepoint.rest/listutils/common.ts +202 -0
- package/src/utils/sharepoint.rest/user-search.ts +254 -0
- package/src/utils/sharepoint.rest/user.ts +447 -0
- package/src/utils/sharepoint.rest/web.ts +1031 -0
- package/src/utils/sod.ts +193 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** this file will only use basic type checker and types, do not add functions that require
|
|
3
|
+
* a reference to tother helpers
|
|
4
|
+
*/
|
|
5
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.numbersArray = exports.FindNextAvailableName = exports.ArrayFill = exports.PushNoDuplicate = exports.RemoveItemFromArr = exports.defaultPrimitiveGetValue = exports.GetPagedCollectionInfo = exports.FlattenGroupItems = exports.IsMultiLevelGroup = exports.GetUniqueArrayInfo = exports.makeUniqueArray = exports.flattenArray = exports.convertDictionary = exports.toArray = exports.toHash = exports.chunkArray = exports.sizeOf = exports.forEachAsync = exports.forEach = exports.sortNumberArray = exports.sortNumberArrayAsc = exports.filterEmptyEntries = exports.sortArray = exports.lastOrNullAsync = exports.lastIndexOfAsync = exports.firstOrNullAsync = exports.firstIndexOfAsync = exports.lastOrNull = exports.lastIndexOf = exports.firstOrNull = exports.firstIndexOf = exports.moveToEnd = exports.moveToStart = void 0;
|
|
16
|
+
const typecheckers_1 = require("./typecheckers");
|
|
17
|
+
/** Finds an object in array based on a filter and moves it to the start of the array */
|
|
18
|
+
function moveToStart(arr, filter) {
|
|
19
|
+
let index = firstIndexOf(arr, filter);
|
|
20
|
+
if (index > 0) {
|
|
21
|
+
let obj = arr[index];
|
|
22
|
+
arr.splice(index, 1);
|
|
23
|
+
arr.unshift(obj);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.moveToStart = moveToStart;
|
|
27
|
+
/** Finds an object in array based on a filter and moves it to the end of the array */
|
|
28
|
+
function moveToEnd(arr, filter) {
|
|
29
|
+
let index = firstIndexOf(arr, filter);
|
|
30
|
+
if (index !== -1 && index !== arr.length - 1) {
|
|
31
|
+
let obj = arr[index];
|
|
32
|
+
arr.splice(index, 1);
|
|
33
|
+
arr.push(obj);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.moveToEnd = moveToEnd;
|
|
37
|
+
/** Get the first index of an object of an array, or -1 if the array is empty / null */
|
|
38
|
+
// export function firstIndexOf<T extends Element>(arr: HTMLCollectionOf<T>, filter?: (item: T, index?: number) => boolean, startFrom?: number): number;
|
|
39
|
+
// export function firstIndexOf<T>(arr: T[], filter?: (item: T, index?: number) => boolean, startFrom?: number): number;
|
|
40
|
+
function firstIndexOf(arr, filter, startFrom) {
|
|
41
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(arr) && arr.length > 0) {
|
|
42
|
+
if ((0, typecheckers_1.isFunction)(filter)) {
|
|
43
|
+
//use for loop so we can stop when it is found
|
|
44
|
+
for (let i = startFrom > 0 ? startFrom : 0; i < arr.length; i++)
|
|
45
|
+
if (filter(arr[i], i) === true)
|
|
46
|
+
return i;
|
|
47
|
+
}
|
|
48
|
+
else
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
return -1;
|
|
52
|
+
}
|
|
53
|
+
exports.firstIndexOf = firstIndexOf;
|
|
54
|
+
/** Get the first object of an array, or null if the array is empty / null
|
|
55
|
+
* If you pass a filter, it will find the first element that matches the filter and return it, stopping the loop when it is found
|
|
56
|
+
* */
|
|
57
|
+
function firstOrNull(arr, filter) {
|
|
58
|
+
let index = firstIndexOf(arr, filter);
|
|
59
|
+
return index < 0 ? null : arr[index];
|
|
60
|
+
}
|
|
61
|
+
exports.firstOrNull = firstOrNull;
|
|
62
|
+
/** Get the last index of an object of an array, or -1 if the array is empty / null */
|
|
63
|
+
function lastIndexOf(arr, filter) {
|
|
64
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(arr) && arr.length > 0) {
|
|
65
|
+
if ((0, typecheckers_1.isFunction)(filter)) {
|
|
66
|
+
//use for loop so we can stop when it is found
|
|
67
|
+
for (let i = arr.length - 1; i >= 0; i--)
|
|
68
|
+
if (filter(arr[i]) === true)
|
|
69
|
+
return i;
|
|
70
|
+
}
|
|
71
|
+
else
|
|
72
|
+
return arr.length - 1;
|
|
73
|
+
}
|
|
74
|
+
return -1;
|
|
75
|
+
}
|
|
76
|
+
exports.lastIndexOf = lastIndexOf;
|
|
77
|
+
/** get the last element or null */
|
|
78
|
+
function lastOrNull(arr, filter) {
|
|
79
|
+
let index = lastIndexOf(arr, filter);
|
|
80
|
+
return index < 0 ? null : arr[index];
|
|
81
|
+
}
|
|
82
|
+
exports.lastOrNull = lastOrNull;
|
|
83
|
+
/** Get the first index of an object of an array, or -1 if the array is empty / null */
|
|
84
|
+
function firstIndexOfAsync(arr, filter, startFrom) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(arr) && arr.length > 0) {
|
|
87
|
+
if ((0, typecheckers_1.isFunction)(filter)) {
|
|
88
|
+
//use for loop so we can stop when it is found
|
|
89
|
+
for (let i = startFrom > 0 ? startFrom : 0; i < arr.length; i++)
|
|
90
|
+
if ((yield filter(arr[i], i)) === true)
|
|
91
|
+
return i;
|
|
92
|
+
}
|
|
93
|
+
else
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
return -1;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
exports.firstIndexOfAsync = firstIndexOfAsync;
|
|
100
|
+
/** Get the first object of an array, or null if the array is empty / null
|
|
101
|
+
* If you pass a filter, it will find the first element that matches the filter and return it, stopping the loop when it is found
|
|
102
|
+
* */
|
|
103
|
+
function firstOrNullAsync(arr, filter) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
let index = yield firstIndexOfAsync(arr, filter);
|
|
106
|
+
return index < 0 ? null : arr[index];
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.firstOrNullAsync = firstOrNullAsync;
|
|
110
|
+
/** Get the last index of an object of an array, or -1 if the array is empty / null */
|
|
111
|
+
function lastIndexOfAsync(arr, filter) {
|
|
112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(arr) && arr.length > 0) {
|
|
114
|
+
if ((0, typecheckers_1.isFunction)(filter)) {
|
|
115
|
+
//use for loop so we can stop when it is found
|
|
116
|
+
for (let i = arr.length - 1; i >= 0; i--)
|
|
117
|
+
if ((yield filter(arr[i])) === true)
|
|
118
|
+
return i;
|
|
119
|
+
}
|
|
120
|
+
else
|
|
121
|
+
return arr.length - 1;
|
|
122
|
+
}
|
|
123
|
+
return -1;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
exports.lastIndexOfAsync = lastIndexOfAsync;
|
|
127
|
+
/** get the last element or null */
|
|
128
|
+
function lastOrNullAsync(arr, filter) {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
let index = yield lastIndexOfAsync(arr, filter);
|
|
131
|
+
return index < 0 ? null : arr[index];
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
exports.lastOrNullAsync = lastOrNullAsync;
|
|
135
|
+
/** Sorts an array of complex objects, use defaultPrimitiveGetValue for default functionality */
|
|
136
|
+
function sortArray(arr, getValue) {
|
|
137
|
+
if (!(0, typecheckers_1.isNullOrEmptyArray)(arr)) {
|
|
138
|
+
if ((0, typecheckers_1.isTypeofFullNameFunction)("Intl.Collator")) {
|
|
139
|
+
//todo: should probably use the SharePoint locale isntead of 'undefined'
|
|
140
|
+
let collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });
|
|
141
|
+
arr.sort((a, b) => {
|
|
142
|
+
let va = getValue(a);
|
|
143
|
+
let vb = getValue(b);
|
|
144
|
+
return collator.compare(va, vb);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
arr.sort((a, b) => {
|
|
149
|
+
let va = getValue(a);
|
|
150
|
+
if ((0, typecheckers_1.isString)(va))
|
|
151
|
+
va = va.toLowerCase();
|
|
152
|
+
let vb = getValue(b);
|
|
153
|
+
if ((0, typecheckers_1.isString)(vb))
|
|
154
|
+
vb = vb.toLowerCase();
|
|
155
|
+
return va === vb ? 0 : va > vb ? 1 : -1;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return arr;
|
|
160
|
+
}
|
|
161
|
+
exports.sortArray = sortArray;
|
|
162
|
+
/** removes null, undefined or "" elements from the array */
|
|
163
|
+
function filterEmptyEntries(arr) {
|
|
164
|
+
return arr.filter(val => !(0, typecheckers_1.isNullOrEmptyString)(val));
|
|
165
|
+
}
|
|
166
|
+
exports.filterEmptyEntries = filterEmptyEntries;
|
|
167
|
+
function sortNumberArrayAsc(a, b) {
|
|
168
|
+
return a - b;
|
|
169
|
+
}
|
|
170
|
+
exports.sortNumberArrayAsc = sortNumberArrayAsc;
|
|
171
|
+
function sortNumberArray(a, b) {
|
|
172
|
+
return b - a;
|
|
173
|
+
}
|
|
174
|
+
exports.sortNumberArray = sortNumberArray;
|
|
175
|
+
/** call a foreach on an object or an array, with an option to break when returning false */
|
|
176
|
+
function forEach(obj, func, args) {
|
|
177
|
+
if (obj && func && (0, typecheckers_1.isFunction)(func)) {
|
|
178
|
+
if (Array.isArray(obj) || obj.constructor && (0, typecheckers_1.getFromFullName)("constructor.name", obj) === "Array") {
|
|
179
|
+
for (let i = 0; i < obj.length; i++) {
|
|
180
|
+
let property = i;
|
|
181
|
+
let value = obj[property];
|
|
182
|
+
let result = func(property.toString(10), value, args);
|
|
183
|
+
if (result === false) {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
let keys = Object.keys(obj);
|
|
190
|
+
for (let i = 0; i < keys.length; i++) {
|
|
191
|
+
let property = keys[i];
|
|
192
|
+
let value = obj[property];
|
|
193
|
+
let result = func(property, value, args);
|
|
194
|
+
if (result === false) {
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.forEach = forEach;
|
|
202
|
+
function forEachAsync(arr, handler, options) {
|
|
203
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
204
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(arr) && Object.keys(arr).length > 0) {
|
|
205
|
+
let keys = Object.keys(arr);
|
|
206
|
+
if (options && options.parallel) {
|
|
207
|
+
let promises = [];
|
|
208
|
+
keys.forEach((key, i) => {
|
|
209
|
+
promises.push(handler(arr[key], i));
|
|
210
|
+
});
|
|
211
|
+
return Promise.all(promises);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
let results = [];
|
|
215
|
+
for (let i = 0; i < keys.length; i++) {
|
|
216
|
+
results.push(yield handler(arr[keys[i]], i));
|
|
217
|
+
}
|
|
218
|
+
return results;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else
|
|
222
|
+
return [];
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
exports.forEachAsync = forEachAsync;
|
|
226
|
+
function sizeOf(obj) {
|
|
227
|
+
if (Array.isArray(obj))
|
|
228
|
+
return obj.length;
|
|
229
|
+
return Object.keys(obj).length;
|
|
230
|
+
}
|
|
231
|
+
exports.sizeOf = sizeOf;
|
|
232
|
+
function chunkArray(array, chunkSize) {
|
|
233
|
+
var chunkedArray = [];
|
|
234
|
+
for (var i = 0; i < array.length; i += chunkSize) {
|
|
235
|
+
chunkedArray.push(array.slice(i, i + chunkSize));
|
|
236
|
+
}
|
|
237
|
+
return chunkedArray;
|
|
238
|
+
}
|
|
239
|
+
exports.chunkArray = chunkArray;
|
|
240
|
+
/** Takes an array and transforms it into a hash. this will assign 1 item per key, assumig getKey will be unique per item. */
|
|
241
|
+
function toHash(arr, getKey, filter, transformValue) {
|
|
242
|
+
let hash = {};
|
|
243
|
+
if (!(0, typecheckers_1.isFunction)(transformValue))
|
|
244
|
+
transformValue = v => v;
|
|
245
|
+
if ((0, typecheckers_1.isNotEmptyArray)(arr))
|
|
246
|
+
arr.forEach(i => {
|
|
247
|
+
if (!(0, typecheckers_1.isFunction)(filter) || filter(i))
|
|
248
|
+
hash[getKey(i)] = transformValue(i);
|
|
249
|
+
});
|
|
250
|
+
return hash;
|
|
251
|
+
}
|
|
252
|
+
exports.toHash = toHash;
|
|
253
|
+
/** Returns an array from the values of the dictionary. */
|
|
254
|
+
function toArray(hash, filter, transform) {
|
|
255
|
+
let arr = [];
|
|
256
|
+
if (!(0, typecheckers_1.isFunction)(transform))
|
|
257
|
+
transform = (key, element) => element;
|
|
258
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(hash))
|
|
259
|
+
Object.keys(hash).forEach(key => {
|
|
260
|
+
if (!(0, typecheckers_1.isFunction)(filter) || filter(hash[key]))
|
|
261
|
+
arr.push(transform(key, hash[key]));
|
|
262
|
+
});
|
|
263
|
+
return arr;
|
|
264
|
+
}
|
|
265
|
+
exports.toArray = toArray;
|
|
266
|
+
/** returns a new dictionary, converting each entry in source using the transform function */
|
|
267
|
+
function convertDictionary(source, transform) {
|
|
268
|
+
let result = {};
|
|
269
|
+
forEach(source, (key, value) => { result[key] = transform(value); });
|
|
270
|
+
return result;
|
|
271
|
+
}
|
|
272
|
+
exports.convertDictionary = convertDictionary;
|
|
273
|
+
function flattenArray(array) {
|
|
274
|
+
return array.reduce((acc, val) => acc.concat(val), []);
|
|
275
|
+
}
|
|
276
|
+
exports.flattenArray = flattenArray;
|
|
277
|
+
/** careful, does not work for date/complex objects. Use GetUniqueArrayInfo if you suspect you might have Date/complex objects. */
|
|
278
|
+
function makeUniqueArray(arr) {
|
|
279
|
+
return arr.filter((v, i, a) => a.indexOf(v) === i);
|
|
280
|
+
}
|
|
281
|
+
exports.makeUniqueArray = makeUniqueArray;
|
|
282
|
+
/** return an array of unique values, and the first index they were found, use defaultPrimitiveGetValue for default functionality */
|
|
283
|
+
function GetUniqueArrayInfo(arr, getValue) {
|
|
284
|
+
var uniqueValues = [];
|
|
285
|
+
var uniqueArray = [];
|
|
286
|
+
var foundValues = [];
|
|
287
|
+
var hasDuplicates = false;
|
|
288
|
+
var duplicateIndexes = [];
|
|
289
|
+
if ((0, typecheckers_1.isNotEmptyArray)(arr)) {
|
|
290
|
+
arr.forEach((item, index) => {
|
|
291
|
+
let value = getValue(item);
|
|
292
|
+
if (foundValues.includes(value)) {
|
|
293
|
+
hasDuplicates = true;
|
|
294
|
+
duplicateIndexes.push(index);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
foundValues.push(value);
|
|
298
|
+
uniqueValues.push({ item: item, value: value, firstIndex: index });
|
|
299
|
+
uniqueArray.push(item);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
return {
|
|
304
|
+
/** true if duplicate values found */
|
|
305
|
+
hasDuplicates: hasDuplicates,
|
|
306
|
+
/** all duplicate item indexes */
|
|
307
|
+
duplicateIndexes: duplicateIndexes,
|
|
308
|
+
/** unique values and their info */
|
|
309
|
+
uniqueValues: uniqueValues,
|
|
310
|
+
/** the unique version of this array */
|
|
311
|
+
uniqueArray: uniqueArray
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
exports.GetUniqueArrayInfo = GetUniqueArrayInfo;
|
|
315
|
+
/** returns true if the element is a group of items */
|
|
316
|
+
function IsMultiLevelGroup(groupOrItem) {
|
|
317
|
+
let asGroup = groupOrItem;
|
|
318
|
+
return !(0, typecheckers_1.isNullOrUndefined)(asGroup.subGroups) && Array.isArray(asGroup.groupItems) && (0, typecheckers_1.isNumber)(asGroup.index) && (0, typecheckers_1.isNumber)(asGroup.depth);
|
|
319
|
+
}
|
|
320
|
+
exports.IsMultiLevelGroup = IsMultiLevelGroup;
|
|
321
|
+
/** returns a flat array of groups>items ordered by groups */
|
|
322
|
+
function FlattenGroupItems(groups) {
|
|
323
|
+
let flatItems = [];
|
|
324
|
+
Object.keys(groups).forEach(groupName => {
|
|
325
|
+
let group = groups[groupName];
|
|
326
|
+
if (!(0, typecheckers_1.isNullOrEmptyString)(groupName))
|
|
327
|
+
flatItems.push(group);
|
|
328
|
+
let subGroups = Object.keys(group.subGroups);
|
|
329
|
+
if ((0, typecheckers_1.isNotEmptyArray)(subGroups)) {
|
|
330
|
+
flatItems.push(...FlattenGroupItems(group.subGroups));
|
|
331
|
+
}
|
|
332
|
+
else
|
|
333
|
+
flatItems.push(...group.groupItems);
|
|
334
|
+
});
|
|
335
|
+
return flatItems;
|
|
336
|
+
}
|
|
337
|
+
exports.FlattenGroupItems = FlattenGroupItems;
|
|
338
|
+
/** split a collection by page size and return the info */
|
|
339
|
+
function GetPagedCollectionInfo(collection, pageSize, currentPage) {
|
|
340
|
+
let pagedItems = [];
|
|
341
|
+
if (pageSize < 1) {
|
|
342
|
+
pagedItems = [collection.slice()];
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
let copy = collection.slice();
|
|
346
|
+
while ((0, typecheckers_1.isNotEmptyArray)(copy)) {
|
|
347
|
+
pagedItems.push(copy.splice(0, pageSize));
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
currentPage = (0, typecheckers_1.isNumber)(currentPage) && currentPage >= 0 && currentPage < pagedItems.length ? currentPage : 0;
|
|
351
|
+
return {
|
|
352
|
+
/** nubmer of pages */
|
|
353
|
+
pages: pagedItems.length,
|
|
354
|
+
/** page items, per page (Array of pages, each has an array of the page items) */
|
|
355
|
+
pagedItems: pagedItems,
|
|
356
|
+
/** the current page */
|
|
357
|
+
currentPage: currentPage,
|
|
358
|
+
/** the current page items */
|
|
359
|
+
currentPageItems: pagedItems[currentPage] || [],
|
|
360
|
+
/** has more than 1 page */
|
|
361
|
+
hasPages: pagedItems.length > 1,
|
|
362
|
+
allowPrev: currentPage > 0,
|
|
363
|
+
allowNext: currentPage < pagedItems.length - 1
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
exports.GetPagedCollectionInfo = GetPagedCollectionInfo;
|
|
367
|
+
/** use with sortArray or get unique array to handle premitive types or dates, with a JSON.stringify to all other values */
|
|
368
|
+
function defaultPrimitiveGetValue(item) {
|
|
369
|
+
return (0, typecheckers_1.isNullOrUndefined)(item)
|
|
370
|
+
? ""
|
|
371
|
+
: (0, typecheckers_1.isDate)(item) ? item.getTime()
|
|
372
|
+
: (0, typecheckers_1.isBoolean)(item)
|
|
373
|
+
? item === true ? 1 : 0
|
|
374
|
+
: (0, typecheckers_1.isNumber)(item) || (0, typecheckers_1.isString)(item)
|
|
375
|
+
? item
|
|
376
|
+
: JSON.stringify(item);
|
|
377
|
+
}
|
|
378
|
+
exports.defaultPrimitiveGetValue = defaultPrimitiveGetValue;
|
|
379
|
+
function RemoveItemFromArr(arr, item) {
|
|
380
|
+
let idx = arr.indexOf(item);
|
|
381
|
+
if (idx >= 0)
|
|
382
|
+
arr.splice(idx, 1);
|
|
383
|
+
}
|
|
384
|
+
exports.RemoveItemFromArr = RemoveItemFromArr;
|
|
385
|
+
function PushNoDuplicate(arr, item) {
|
|
386
|
+
if (!arr.includes(item))
|
|
387
|
+
arr.push(item);
|
|
388
|
+
}
|
|
389
|
+
exports.PushNoDuplicate = PushNoDuplicate;
|
|
390
|
+
/** fills an array with a value. Array.fill isn't available on SPFx. */
|
|
391
|
+
function ArrayFill(arr, value, onlyEmpty) {
|
|
392
|
+
for (let i = 0; i < arr.length; i++) {
|
|
393
|
+
if (onlyEmpty !== true || (0, typecheckers_1.isNullOrUndefined)(arr[i]))
|
|
394
|
+
arr[i] = value;
|
|
395
|
+
}
|
|
396
|
+
return arr;
|
|
397
|
+
}
|
|
398
|
+
exports.ArrayFill = ArrayFill;
|
|
399
|
+
/** give a name and a collection, and it will return a unique name availalbe, suffixing a _# to the name
|
|
400
|
+
* example: file
|
|
401
|
+
* return file, file_2, file_9 etc... whichever is availalbe first.
|
|
402
|
+
*/
|
|
403
|
+
function FindNextAvailableName(name, usedNames, options) {
|
|
404
|
+
let nameForTest = name;
|
|
405
|
+
if (options && options.caseSensitive !== true) {
|
|
406
|
+
usedNames = usedNames.map(n => n.toLowerCase());
|
|
407
|
+
nameForTest = name.toLowerCase();
|
|
408
|
+
}
|
|
409
|
+
let nameSuffix = options && options.suffix || "";
|
|
410
|
+
let suffixIdx = 0;
|
|
411
|
+
let suffixStr = "";
|
|
412
|
+
while (usedNames.indexOf(`${nameForTest}${suffixStr}${nameSuffix}`) >= 0) {
|
|
413
|
+
suffixIdx++;
|
|
414
|
+
suffixStr = "_" + suffixIdx;
|
|
415
|
+
}
|
|
416
|
+
return `${name}${suffixStr}${nameSuffix}`;
|
|
417
|
+
}
|
|
418
|
+
exports.FindNextAvailableName = FindNextAvailableName;
|
|
419
|
+
//** returns an array of numbers from 0,1,2... */
|
|
420
|
+
function numbersArray(length, startFrom = 0) {
|
|
421
|
+
//dvp build will fail without any type
|
|
422
|
+
if ((0, typecheckers_1.isNullOrUndefined)(length) || length < 0)
|
|
423
|
+
length = 0;
|
|
424
|
+
let arr = Array.from(Array(length).keys());
|
|
425
|
+
return startFrom > 0
|
|
426
|
+
? arr.map(i => i + startFrom)
|
|
427
|
+
: arr;
|
|
428
|
+
}
|
|
429
|
+
exports.numbersArray = numbersArray;
|
|
430
|
+
//# sourceMappingURL=collections.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.base.js","sourceRoot":"","sources":["../../src/helpers/collections.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IDictionary } from "./_dependencies";
|
|
2
|
+
import { IMultiLevelGroup } from "./collections.base";
|
|
3
|
+
/** check that every element in the arrays are the same value */
|
|
4
|
+
export declare function arraysEqual(arr1: any[], arr2: any[]): boolean;
|
|
5
|
+
/** Takes an array and transforms it into a dictionary. this will assign all items of the same key as an array. */
|
|
6
|
+
export declare function groupBy<T>(arr: T[], getKeys: (element: T) => string[], filter?: (element: T) => boolean): IDictionary<T[]>;
|
|
7
|
+
/** allows nested multi-level grouping */
|
|
8
|
+
export declare function GroupByMultiple<ItemType>(arr: ItemType[], groupDefinitions: {
|
|
9
|
+
/** return all groups this item belongs to */
|
|
10
|
+
getGroupsForThisElement: ((element: ItemType) => string[]);
|
|
11
|
+
/** Optional, add a prefix to the group. For example: "Priority > " to fullTitle will be "Priority > High" */
|
|
12
|
+
groupPrefix?: string;
|
|
13
|
+
}[], options?: {
|
|
14
|
+
filter?: (element: ItemType) => boolean;
|
|
15
|
+
/** if groups were calculated, they are returned from cache. send true to clear that cache. send true if you suspect getKeysCollection might change on your existing array. */
|
|
16
|
+
clearCache?: boolean;
|
|
17
|
+
parentGroup?: IMultiLevelGroup<ItemType>;
|
|
18
|
+
}): IDictionary<IMultiLevelGroup<ItemType>>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupByMultiple = exports.groupBy = exports.arraysEqual = void 0;
|
|
4
|
+
const objects_1 = require("./objects");
|
|
5
|
+
const typecheckers_1 = require("./typecheckers");
|
|
6
|
+
/** check that every element in the arrays are the same value */
|
|
7
|
+
function arraysEqual(arr1, arr2) {
|
|
8
|
+
if ((0, typecheckers_1.isNullOrEmptyArray)(arr1) && (0, typecheckers_1.isNullOrEmptyArray)(arr2))
|
|
9
|
+
return true;
|
|
10
|
+
return Array.isArray(arr1) && Array.isArray(arr2) && arr1.length === arr2.length && arr1.every((v1, i) => {
|
|
11
|
+
var v2 = arr2[i];
|
|
12
|
+
if ((0, typecheckers_1.isString)(v1) || (0, typecheckers_1.isNumber)(v1)) {
|
|
13
|
+
return v1 === v2;
|
|
14
|
+
}
|
|
15
|
+
else if (Array.isArray(v1) && Array.isArray(v2)) {
|
|
16
|
+
return arraysEqual(v1, v2);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return (0, objects_1.objectsEqual)(v1, v2);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.arraysEqual = arraysEqual;
|
|
24
|
+
/** Takes an array and transforms it into a dictionary. this will assign all items of the same key as an array. */
|
|
25
|
+
function groupBy(arr, getKeys, filter) {
|
|
26
|
+
let dic = {};
|
|
27
|
+
if ((0, typecheckers_1.isNotEmptyArray)(arr))
|
|
28
|
+
arr.forEach(i => {
|
|
29
|
+
if (!(0, typecheckers_1.isFunction)(filter) || filter(i)) {
|
|
30
|
+
let keys = getKeys(i);
|
|
31
|
+
keys.forEach(key => {
|
|
32
|
+
if ((0, typecheckers_1.isNullOrEmptyString)(key))
|
|
33
|
+
key = "";
|
|
34
|
+
if (!(0, objects_1.hasOwnProperty)(dic, key))
|
|
35
|
+
dic[key] = [i];
|
|
36
|
+
else
|
|
37
|
+
dic[key].push(i);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return dic;
|
|
42
|
+
}
|
|
43
|
+
exports.groupBy = groupBy;
|
|
44
|
+
var groupByMultipleCacheKey = "$groupByMultipleCache";
|
|
45
|
+
/** allows nested multi-level grouping */
|
|
46
|
+
function GroupByMultiple(arr, groupDefinitions, options) {
|
|
47
|
+
options = options || {};
|
|
48
|
+
if (options.clearCache || (0, typecheckers_1.isNullOrUndefined)(arr[groupByMultipleCacheKey])) {
|
|
49
|
+
let dic = {};
|
|
50
|
+
let groupDefinition = groupDefinitions[0]; //get first
|
|
51
|
+
let getKeys = groupDefinition.getGroupsForThisElement;
|
|
52
|
+
if ((0, typecheckers_1.isNotEmptyArray)(arr)) {
|
|
53
|
+
let groupIndex = 0;
|
|
54
|
+
arr.forEach(i => {
|
|
55
|
+
if (!(0, typecheckers_1.isFunction)(options.filter) || options.filter(i)) {
|
|
56
|
+
let keys = getKeys(i);
|
|
57
|
+
keys.forEach(key => {
|
|
58
|
+
if ((0, typecheckers_1.isNullOrEmptyString)(key))
|
|
59
|
+
key = "";
|
|
60
|
+
if (!(0, objects_1.hasOwnProperty)(dic, key)) {
|
|
61
|
+
let groupKey = groupIndex.toString(10);
|
|
62
|
+
let groupKeyParent = options.parentGroup;
|
|
63
|
+
while (groupKeyParent) {
|
|
64
|
+
groupKey = groupKeyParent.index + "_" + groupKey;
|
|
65
|
+
groupKeyParent = groupKeyParent.parentGroup;
|
|
66
|
+
}
|
|
67
|
+
dic[key] = {
|
|
68
|
+
groupItems: [],
|
|
69
|
+
subGroups: {},
|
|
70
|
+
depth: options.parentGroup ? options.parentGroup.depth + 1 : 0,
|
|
71
|
+
parentGroup: options.parentGroup,
|
|
72
|
+
key: groupKey,
|
|
73
|
+
index: groupIndex,
|
|
74
|
+
title: key,
|
|
75
|
+
groupPrefix: groupDefinition.groupPrefix,
|
|
76
|
+
fullTitle: `${(0, typecheckers_1.isNullOrEmptyString)(groupDefinition.groupPrefix) ? "" : groupDefinition.groupPrefix}${key}`
|
|
77
|
+
};
|
|
78
|
+
groupIndex++;
|
|
79
|
+
}
|
|
80
|
+
let itemWithGroup = i;
|
|
81
|
+
itemWithGroup.parentGroup = dic[key];
|
|
82
|
+
dic[key].groupItems.push(itemWithGroup);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if ((0, typecheckers_1.isNotEmptyArray)(groupDefinitions) && groupDefinitions.length > 1) {
|
|
88
|
+
//run for every group and call this again
|
|
89
|
+
Object.keys(dic).forEach(groupName => {
|
|
90
|
+
let currentGroup = dic[groupName];
|
|
91
|
+
currentGroup.subGroups = GroupByMultiple(currentGroup.groupItems, groupDefinitions.slice(1), Object.assign(Object.assign({}, options), { parentGroup: currentGroup }));
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
arr[groupByMultipleCacheKey] = dic;
|
|
95
|
+
}
|
|
96
|
+
return arr[groupByMultipleCacheKey];
|
|
97
|
+
}
|
|
98
|
+
exports.GroupByMultiple = GroupByMultiple;
|
|
99
|
+
//# sourceMappingURL=collections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/helpers/collections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** get the oposite color of a color, or the best contrasting black or white. This is useful to know which color text to show on a dynamic background color */
|
|
2
|
+
export declare function invertColor(color: string, blackOrWhite?: boolean, defaultIfEmpty?: string): string;
|
|
3
|
+
/** Returns the color as an array of [r, g, b, a] -- all range from 0 - 255 */
|
|
4
|
+
export declare function colorToRGBA(color: string): {
|
|
5
|
+
r: number;
|
|
6
|
+
g: number;
|
|
7
|
+
b: number;
|
|
8
|
+
a: number;
|
|
9
|
+
};
|
|
10
|
+
/** Convert any CSS color to a hex representation, returns #000000 */
|
|
11
|
+
export declare function colorToHex(color: string): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.colorToHex = exports.colorToRGBA = exports.invertColor = void 0;
|
|
4
|
+
const typecheckers_1 = require("./typecheckers");
|
|
5
|
+
/** get the oposite color of a color, or the best contrasting black or white. This is useful to know which color text to show on a dynamic background color */
|
|
6
|
+
function invertColor(color, blackOrWhite, defaultIfEmpty) {
|
|
7
|
+
if ((0, typecheckers_1.isNullOrEmptyString)(color) && !(0, typecheckers_1.isNullOrEmptyString)(defaultIfEmpty))
|
|
8
|
+
return defaultIfEmpty;
|
|
9
|
+
let rgba = colorToRGBA(color);
|
|
10
|
+
if (blackOrWhite) {
|
|
11
|
+
// http://stackoverflow.com/a/3943023/112731
|
|
12
|
+
return (rgba.r * 0.299 + rgba.g * 0.587 + rgba.b * 0.114) > 186
|
|
13
|
+
? '#000000'
|
|
14
|
+
: '#FFFFFF';
|
|
15
|
+
}
|
|
16
|
+
// invert color components
|
|
17
|
+
let _r = (255 - rgba.r);
|
|
18
|
+
let _g = (255 - rgba.g);
|
|
19
|
+
let _b = (255 - rgba.b);
|
|
20
|
+
// pad each with zeros and return
|
|
21
|
+
return "#" + byteToHex(_r) + byteToHex(_g) + byteToHex(_b);
|
|
22
|
+
}
|
|
23
|
+
exports.invertColor = invertColor;
|
|
24
|
+
/** Returns the color as an array of [r, g, b, a] -- all range from 0 - 255 */
|
|
25
|
+
function colorToRGBA(color) {
|
|
26
|
+
// Returns the color as an array of [r, g, b, a] -- all range from 0 - 255
|
|
27
|
+
// color must be a valid canvas fillStyle. This will cover most anything
|
|
28
|
+
// you'd want to use.
|
|
29
|
+
// Examples:
|
|
30
|
+
// colorToRGBA('red') # [255, 0, 0, 255]
|
|
31
|
+
// colorToRGBA('#f00') # [255, 0, 0, 255]
|
|
32
|
+
let cvs = document.createElement('canvas');
|
|
33
|
+
cvs.height = 1;
|
|
34
|
+
cvs.width = 1;
|
|
35
|
+
let ctx = cvs.getContext('2d');
|
|
36
|
+
ctx.fillStyle = color;
|
|
37
|
+
ctx.fillRect(0, 0, 1, 1);
|
|
38
|
+
let data = ctx.getImageData(0, 0, 1, 1).data;
|
|
39
|
+
return { r: data[0], g: data[1], b: data[2], a: data[3] };
|
|
40
|
+
}
|
|
41
|
+
exports.colorToRGBA = colorToRGBA;
|
|
42
|
+
function byteToHex(num) {
|
|
43
|
+
// Turns a number (0-255) into a 2-character hex number (00-ff)
|
|
44
|
+
return ('0' + num.toString(16)).slice(-2);
|
|
45
|
+
}
|
|
46
|
+
/** Convert any CSS color to a hex representation, returns #000000 */
|
|
47
|
+
function colorToHex(color) {
|
|
48
|
+
//
|
|
49
|
+
// Examples:
|
|
50
|
+
// colorToHex('red') # '#ff0000'
|
|
51
|
+
// colorToHex('rgb(255, 0, 0)') # '#ff0000'
|
|
52
|
+
let rgba = colorToRGBA(color);
|
|
53
|
+
let hex = byteToHex(rgba.r) + byteToHex(rgba.g) + byteToHex(rgba.b);
|
|
54
|
+
return "#" + hex;
|
|
55
|
+
}
|
|
56
|
+
exports.colorToHex = colorToHex;
|
|
57
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/helpers/color.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,8JAA8J;AAC9J,SAAgB,WAAW,CAAC,KAAa,EAAE,YAAsB,EAAE,cAAuB;IACtF,IAAI,IAAA,kCAAmB,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,kCAAmB,EAAC,cAAc,CAAC;QAAE,OAAO,cAAc,CAAC;IAC9F,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,YAAY,EAAE,CAAC;QACf,4CAA4C;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG;YAC3D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC;IACpB,CAAC;IACD,0BAA0B;IAC1B,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,iCAAiC;IACjC,OAAO,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAhBD,kCAgBC;AAGD,8EAA8E;AAC9E,SAAgB,WAAW,CAAC,KAAa;IACrC,0EAA0E;IAC1E,wEAAwE;IACxE,qBAAqB;IACrB,YAAY;IACZ,yCAAyC;IACzC,yCAAyC;IACzC,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACtB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAfD,kCAeC;AAED,SAAS,SAAS,CAAC,GAAW;IAC1B,+DAA+D;IAC/D,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,qEAAqE;AACrE,SAAgB,UAAU,CAAC,KAAa;IACpC,GAAG;IACH,YAAY;IACZ,2CAA2C;IAC3C,2CAA2C;IAC3C,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,GAAG,GAAG,GAAG,CAAC;AACrB,CAAC;AARD,gCAQC"}
|