@mediusinc/mng-commons 0.6.0 → 0.6.1

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.
@@ -72,12 +72,127 @@ import * as i4$3 from 'primeng/toolbar';
72
72
  import { ToolbarModule } from 'primeng/toolbar';
73
73
  import * as i9 from 'primeng/tooltip';
74
74
  import { TooltipModule } from 'primeng/tooltip';
75
- import { throwError, of, Subject, Observable, from, combineLatest, tap, BehaviorSubject, ReplaySubject, distinctUntilChanged, switchMap, mergeMap as mergeMap$1 } from 'rxjs';
75
+ import { isObservable, throwError, of, Subject, Observable, from, combineLatest, tap, BehaviorSubject, ReplaySubject, distinctUntilChanged, switchMap, mergeMap as mergeMap$1 } from 'rxjs';
76
76
  import 'reflect-metadata';
77
77
  import { map, mergeMap, first, catchError, filter, finalize, startWith } from 'rxjs/operators';
78
78
  import * as i4$1 from '@angular/platform-browser';
79
79
  import { trigger, state, style, transition, animate } from '@angular/animations';
80
80
 
81
+ class ActionDataProviderUtil {
82
+ static runFetchOrFail(ctx) {
83
+ const dataProviderExec = ActionDataProviderUtil.runFetchDataProvider(ctx);
84
+ if (isObservable(dataProviderExec)) {
85
+ return dataProviderExec;
86
+ }
87
+ const serviceExec = ActionDataProviderUtil.runGetByIdService(ctx);
88
+ return isObservable(serviceExec)
89
+ ? serviceExec
90
+ : throwError(() => new Error(`Data provider and service instance could not extract fetch function to execute in action ${ctx.action.actionName} (${ctx.action.model?.typeName}) for item id ${ctx.data?.itemId}.`));
91
+ }
92
+ static runCreateOrFail(ctx) {
93
+ const dataProviderExec = ActionDataProviderUtil.runCreateDataProvider(ctx);
94
+ if (isObservable(dataProviderExec)) {
95
+ return dataProviderExec;
96
+ }
97
+ const serviceExec = ActionDataProviderUtil.runCreateService(ctx);
98
+ return isObservable(serviceExec)
99
+ ? serviceExec
100
+ : throwError(() => new Error(`Data provider and service instance could not extract create function to execute in action ${ctx.action.actionName} (${ctx.action.model?.typeName}) for item ${ctx.data?.item}.`));
101
+ }
102
+ static runUpdateOrFail(ctx) {
103
+ const dataProviderExec = ActionDataProviderUtil.runUpdateDataProvider(ctx);
104
+ if (isObservable(dataProviderExec)) {
105
+ return dataProviderExec;
106
+ }
107
+ const serviceExec = ActionDataProviderUtil.runUpdateService(ctx);
108
+ return isObservable(serviceExec)
109
+ ? serviceExec
110
+ : throwError(() => new Error(`Data provider and service instance could not extract update function to execute in action ${ctx.action.actionName} (${ctx.action.model?.typeName}) for item id ${ctx.data?.itemId}.`));
111
+ }
112
+ static runDeleteOrFail(ctx) {
113
+ const dataProviderExec = ActionDataProviderUtil.runDeleteDataProvider(ctx);
114
+ if (isObservable(dataProviderExec)) {
115
+ return dataProviderExec;
116
+ }
117
+ const serviceExec = ActionDataProviderUtil.runDeleteService(ctx);
118
+ return isObservable(serviceExec)
119
+ ? serviceExec
120
+ : throwError(() => new Error(`Data provider and service instance could not extract delete function to execute in action ${ctx.action.actionName} (${ctx.action.model?.typeName}) for item id ${ctx.data?.itemId}.`));
121
+ }
122
+ static runGetByIdService(ctx) {
123
+ if (typeof ctx.serviceInstance !== 'undefined') {
124
+ const crudServiceInstance = ctx.serviceInstance;
125
+ if (typeof crudServiceInstance.getByIdGet === 'function') {
126
+ return ctx.data?.itemId ? crudServiceInstance.getByIdGet(ctx.data.itemId) : null;
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ static runCreateService(ctx) {
132
+ if (typeof ctx.serviceInstance !== 'undefined') {
133
+ const crudServiceInstance = ctx.serviceInstance;
134
+ if (typeof crudServiceInstance.createPost === 'function') {
135
+ return ctx.data?.item ? crudServiceInstance.createPost(ctx.data.item) : null;
136
+ }
137
+ }
138
+ return null;
139
+ }
140
+ static runUpdateService(ctx) {
141
+ if (typeof ctx.serviceInstance !== 'undefined') {
142
+ const crudServiceInstance = ctx.serviceInstance;
143
+ if (typeof crudServiceInstance.updatePut === 'function') {
144
+ return ctx.data?.itemId && ctx.data.item ? crudServiceInstance.updatePut(ctx.data.itemId, ctx.data.item) : null;
145
+ }
146
+ }
147
+ return null;
148
+ }
149
+ static runDeleteService(ctx) {
150
+ if (typeof ctx.serviceInstance !== 'undefined') {
151
+ const crudServiceInstance = ctx.serviceInstance;
152
+ if (typeof crudServiceInstance.removeDelete === 'function') {
153
+ return ctx.data?.itemId ? crudServiceInstance.removeDelete(ctx.data.itemId, ctx.data.item) : null;
154
+ }
155
+ }
156
+ return null;
157
+ }
158
+ static runFetchDataProvider(ctx) {
159
+ if (typeof ctx.dataProvider !== 'undefined') {
160
+ const editorDataProvider = ctx.dataProvider;
161
+ if (typeof editorDataProvider.fetch === 'function') {
162
+ return ctx.data?.itemId ? editorDataProvider.fetch(ctx.data.itemId, ctx.serviceInstance) : null;
163
+ }
164
+ }
165
+ return null;
166
+ }
167
+ static runCreateDataProvider(ctx) {
168
+ if (typeof ctx.dataProvider !== 'undefined') {
169
+ const editorDataProvider = ctx.dataProvider;
170
+ if (typeof editorDataProvider.create === 'function') {
171
+ return ctx.data?.item ? editorDataProvider.create(ctx.data.item, ctx.serviceInstance) : null;
172
+ }
173
+ }
174
+ return null;
175
+ }
176
+ static runUpdateDataProvider(ctx) {
177
+ if (typeof ctx.dataProvider !== 'undefined') {
178
+ const editorDataProvider = ctx.dataProvider;
179
+ if (typeof editorDataProvider.update === 'function') {
180
+ return ctx.data?.itemId ? editorDataProvider.update(ctx.data.itemId, ctx.data.item, ctx.serviceInstance) : null;
181
+ }
182
+ }
183
+ return null;
184
+ }
185
+ static runDeleteDataProvider(ctx) {
186
+ if (typeof ctx.dataProvider !== 'undefined') {
187
+ const editorDataProvider = ctx.dataProvider;
188
+ if (typeof editorDataProvider.delete === 'function') {
189
+ return ctx.data?.itemId ? editorDataProvider.delete(ctx.data.itemId, ctx.data.item, ctx.serviceInstance) : null;
190
+ }
191
+ }
192
+ return null;
193
+ }
194
+ }
195
+
81
196
  class DataProvider {
82
197
  constructor(modelType, serviceType) {
83
198
  this._modelType = modelType;
@@ -833,7 +948,7 @@ class ActionEditorAddDescriptor extends ActionEditorDescriptor {
833
948
  super(editorDescriptor, ActionEditorAddDescriptor.ACTION_NAME);
834
949
  this.withPosition(ActionPositionEnum.ToolbarLeft);
835
950
  this.withRouteTrigger('add');
836
- this.withSubmitFunction(ctx => ctx.dataProvider?.create ? ctx.dataProvider.create(ctx.data?.item, ctx.serviceInstance) : throwError(new Error(`Data provider create function is missing.`)));
951
+ this.withSubmitFunction(ActionDataProviderUtil.runCreateOrFail);
837
952
  this.withLevel(ActionLevelEnum.Success);
838
953
  this.withIcon('pi pi-plus');
839
954
  }
@@ -859,12 +974,8 @@ class ActionEditorEditDescriptor extends ActionEditorDescriptor {
859
974
  this.withPosition(ActionPositionEnum.RowInline);
860
975
  this.withTitle(null);
861
976
  this.withRouteTrigger(':itemId/edit');
862
- this.withFetchFunction(ctx => ctx.dataProvider?.fetch && ctx.data?.itemId
863
- ? ctx.dataProvider.fetch(ctx.data.itemId, ctx.serviceInstance)
864
- : throwError(new Error(`Data provider fetch function or item id ${ctx.data?.itemId} is missing.`)));
865
- this.withSubmitFunction(ctx => ctx.dataProvider?.update && ctx.data?.itemId
866
- ? ctx.dataProvider.update(ctx.data.itemId, ctx.data?.item, ctx.serviceInstance)
867
- : throwError(new Error(`Data provider update function or item id ${ctx.data?.itemId} is missing.`)));
977
+ this.withFetchFunction(ActionDataProviderUtil.runFetchOrFail);
978
+ this.withSubmitFunction(ActionDataProviderUtil.runUpdateOrFail);
868
979
  this.withIcon('pi pi-pencil');
869
980
  }
870
981
  withServiceType(serviceType) {
@@ -888,12 +999,7 @@ class ActionDeleteDescriptor extends ActionDescriptor {
888
999
  super(model, ActionDeleteDescriptor.ACTION_NAME);
889
1000
  this.withPosition(ActionPositionEnum.RowInline);
890
1001
  this.withTitle(null);
891
- this.withRunFunction(ctx => {
892
- const editorDataProvider = ctx.dataProvider;
893
- return editorDataProvider?.delete && ctx.data?.itemId
894
- ? editorDataProvider.delete(ctx.data.itemId, ctx.data.item, ctx.serviceInstance)
895
- : throwError(new Error(`Data provider delete function or item id ${ctx.data?.itemId} is missing.`));
896
- });
1002
+ this.withRunFunction(ActionDataProviderUtil.runDeleteOrFail);
897
1003
  this.withLevel(ActionLevelEnum.Danger);
898
1004
  this.withIcon('pi pi-trash');
899
1005
  this.withRunConfirmation(undefined);
@@ -2943,49 +3049,12 @@ class EditorFormlyUtil {
2943
3049
  const validatorRes = validation.validator(control, field, options);
2944
3050
  // formly validator only excepts true/false for validation
2945
3051
  // map possible angular validator result to true/false
2946
- const res = typeof validatorRes === 'boolean' ? validatorRes : validatorRes === null;
2947
- console.log('mapper', config.key, validatorRes, res);
2948
- return res;
3052
+ return typeof validatorRes === 'boolean' ? validatorRes : validatorRes === null;
2949
3053
  }
2950
3054
  };
2951
3055
  if (typeof validation.message === 'function') {
2952
3056
  config.validators[validation.name].message = validation.message;
2953
3057
  }
2954
- // if (typeof validation.validator === 'function' && typeof validation.message === 'function') {
2955
- // config.validators[validation.name] = {
2956
- // expression: (
2957
- // control: AbstractControl,
2958
- // field: FormlyFieldConfig,
2959
- // options?: {
2960
- // [id: string]: any;
2961
- // }
2962
- // ) => {
2963
- // const validatorRes = validation.validator!(control, field, options);
2964
- // // formly validator only excepts true/false for validation
2965
- // // map possible angular validator result to true/false
2966
- // const res = typeof validatorRes === 'boolean' ? validatorRes : validatorRes === null;
2967
- // console.log('mapper', config.key, validatorRes, res);
2968
- // return res;
2969
- // },
2970
- // message: validation.message
2971
- // };
2972
- // } else if (typeof validation.validator === 'function') {
2973
- // config.validators[validation.name] = {
2974
- // expression: (
2975
- // control: AbstractControl,
2976
- // field: FormlyFieldConfig,
2977
- // options?: {
2978
- // [id: string]: any;
2979
- // }
2980
- // ) => {
2981
- // const validatorRes = validation.validator!(control, field, options);
2982
- // // formly validator only excepts true/false for validation
2983
- // // map possible angular validator result to true/false
2984
- // const res = typeof validatorRes === 'boolean' ? (validatorRes === false ? {[validation.name]: true} : null) : validatorRes;
2985
- // console.log('mapper', config.key, validatorRes, res);
2986
- // return res;
2987
- // }
2988
- // };
2989
3058
  }
2990
3059
  else {
2991
3060
  if (!Array.isArray(config.validators.validation)) {
@@ -2994,9 +3063,6 @@ class EditorFormlyUtil {
2994
3063
  config.validators.validation.push(validation.name);
2995
3064
  }
2996
3065
  }
2997
- if (validations.length > 0) {
2998
- console.log(config.validators);
2999
- }
3000
3066
  }
3001
3067
  }
3002
3068
 
@@ -3872,7 +3938,8 @@ MediusRestUtil.matchModeMapping = [
3872
3938
  ];
3873
3939
 
3874
3940
  class ActionExecContext {
3875
- constructor(dataProvider, serviceInstance, data, sourceComponent = null, viewContainer = null) {
3941
+ constructor(action, dataProvider, serviceInstance, data, sourceComponent = null, viewContainer = null) {
3942
+ this.action = action;
3876
3943
  this.dataProvider = dataProvider;
3877
3944
  this.serviceInstance = serviceInstance;
3878
3945
  this.data = data;
@@ -4188,7 +4255,7 @@ class MngActionExecutorService {
4188
4255
  }
4189
4256
  prepareActionExecContext(action, itemId, item, dataProvider, viewContainer, sourceComponent, actionData) {
4190
4257
  const ctxDataProvider = dataProvider ?? action.dataProvider ?? viewContainer?.getDataProvider();
4191
- return new ActionExecContext(ctxDataProvider, this.getDataProviderService(ctxDataProvider) ?? undefined, {
4258
+ return new ActionExecContext(action, ctxDataProvider, this.getDataProviderService(ctxDataProvider) ?? undefined, {
4192
4259
  item,
4193
4260
  itemId,
4194
4261
  actionData
@@ -4335,7 +4402,7 @@ class MngActionExecutorService {
4335
4402
  ctxDataProvider = viewContainerDataProvider;
4336
4403
  }
4337
4404
  }
4338
- const context = new ActionExecContext(ctxDataProvider, this.getDataProviderService(ctxDataProvider) ?? undefined, {
4405
+ const context = new ActionExecContext(action, ctxDataProvider, this.getDataProviderService(ctxDataProvider) ?? undefined, {
4339
4406
  item,
4340
4407
  itemId,
4341
4408
  actionData
@@ -6057,7 +6124,7 @@ class MngActionEditorComponent {
6057
6124
  return throwError(() => actionError);
6058
6125
  }), finalize(() => this.loadingSubject.next(false)))
6059
6126
  .subscribe(res => {
6060
- this.item = res.result;
6127
+ this.item = res?.result ?? undefined;
6061
6128
  if (this.action.hasFetchNotificationSuccess) {
6062
6129
  NotificationUtil.actionNotificationSuccess(this.translate, this.action, 'fetch', this.action.fetchNotificationSuccessTitle, this.action.fetchNotificationSuccessMessage, this.viewContainer, this.item);
6063
6130
  }
@@ -8559,7 +8626,7 @@ class AMngCrudApiService extends AMngGetAllApiService {
8559
8626
  body: item ? this.serialize(item) : undefined,
8560
8627
  params: params
8561
8628
  })
8562
- .pipe(map(res => this.deserialize(res)));
8629
+ .pipe(map(res => (res ? this.deserialize(res) : null)));
8563
8630
  }
8564
8631
  getCreatePostPath(item) {
8565
8632
  return '';
@@ -9037,5 +9104,5 @@ class RouteDataBuilder {
9037
9104
  * Generated bundle index. Do not edit.
9038
9105
  */
9039
9106
 
9040
- export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionLinkDescriptor, ActionPositionEnum, ActionRunResult, ActionSimpleDescriptor, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, DefaultMngErrorMapperService, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldDescriptor, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, I18nUtils, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngI18nPropertyPipe, MngLinkFormatterPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTopbarComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, RouteBuilder, RouteDataBuilder, RoutesBuilder, TableDataProvider, TableDescriptor, TableviewDataProvider, TableviewDescriptor, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
9107
+ export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionLinkDescriptor, ActionPositionEnum, ActionRunResult, ActionSimpleDescriptor, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, DefaultMngErrorMapperService, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldDescriptor, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, I18nUtils, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngI18nPropertyPipe, MngLinkFormatterPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTopbarComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, RouteBuilder, RouteDataBuilder, RoutesBuilder, TableDataProvider, TableDescriptor, TableviewDataProvider, TableviewDescriptor, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
9041
9108
  //# sourceMappingURL=mediusinc-mng-commons.mjs.map