@sumaris-net/ngx-components 0.25.20 → 0.26.0
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 +53 -34
- 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/doc/changelog.md +6 -0
- package/esm2015/src/app/core/account/account.js +5 -7
- package/esm2015/src/app/core/auth/form/form-auth.js +6 -7
- package/esm2015/src/app/core/form/entity-editor.class.js +12 -5
- package/esm2015/src/app/core/form/form.class.js +29 -12
- package/esm2015/src/app/core/form/list.form.js +2 -2
- package/esm2015/src/app/core/form/properties.form.js +2 -3
- package/esm2015/src/app/core/settings/settings.page.js +5 -7
- package/esm2015/src/app/core/table/table.class.js +4 -4
- package/esm2015/src/app/shared/pipes/form.pipes.js +1 -1
- package/esm2015/src/app/shared/validator/form-error-adapter.class.js +3 -3
- package/fesm2015/sumaris-net.ngx-components.js +52 -34
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/account/account.d.ts +2 -5
- package/src/app/core/auth/form/form-auth.d.ts +2 -4
- package/src/app/core/form/entity-editor.class.d.ts +9 -2
- package/src/app/core/form/form.class.d.ts +15 -12
- package/src/app/core/form/properties.form.d.ts +0 -1
- package/src/app/core/settings/settings.page.d.ts +2 -5
- package/src/app/core/table/table.class.d.ts +4 -7
- package/src/app/shared/pipes/form.pipes.d.ts +2 -2
- package/src/app/shared/validator/form-error-adapter.class.d.ts +6 -6
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFDLGdCQUFnQixFQUE2QixNQUFNLHVDQUF1QyxDQUFDO0FBS25HLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFDVSxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUVuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWUsRUFBRSxJQUFpQztRQUMxRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7WUFaRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLG9CQUFvQjthQUMzQjs7O1lBSk8sZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1FcnJvckFkYXB0ZXIsIEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zfSBmcm9tICcuLi92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcblxuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsYXRlRm9ybUVycm9yJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlcjogRm9ybUVycm9yQWRhcHRlclxuICApIHtcbiAgfVxuXG4gIHRyYW5zZm9ybShmb3JtOiBGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci50cmFuc2xhdGVFcnJvcnMoZm9ybSwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -40,8 +40,8 @@ export class FormErrorAdapter {
|
|
|
40
40
|
}, "");
|
|
41
41
|
}
|
|
42
42
|
translateControlPath(path, opts) {
|
|
43
|
-
if (opts === null || opts === void 0 ? void 0 : opts.
|
|
44
|
-
return opts === null || opts === void 0 ? void 0 : opts.
|
|
43
|
+
if (opts === null || opts === void 0 ? void 0 : opts.controlPathTranslator) {
|
|
44
|
+
return opts === null || opts === void 0 ? void 0 : opts.controlPathTranslator.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdmFsaWRhdG9yL2Zvcm0tZXJyb3ItYWRhcHRlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUk5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBb0Isa0JBQWtCLENBQUMsQ0FBQztBQWNsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsU0FBMkIsRUFDVyxhQUFnQztRQUR0RSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUduQyxJQUFJLENBQUMsYUFBYSxtQ0FDYixnQkFBZ0IsQ0FBQyxlQUFlLEdBQ2hDLGFBQWEsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBd0IsRUFBRSxJQUFpQztRQUN6RSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUE7UUFDbkQsTUFBTSxNQUFN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dEQ7UUFFRCw2QkFBNkI7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsUUFBUSxnRkFBZ0YsQ0FBQyxDQUFDO1FBRTVKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7WUF2RUYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBcEJ4QixnQkFBZ0I7NENBMkJuQixRQUFRLFlBQUksTUFBTSxTQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZSwgaXNFbXB0eUFycmF5LCBpc05pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXBwRm9ybVV0aWxzfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0vZm9ybS51dGlscyc7XG5pbXBvcnQge1NoYXJlZFZhbGlkYXRvcnN9IGZyb20gJy4vdmFsaWRhdG9ycyc7XG5pbXBvcnQge09iamVjdE1hcH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5cbmV4cG9ydCBjb25zdCBBUFBfRk9STV9FUlJPUl9JMThOX0tFWVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JqZWN0TWFwPHN0cmluZz4+KCdhcHBGb3JtRXJyb3JLZXlzJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3Ige1xuICB0cmFuc2xhdGVDb250cm9sUGF0aDogKGNvbnRyb2xQYXRoOiBzdHJpbmcpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucyB7XG4gIGkxOG5QcmVmaXg/OiBzdHJpbmc7XG4gIGNvbnRyb2xQYXRoVHJhbnNsYXRvcj86IElGb3JtQ29udHJvbFBhdGhUcmFuc2xhdG9yO1xuICBzZXBhcmF0b3I/OiBzdHJpbmc7XG4gIHJlY3Vyc2l2ZT86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckFkYXB0ZXIgaW1wbGVtZW50cyBJRm9ybUNvbnRyb2xQYXRoVHJhbnNsYXRvciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvckkxOG5LZXlzOiBPYmplY3RNYXA8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9GT1JNX0VSUk9SX0kxOE5fS0VZUykgZXJyb3JJMThuS2V5czogT2JqZWN0TWFwPHN0cmluZz5cbiAgKSB7XG4gICAgdGhpcy5lcnJvckkxOG5LZXlzID0ge1xuICAgICAgLi4uU2hhcmVkVmFsaWRhdG9ycy5JMThOX0VSUk9SX0tFWVMsXG4gICAgICAuLi5lcnJvckkxOG5LZXlzXG4gICAgfTtcbiAgfVxuXG4gIHRyYW5zbGF0ZUVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIG9wdHM/OiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb250cm9sIHx8ICFjb250cm9sLmludmFsaWQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMgJiYgb3B0cy5zZXBhcmF0b3IgfHwgJywgJztcbiAgICBjb25zdCByZWN1cnNpdmUgPSAhb3B0cyB8fCBvcHRzLnJlY3Vyc2l2ZSAhPT0gZmFsc2VcbiAgICBjb25zdCBlcnJvcnMgPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybUVycm9ycyhjb250cm9sLCB7cmVjdXJzaXZlfSk7XG4gICAgcmV0dXJuIGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLnJlZHVjZSgocmVzLCBwYXRoKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNoaWxkQ29udHJvbCA9IGNvbnRyb2wuZ2V0KHBhdGgpO1xuICAgICAgLy8gU2hvdWxkIGJlIGEgY29udHJvbCBtYXAgb2YgZXJyb3JzXG4gICAgICBpZiAoY2hpbGRDb250cm9sKSB7XG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0IHRoZSBjb250cm9sIHBhdGhcbiAgICAgICAgY29uc3QgaTE4blBhdGggPSB0aGlzLnRyYW5zbGF0ZUNvbnRyb2xQYXRoKHBhdGgsIG9wdHMpO1xuXG4gICAgICAgIC8vIE9LLCB3ZSBoYXZlIGEgZmllbGQgbmFtZTogdXNlIGl0XG4gICAgICAgIGNvbnN0IGNvbHVtbkVycm9ycyA9IE9iamVjdC5rZXlzKGNoaWxkQ29udHJvbC5lcnJvcnMpLm1hcChlcnJvcktleSA9PiB0aGlzLnRyYW5zbGF0ZUVycm9yKGVycm9yS2V5LCBjaGlsZENvbnRyb2wuZXJyb3JzW2Vycm9yS2V5XSkpO1xuICAgICAgICBpZiAoaXNFbXB0eUFycmF5KGNvbHVtbkVycm9ycykpIHJldHVybiByZXM7XG4gICAgICAgIC8vIEFkZCBzZXBhcmF0b3JcbiAgICAgICAgaWYgKHJlcy5sZW5ndGgpIHJlcyArPSBzZXBhcmF0b3I7XG4gICAgICAgIHJldHVybiByZXMgKyBpMThuUGF0aCArIFwiOiBcIiArIGNvbHVtbkVycm9ycy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIHRyeSBhcyBnbG9iYWwgZm9ybSBlcnJvclxuICAgICAgY29uc3QgZm9ybUVycm9yID0gdGhpcy50cmFuc2xhdGVFcnJvcihwYXRoLCBlcnJvcnNbcGF0aF0pO1xuICAgICAgaWYgKGlzTmlsKGZvcm1FcnJvcikpIHJldHVybiByZXM7XG4gICAgICByZXR1cm4gcmVzICsgKHJlcy5sZW5ndGggPyBzZXBhcmF0b3IgOiAnJykgKyBmb3JtRXJyb3I7XG4gICAgfSwgXCJcIik7XG4gIH1cblxuICB0cmFuc2xhdGVDb250cm9sUGF0aChwYXRoOiBzdHJpbmcsIG9wdHM/OiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucyk6IHN0cmluZ3tcbiAgICBpZiAob3B0cz8uY29udHJvbFBhdGhUcmFuc2xhdG9yKSB7XG4gICAgICByZXR1cm4gb3B0cz8uY29udHJvbFBhdGhUcmFuc2xhdG9yLnRyYW5zbGF0ZUNvbnRyb2xQYXRoKHBhdGgpO1xuICAgIH1cbiAgICBjb25zdCBpMThuS2V5ID0gKG9wdHMgJiYgb3B0cy5pMThuUHJlZml4IHx8ICcnKSArIGNoYW5nZUNhc2VUb1VuZGVyc2NvcmUocGF0aCkudG9VcHBlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpMThuS2V5KTtcbiAgfVxuXG4gIHRyYW5zbGF0ZUVycm9yKGVycm9yS2V5OiBzdHJpbmcsIGVycm9yQ29udGVudD86IGFueSkge1xuXG4gICAgY29uc3QgaTE4bktleSA9IHRoaXMuZXJyb3JJMThuS2V5c1tlcnJvcktleV1cbiAgICAgIC8vIFRyeSB0byBnZW5lcmF0ZSBhIHN0YW5kYXJkIGVycm9yIGtleSwgbGlrZSAnRVJST1IuRklFTERfeHh4X3h4eCdcbiAgICAgIHx8ICgnRVJST1IuRklFTERfJyArIGNoYW5nZUNhc2VUb1VuZGVyc2NvcmUoZXJyb3JLZXkpLnRvVXBwZXJDYXNlKCkpO1xuXG4gICAgbGV0IGkxOG5NZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpMThuS2V5LCBlcnJvckNvbnRlbnQpO1xuICAgIGlmIChpMThuS2V5ICE9PSBpMThuTWVzc2FnZSkgcmV0dXJuIGkxOG5NZXNzYWdlO1xuXG4gICAgLy8gVHJ5IHRvIHVzZSB0aGUgZXJyb3IgY29udGVudCwgYXMgYW4gaTE4biBrZXlcbiAgICBpZiAodHlwZW9mIGVycm9yQ29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGkxOG5NZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChlcnJvckNvbnRlbnQpO1xuICAgICAgaWYgKGVycm9yQ29udGVudCAhPT0gaTE4bk1lc3NhZ2UpIHJldHVybiBpMThuTWVzc2FnZTtcbiAgICB9XG5cbiAgICAvLyBOb3QgdHJhbnNsYXRlZDogc2hvdyBlcnJvclxuICAgIGNvbnNvbGUuZXJyb3IoYFtmb3JtLWVycm9yLWFkYXB0ZXJdIENhbm5vdCB0cmFuc2xhdGUgZXJyb3Iga2V5ICcke2Vycm9yS2V5fScuIFBsZWFzZSBhZGQgbW9yZSBmb3JtRXJyb3JzS2V5IGludG8gQVBQX0ZPUk1fRVJST1JfSTE4Tl9LRVlTIGluamVjdGlvbiB0b2tlbmApO1xuXG4gICAgcmV0dXJuIGVycm9yS2V5O1xuICB9XG59XG4iXX0=
|
|
@@ -3503,8 +3503,8 @@ class FormErrorAdapter {
|
|
|
3503
3503
|
}, "");
|
|
3504
3504
|
}
|
|
3505
3505
|
translateControlPath(path, opts) {
|
|
3506
|
-
if (opts === null || opts === void 0 ? void 0 : opts.
|
|
3507
|
-
return opts === null || opts === void 0 ? void 0 : opts.
|
|
3506
|
+
if (opts === null || opts === void 0 ? void 0 : opts.controlPathTranslator) {
|
|
3507
|
+
return opts === null || opts === void 0 ? void 0 : opts.controlPathTranslator.translateControlPath(path);
|
|
3508
3508
|
}
|
|
3509
3509
|
const i18nKey = (opts && opts.i18nPrefix || '') + changeCaseToUnderscore(path).toUpperCase();
|
|
3510
3510
|
return this.translate.instant(i18nKey);
|
|
@@ -16463,20 +16463,21 @@ RegisterModal.propDecorators = {
|
|
|
16463
16463
|
|
|
16464
16464
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
16465
16465
|
class AppForm {
|
|
16466
|
-
constructor(
|
|
16467
|
-
this.
|
|
16468
|
-
this.settings = settings;
|
|
16469
|
-
this._subscription = new Subscription();
|
|
16466
|
+
constructor(injector, form) {
|
|
16467
|
+
this.error = null;
|
|
16470
16468
|
this._enable = false;
|
|
16471
16469
|
this._loading = true;
|
|
16472
|
-
this.
|
|
16470
|
+
this.i18nFieldPrefix = null;
|
|
16471
|
+
this._subscription = new Subscription();
|
|
16473
16472
|
this.debug = false;
|
|
16474
16473
|
this.onCancel = new EventEmitter();
|
|
16475
16474
|
this.onSubmit = new EventEmitter();
|
|
16476
16475
|
if (form)
|
|
16477
16476
|
this.setForm(form);
|
|
16478
|
-
this.
|
|
16479
|
-
|
|
16477
|
+
this.settings = injector.get(LocalSettingsService);
|
|
16478
|
+
this.errorTranslator = injector.get(FormErrorAdapter);
|
|
16479
|
+
this.autocompleteHelper = new MatAutocompleteConfigHolder(this.settings && {
|
|
16480
|
+
getUserAttributes: (a, b) => this.settings.getFieldDisplayAttributes(a, b)
|
|
16480
16481
|
});
|
|
16481
16482
|
this.autocompleteFields = this.autocompleteHelper.fields;
|
|
16482
16483
|
}
|
|
@@ -16536,6 +16537,9 @@ class AppForm {
|
|
|
16536
16537
|
}
|
|
16537
16538
|
ngOnInit() {
|
|
16538
16539
|
this._enable ? this.enable() : this.disable();
|
|
16540
|
+
this.errorTranslatorOptions = this.errorTranslatorOptions || {
|
|
16541
|
+
controlPathTranslator: this
|
|
16542
|
+
};
|
|
16539
16543
|
}
|
|
16540
16544
|
ngOnDestroy() {
|
|
16541
16545
|
this._subscription.unsubscribe();
|
|
@@ -16644,7 +16648,18 @@ class AppForm {
|
|
|
16644
16648
|
if (!opts || opts.emitEvent !== false)
|
|
16645
16649
|
this.markForCheck();
|
|
16646
16650
|
}
|
|
16651
|
+
translateControlPath(path) {
|
|
16652
|
+
return this.getFieldName(path);
|
|
16653
|
+
}
|
|
16647
16654
|
/* -- protected methods -- */
|
|
16655
|
+
getFormError(form, opts) {
|
|
16656
|
+
if (!form || !this.errorTranslator)
|
|
16657
|
+
return undefined;
|
|
16658
|
+
return this.errorTranslator.translateErrors(this.form, Object.assign({ controlPathTranslator: this }, opts));
|
|
16659
|
+
}
|
|
16660
|
+
getFieldName(path) {
|
|
16661
|
+
return (this.i18nFieldPrefix || '') + changeCaseToUnderscore(path).toUpperCase();
|
|
16662
|
+
}
|
|
16648
16663
|
registerSubscription(sub) {
|
|
16649
16664
|
return this._subscription.add(sub);
|
|
16650
16665
|
}
|
|
@@ -16660,25 +16675,25 @@ AppForm.decorators = [
|
|
|
16660
16675
|
{ type: Directive }
|
|
16661
16676
|
];
|
|
16662
16677
|
AppForm.ctorParameters = () => [
|
|
16663
|
-
{ type:
|
|
16664
|
-
{ type: FormGroup }
|
|
16665
|
-
{ type: LocalSettingsService }
|
|
16678
|
+
{ type: Injector },
|
|
16679
|
+
{ type: FormGroup }
|
|
16666
16680
|
];
|
|
16667
16681
|
AppForm.propDecorators = {
|
|
16668
16682
|
debug: [{ type: Input }],
|
|
16669
16683
|
tabindex: [{ type: Input }],
|
|
16684
|
+
errorTranslatorOptions: [{ type: Input }],
|
|
16670
16685
|
form: [{ type: Input }],
|
|
16671
16686
|
onCancel: [{ type: Output }],
|
|
16672
16687
|
onSubmit: [{ type: Output }]
|
|
16673
16688
|
};
|
|
16674
16689
|
|
|
16675
16690
|
class AuthForm extends AppForm {
|
|
16676
|
-
constructor(
|
|
16677
|
-
super(
|
|
16691
|
+
constructor(injector, platform, formBuilder, settings, configService, modalCtrl, network, cd, environment) {
|
|
16692
|
+
super(injector, formBuilder.group({
|
|
16678
16693
|
username: [null, Validators.required],
|
|
16679
16694
|
password: [null, Validators.required],
|
|
16680
16695
|
offline: [network.offline]
|
|
16681
|
-
})
|
|
16696
|
+
}));
|
|
16682
16697
|
this.configService = configService;
|
|
16683
16698
|
this.modalCtrl = modalCtrl;
|
|
16684
16699
|
this.network = network;
|
|
@@ -16770,8 +16785,8 @@ AuthForm.decorators = [
|
|
|
16770
16785
|
},] }
|
|
16771
16786
|
];
|
|
16772
16787
|
AuthForm.ctorParameters = () => [
|
|
16788
|
+
{ type: Injector },
|
|
16773
16789
|
{ type: PlatformService },
|
|
16774
|
-
{ type: DateAdapter },
|
|
16775
16790
|
{ type: FormBuilder },
|
|
16776
16791
|
{ type: LocalSettingsService },
|
|
16777
16792
|
{ type: ConfigService },
|
|
@@ -17367,9 +17382,8 @@ AccountValidatorService.ctorParameters = () => [
|
|
|
17367
17382
|
];
|
|
17368
17383
|
|
|
17369
17384
|
class AccountPage extends AppForm {
|
|
17370
|
-
constructor(
|
|
17371
|
-
super(
|
|
17372
|
-
this.dateAdapter = dateAdapter;
|
|
17385
|
+
constructor(injector, router, formBuilder, accountService, validatorService, settingsValidatorService, translate, settings, cd, locales) {
|
|
17386
|
+
super(injector, validatorService.getFormGroup(accountService.account));
|
|
17373
17387
|
this.router = router;
|
|
17374
17388
|
this.formBuilder = formBuilder;
|
|
17375
17389
|
this.accountService = accountService;
|
|
@@ -17534,7 +17548,7 @@ AccountPage.decorators = [
|
|
|
17534
17548
|
},] }
|
|
17535
17549
|
];
|
|
17536
17550
|
AccountPage.ctorParameters = () => [
|
|
17537
|
-
{ type:
|
|
17551
|
+
{ type: Injector },
|
|
17538
17552
|
{ type: Router },
|
|
17539
17553
|
{ type: FormBuilder },
|
|
17540
17554
|
{ type: AccountService },
|
|
@@ -17901,9 +17915,8 @@ LocalSettingsValidatorService.ctorParameters = () => [
|
|
|
17901
17915
|
];
|
|
17902
17916
|
|
|
17903
17917
|
class SettingsPage extends AppForm {
|
|
17904
|
-
constructor(
|
|
17905
|
-
super(
|
|
17906
|
-
this.dateAdapter = dateAdapter;
|
|
17918
|
+
constructor(injector, platform, router, validatorService, alertCtrl, translate, formBuilder, accountService, settings, cd, network, locales) {
|
|
17919
|
+
super(injector, validatorService.getFormGroup());
|
|
17907
17920
|
this.platform = platform;
|
|
17908
17921
|
this.router = router;
|
|
17909
17922
|
this.validatorService = validatorService;
|
|
@@ -18169,7 +18182,7 @@ SettingsPage.decorators = [
|
|
|
18169
18182
|
},] }
|
|
18170
18183
|
];
|
|
18171
18184
|
SettingsPage.ctorParameters = () => [
|
|
18172
|
-
{ type:
|
|
18185
|
+
{ type: Injector },
|
|
18173
18186
|
{ type: PlatformService },
|
|
18174
18187
|
{ type: Router },
|
|
18175
18188
|
{ type: LocalSettingsValidatorService },
|
|
@@ -18185,8 +18198,7 @@ SettingsPage.ctorParameters = () => [
|
|
|
18185
18198
|
|
|
18186
18199
|
class AppPropertiesForm extends AppForm {
|
|
18187
18200
|
constructor(injector, formBuilder, dateAdapter, settings, cd, formGroupDir) {
|
|
18188
|
-
super(
|
|
18189
|
-
this.injector = injector;
|
|
18201
|
+
super(injector, null);
|
|
18190
18202
|
this.formBuilder = formBuilder;
|
|
18191
18203
|
this.dateAdapter = dateAdapter;
|
|
18192
18204
|
this.settings = settings;
|
|
@@ -18298,7 +18310,7 @@ AppPropertiesForm.propDecorators = {
|
|
|
18298
18310
|
|
|
18299
18311
|
class AppListForm extends AppForm {
|
|
18300
18312
|
constructor(injector, formBuilder, dateAdapter, settings, cd, formGroupDir) {
|
|
18301
|
-
super(
|
|
18313
|
+
super(injector, null);
|
|
18302
18314
|
this.injector = injector;
|
|
18303
18315
|
this.formBuilder = formBuilder;
|
|
18304
18316
|
this.dateAdapter = dateAdapter;
|
|
@@ -20489,7 +20501,7 @@ class AppTable {
|
|
|
20489
20501
|
this.saveBeforeSort = toBoolean(this.saveBeforeSort, !this.readOnly); // force to false when readonly
|
|
20490
20502
|
this.saveBeforeFilter = toBoolean(this.saveBeforeFilter, !this.readOnly); // force to false when readonly
|
|
20491
20503
|
this.keepEditedRowOnSave = toBoolean(this.keepEditedRowOnSave, this.inlineEdition);
|
|
20492
|
-
this.
|
|
20504
|
+
this.errorTranslatorOptions = this.errorTranslatorOptions || { separator: ', ', controlPathTranslator: this }; // Can be override in subclasses constructors
|
|
20493
20505
|
// Check ask user confirmation is possible
|
|
20494
20506
|
if (this.confirmBeforeDelete && !this.alertCtrl)
|
|
20495
20507
|
throw Error('Missing \'alertCtrl\' or \'injector\' in component\'s constructor.');
|
|
@@ -21394,7 +21406,7 @@ class AppTable {
|
|
|
21394
21406
|
return this._autocompleteConfigHolder.add(fieldName, options);
|
|
21395
21407
|
}
|
|
21396
21408
|
getI18nColumnName(columnName) {
|
|
21397
|
-
return this.i18nColumnPrefix + changeCaseToUnderscore(columnName).toUpperCase();
|
|
21409
|
+
return (this.i18nColumnPrefix || '') + changeCaseToUnderscore(columnName).toUpperCase();
|
|
21398
21410
|
}
|
|
21399
21411
|
generateTableId() {
|
|
21400
21412
|
return this.location.path(true).replace(/[?].*$/g, '').replace(/\/[\d]+/g, '_id') + '_' + this.constructor.name;
|
|
@@ -21497,7 +21509,7 @@ class AppTable {
|
|
|
21497
21509
|
row = row || this.editedRow;
|
|
21498
21510
|
if (!row || !this.formErrorAdapter)
|
|
21499
21511
|
return undefined;
|
|
21500
|
-
return this.formErrorAdapter.translateErrors(row.validator, Object.assign(Object.assign({}, this.
|
|
21512
|
+
return this.formErrorAdapter.translateErrors(row.validator, Object.assign(Object.assign({}, this.errorTranslatorOptions), opts));
|
|
21501
21513
|
}
|
|
21502
21514
|
setError(value, opts) {
|
|
21503
21515
|
if (this.errorSubject.value !== value) {
|
|
@@ -22218,6 +22230,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22218
22230
|
// Default options
|
|
22219
22231
|
enableListenChanges: (injector.get(ENVIRONMENT).listenRemoteChanges === true), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
|
|
22220
22232
|
this.settings = injector.get(LocalSettingsService);
|
|
22233
|
+
this.formErrorAdapter = injector.get(FormErrorAdapter);
|
|
22221
22234
|
this.cd = injector.get(ChangeDetectorRef);
|
|
22222
22235
|
this.dateFormat = injector.get(DateFormatPipe);
|
|
22223
22236
|
this.toastController = injector.get(ToastController);
|
|
@@ -22297,7 +22310,6 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22297
22310
|
/**
|
|
22298
22311
|
* Load data from the snapshot route
|
|
22299
22312
|
*
|
|
22300
|
-
* @param route
|
|
22301
22313
|
* @protected
|
|
22302
22314
|
*/
|
|
22303
22315
|
loadFromRoute() {
|
|
@@ -22485,7 +22497,13 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22485
22497
|
return this.goBack();
|
|
22486
22498
|
});
|
|
22487
22499
|
}
|
|
22488
|
-
|
|
22500
|
+
/**
|
|
22501
|
+
* Save the editor, by calling the dataService.save().
|
|
22502
|
+
* Ensure that editor if valid. If not, display an error
|
|
22503
|
+
* @param event
|
|
22504
|
+
* @param opts
|
|
22505
|
+
*/
|
|
22506
|
+
save(event, opts) {
|
|
22489
22507
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22490
22508
|
if (this.loading || this.saving) {
|
|
22491
22509
|
console.debug('[data-editor] Skip save: editor is busy (loading or saving)');
|
|
@@ -22514,10 +22532,10 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22514
22532
|
const data = yield this.getValue();
|
|
22515
22533
|
this.disable();
|
|
22516
22534
|
// Save form
|
|
22517
|
-
const updatedData = yield this.dataService.save(data,
|
|
22535
|
+
const updatedData = yield this.dataService.save(data, opts);
|
|
22518
22536
|
yield this.onEntitySaved(updatedData);
|
|
22519
22537
|
// Update the view (e.g metadata)
|
|
22520
|
-
yield this.updateView(updatedData,
|
|
22538
|
+
yield this.updateView(updatedData, opts);
|
|
22521
22539
|
// Subscribe to remote changes
|
|
22522
22540
|
if (!this.hasRemoteListener)
|
|
22523
22541
|
this.startListenRemoteChanges();
|