mmhglobal-dynamicform 2.8.0 → 2.9.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/README.md +4 -0
- package/esm2020/lib/input-error-message/input-error-message.component.mjs +9 -10
- package/esm2020/lib/services/main.service.mjs +10 -11
- package/esm2020/lib/services/zcomponent.debug.service.mjs +7 -8
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +13 -14
- package/esm2020/lib/zmodal/zmodal.component.mjs +12 -13
- package/esm2020/lib/zudf/zudf.component.mjs +9 -10
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +11 -25
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/mmhglobal-dynamicform.mjs +136 -263
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +136 -263
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/input-error-message/input-error-message.component.d.ts +3 -4
- package/lib/services/main.service.d.ts +3 -4
- package/lib/services/zcomponent.debug.service.d.ts +3 -4
- package/lib/zmodal/zmodal-mobile.component.d.ts +3 -4
- package/lib/zmodal/zmodal.component.d.ts +3 -4
- package/lib/zudf/zudf.component.d.ts +1 -2
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +3 -4
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2020/lib/services/component-error-handler.service.mjs +0 -119
- package/lib/services/component-error-handler.service.d.ts +0 -19
|
@@ -3,15 +3,14 @@ import { OnInit } from "@angular/core";
|
|
|
3
3
|
/********** Component & Service **********/
|
|
4
4
|
import { FieldBase } from "../components/fieldbase.component";
|
|
5
5
|
import { ZComponentService } from "../services/zcomponent.service";
|
|
6
|
-
import { ComponentErrorHandlerService } from
|
|
7
|
-
import { FontAweSomeService, TranslationService, ZComponent } from 'mmhglobal-zcore';
|
|
6
|
+
import { FontAweSomeService, TranslationService, ComponentErrorHandlerService, ZComponent } from 'mmhglobal-zcore';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class InputErrorMessageComponent extends FieldBase implements ZComponent, OnInit {
|
|
10
9
|
componentService: ZComponentService;
|
|
11
10
|
fontAweSomeService: FontAweSomeService;
|
|
12
|
-
private
|
|
11
|
+
private componentErrorHandlerService;
|
|
13
12
|
private translationService;
|
|
14
|
-
constructor(componentService: ZComponentService, fontAweSomeService: FontAweSomeService,
|
|
13
|
+
constructor(componentService: ZComponentService, fontAweSomeService: FontAweSomeService, componentErrorHandlerService: ComponentErrorHandlerService, translationService: TranslationService);
|
|
15
14
|
errMsgList: any[];
|
|
16
15
|
ngOnInit(): void;
|
|
17
16
|
IsShow(): boolean;
|
|
@@ -7,9 +7,8 @@ import { Observable, Subscription } from 'rxjs';
|
|
|
7
7
|
import { DialogRef, DialogService, DialogSettings } from '@progress/kendo-angular-dialog';
|
|
8
8
|
/********** Component & Service **********/
|
|
9
9
|
import { ZComponentDebugService } from './zcomponent.debug.service';
|
|
10
|
-
import { ComponentErrorHandlerService } from './component-error-handler.service';
|
|
11
10
|
import { ModalService, ModalResponse } from 'mmhglobal-zmodal';
|
|
12
|
-
import { AlertService, CacheService, FieldService, ResourceApiService, TranslationService, WebApiService, StorageSessionService, OAuth2Service, SignalrService, ZComponentOutputEvent, ZComponentSize, ZCoreService, ZField, ZGroup, PushChangeEvent } from 'mmhglobal-zcore';
|
|
11
|
+
import { AlertService, CacheService, FieldService, ResourceApiService, TranslationService, WebApiService, StorageSessionService, OAuth2Service, SignalrService, ComponentErrorHandlerService, ZComponentOutputEvent, ZComponentSize, ZCoreService, ZField, ZGroup, PushChangeEvent } from 'mmhglobal-zcore';
|
|
13
12
|
import * as i0 from "@angular/core";
|
|
14
13
|
export declare class MainService {
|
|
15
14
|
private router;
|
|
@@ -20,7 +19,7 @@ export declare class MainService {
|
|
|
20
19
|
private cacheService;
|
|
21
20
|
private fieldService;
|
|
22
21
|
private resourceApiService;
|
|
23
|
-
private
|
|
22
|
+
private componentErrorHandlerService;
|
|
24
23
|
private webApiService;
|
|
25
24
|
private zcoreService;
|
|
26
25
|
private modalService;
|
|
@@ -42,7 +41,7 @@ export declare class MainService {
|
|
|
42
41
|
private NAVIGATED_RELOAD_GRID_STORAGE_KEY;
|
|
43
42
|
private CLONE_NEW_MODEL_CACHE_KEY;
|
|
44
43
|
private readonly secretKey;
|
|
45
|
-
constructor(router: Router, activatedRoute: ActivatedRoute, modalCtrl: ModalController, navController: NavController, alertService: AlertService, cacheService: CacheService, fieldService: FieldService, resourceApiService: ResourceApiService,
|
|
44
|
+
constructor(router: Router, activatedRoute: ActivatedRoute, modalCtrl: ModalController, navController: NavController, alertService: AlertService, cacheService: CacheService, fieldService: FieldService, resourceApiService: ResourceApiService, componentErrorHandlerService: ComponentErrorHandlerService, webApiService: WebApiService, zcoreService: ZCoreService, modalService: ModalService, storageService: StorageSessionService, debugService: ZComponentDebugService, translationService: TranslationService, signalr: SignalrService, dialogService: DialogService, oauth2Service: OAuth2Service);
|
|
46
45
|
getListFieldName: (fieldName: string) => Observable<string>;
|
|
47
46
|
clearFormListFields: () => void;
|
|
48
47
|
signalrGetEvent(): Observable<PushChangeEvent>;
|
|
@@ -2,9 +2,8 @@ import { Router } from '@angular/router';
|
|
|
2
2
|
/********** Plugin **********/
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
/********** Component & Service **********/
|
|
5
|
-
import { AlertService, AuthService, FieldService, ResourceApiService, ToastService, WebApiService, ZComponentOutputEvent, ZField, ZGroup } from "mmhglobal-zcore";
|
|
5
|
+
import { AlertService, AuthService, ComponentErrorHandlerService, FieldService, ResourceApiService, ToastService, WebApiService, ZComponentOutputEvent, ZField, ZGroup } from "mmhglobal-zcore";
|
|
6
6
|
import { ModalService } from 'mmhglobal-zmodal';
|
|
7
|
-
import { ComponentErrorHandlerService } from "./component-error-handler.service";
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class ZComponentDebugService {
|
|
10
9
|
private router;
|
|
@@ -12,11 +11,11 @@ export declare class ZComponentDebugService {
|
|
|
12
11
|
private authService;
|
|
13
12
|
private fieldService;
|
|
14
13
|
private resourceApiService;
|
|
15
|
-
private
|
|
14
|
+
private componentErrorHandlerService;
|
|
16
15
|
private toastService;
|
|
17
16
|
private modalService;
|
|
18
17
|
private webApiService;
|
|
19
|
-
constructor(router: Router, alertService: AlertService, authService: AuthService, fieldService: FieldService, resourceApiService: ResourceApiService,
|
|
18
|
+
constructor(router: Router, alertService: AlertService, authService: AuthService, fieldService: FieldService, resourceApiService: ResourceApiService, componentErrorHandlerService: ComponentErrorHandlerService, toastService: ToastService, modalService: ModalService, webApiService: WebApiService);
|
|
20
19
|
private scope;
|
|
21
20
|
get debug(): any;
|
|
22
21
|
get group(): ZGroup;
|
|
@@ -4,19 +4,18 @@ import { OnInit, OnDestroy } from "@angular/core";
|
|
|
4
4
|
/********** Plugin **********/
|
|
5
5
|
import { Subscription, Observable } from "rxjs";
|
|
6
6
|
/********** Component & Service **********/
|
|
7
|
-
import { WebApiService, ModalPageParams, ZGroup, ZCoreService, ZComponentOutputEvent, FieldService } from "mmhglobal-zcore";
|
|
8
|
-
import { ComponentErrorHandlerService } from "../services/component-error-handler.service";
|
|
7
|
+
import { WebApiService, ModalPageParams, ZGroup, ZCoreService, ZComponentOutputEvent, FieldService, ComponentErrorHandlerService } from "mmhglobal-zcore";
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
export declare class ZmodalMobileComponent implements OnInit, OnDestroy {
|
|
11
10
|
private webApiService;
|
|
12
11
|
private zcoreService;
|
|
13
|
-
private
|
|
12
|
+
private componentErrorHandlerService;
|
|
14
13
|
private fieldService;
|
|
15
14
|
modalParams: ModalPageParams;
|
|
16
15
|
group: ZGroup;
|
|
17
16
|
subscription: Subscription;
|
|
18
17
|
backButtonSubscription: Subscription;
|
|
19
|
-
constructor(webApiService: WebApiService, zcoreService: ZCoreService,
|
|
18
|
+
constructor(webApiService: WebApiService, zcoreService: ZCoreService, componentErrorHandlerService: ComponentErrorHandlerService, // Use in mmhglobal-zmodal.helper
|
|
20
19
|
fieldService: FieldService);
|
|
21
20
|
ngOnInit(): void;
|
|
22
21
|
ngOnDestroy(): void;
|
|
@@ -6,8 +6,7 @@ import { ModalController, Platform } from "@ionic/angular";
|
|
|
6
6
|
import { Subscription, Observable } from "rxjs";
|
|
7
7
|
import { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';
|
|
8
8
|
/********** Component & Service **********/
|
|
9
|
-
import { ZGroup, ModalPageParams, WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService, ZComponentOutputEvent } from "mmhglobal-zcore";
|
|
10
|
-
import { ComponentErrorHandlerService } from "../services/component-error-handler.service";
|
|
9
|
+
import { ZGroup, ModalPageParams, WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService, ZComponentOutputEvent, ComponentErrorHandlerService } from "mmhglobal-zcore";
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
export declare class ZmodalComponent extends DialogContentBase implements OnInit, OnDestroy {
|
|
13
12
|
dialog: DialogRef;
|
|
@@ -15,7 +14,7 @@ export declare class ZmodalComponent extends DialogContentBase implements OnInit
|
|
|
15
14
|
private zcoreService;
|
|
16
15
|
private webApiService;
|
|
17
16
|
private resourceApiService;
|
|
18
|
-
private
|
|
17
|
+
private componentErrorHandlerService;
|
|
19
18
|
private fieldService;
|
|
20
19
|
private platform;
|
|
21
20
|
private alertService;
|
|
@@ -23,7 +22,7 @@ export declare class ZmodalComponent extends DialogContentBase implements OnInit
|
|
|
23
22
|
group: ZGroup;
|
|
24
23
|
subscription: Subscription;
|
|
25
24
|
backButtonSubscription: Subscription;
|
|
26
|
-
constructor(dialog: DialogRef, modalCtrl: ModalController, zcoreService: ZCoreService, webApiService: WebApiService, resourceApiService: ResourceApiService,
|
|
25
|
+
constructor(dialog: DialogRef, modalCtrl: ModalController, zcoreService: ZCoreService, webApiService: WebApiService, resourceApiService: ResourceApiService, componentErrorHandlerService: ComponentErrorHandlerService, // Use in mmhglobal-zmodal.helper
|
|
27
26
|
fieldService: FieldService, platform: Platform, alertService: AlertService);
|
|
28
27
|
ngOnInit(): void;
|
|
29
28
|
ngOnDestroy(): void;
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
import { OnInit, ChangeDetectorRef } from "@angular/core";
|
|
3
3
|
import { FormGroup } from "@angular/forms";
|
|
4
4
|
/********** Component & Service **********/
|
|
5
|
-
import { ZComponent, ZField, FieldService, ToastService, ZGroup, ZComponentProperties } from 'mmhglobal-zcore';
|
|
6
|
-
import { ComponentErrorHandlerService } from "../services/component-error-handler.service";
|
|
5
|
+
import { ZComponent, ZField, FieldService, ToastService, ZGroup, ZComponentProperties, ComponentErrorHandlerService } from 'mmhglobal-zcore';
|
|
7
6
|
import { ContainerFieldBase } from "../components/containerfieldbase.component";
|
|
8
7
|
import { ZComponentService } from "../services/zcomponent.service";
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
@@ -3,15 +3,14 @@ import { OnInit } from '@angular/core';
|
|
|
3
3
|
/********** Component & Service **********/
|
|
4
4
|
import { ButtonFieldBase } from '../components/buttonfieldbase.component';
|
|
5
5
|
import { ZComponentService } from '../services/zcomponent.service';
|
|
6
|
-
import { ComponentErrorHandlerService } from '
|
|
7
|
-
import { WebApiService, ResourceApiService, WorkflowService, FontAweSomeService, ZComponent } from 'mmhglobal-zcore';
|
|
6
|
+
import { WebApiService, ResourceApiService, WorkflowService, FontAweSomeService, ComponentErrorHandlerService, ZComponent } from 'mmhglobal-zcore';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class ZworkflowbuttonsComponent extends ButtonFieldBase implements ZComponent, OnInit {
|
|
10
9
|
componentService: ZComponentService;
|
|
11
10
|
fontAweSomeService: FontAweSomeService;
|
|
12
11
|
private webApiService;
|
|
13
12
|
private resourceApiService;
|
|
14
|
-
private
|
|
13
|
+
private componentErrorHandlerService;
|
|
15
14
|
private workflowService;
|
|
16
15
|
e1wfs_wfcGetWorkflowButtonURL: any;
|
|
17
16
|
e1wfs_wfc_getWorkflowInitialStatusURL: any;
|
|
@@ -19,7 +18,7 @@ export declare class ZworkflowbuttonsComponent extends ButtonFieldBase implement
|
|
|
19
18
|
dataFormFields: any;
|
|
20
19
|
isLoading: boolean;
|
|
21
20
|
isLocalHostAPI: boolean;
|
|
22
|
-
constructor(componentService: ZComponentService, fontAweSomeService: FontAweSomeService, webApiService: WebApiService, resourceApiService: ResourceApiService,
|
|
21
|
+
constructor(componentService: ZComponentService, fontAweSomeService: FontAweSomeService, webApiService: WebApiService, resourceApiService: ResourceApiService, componentErrorHandlerService: ComponentErrorHandlerService, workflowService: WorkflowService);
|
|
23
22
|
ngOnInit(): void;
|
|
24
23
|
ngAfterViewInit(): void;
|
|
25
24
|
loadButton(): void;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/********** Service **********/
|
|
2
2
|
export * from './lib/services/main.service';
|
|
3
|
-
export * from './lib/services/component-error-handler.service';
|
|
4
3
|
/********** Directive **********/
|
|
5
4
|
export * from './lib/directives/scrollbar.theme.directive';
|
|
6
5
|
export * from './lib/directives/fieldelement.directive';
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
4
|
-
import { forkJoin, of, tap, switchMap } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "mmhglobal-zcore";
|
|
7
|
-
export class ComponentErrorHandlerService {
|
|
8
|
-
constructor(alertService, translationService) {
|
|
9
|
-
this.alertService = alertService;
|
|
10
|
-
this.translationService = translationService;
|
|
11
|
-
}
|
|
12
|
-
showFormGroupErrorMessage(group, formGroup) {
|
|
13
|
-
formGroup = formGroup || group.form;
|
|
14
|
-
of(this.getErrorMessageForInvalidInput(group, formGroup)).pipe(switchMap((errMessageTranslationInput) => {
|
|
15
|
-
const obs = new Array();
|
|
16
|
-
errMessageTranslationInput.forEach(data => {
|
|
17
|
-
obs.push(this.translationService.$translateText(data.errorMessage, { translationVariables: data.translationVariables }));
|
|
18
|
-
});
|
|
19
|
-
return forkJoin(obs);
|
|
20
|
-
}), tap(fieldErrorMessages => {
|
|
21
|
-
const errorMessage = fieldErrorMessages.join("<br/>");
|
|
22
|
-
this.alertService.showOkay('Form validation failed', errorMessage, ['col-4']);
|
|
23
|
-
console.warn("Form Validation got error(s):", errorMessage);
|
|
24
|
-
})).subscribe();
|
|
25
|
-
}
|
|
26
|
-
getErrorMessageForInvalidInput(group, formGroup, controlName) {
|
|
27
|
-
formGroup = formGroup || group.form;
|
|
28
|
-
if (controlName) {
|
|
29
|
-
return this.extractErrorMessageFromControl(formGroup, controlName, group);
|
|
30
|
-
}
|
|
31
|
-
let allFormControlErrorMessages = new Array();
|
|
32
|
-
for (const key of Object.keys(formGroup.controls)) {
|
|
33
|
-
const formControlErrorMessages = this.extractErrorMessageFromControl(formGroup, key, group);
|
|
34
|
-
allFormControlErrorMessages = allFormControlErrorMessages.concat(formControlErrorMessages);
|
|
35
|
-
}
|
|
36
|
-
return allFormControlErrorMessages;
|
|
37
|
-
}
|
|
38
|
-
extractErrorMessageFromControl(formGroup, key, group) {
|
|
39
|
-
const errorMsgArr = new Array();
|
|
40
|
-
const control = formGroup.get(key);
|
|
41
|
-
const controlErrors = control?.errors;
|
|
42
|
-
if (control && controlErrors) {
|
|
43
|
-
const errorTypes = Object.keys(controlErrors);
|
|
44
|
-
for (const errorType of errorTypes) {
|
|
45
|
-
let errMessage = null;
|
|
46
|
-
if (key.includes('zudf_')) {
|
|
47
|
-
const zudf = ZComponentHelper.getZudfByComponent(group, key);
|
|
48
|
-
errMessage = this.getErrorMessageByErrorType(errorType, key, zudf['data']['Value'], controlErrors);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
errMessage = this.getErrorMessageByErrorType(errorType, key, group.fields, controlErrors);
|
|
52
|
-
}
|
|
53
|
-
if (errMessage.errorMessage) {
|
|
54
|
-
errorMsgArr.push(errMessage);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
;
|
|
58
|
-
}
|
|
59
|
-
return errorMsgArr;
|
|
60
|
-
}
|
|
61
|
-
getErrorMessageByErrorType(errorType, controlName, fields, errorDetail) {
|
|
62
|
-
const field = ZComponentHelper.getFieldFromFieldsByValue(fields, controlName);
|
|
63
|
-
let errorMessage = "";
|
|
64
|
-
const translationVariables = { T_FieldName: ZComponentHelper.getFieldLabel(fields, controlName) };
|
|
65
|
-
switch (errorType) {
|
|
66
|
-
case 'required':
|
|
67
|
-
errorMessage = `${this.getErrorMsgAction_Required(field.Type)} the {{T_FieldName}}`;
|
|
68
|
-
break;
|
|
69
|
-
case 'minlength':
|
|
70
|
-
errorMessage = `{{T_FieldName}} must be more than {{T_MinLength}} characters`;
|
|
71
|
-
Object.assign(translationVariables, { T_MinLength: errorDetail[errorType].requiredLength });
|
|
72
|
-
break;
|
|
73
|
-
case 'maxlength':
|
|
74
|
-
errorMessage = `{{T_FieldName}} must be less than {{T_MaxLength}} characters`;
|
|
75
|
-
Object.assign(translationVariables, { T_MaxLength: errorDetail[errorType].requiredLength });
|
|
76
|
-
break;
|
|
77
|
-
case 'email':
|
|
78
|
-
errorMessage = `Enter a valid email address for {{T_FieldName}}`;
|
|
79
|
-
break;
|
|
80
|
-
case 'min':
|
|
81
|
-
case 'minError':
|
|
82
|
-
errorMessage = `{{T_FieldName}} must be equal or more than {{T_MinValue}}`;
|
|
83
|
-
Object.assign(translationVariables, { T_MinValue: errorDetail[errorType].minValue || errorDetail[errorType].min });
|
|
84
|
-
break;
|
|
85
|
-
case 'max':
|
|
86
|
-
case 'maxError':
|
|
87
|
-
errorMessage = `{{T_FieldName}} must be equal or less than {{T_MaxValue}}`;
|
|
88
|
-
Object.assign(translationVariables, { T_MaxValue: errorDetail[errorType].maxValue || errorDetail[errorType].max });
|
|
89
|
-
break;
|
|
90
|
-
default:
|
|
91
|
-
console.warn(`Field Error is not properly handled : ${ZComponentHelper.getFieldLabel(fields, controlName)}`);
|
|
92
|
-
errorMessage = `Invalid Field: {{T_FieldName}}`;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
errorMessage,
|
|
97
|
-
translationVariables
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
getErrorMsgAction_Required(type) {
|
|
101
|
-
switch (type) {
|
|
102
|
-
case 'zuiselectmultiple':
|
|
103
|
-
case 'zuiselectmultiple_button':
|
|
104
|
-
case 'select':
|
|
105
|
-
return "Choose";
|
|
106
|
-
default:
|
|
107
|
-
return "Enter";
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
ComponentErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ComponentErrorHandlerService, deps: [{ token: i1.AlertService }, { token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
112
|
-
ComponentErrorHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ComponentErrorHandlerService, providedIn: 'root' });
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ComponentErrorHandlerService, decorators: [{
|
|
114
|
-
type: Injectable,
|
|
115
|
-
args: [{
|
|
116
|
-
providedIn: 'root',
|
|
117
|
-
}]
|
|
118
|
-
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i1.TranslationService }]; } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWVycm9yLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFvRCxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUtoRSxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQW9CLFlBQTBCLEVBQVUsa0JBQXNDO1FBQTFFLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFJLENBQUM7SUFFNUYseUJBQXlCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ25FLFNBQVMsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUVwQyxFQUFFLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUQsU0FBUyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztZQUN6QywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMs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LEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDbkgsTUFBSztZQUNQO2dCQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMseUNBQXlDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RyxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ2hELE1BQU07U0FDVDtRQUVELE9BQU87WUFDTCxZQUFZO1lBQ1osb0JBQW9CO1NBQ0QsQ0FBQztJQUN4QixDQUFDO0lBRU8sMEJBQTBCLENBQUMsSUFBWTtRQUM3QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssbUJBQW1CLENBQUM7WUFDekIsS0FBSywwQkFBMEIsQ0FBQztZQUNoQyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7U0FDbEI7SUFDSCxDQUFDOzt5SEFsSFUsNEJBQTRCOzZIQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTsyRkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHVibGljIHNob3dGb3JtR3JvdXBFcnJvck1lc3NhZ2UoZ3JvdXA6IFpHcm91cCwgZm9ybUdyb3VwPzogRm9ybUdyb3VwKSB7XHJcbiAgICBmb3JtR3JvdXAgPSBmb3JtR3JvdXAgfHwgZ3JvdXAuZm9ybTtcclxuXHJcbiAgICBvZih0aGlzLmdldEVycm9yTWVzc2FnZUZvckludmFsaWRJbnB1dChncm91cCwgZm9ybUdyb3VwKSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChlcnJNZXNzYWdlVHJhbnNsYXRpb25JbnB1dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9icyA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcbiAgICAgICAgZXJyTWVzc2FnZVRyYW5zbGF0aW9uSW5wdXQuZm9yRWFjaChkYXRhID0+IHtcclxuICAgICAgICAgIG9icy5wdXNoKHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVUZXh0KGRhdGEuZXJyb3JNZXNzYWdlLCB7IHRyYW5zbGF0aW9uVmFyaWFibGVzOiBkYXRhLnRyYW5zbGF0aW9uVmFyaWFibGVzIH0pKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBmb3JrSm9pbihvYnMpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKGZpZWxkRXJyb3JNZXNzYWdlcyA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZmllbGRFcnJvck1lc3NhZ2VzLmpvaW4oXCI8YnIvPlwiKTtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93T2theSgnRm9ybSB2YWxpZGF0aW9uIGZhaWxlZCcsIGVycm9yTWVzc2FnZSwgWydjb2wtNCddKTtcclxuICAgICAgICBjb25zb2xlLndhcm4oXCJGb3JtIFZhbGlkYXRpb24gZ290IGVycm9yKHMpOlwiLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2VGb3JJbnZhbGlkSW5wdXQoZ3JvdXA6IFpHcm91cCwgZm9ybUdyb3VwPzogRm9ybUdyb3VwLCBjb250cm9sTmFtZT86IHN0cmluZyk6IEFycmF5PFRyYW5zbGF0aW9uSW5wdXQ+IHtcclxuICAgIGZvcm1Hcm91cCA9IGZvcm1Hcm91cCB8fCBncm91cC5mb3JtO1xyXG5cclxuICAgIGlmIChjb250cm9sTmFtZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0RXJyb3JNZXNzYWdlRnJvbUNvbnRyb2woZm9ybUdyb3VwLCBjb250cm9sTmFtZSwgZ3JvdXApO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhbGxGb3JtQ29udHJvbEVycm9yTWVzc2FnZXMgPSBuZXcgQXJyYXk8VHJhbnNsYXRpb25JbnB1dD4oKTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykpIHtcclxuICAgICAgY29uc3QgZm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzID0gdGhpcy5leHRyYWN0RXJyb3JNZXNzYWdlRnJvbUNvbnRyb2woZm9ybUdyb3VwLCBrZXksIGdyb3VwKTtcclxuICAgICAgYWxsRm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzID0gYWxsRm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzLmNvbmNhdChmb3JtQ29udHJvbEVycm9yTWVzc2FnZXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFsbEZvcm1Db250cm9sRXJyb3JNZXNzYWdlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdEVycm9yTWVzc2FnZUZyb21Db250cm9sKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBrZXk6IHN0cmluZywgZ3JvdXA6IFpHcm91cCk6IEFycmF5PFRyYW5zbGF0aW9uSW5wdXQ+IHtcclxuICAgIGNvbnN0IGVycm9yTXNnQXJyID0gbmV3IEFycmF5PFRyYW5zbGF0aW9uSW5wdXQ+KCk7XHJcbiAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChrZXkpO1xyXG4gICAgY29uc3QgY29udHJvbEVycm9ycyA9IGNvbnRyb2w/LmVycm9ycztcclxuXHJcbiAgICBpZiAoY29udHJvbCAmJiBjb250cm9sRXJyb3JzKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yVHlwZXMgPSBPYmplY3Qua2V5cyhjb250cm9sRXJyb3JzKTtcclxuICAgICAgZm9yIChjb25zdCBlcnJvclR5cGUgb2YgZXJyb3JUeXBlcykge1xyXG4gICAgICAgIGxldCBlcnJNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKCd6dWRmXycpKSB7XHJcbiAgICAgICAgICBjb25zdCB6dWRmID0gWkNvbXBvbmVudEhlbHBlci5nZXRadWRmQnlDb21wb25lbnQoZ3JvdXAsIGtleSk7XHJcbiAgICAgICAgICBlcnJNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2VCeUVycm9yVHlwZShlcnJvclR5cGUsIGtleSwgenVkZlsnZGF0YSddWydWYWx1ZSddLCBjb250cm9sRXJyb3JzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBlcnJNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2VCeUVycm9yVHlwZShlcnJvclR5cGUsIGtleSwgZ3JvdXAuZmllbGRzLCBjb250cm9sRXJyb3JzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlcnJNZXNzYWdlLmVycm9yTWVzc2FnZSkge1xyXG4gICAgICAgICAgZXJyb3JNc2dBcnIucHVzaChlcnJNZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yTXNnQXJyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFcnJvck1lc3NhZ2VCeUVycm9yVHlwZShlcnJvclR5cGU6IGFueSwgY29udHJvbE5hbWU6IHN0cmluZywgZmllbGRzOiBaRmllbGRbXSwgZXJyb3JEZXRhaWw6IGFueSk6IFRyYW5zbGF0aW9uSW5wdXQge1xyXG4gICAgY29uc3QgZmllbGQgPSBaQ29tcG9uZW50SGVscGVyLmdldEZpZWxkRnJvbUZpZWxkc0J5VmFsdWUoZmllbGRzLCBjb250cm9sTmFtZSk7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uVmFyaWFibGVzID0geyBUX0ZpZWxkTmFtZTogWkNvbXBvbmVudEhlbHBlci5nZXRGaWVsZExhYmVsKGZpZWxkcywgY29udHJvbE5hbWUpIH07XHJcbiAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xyXG4gICAgICBjYXNlICdyZXF1aXJlZCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7dGhpcy5nZXRFcnJvck1zZ0FjdGlvbl9SZXF1aXJlZChmaWVsZC5UeXBlKX0gdGhlIHt7VF9GaWVsZE5hbWV9fWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21pbmxlbmd0aCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYHt7VF9GaWVsZE5hbWV9fSBtdXN0IGJlIG1vcmUgdGhhbiB7e1RfTWluTGVuZ3RofX0gY2hhcmFjdGVyc2A7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2xhdGlvblZhcmlhYmxlcywgeyBUX01pbkxlbmd0aDogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5yZXF1aXJlZExlbmd0aCB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWF4bGVuZ3RoJzpcclxuICAgICAgICBlcnJvck1lc3NhZ2UgPSBge3tUX0ZpZWxkTmFtZX19IG11c3QgYmUgbGVzcyB0aGFuIHt7VF9NYXhMZW5ndGh9fSBjaGFyYWN0ZXJzYDtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRyYW5zbGF0aW9uVmFyaWFibGVzLCB7IFRfTWF4TGVuZ3RoOiBlcnJvckRldGFpbFtlcnJvclR5cGVdLnJlcXVpcmVkTGVuZ3RoIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlbWFpbCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYEVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3Ige3tUX0ZpZWxkTmFtZX19YDtcclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICdtaW4nOlxyXG4gICAgICBjYXNlICdtaW5FcnJvcic6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYHt7VF9GaWVsZE5hbWV9fSBtdXN0IGJlIGVxdWFsIG9yIG1vcmUgdGhhbiB7e1RfTWluVmFsdWV9fWA7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2xhdGlvblZhcmlhYmxlcywgeyBUX01pblZhbHVlOiBlcnJvckRldGFpbFtlcnJvclR5cGVdLm1pblZhbHVlIHx8IGVycm9yRGV0YWlsW2Vycm9yVHlwZV0ubWluIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtYXgnOlxyXG4gICAgICBjYXNlICdtYXhFcnJvcic6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYHt7VF9GaWVsZE5hbWV9fSBtdXN0IGJlIGVxdWFsIG9yIGxlc3MgdGhhbiB7e1RfTWF4VmFsdWV9fWA7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2xhdGlvblZhcmlhYmxlcywgeyBUX01heFZhbHVlOiBlcnJvckRldGFpbFtlcnJvclR5cGVdLm1heFZhbHVlIHx8IGVycm9yRGV0YWlsW2Vycm9yVHlwZV0ubWF4IH0pO1xyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc29sZS53YXJuKGBGaWVsZCBFcnJvciBpcyBub3QgcHJvcGVybHkgaGFuZGxlZCA6ICR7WkNvbXBvbmVudEhlbHBlci5nZXRGaWVsZExhYmVsKGZpZWxkcywgY29udHJvbE5hbWUpfWApO1xyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGBJbnZhbGlkIEZpZWxkOiB7e1RfRmllbGROYW1lfX1gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSxcclxuICAgICAgdHJhbnNsYXRpb25WYXJpYWJsZXNcclxuICAgIH0gYXMgVHJhbnNsYXRpb25JbnB1dDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JNc2dBY3Rpb25fUmVxdWlyZWQodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICd6dWlzZWxlY3RtdWx0aXBsZSc6XHJcbiAgICAgIGNhc2UgJ3p1aXNlbGVjdG11bHRpcGxlX2J1dHRvbic6XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIFwiQ2hvb3NlXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwiRW50ZXJcIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25JbnB1dCB7XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRpb25WYXJpYWJsZXM/OiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import { AlertService, TranslationService, ZGroup } from 'mmhglobal-zcore';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ComponentErrorHandlerService {
|
|
5
|
-
private alertService;
|
|
6
|
-
private translationService;
|
|
7
|
-
constructor(alertService: AlertService, translationService: TranslationService);
|
|
8
|
-
showFormGroupErrorMessage(group: ZGroup, formGroup?: FormGroup): void;
|
|
9
|
-
getErrorMessageForInvalidInput(group: ZGroup, formGroup?: FormGroup, controlName?: string): Array<TranslationInput>;
|
|
10
|
-
private extractErrorMessageFromControl;
|
|
11
|
-
private getErrorMessageByErrorType;
|
|
12
|
-
private getErrorMsgAction_Required;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentErrorHandlerService, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ComponentErrorHandlerService>;
|
|
15
|
-
}
|
|
16
|
-
export interface TranslationInput {
|
|
17
|
-
errorMessage: string;
|
|
18
|
-
translationVariables?: any;
|
|
19
|
-
}
|