@sd-angular/core 1.3.187 → 1.3.189
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/bundles/sd-angular-core-common.umd.js +18 -5
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.min.js +1 -1
- package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +2 -2
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/common/src/lib/typings/array.extension.d.ts +3 -2
- package/esm2015/common/src/lib/typings/array.extension.js +19 -6
- package/esm2015/grid-material/src/lib/grid-material.component.js +2 -2
- package/fesm2015/sd-angular-core-common.js +18 -5
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +1 -1
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.187.tgz → sd-angular-core-1.3.189.tgz} +0 -0
|
@@ -11,10 +11,11 @@ declare global {
|
|
|
11
11
|
asObservable(): Observable<T[]>;
|
|
12
12
|
}
|
|
13
13
|
interface ArrayConstructor {
|
|
14
|
-
search<T = any>(items: T[], searchText: string | number, fields?: string | string[]): T[];
|
|
15
|
-
union<T = any>(key:
|
|
14
|
+
search<T = any>(items: T[], searchText: string | number, fields?: Extract<keyof T, string> | Extract<keyof T, string>[]): T[];
|
|
15
|
+
union<T = any>(key: Extract<keyof T, string>, ...args: T[][]): T[];
|
|
16
16
|
toObject<T = any>(items: T[], key?: string): {
|
|
17
17
|
[key: string]: T;
|
|
18
18
|
};
|
|
19
|
+
sum<T = any>(items: T[], key: Extract<keyof T, string>): number;
|
|
19
20
|
}
|
|
20
21
|
}
|
|
@@ -19,20 +19,30 @@ Array.prototype.search = function (searchText, fields) {
|
|
|
19
19
|
Array.prototype.paging = function (pageSize, page = 0) {
|
|
20
20
|
const items = this;
|
|
21
21
|
return items.filter((item, index) => {
|
|
22
|
-
return index >= page * pageSize
|
|
23
|
-
&& index < (page + 1) * pageSize;
|
|
22
|
+
return index >= page * pageSize && index < (page + 1) * pageSize;
|
|
24
23
|
});
|
|
25
24
|
};
|
|
26
25
|
Array.prototype.toObject = function (key) {
|
|
27
26
|
const items = this;
|
|
28
27
|
if (!key) {
|
|
29
|
-
return items
|
|
28
|
+
return items
|
|
29
|
+
.filter(item => item !== undefined && item !== null)
|
|
30
|
+
.reduce((obj, item) => {
|
|
31
|
+
obj[item === null || item === void 0 ? void 0 : item.toString()] = item;
|
|
32
|
+
return obj;
|
|
33
|
+
}, {});
|
|
30
34
|
}
|
|
31
|
-
return items
|
|
35
|
+
return items
|
|
36
|
+
.filter(item => item !== undefined && item !== null)
|
|
37
|
+
.reduce((obj, item) => {
|
|
38
|
+
var _a;
|
|
39
|
+
obj[(_a = item[key]) === null || _a === void 0 ? void 0 : _a.toString()] = item;
|
|
40
|
+
return obj;
|
|
41
|
+
}, {});
|
|
32
42
|
};
|
|
33
43
|
Array.prototype.union = function (key, ...args) {
|
|
34
44
|
let results = this;
|
|
35
|
-
const filterUnion = (val, index, self) => val !== undefined && val !== null && self.findIndex((e) => !!key ? e[key] === val[key] : e === val) === index;
|
|
45
|
+
const filterUnion = (val, index, self) => val !== undefined && val !== null && self.findIndex((e) => (!!key ? e[key] === val[key] : e === val)) === index;
|
|
36
46
|
if (!(args === null || args === void 0 ? void 0 : args.length)) {
|
|
37
47
|
return results.filter(filterUnion);
|
|
38
48
|
}
|
|
@@ -62,4 +72,7 @@ Array.toObject = (items, key) => {
|
|
|
62
72
|
}
|
|
63
73
|
return items.toObject(key);
|
|
64
74
|
};
|
|
65
|
-
|
|
75
|
+
Array.sum = (items, key) => {
|
|
76
|
+
return items === null || items === void 0 ? void 0 : items.map(e => +e[key] || 0).reduce((current, next) => current + next, 0);
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tb24vIiwic291cmNlcyI6WyJzcmMvbGliL3R5cGluZ3MvYXJyYXkuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFvQnRDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQW1CLFVBQWUsRUFBRSxNQUEwQjtJQUNyRixNQUFNLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDeEIsSUFBSSxFQUFDLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxRQUFRLEdBQUUsRUFBRTtRQUMzQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxD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QUMsQ0FBQztBQUVGLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBSSxLQUFVLEVBQUUsR0FBNkIsRUFBRSxFQUFFO0lBQzNELE9BQU8sS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRTtBQUNwRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IHt9O1xyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIGludGVyZmFjZSBBcnJheTxUID0gYW55PiB7XHJcbiAgICBzZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nIHwgbnVtYmVyLCBmaWVsZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFRbXTtcclxuICAgIHBhZ2luZyhwYWdlU2l6ZTogbnVtYmVyLCBwYWdlPzogbnVtYmVyKTogVFtdO1xyXG4gICAgdG9PYmplY3Qoa2V5Pzogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBUIH07XHJcbiAgICB1bmlvbihrZXk/OiBzdHJpbmcsIC4uLmFyZ3M6IFRbXVtdKTogVFtdO1xyXG4gICAgYXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8VFtdPjtcclxuICB9XHJcbiAgaW50ZXJmYWNlIEFycmF5Q29uc3RydWN0b3Ige1xyXG4gICAgc2VhcmNoPFQgPSBhbnk+KGl0ZW1zOiBUW10sIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bWJlciwgZmllbGRzPzogRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+IHwgRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+W10pOiBUW107XHJcbiAgICB1bmlvbjxUID0gYW55PihrZXk6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPiwgLi4uYXJnczogVFtdW10pOiBUW107XHJcbiAgICB0b09iamVjdDxUID0gYW55PihpdGVtczogVFtdLCBrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfTtcclxuICAgIHN1bTxUID0gYW55PihpdGVtczogVFtdLCBrZXk6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPik6IG51bWJlcjtcclxuICB9XHJcbn1cclxuXHJcbkFycmF5LnByb3RvdHlwZS5zZWFyY2ggPSBmdW5jdGlvbiA8VCA9IGFueT4oc2VhcmNoVGV4dDogYW55LCBmaWVsZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFzZWFyY2hUZXh0Py50b1N0cmluZygpKSB7XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcclxuICAgIGNvbnN0IGZzID0gZmllbGRzLmZpbHRlcihlID0+IGUgIT09IHVuZGVmaW5lZCAmJiBlICE9PSBudWxsICYmIGUgIT09ICcnKTtcclxuICAgIGlmICghZnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwgJiYgZnMuc29tZShmaWVsZCA9PiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkXSwgc2VhcmNoVGV4dCkpKTtcclxuICB9XHJcbiAgaWYgKCFmaWVsZHMpIHtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgfVxyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkc10sIHNlYXJjaFRleHQpKTtcclxufTtcclxuXHJcbkFycmF5LnByb3RvdHlwZS5wYWdpbmcgPSBmdW5jdGlvbiA8VCA9IGFueT4ocGFnZVNpemU6IG51bWJlciwgcGFnZTogbnVtYmVyID0gMCk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgIHJldHVybiBpbmRleCA+PSBwYWdlICogcGFnZVNpemUgJiYgaW5kZXggPCAocGFnZSArIDEpICogcGFnZVNpemU7XHJcbiAgfSk7XHJcbn07XHJcblxyXG5BcnJheS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbiA8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFrZXkpIHtcclxuICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwpXHJcbiAgICAgIC5yZWR1Y2UoKG9iaiwgaXRlbSkgPT4ge1xyXG4gICAgICAgIG9ialtpdGVtPy50b1N0cmluZygpXSA9IGl0ZW07XHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgICAgfSwge30pO1xyXG4gIH1cclxuICByZXR1cm4gaXRlbXNcclxuICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbClcclxuICAgIC5yZWR1Y2UoKG9iaiwgaXRlbSkgPT4ge1xyXG4gICAgICBvYmpbaXRlbVtrZXldPy50b1N0cmluZygpXSA9IGl0ZW07XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9LCB7fSk7XHJcbn07XHJcblxyXG5BcnJheS5wcm90b3R5cGUudW5pb24gPSBmdW5jdGlvbiA8VCA9IGFueT4oa2V5Pzogc3RyaW5nLCAuLi5hcmdzOiBUW11bXSkge1xyXG4gIGxldCByZXN1bHRzOiBUW10gPSB0aGlzO1xyXG4gIGNvbnN0IGZpbHRlclVuaW9uID0gPFQgPSBhbnk+KHZhbDogVCwgaW5kZXg6IG51bWJlciwgc2VsZjogVFtdKSA9PlxyXG4gICAgdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsICYmIHNlbGYuZmluZEluZGV4KChlOiB7IFt4OiBzdHJpbmddOiBhbnkgfSkgPT4gKCEha2V5ID8gZVtrZXldID09PSB2YWxba2V5XSA6IGUgPT09IHZhbCkpID09PSBpbmRleDtcclxuICBpZiAoIWFyZ3M/Lmxlbmd0aCkge1xyXG4gICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKGZpbHRlclVuaW9uKTtcclxuICB9XHJcbiAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xyXG4gICAgICByZXN1bHRzID0gWy4uLnJlc3VsdHMsIC4uLmFyZ10uZmlsdGVyKGZpbHRlclVuaW9uKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdHM7XHJcbn07XHJcblxyXG5BcnJheS5wcm90b3R5cGUuYXNPYnNlcnZhYmxlID0gZnVuY3Rpb24gPFQgPSBhbnk+KCkge1xyXG4gIGNvbnN0IGl0ZW1zOiBUW10gPSB0aGlzO1xyXG4gIHJldHVybiBvZihpdGVtcyk7XHJcbn07XHJcblxyXG5BcnJheS5zZWFyY2ggPSA8VCA9IGFueT4oaXRlbXM6IFRbXSwgc2VhcmNoVGV4dDogc3RyaW5nIHwgbnVtYmVyLCBmaWVsZHM/OiBFeHRyYWN0PGtleW9mIFQsIHN0cmluZz4gfCBFeHRyYWN0PGtleW9mIFQsIHN0cmluZz5bXSkgPT4ge1xyXG4gIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zLnNlYXJjaChzZWFyY2hUZXh0LCBmaWVsZHMpO1xyXG59O1xyXG5cclxuQXJyYXkudW5pb24gPSA8VCA9IGFueT4oa2V5OiBFeHRyYWN0PGtleW9mIFQsIHN0cmluZz4sIC4uLmFyZ3M6IFRbXVtdKSA9PiB7XHJcbiAgcmV0dXJuIFtdLnVuaW9uKGtleSwgLi4uYXJncyk7XHJcbn07XHJcblxyXG5BcnJheS50b09iamVjdCA9IDxUPihpdGVtczogVFtdLCBrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfSA9PiB7XHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxuICByZXR1cm4gaXRlbXMudG9PYmplY3Qoa2V5KTtcclxufTtcclxuXHJcbkFycmF5LnN1bSA9IDxUPihpdGVtczogVFtdLCBrZXk6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPikgPT4ge1xyXG4gIHJldHVybiBpdGVtcz8ubWFwKGUgPT4gK2Vba2V5XSB8fCAwKS5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQgKyBuZXh0LCAwKTtcclxufTtcclxuIl19
|