ecabs-components 1.0.33 → 1.0.34
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/base/validation/validation.component.mjs +13 -5
- package/esm2022/lib/services/ecabs-components.service.mjs +15 -5
- package/fesm2022/ecabs-components.mjs +26 -9
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/validation/validation.component.d.ts +4 -2
- package/lib/services/ecabs-components.service.d.ts +6 -3
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ export class ValidationComponent {
|
|
|
10
10
|
updatedErrors;
|
|
11
11
|
config;
|
|
12
12
|
_messages = {};
|
|
13
|
+
configSubscription;
|
|
13
14
|
get messages() {
|
|
14
15
|
if (this.element) {
|
|
15
16
|
for (const errorKey in this.element.errors) {
|
|
@@ -29,10 +30,12 @@ export class ValidationComponent {
|
|
|
29
30
|
this.ecabsService = ecabsService;
|
|
30
31
|
}
|
|
31
32
|
ngOnInit() {
|
|
32
|
-
this.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
this.configSubscription = this.ecabsService.getConfig().subscribe(value => {
|
|
34
|
+
this.config = value;
|
|
35
|
+
for (let error of value?.errorMessages) {
|
|
36
|
+
this.messages[error.type] = this.replaceTokens(error.message);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
36
39
|
}
|
|
37
40
|
ngOnChanges(changes) {
|
|
38
41
|
const { updatedErrors } = changes;
|
|
@@ -44,6 +47,11 @@ export class ValidationComponent {
|
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
if (this.configSubscription) {
|
|
52
|
+
this.configSubscription.unsubscribe();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
replaceTokens(message) {
|
|
48
56
|
let retMessage;
|
|
49
57
|
if (this.label) {
|
|
@@ -72,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
72
80
|
}], updatedErrors: [{
|
|
73
81
|
type: Input
|
|
74
82
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDOzs7O0FBWXZCLE1BQU0sT0FBTyxtQkFBbUI7SUE4QlQ7SUE3QlosT0FBTyxDQUFPO0lBQ2QsS0FBSyxDQUFVO0lBQ2YsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLGFBQWEsQ0FBdUM7SUFDN0QsTUFBTSxDQUF5QjtJQUN2QixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLGtCQUFrQixDQUFlO0lBRXpDLElBQUksUUFBUTtRQUNWLElBQUssSUFBSSxDQUFDLE9BQU8sRUFBRztZQUNsQixLQUFNLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFHO2dCQUM1QyxLQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFFLFFBQVEsQ0FBRSxFQUFHO29CQUNuRCxJQUFLLElBQUksQ0FBQyxTQUFTLENBQUUsUUFBUSxDQUFFLEVBQUc7d0JBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUUsUUFBUSxDQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxRQUFRLENBQUUsQ0FBQyxPQUFPLENBQzdELElBQUssR0FBSSxHQUFHLEVBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUUsUUFBUSxDQUFFLENBQUUsR0FBRyxDQUFFLENBQ3ZDLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQXFCLFlBQW9DO1FBQXBDLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtJQUFLLENBQUM7SUFFL0QsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUVwQixLQUFNLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxhQUFhLEVBQUc7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUUsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBRSxDQUFDO2FBQ25FO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsV0FBVyxDQUFFLE9BQXNCO1FBQ2pDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFbEMsSUFDRSxhQUFhO1lBQ2IsYUFBYSxDQUFDLFlBQVk7WUFDMUIsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyQztZQUNBLEtBQU0sTUFBTSxLQUFLLElBQUksYUFBYSxDQUFDLFlBQVksRUFBRztnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBRSxLQUFLLENBQUMsSUFBSSxDQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQzthQUM3QztTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFFLE9BQWU7UUFDNUIsSUFBSSxVQUFrQixDQUFDO1FBQ3ZCLElBQUssSUFBSSxDQUFDLEtBQUssRUFBRztZQUNoQixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFFLEdBQVE7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBQzlCLENBQUM7d0dBN0VVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLGlPQ25CaEMsc1RBUUE7OzRGRFdhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSw0QkFBNEI7NkdBSzdCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEVjYWJzQ29tcG9uZW50c0NvbmZpZyxcclxuICBFY2Fic0NvbXBvbmVudHNTZXJ2aWNlLFxyXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCgge1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtdmFsaWRhdGlvbnMtbWVzc2FnZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdmFsaWRhdGlvbi5jb21wb25lbnQuc2NzcycgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZWxlbWVudCE6IGFueTtcclxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbk9uTm90VG91Y2hlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVwZGF0ZWRFcnJvcnMhOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXTtcclxuICBjb25maWchOiBFY2Fic0NvbXBvbmVudHNDb25maWc7XHJcbiAgcHJpdmF0ZSBfbWVzc2FnZXM6IGFueSA9IHt9O1xyXG4gIHByaXZhdGUgY29uZmlnU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGdldCBtZXNzYWdlcygpOiBhbnkge1xyXG4gICAgaWYgKCB0aGlzLmVsZW1lbnQgKSB7XHJcbiAgICAgIGZvciAoIGNvbnN0IGVycm9yS2V5IGluIHRoaXMuZWxlbWVudC5lcnJvcnMgKSB7XHJcbiAgICAgICAgZm9yICggY29uc3Qga2V5IGluIHRoaXMuZWxlbWVudC5lcnJvcnNbIGVycm9yS2V5IF0gKSB7XHJcbiAgICAgICAgICBpZiAoIHRoaXMuX21lc3NhZ2VzWyBlcnJvcktleSBdICkge1xyXG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlc1sgZXJyb3JLZXkgXSA9IHRoaXMuX21lc3NhZ2VzWyBlcnJvcktleSBdLnJlcGxhY2UoXHJcbiAgICAgICAgICAgICAgYFskeyBrZXkgfV1gLFxyXG4gICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5lcnJvcnNbIGVycm9yS2V5IF1bIGtleSBdXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgc2V0IG1lc3NhZ2VzKCBtICkge1xyXG4gICAgdGhpcy5fbWVzc2FnZXMgPSBtO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgZWNhYnNTZXJ2aWNlOiBFY2Fic0NvbXBvbmVudHNTZXJ2aWNlICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb25maWdTdWJzY3JpcHRpb24gPSB0aGlzLmVjYWJzU2VydmljZS5nZXRDb25maWcoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHZhbHVlO1xyXG5cclxuICAgICAgZm9yICggbGV0IGVycm9yIG9mIHZhbHVlPy5lcnJvck1lc3NhZ2VzICkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXNbIGVycm9yLnR5cGUgXSA9IHRoaXMucmVwbGFjZVRva2VucyggZXJyb3IubWVzc2FnZSApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkNoYW5nZXMoIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHVwZGF0ZWRFcnJvcnMgfSA9IGNoYW5nZXM7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB1cGRhdGVkRXJyb3JzICYmXHJcbiAgICAgIHVwZGF0ZWRFcnJvcnMuY3VycmVudFZhbHVlICYmXHJcbiAgICAgIHVwZGF0ZWRFcnJvcnMuY3VycmVudFZhbHVlLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICBmb3IgKCBjb25zdCBlcnJvciBvZiB1cGRhdGVkRXJyb3JzLmN1cnJlbnRWYWx1ZSApIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzWyBlcnJvci50eXBlIF0gPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmNvbmZpZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVwbGFjZVRva2VucyggbWVzc2FnZTogc3RyaW5nICk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmV0TWVzc2FnZTogc3RyaW5nO1xyXG4gICAgaWYgKCB0aGlzLmxhYmVsICkge1xyXG4gICAgICByZXRNZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKCAnW2xhYmVsXScsIHRoaXMubGFiZWwgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXRNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVzc2FnZURldGFpbCgga2V5OiBhbnkgKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzWyBrZXkgXTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiZm9ybS1maWVsZF9fdmFsaWRhdGlvblwiXHJcbiAgKm5nSWY9XCJlbGVtZW50ICYmIChlbGVtZW50Py50b3VjaGVkIHx8IHNob3dWYWxpZGF0aW9uT25Ob3RUb3VjaGVkKSAmJiBlbGVtZW50Py5pbnZhbGlkXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX192YWxpZGF0aW9uX19pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZWxlbWVudD8uZXJyb3JzIHwga2V5dmFsdWVcIj5cclxuICAgIHt7IGdldE1lc3NhZ2VEZXRhaWwoaXRlbS5rZXkpIH19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class EcabsComponentsService {
|
|
4
|
-
|
|
5
|
+
defaultConfig = {
|
|
5
6
|
errorMessages: [
|
|
6
7
|
{ type: 'required', message: '[label] is required' },
|
|
7
8
|
{ type: 'minlength', message: '[label] should be atleast [requiredLength] character' },
|
|
@@ -12,12 +13,21 @@ export class EcabsComponentsService {
|
|
|
12
13
|
{ type: 'maxValue', message: '[label] should be maximum [requiredMax]' },
|
|
13
14
|
],
|
|
14
15
|
};
|
|
16
|
+
_config = new BehaviorSubject(this.defaultConfig);
|
|
15
17
|
constructor() { }
|
|
16
|
-
setConfig(
|
|
17
|
-
this.config
|
|
18
|
+
setConfig(config) {
|
|
19
|
+
this._config.next(config);
|
|
18
20
|
}
|
|
19
21
|
getConfig() {
|
|
20
|
-
return this.
|
|
22
|
+
return this._config.asObservable();
|
|
23
|
+
}
|
|
24
|
+
updateConfig(configUpdate) {
|
|
25
|
+
const currentConfig = this._config.getValue();
|
|
26
|
+
const updatedConfig = {
|
|
27
|
+
...currentConfig,
|
|
28
|
+
errorMessages: [...currentConfig.errorMessages, ...configUpdate.errorMessages],
|
|
29
|
+
};
|
|
30
|
+
this._config.next(updatedConfig);
|
|
21
31
|
}
|
|
22
32
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
33
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsComponentsService, providedIn: 'root' });
|
|
@@ -28,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28
38
|
providedIn: 'root',
|
|
29
39
|
}]
|
|
30
40
|
}], ctorParameters: function () { return []; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsYUFBYSxHQUEwQjtRQUNyQyxhQUFhLEVBQUU7WUFDYixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFO1lBQ3BELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsc0RBQXNELEVBQUU7WUFDdEYsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxzREFBc0QsRUFBRTtZQUN0RixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFO1lBQzFELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUU7WUFDM0QsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRTtZQUN2RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFO1NBQ3pFO0tBQ0YsQ0FBQztJQUVNLE9BQU8sR0FBMkMsSUFBSSxlQUFlLENBQXdCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV6SCxnQkFBZSxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxNQUE2QjtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW1DO1FBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsTUFBTSxhQUFhLEdBQUc7WUFDcEIsR0FBRyxhQUFhO1lBQ2hCLGFBQWEsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUM7U0FDL0UsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBakNVLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzQ29tcG9uZW50c1NlcnZpY2Uge1xyXG4gIGRlZmF1bHRDb25maWc6IEVjYWJzQ29tcG9uZW50c0NvbmZpZyA9IHtcclxuICAgIGVycm9yTWVzc2FnZXM6IFtcclxuICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnW2xhYmVsXSBpcyByZXF1aXJlZCcgfSxcclxuICAgICAgeyB0eXBlOiAnbWlubGVuZ3RoJywgbWVzc2FnZTogJ1tsYWJlbF0gc2hvdWxkIGJlIGF0bGVhc3QgW3JlcXVpcmVkTGVuZ3RoXSBjaGFyYWN0ZXInIH0sXHJcbiAgICAgIHsgdHlwZTogJ21heExlbmd0aCcsIG1lc3NhZ2U6ICdbbGFiZWxdIHNob3VsZCBiZSBtYXhpbXVtIFtyZXF1aXJlZExlbmd0aF0gY2hhcmFjdGVyJyB9LFxyXG4gICAgICB7IHR5cGU6ICdtaW4nLCBtZXNzYWdlOiAnW2xhYmVsXSBzaG91bGQgYmUgbWlubXVtIFttaW5dJyB9LFxyXG4gICAgICB7IHR5cGU6ICdtYXgnLCBtZXNzYWdlOiAnW2xhYmVsXSBzaG91bGQgYmUgbWF4aW11bSBbbWF4XScgfSxcclxuICAgICAgeyB0eXBlOiAnbWluVmFsdWUnLCBtZXNzYWdlOiAnW2xhYmVsXSBzaG91bGQgYmUgbWlubXVtIFtyZXF1aXJlZE1pbl0nIH0sXHJcbiAgICAgIHsgdHlwZTogJ21heFZhbHVlJywgbWVzc2FnZTogJ1tsYWJlbF0gc2hvdWxkIGJlIG1heGltdW0gW3JlcXVpcmVkTWF4XScgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfY29uZmlnOiBCZWhhdmlvclN1YmplY3Q8RWNhYnNDb21wb25lbnRzQ29uZmlnPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWNhYnNDb21wb25lbnRzQ29uZmlnPih0aGlzLmRlZmF1bHRDb25maWcpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHNldENvbmZpZyhjb25maWc6IEVjYWJzQ29tcG9uZW50c0NvbmZpZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIGdldENvbmZpZygpOiBPYnNlcnZhYmxlPEVjYWJzQ29tcG9uZW50c0NvbmZpZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWdVcGRhdGU6IEVjYWJzQ29tcG9uZW50c0NvbmZpZykge1xyXG4gICAgY29uc3QgY3VycmVudENvbmZpZyA9IHRoaXMuX2NvbmZpZy5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcclxuICAgICAgLi4uY3VycmVudENvbmZpZyxcclxuICAgICAgZXJyb3JNZXNzYWdlczogWy4uLmN1cnJlbnRDb25maWcuZXJyb3JNZXNzYWdlcywgLi4uY29uZmlnVXBkYXRlLmVycm9yTWVzc2FnZXNdLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLl9jb25maWcubmV4dCh1cGRhdGVkQ29uZmlnKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWNhYnNDb21wb25lbnRzQ29uZmlnIHtcclxuICBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTWVzc2FnZSB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -8,6 +8,7 @@ import * as i3 from '@angular/material/icon';
|
|
|
8
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
9
9
|
import * as i3$1 from '@angular/forms';
|
|
10
10
|
import { NgControl, NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
|
|
11
|
+
import { BehaviorSubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil } from 'rxjs';
|
|
11
12
|
import * as i5$1 from '@angular/material/legacy-tooltip';
|
|
12
13
|
import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';
|
|
13
14
|
import { MatLegacyInputModule } from '@angular/material/legacy-input';
|
|
@@ -20,7 +21,6 @@ import { MatLegacySelectModule, MAT_LEGACY_SELECT_SCROLL_STRATEGY } from '@angul
|
|
|
20
21
|
import { Overlay } from '@angular/cdk/overlay';
|
|
21
22
|
import * as i1$1 from '@angular/material/tooltip';
|
|
22
23
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
23
|
-
import { BehaviorSubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil } from 'rxjs';
|
|
24
24
|
import * as i5$2 from '@angular/material/legacy-core';
|
|
25
25
|
import * as i3$3 from '@angular/material/legacy-checkbox';
|
|
26
26
|
import { MatLegacyCheckboxModule } from '@angular/material/legacy-checkbox';
|
|
@@ -271,7 +271,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
271
271
|
}] } });
|
|
272
272
|
|
|
273
273
|
class EcabsComponentsService {
|
|
274
|
-
|
|
274
|
+
defaultConfig = {
|
|
275
275
|
errorMessages: [
|
|
276
276
|
{ type: 'required', message: '[label] is required' },
|
|
277
277
|
{ type: 'minlength', message: '[label] should be atleast [requiredLength] character' },
|
|
@@ -282,12 +282,21 @@ class EcabsComponentsService {
|
|
|
282
282
|
{ type: 'maxValue', message: '[label] should be maximum [requiredMax]' },
|
|
283
283
|
],
|
|
284
284
|
};
|
|
285
|
+
_config = new BehaviorSubject(this.defaultConfig);
|
|
285
286
|
constructor() { }
|
|
286
|
-
setConfig(
|
|
287
|
-
this.config
|
|
287
|
+
setConfig(config) {
|
|
288
|
+
this._config.next(config);
|
|
288
289
|
}
|
|
289
290
|
getConfig() {
|
|
290
|
-
return this.
|
|
291
|
+
return this._config.asObservable();
|
|
292
|
+
}
|
|
293
|
+
updateConfig(configUpdate) {
|
|
294
|
+
const currentConfig = this._config.getValue();
|
|
295
|
+
const updatedConfig = {
|
|
296
|
+
...currentConfig,
|
|
297
|
+
errorMessages: [...currentConfig.errorMessages, ...configUpdate.errorMessages],
|
|
298
|
+
};
|
|
299
|
+
this._config.next(updatedConfig);
|
|
291
300
|
}
|
|
292
301
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
293
302
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsComponentsService, providedIn: 'root' });
|
|
@@ -307,6 +316,7 @@ class ValidationComponent {
|
|
|
307
316
|
updatedErrors;
|
|
308
317
|
config;
|
|
309
318
|
_messages = {};
|
|
319
|
+
configSubscription;
|
|
310
320
|
get messages() {
|
|
311
321
|
if (this.element) {
|
|
312
322
|
for (const errorKey in this.element.errors) {
|
|
@@ -326,10 +336,12 @@ class ValidationComponent {
|
|
|
326
336
|
this.ecabsService = ecabsService;
|
|
327
337
|
}
|
|
328
338
|
ngOnInit() {
|
|
329
|
-
this.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
339
|
+
this.configSubscription = this.ecabsService.getConfig().subscribe(value => {
|
|
340
|
+
this.config = value;
|
|
341
|
+
for (let error of value?.errorMessages) {
|
|
342
|
+
this.messages[error.type] = this.replaceTokens(error.message);
|
|
343
|
+
}
|
|
344
|
+
});
|
|
333
345
|
}
|
|
334
346
|
ngOnChanges(changes) {
|
|
335
347
|
const { updatedErrors } = changes;
|
|
@@ -341,6 +353,11 @@ class ValidationComponent {
|
|
|
341
353
|
}
|
|
342
354
|
}
|
|
343
355
|
}
|
|
356
|
+
ngOnDestroy() {
|
|
357
|
+
if (this.configSubscription) {
|
|
358
|
+
this.configSubscription.unsubscribe();
|
|
359
|
+
}
|
|
360
|
+
}
|
|
344
361
|
replaceTokens(message) {
|
|
345
362
|
let retMessage;
|
|
346
363
|
if (this.label) {
|