@sumaris-net/ngx-components 0.25.13 → 0.25.14
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/sumaris-net.ngx-components.umd.js +12 -12
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/table/table.class.js +3 -3
- package/esm2015/src/app/shared/pipes/form.pipes.js +2 -2
- package/esm2015/src/app/shared/validator/form-error-adapter.class.js +10 -10
- package/fesm2015/sumaris-net.ngx-components.js +12 -12
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/table/table.class.d.ts +3 -3
- package/src/app/shared/validator/form-error-adapter.class.d.ts +7 -7
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -5,7 +5,7 @@ export class FormErrorTranslatePipe {
|
|
|
5
5
|
this.adapter = adapter;
|
|
6
6
|
}
|
|
7
7
|
transform(form, opts) {
|
|
8
|
-
return this.adapter.
|
|
8
|
+
return this.adapter.translateErrors(form, opts);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
FormErrorTranslatePipe.decorators = [
|
|
@@ -16,4 +16,4 @@ FormErrorTranslatePipe.decorators = [
|
|
|
16
16
|
FormErrorTranslatePipe.ctorParameters = () => [
|
|
17
17
|
{ type: FormErrorAdapter }
|
|
18
18
|
];
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFDLGdCQUFnQixFQUEwQixNQUFNLHVDQUF1QyxDQUFDO0FBS2hHLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFDVSxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUVuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWUsRUFBRSxJQUE4QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7WUFaRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLG9CQUFvQjthQUMzQjs7O1lBSk8sZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1FcnJvckFkYXB0ZXIsIEZvcm1FcnJvckFkYXB0ZXJPcHRpb25zfSBmcm9tICcuLi92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcblxuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsYXRlRm9ybUVycm9yJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlcjogRm9ybUVycm9yQWRhcHRlclxuICApIHtcbiAgfVxuXG4gIHRyYW5zZm9ybShmb3JtOiBGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci50cmFuc2xhdGVFcnJvcnMoZm9ybSwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,20 +11,20 @@ export class FormErrorAdapter {
|
|
|
11
11
|
this.translate = translate;
|
|
12
12
|
this.errorI18nKeys = Object.assign(Object.assign({}, SharedValidators.I18N_ERROR_KEYS), errorI18nKeys);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
if (!
|
|
14
|
+
translateErrors(control, opts) {
|
|
15
|
+
if (!control || !control.invalid)
|
|
16
16
|
return '';
|
|
17
17
|
const separator = opts && opts.separator || ', ';
|
|
18
18
|
const recursive = !opts || opts.recursive !== false;
|
|
19
|
-
const errors = AppFormUtils.getFormErrors(
|
|
19
|
+
const errors = AppFormUtils.getFormErrors(control, { recursive });
|
|
20
20
|
return errors && Object.keys(errors).reduce((res, path) => {
|
|
21
|
-
const
|
|
21
|
+
const childControl = control.get(path);
|
|
22
22
|
// Should be a control map of errors
|
|
23
|
-
if (
|
|
23
|
+
if (childControl) {
|
|
24
24
|
// Try to convert the control path
|
|
25
|
-
const i18nPath = this.
|
|
25
|
+
const i18nPath = this.translateControlPath(path, opts);
|
|
26
26
|
// OK, we have a field name: use it
|
|
27
|
-
const columnErrors = Object.keys(
|
|
27
|
+
const columnErrors = Object.keys(childControl.errors).map(errorKey => this.translateError(errorKey, childControl.errors[errorKey]));
|
|
28
28
|
if (isEmptyArray(columnErrors))
|
|
29
29
|
return res;
|
|
30
30
|
// Add separator
|
|
@@ -39,9 +39,9 @@ export class FormErrorAdapter {
|
|
|
39
39
|
return res + (res.length ? separator : '') + formError;
|
|
40
40
|
}, "");
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
translateControlPath(path, opts) {
|
|
43
43
|
if (opts === null || opts === void 0 ? void 0 : opts.pathTranslateService) {
|
|
44
|
-
return opts === null || opts === void 0 ? void 0 : opts.pathTranslateService.
|
|
44
|
+
return opts === null || opts === void 0 ? void 0 : opts.pathTranslateService.translateControlPath(path);
|
|
45
45
|
}
|
|
46
46
|
const i18nKey = (opts && opts.i18nPrefix || '') + changeCaseToUnderscore(path).toUpperCase();
|
|
47
47
|
return this.translate.instant(i18nKey);
|
|
@@ -72,4 +72,4 @@ FormErrorAdapter.ctorParameters = () => [
|
|
|
72
72
|
{ type: TranslateService },
|
|
73
73
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_FORM_ERROR_I18N_KEYS,] }] }
|
|
74
74
|
];
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdmFsaWRhdG9yL2Zvcm0tZXJyb3ItYWRhcHRlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUk5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBb0Isa0JBQWtCLENBQUMsQ0FBQztBQWFsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsU0FBMkIsRUFDVyxhQUFnQztRQUR0RSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUduQyxJQUFJLENBQUMsYUFBYSxtQ0FDYixnQkFBZ0IsQ0FBQyxlQUFlLEdBQ2hDLGFBQWEsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBd0IsRUFBRSxJQUE4QjtRQUN0RSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUE7UUFDbkQsTUFBTSxNQUFN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dEQ7UUFFRCw2QkFBNkI7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsUUFBUSxnRkFBZ0YsQ0FBQyxDQUFDO1FBRTVKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7WUF2RUYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBbkJ4QixnQkFBZ0I7NENBMEJuQixRQUFRLFlBQUksTUFBTSxTQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZSwgaXNFbXB0eUFycmF5LCBpc05pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXBwRm9ybVV0aWxzfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0vZm9ybS51dGlscyc7XG5pbXBvcnQge1NoYXJlZFZhbGlkYXRvcnN9IGZyb20gJy4vdmFsaWRhdG9ycyc7XG5pbXBvcnQge09iamVjdE1hcH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5cbmV4cG9ydCBjb25zdCBBUFBfRk9STV9FUlJPUl9JMThOX0tFWVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JqZWN0TWFwPHN0cmluZz4+KCdhcHBGb3JtRXJyb3JLZXlzJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0ZVNlcnZpY2Uge1xuICB0cmFuc2xhdGVDb250cm9sUGF0aDogKGNvbnRyb2xQYXRoOiBzdHJpbmcpID0+IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUVycm9yQWRhcHRlck9wdGlvbnMge1xuICBpMThuUHJlZml4Pzogc3RyaW5nO1xuICBwYXRoVHJhbnNsYXRlU2VydmljZT86IElGb3JtQ29udHJvbFBhdGhUcmFuc2xhdGVTZXJ2aWNlO1xuICBzZXBhcmF0b3I/OiBzdHJpbmc7XG4gIHJlY3Vyc2l2ZT86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckFkYXB0ZXIgaW1wbGVtZW50cyBJRm9ybUNvbnRyb2xQYXRoVHJhbnNsYXRlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvckkxOG5LZXlzOiBPYmplY3RNYXA8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9GT1JNX0VSUk9SX0kxOE5fS0VZUykgZXJyb3JJMThuS2V5czogT2JqZWN0TWFwPHN0cmluZz5cbiAgKSB7XG4gICAgdGhpcy5lcnJvckkxOG5LZXlzID0ge1xuICAgICAgLi4uU2hhcmVkVmFsaWRhdG9ycy5JMThOX0VSUk9SX0tFWVMsXG4gICAgICAuLi5lcnJvckkxOG5LZXlzXG4gICAgfTtcbiAgfVxuXG4gIHRyYW5zbGF0ZUVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIG9wdHM/OiBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb250cm9sIHx8ICFjb250cm9sLmludmFsaWQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMgJiYgb3B0cy5zZXBhcmF0b3IgfHwgJywgJztcbiAgICBjb25zdCByZWN1cnNpdmUgPSAhb3B0cyB8fCBvcHRzLnJlY3Vyc2l2ZSAhPT0gZmFsc2VcbiAgICBjb25zdCBlcnJvcnMgPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybUVycm9ycyhjb250cm9sLCB7cmVjdXJzaXZlfSk7XG4gICAgcmV0dXJuIGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLnJlZHVjZSgocmVzLCBwYXRoKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNoaWxkQ29udHJvbCA9IGNvbnRyb2wuZ2V0KHBhdGgpO1xuICAgICAgLy8gU2hvdWxkIGJlIGEgY29udHJvbCBtYXAgb2YgZXJyb3JzXG4gICAgICBpZiAoY2hpbGRDb250cm9sKSB7XG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0IHRoZSBjb250cm9sIHBhdGhcbiAgICAgICAgY29uc3QgaTE4blBhdGggPSB0aGlzLnRyYW5zbGF0ZUNvbnRyb2xQYXRoKHBhdGgsIG9wdHMpO1xuXG4gICAgICAgIC8vIE9LLCB3ZSBoYXZlIGEgZmllbGQgbmFtZTogdXNlIGl0XG4gICAgICAgIGNvbnN0IGNvbHVtbkVycm9ycyA9IE9iamVjdC5rZXlzKGNoaWxkQ29udHJvbC5lcnJvcnMpLm1hcChlcnJvcktleSA9PiB0aGlzLnRyYW5zbGF0ZUVycm9yKGVycm9yS2V5LCBjaGlsZENvbnRyb2wuZXJyb3JzW2Vycm9yS2V5XSkpO1xuICAgICAgICBpZiAoaXNFbXB0eUFycmF5KGNvbHVtbkVycm9ycykpIHJldHVybiByZXM7XG4gICAgICAgIC8vIEFkZCBzZXBhcmF0b3JcbiAgICAgICAgaWYgKHJlcy5sZW5ndGgpIHJlcyArPSBzZXBhcmF0b3I7XG4gICAgICAgIHJldHVybiByZXMgKyBpMThuUGF0aCArIFwiOiBcIiArIGNvbHVtbkVycm9ycy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIHRyeSBhcyBnbG9iYWwgZm9ybSBlcnJvclxuICAgICAgY29uc3QgZm9ybUVycm9yID0gdGhpcy50cmFuc2xhdGVFcnJvcihwYXRoLCBlcnJvcnNbcGF0aF0pO1xuICAgICAgaWYgKGlzTmlsKGZvcm1FcnJvcikpIHJldHVybiByZXM7XG4gICAgICByZXR1cm4gcmVzICsgKHJlcy5sZW5ndGggPyBzZXBhcmF0b3IgOiAnJykgKyBmb3JtRXJyb3I7XG4gICAgfSwgXCJcIik7XG4gIH1cblxuICB0cmFuc2xhdGVDb250cm9sUGF0aChwYXRoOiBzdHJpbmcsIG9wdHM/OiBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyk6IHN0cmluZ3tcbiAgICBpZiAob3B0cz8ucGF0aFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBvcHRzPy5wYXRoVHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVDb250cm9sUGF0aChwYXRoKTtcbiAgICB9XG4gICAgY29uc3QgaTE4bktleSA9IChvcHRzICYmIG9wdHMuaTE4blByZWZpeCB8fCAnJykgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKHBhdGgpLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaTE4bktleSk7XG4gIH1cblxuICB0cmFuc2xhdGVFcnJvcihlcnJvcktleTogc3RyaW5nLCBlcnJvckNvbnRlbnQ/OiBhbnkpIHtcblxuICAgIGNvbnN0IGkxOG5LZXkgPSB0aGlzLmVycm9ySTE4bktleXNbZXJyb3JLZXldXG4gICAgICAvLyBUcnkgdG8gZ2VuZXJhdGUgYSBzdGFuZGFyZCBlcnJvciBrZXksIGxpa2UgJ0VSUk9SLkZJRUxEX3h4eF94eHgnXG4gICAgICB8fCAoJ0VSUk9SLkZJRUxEXycgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKGVycm9yS2V5KS50b1VwcGVyQ2FzZSgpKTtcblxuICAgIGxldCBpMThuTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaTE4bktleSwgZXJyb3JDb250ZW50KTtcbiAgICBpZiAoaTE4bktleSAhPT0gaTE4bk1lc3NhZ2UpIHJldHVybiBpMThuTWVzc2FnZTtcblxuICAgIC8vIFRyeSB0byB1c2UgdGhlIGVycm9yIGNvbnRlbnQsIGFzIGFuIGkxOG4ga2V5XG4gICAgaWYgKHR5cGVvZiBlcnJvckNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpMThuTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZXJyb3JDb250ZW50KTtcbiAgICAgIGlmIChlcnJvckNvbnRlbnQgIT09IGkxOG5NZXNzYWdlKSByZXR1cm4gaTE4bk1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLy8gTm90IHRyYW5zbGF0ZWQ6IHNob3cgZXJyb3JcbiAgICBjb25zb2xlLmVycm9yKGBbZm9ybS1lcnJvci1hZGFwdGVyXSBDYW5ub3QgdHJhbnNsYXRlIGVycm9yIGtleSAnJHtlcnJvcktleX0nLiBQbGVhc2UgYWRkIG1vcmUgZm9ybUVycm9yc0tleSBpbnRvIEFQUF9GT1JNX0VSUk9SX0kxOE5fS0VZUyBpbmplY3Rpb24gdG9rZW5gKTtcblxuICAgIHJldHVybiBlcnJvcktleTtcbiAgfVxufVxuIl19
|
|
@@ -3475,20 +3475,20 @@ class FormErrorAdapter {
|
|
|
3475
3475
|
this.translate = translate;
|
|
3476
3476
|
this.errorI18nKeys = Object.assign(Object.assign({}, SharedValidators.I18N_ERROR_KEYS), errorI18nKeys);
|
|
3477
3477
|
}
|
|
3478
|
-
|
|
3479
|
-
if (!
|
|
3478
|
+
translateErrors(control, opts) {
|
|
3479
|
+
if (!control || !control.invalid)
|
|
3480
3480
|
return '';
|
|
3481
3481
|
const separator = opts && opts.separator || ', ';
|
|
3482
3482
|
const recursive = !opts || opts.recursive !== false;
|
|
3483
|
-
const errors = AppFormUtils.getFormErrors(
|
|
3483
|
+
const errors = AppFormUtils.getFormErrors(control, { recursive });
|
|
3484
3484
|
return errors && Object.keys(errors).reduce((res, path) => {
|
|
3485
|
-
const
|
|
3485
|
+
const childControl = control.get(path);
|
|
3486
3486
|
// Should be a control map of errors
|
|
3487
|
-
if (
|
|
3487
|
+
if (childControl) {
|
|
3488
3488
|
// Try to convert the control path
|
|
3489
|
-
const i18nPath = this.
|
|
3489
|
+
const i18nPath = this.translateControlPath(path, opts);
|
|
3490
3490
|
// OK, we have a field name: use it
|
|
3491
|
-
const columnErrors = Object.keys(
|
|
3491
|
+
const columnErrors = Object.keys(childControl.errors).map(errorKey => this.translateError(errorKey, childControl.errors[errorKey]));
|
|
3492
3492
|
if (isEmptyArray(columnErrors))
|
|
3493
3493
|
return res;
|
|
3494
3494
|
// Add separator
|
|
@@ -3503,9 +3503,9 @@ class FormErrorAdapter {
|
|
|
3503
3503
|
return res + (res.length ? separator : '') + formError;
|
|
3504
3504
|
}, "");
|
|
3505
3505
|
}
|
|
3506
|
-
|
|
3506
|
+
translateControlPath(path, opts) {
|
|
3507
3507
|
if (opts === null || opts === void 0 ? void 0 : opts.pathTranslateService) {
|
|
3508
|
-
return opts === null || opts === void 0 ? void 0 : opts.pathTranslateService.
|
|
3508
|
+
return opts === null || opts === void 0 ? void 0 : opts.pathTranslateService.translateControlPath(path);
|
|
3509
3509
|
}
|
|
3510
3510
|
const i18nKey = (opts && opts.i18nPrefix || '') + changeCaseToUnderscore(path).toUpperCase();
|
|
3511
3511
|
return this.translate.instant(i18nKey);
|
|
@@ -3542,7 +3542,7 @@ class FormErrorTranslatePipe {
|
|
|
3542
3542
|
this.adapter = adapter;
|
|
3543
3543
|
}
|
|
3544
3544
|
transform(form, opts) {
|
|
3545
|
-
return this.adapter.
|
|
3545
|
+
return this.adapter.translateErrors(form, opts);
|
|
3546
3546
|
}
|
|
3547
3547
|
}
|
|
3548
3548
|
FormErrorTranslatePipe.decorators = [
|
|
@@ -21112,7 +21112,7 @@ class AppTable {
|
|
|
21112
21112
|
}
|
|
21113
21113
|
}
|
|
21114
21114
|
}
|
|
21115
|
-
|
|
21115
|
+
translateControlPath(path) {
|
|
21116
21116
|
// Can be override by subclasses, to resolve all field name
|
|
21117
21117
|
var _a;
|
|
21118
21118
|
// Use columns key, has default name
|
|
@@ -21493,7 +21493,7 @@ class AppTable {
|
|
|
21493
21493
|
row = row || this.editedRow;
|
|
21494
21494
|
if (!row || !this.formErrorAdapter)
|
|
21495
21495
|
return undefined;
|
|
21496
|
-
return this.formErrorAdapter.
|
|
21496
|
+
return this.formErrorAdapter.translateErrors(row.validator, Object.assign({ pathTranslateService: this }, opts));
|
|
21497
21497
|
}
|
|
21498
21498
|
setError(value, opts) {
|
|
21499
21499
|
if (this.errorSubject.value !== value) {
|