ms-data-grid 0.0.129 → 0.0.130
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/esm2022/lib/data-grid/data-grid.component.mjs +777 -398
- package/esm2022/lib/directives/cell-render-init.directive.mjs +28 -8
- package/esm2022/lib/services/common.service.mjs +66 -1
- package/esm2022/lib/services/html-content-sanitizer.service.mjs +59 -0
- package/esm2022/lib/services/row-action.service.mjs +145 -0
- package/esm2022/lib/services/validations.service.mjs +63 -0
- package/fesm2022/ms-data-grid.mjs +1242 -522
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +89 -30
- package/lib/directives/cell-render-init.directive.d.ts +7 -3
- package/lib/services/common.service.d.ts +3 -0
- package/lib/services/html-content-sanitizer.service.d.ts +14 -0
- package/lib/services/row-action.service.d.ts +21 -0
- package/lib/services/validations.service.d.ts +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ValidationsService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
getValidator(column) {
|
|
6
|
+
if (!column?.validateFn)
|
|
7
|
+
return null;
|
|
8
|
+
if (column.__compiledValidateFn) {
|
|
9
|
+
return column.__compiledValidateFn;
|
|
10
|
+
}
|
|
11
|
+
if (typeof column.validateFn === 'function') {
|
|
12
|
+
column.__compiledValidateFn = column.validateFn;
|
|
13
|
+
return column.validateFn;
|
|
14
|
+
}
|
|
15
|
+
if (typeof column.validateFn === 'string') {
|
|
16
|
+
try {
|
|
17
|
+
const normalized = this.normalizeTsFn(column.validateFn);
|
|
18
|
+
const fn = new Function(`return ${normalized}`)();
|
|
19
|
+
if (typeof fn !== 'function')
|
|
20
|
+
return null;
|
|
21
|
+
column.__compiledValidateFn = fn;
|
|
22
|
+
return fn;
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
console.error(`Invalid validator function for column "${column?.header}"`, err);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
normalizeTsFn(fn) {
|
|
32
|
+
return fn
|
|
33
|
+
.replace(/:\s*[a-zA-Z0-9_<>\[\]\|]+/g, '')
|
|
34
|
+
.replace(/\)\s*:\s*[a-zA-Z0-9_<>\[\]\|]+\s*=>/g, ') =>')
|
|
35
|
+
.replace(/(interface|type)\s+\w+\s*{[^}]*}/g, '')
|
|
36
|
+
.trim();
|
|
37
|
+
}
|
|
38
|
+
findOriginalRow(dataset, rowId) {
|
|
39
|
+
for (const row of dataset) {
|
|
40
|
+
if (row.id === rowId || row._id === rowId)
|
|
41
|
+
return row;
|
|
42
|
+
if (row.children && row.children.length) {
|
|
43
|
+
const found = this.findOriginalRow(row.children, rowId);
|
|
44
|
+
if (found)
|
|
45
|
+
return found;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
isValueValid(row, column, value) {
|
|
51
|
+
const fn = this.getValidator(column);
|
|
52
|
+
return fn ? fn(row, column, value) : true;
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValidationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValidationsService, providedIn: 'root' }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValidationsService, decorators: [{
|
|
58
|
+
type: Injectable,
|
|
59
|
+
args: [{
|
|
60
|
+
providedIn: 'root'
|
|
61
|
+
}]
|
|
62
|
+
}], ctorParameters: function () { return []; } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvbGliL3NlcnZpY2VzL3ZhbGlkYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixnQkFBZ0IsQ0FBQztJQUVsQixZQUFZLENBQ1QsTUFBVztRQUVYLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXJDLElBQUksTUFBTSxDQUFDLG9CQUFvQixFQUFFO1lBQy9CLE9BQU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQ3BDO1FBRUQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUMxQjtRQUVELElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN6QyxJQUFJO2dCQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUV6RCxNQUFNLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFFbEQsSUFBSSxPQUFPLEVBQUUsS0FBSyxVQUFVO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUUxQyxNQUFNLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCwwQ0FBMEMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUMzRCxHQUFHLENBQ0osQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsRUFBVTtRQUM5QixPQUFPLEVBQUU7YUFDTixPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO2FBQ3pDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxNQUFNLENBQUM7YUFDdkQsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLEVBQUUsQ0FBQzthQUNoRCxJQUFJLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFHRCxlQUFlLENBQUMsT0FBYyxFQUFFLEtBQVU7UUFDeEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDekIsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUs7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDdEQsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3hELElBQUksS0FBSztvQkFBRSxPQUFPLEtBQUssQ0FBQzthQUN6QjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUEsWUFBWSxDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQUUsS0FBVTtRQUM3QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7K0dBL0RVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuIGdldFZhbGlkYXRvcihcbiAgICBjb2x1bW46IGFueVxuICApOiAoKHJvdzogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSkgPT4gYm9vbGVhbikgfCBudWxsIHtcbiAgICBpZiAoIWNvbHVtbj8udmFsaWRhdGVGbikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAoY29sdW1uLl9fY29tcGlsZWRWYWxpZGF0ZUZuKSB7XG4gICAgICByZXR1cm4gY29sdW1uLl9fY29tcGlsZWRWYWxpZGF0ZUZuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29sdW1uLnZhbGlkYXRlRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbHVtbi5fX2NvbXBpbGVkVmFsaWRhdGVGbiA9IGNvbHVtbi52YWxpZGF0ZUZuO1xuICAgICAgcmV0dXJuIGNvbHVtbi52YWxpZGF0ZUZuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29sdW1uLnZhbGlkYXRlRm4gPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVUc0ZuKGNvbHVtbi52YWxpZGF0ZUZuKTtcblxuICAgICAgICBjb25zdCBmbiA9IG5ldyBGdW5jdGlvbihgcmV0dXJuICR7bm9ybWFsaXplZH1gKSgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbHVtbi5fX2NvbXBpbGVkVmFsaWRhdGVGbiA9IGZuO1xuICAgICAgICByZXR1cm4gZm47XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgSW52YWxpZCB2YWxpZGF0b3IgZnVuY3Rpb24gZm9yIGNvbHVtbiBcIiR7Y29sdW1uPy5oZWFkZXJ9XCJgLFxuICAgICAgICAgIGVyclxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplVHNGbihmbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm5cbiAgICAgIC5yZXBsYWNlKC86XFxzKlthLXpBLVowLTlfPD5cXFtcXF1cXHxdKy9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXClcXHMqOlxccypbYS16QS1aMC05Xzw+XFxbXFxdXFx8XStcXHMqPT4vZywgJykgPT4nKVxuICAgICAgLnJlcGxhY2UoLyhpbnRlcmZhY2V8dHlwZSlcXHMrXFx3K1xccyp7W159XSp9L2csICcnKVxuICAgICAgLnRyaW0oKTtcbiAgfVxuXG5cbiAgZmluZE9yaWdpbmFsUm93KGRhdGFzZXQ6IGFueVtdLCByb3dJZDogYW55KTogYW55IHtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhc2V0KSB7XG4gICAgICBpZiAocm93LmlkID09PSByb3dJZCB8fCByb3cuX2lkID09PSByb3dJZCkgcmV0dXJuIHJvdztcbiAgICAgIGlmIChyb3cuY2hpbGRyZW4gJiYgcm93LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMuZmluZE9yaWdpbmFsUm93KHJvdy5jaGlsZHJlbiwgcm93SWQpO1xuICAgICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAgaXNWYWx1ZVZhbGlkKHJvdzogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZuID0gdGhpcy5nZXRWYWxpZGF0b3IoY29sdW1uKTtcbiAgICByZXR1cm4gZm4gPyBmbihyb3csIGNvbHVtbiwgdmFsdWUpIDogdHJ1ZTtcbiAgfVxufVxuIl19
|