@mediusinc/mng-commons 0.2.18 → 0.2.19
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/assets/i18n/sl.json +15 -15
- package/esm2020/lib/components/action/action.component.mjs +32 -18
- package/esm2020/lib/components/action/editor/action-editor.component.mjs +182 -0
- package/esm2020/lib/components/action/index.mjs +2 -2
- package/esm2020/lib/components/action/models/action-execution.model.mjs +3 -3
- package/esm2020/lib/components/action/route/action-route.component.mjs +17 -12
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +2 -2
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -3
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
- package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +4 -3
- package/esm2020/lib/components/form/models/form-editor.event.mjs +1 -1
- package/esm2020/lib/components/tableview/table/table.component.mjs +9 -9
- package/esm2020/lib/components/tableview/tableview.component.mjs +22 -15
- package/esm2020/lib/data-providers/table.data-provider.mjs +1 -1
- package/esm2020/lib/descriptors/action.descriptor.mjs +112 -1
- package/esm2020/lib/descriptors/editor.descriptor.mjs +53 -11
- package/esm2020/lib/mng-commons.module.mjs +14 -10
- package/esm2020/lib/models/index.mjs +2 -1
- package/esm2020/lib/models/view-container.model.mjs +2 -0
- package/esm2020/lib/services/action-executor.service.mjs +291 -0
- package/esm2020/lib/services/index.mjs +2 -2
- package/esm2020/lib/services/mng-view-container-component.service.mjs +35 -0
- package/esm2020/lib/services/tokens/default-setting.token.mjs +3 -0
- package/esm2020/lib/services/tokens/index.mjs +2 -1
- package/esm2020/lib/utils/toast.util.mjs +15 -7
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/mediusinc-mng-commons.mjs +944 -677
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
- package/fesm2020/mediusinc-mng-commons.mjs +914 -657
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
- package/lib/components/action/action.component.d.ts +12 -7
- package/lib/components/action/{dialog/action-dialog.component.d.ts → editor/action-editor.component.d.ts} +18 -12
- package/lib/components/action/index.d.ts +1 -1
- package/lib/components/action/models/action-execution.model.d.ts +3 -3
- package/lib/components/action/route/action-route.component.d.ts +6 -6
- package/lib/components/tableview/table/table.component.d.ts +3 -3
- package/lib/components/tableview/tableview.component.d.ts +10 -7
- package/lib/descriptors/action.descriptor.d.ts +41 -5
- package/lib/descriptors/editor.descriptor.d.ts +23 -4
- package/lib/mng-commons.module.d.ts +2 -2
- package/lib/models/index.d.ts +1 -0
- package/lib/models/view-container.model.d.ts +6 -0
- package/lib/services/{action.service.d.ts → action-executor.service.d.ts} +19 -18
- package/lib/services/index.d.ts +1 -1
- package/lib/services/mng-view-container-component.service.d.ts +22 -0
- package/lib/services/tokens/default-setting.token.d.ts +2 -0
- package/lib/services/tokens/index.d.ts +1 -0
- package/lib/utils/toast.util.d.ts +5 -4
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/scss/mng-overrides/_layout_forms.scss +2 -0
- package/scss/mng-overrides/_mixins.scss +7 -0
- package/scss/mng-overrides/_theme_button.scss +58 -0
- package/scss/mng-overrides/_theme_styles.scss +1 -0
- package/scss/mng-overrides/_variables.scss +2 -0
- package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +0 -151
- package/esm2020/lib/components/tableview/services/index.mjs +0 -2
- package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +0 -21
- package/esm2020/lib/services/action.service.mjs +0 -273
- package/lib/components/tableview/services/index.d.ts +0 -1
- package/lib/components/tableview/services/tableview.component.service.d.ts +0 -14
|
@@ -2,24 +2,24 @@ import * as i4$1 from '@angular/common';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import {
|
|
5
|
+
import { InjectionToken, Injectable, Inject, Component, ChangeDetectionStrategy, Optional, Input, EventEmitter, Directive, Output, ContentChildren, ViewChild, forwardRef, Pipe, ViewChildren, HostListener, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
6
6
|
import * as i4$2 from '@angular/forms';
|
|
7
7
|
import { Validators, FormGroup, FormArray, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
8
8
|
import * as i1 from '@angular/router';
|
|
9
9
|
import { NavigationEnd, GuardsCheckEnd, RouterModule } from '@angular/router';
|
|
10
|
-
import * as i3$
|
|
10
|
+
import * as i3$2 from '@ngx-formly/core';
|
|
11
11
|
import { FieldType, FieldWrapper, FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';
|
|
12
|
-
import * as i3 from '@ngx-translate/core';
|
|
12
|
+
import * as i3$1 from '@ngx-translate/core';
|
|
13
13
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
14
|
-
import * as i2
|
|
15
|
-
import {
|
|
14
|
+
import * as i2 from 'primeng/api';
|
|
15
|
+
import { ConfirmationService, MessageService, FilterMatchMode } from 'primeng/api';
|
|
16
16
|
import * as i1$1 from 'primeng/autocomplete';
|
|
17
17
|
import { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';
|
|
18
|
-
import * as i2$
|
|
18
|
+
import * as i2$3 from 'primeng/breadcrumb';
|
|
19
19
|
import { BreadcrumbModule } from 'primeng/breadcrumb';
|
|
20
20
|
import * as i8 from 'primeng/button';
|
|
21
21
|
import { ButtonModule } from 'primeng/button';
|
|
22
|
-
import * as i5 from 'primeng/calendar';
|
|
22
|
+
import * as i5$1 from 'primeng/calendar';
|
|
23
23
|
import { CalendarModule } from 'primeng/calendar';
|
|
24
24
|
import { CardModule } from 'primeng/card';
|
|
25
25
|
import { CheckboxModule } from 'primeng/checkbox';
|
|
@@ -31,7 +31,7 @@ import * as i1$4 from 'primeng/dialog';
|
|
|
31
31
|
import { DialogModule } from 'primeng/dialog';
|
|
32
32
|
import * as i1$2 from 'primeng/dropdown';
|
|
33
33
|
import { Dropdown, DropdownModule } from 'primeng/dropdown';
|
|
34
|
-
import * as
|
|
34
|
+
import * as i3 from 'primeng/dynamicdialog';
|
|
35
35
|
import { DynamicDialogModule, DialogService } from 'primeng/dynamicdialog';
|
|
36
36
|
import * as i1$6 from 'primeng/fieldset';
|
|
37
37
|
import { FieldsetModule } from 'primeng/fieldset';
|
|
@@ -40,27 +40,27 @@ import * as i6$1 from 'primeng/inputmask';
|
|
|
40
40
|
import { InputMaskModule } from 'primeng/inputmask';
|
|
41
41
|
import * as i1$3 from 'primeng/inputnumber';
|
|
42
42
|
import { InputNumberModule } from 'primeng/inputnumber';
|
|
43
|
-
import * as i2$
|
|
43
|
+
import * as i2$2 from 'primeng/inputswitch';
|
|
44
44
|
import { InputSwitchModule } from 'primeng/inputswitch';
|
|
45
45
|
import * as i10$1 from 'primeng/inputtext';
|
|
46
46
|
import { InputTextModule } from 'primeng/inputtext';
|
|
47
47
|
import * as i9$1 from 'primeng/inputtextarea';
|
|
48
48
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
49
|
-
import * as i3$
|
|
49
|
+
import * as i3$3 from 'primeng/messages';
|
|
50
50
|
import { MessagesModule } from 'primeng/messages';
|
|
51
|
-
import * as i2$
|
|
51
|
+
import * as i2$1 from 'primeng/multiselect';
|
|
52
52
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
53
53
|
import { PaginatorModule } from 'primeng/paginator';
|
|
54
|
-
import * as
|
|
54
|
+
import * as i5 from 'primeng/progressspinner';
|
|
55
55
|
import { ProgressSpinnerModule } from 'primeng/progressspinner';
|
|
56
|
-
import * as i4$
|
|
56
|
+
import * as i4$3 from 'primeng/radiobutton';
|
|
57
57
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
58
58
|
import * as i9 from 'primeng/ripple';
|
|
59
59
|
import { RippleModule } from 'primeng/ripple';
|
|
60
60
|
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
61
61
|
import * as i7 from 'primeng/skeleton';
|
|
62
62
|
import { SkeletonModule } from 'primeng/skeleton';
|
|
63
|
-
import * as i4$
|
|
63
|
+
import * as i4$4 from 'primeng/table';
|
|
64
64
|
import { Table, TableModule } from 'primeng/table';
|
|
65
65
|
import * as i1$5 from 'primeng/tabview';
|
|
66
66
|
import { TabViewModule } from 'primeng/tabview';
|
|
@@ -72,436 +72,74 @@ import * as i8$1 from 'primeng/toolbar';
|
|
|
72
72
|
import { ToolbarModule } from 'primeng/toolbar';
|
|
73
73
|
import * as i10 from 'primeng/tooltip';
|
|
74
74
|
import { TooltipModule } from 'primeng/tooltip';
|
|
75
|
-
import {
|
|
75
|
+
import { throwError, of, Subject, Observable, from, BehaviorSubject, ReplaySubject, distinctUntilChanged, combineLatest } from 'rxjs';
|
|
76
76
|
import 'reflect-metadata';
|
|
77
77
|
import { mergeMap, map, first, catchError, filter, finalize, startWith } from 'rxjs/operators';
|
|
78
78
|
import * as i4 from '@angular/platform-browser';
|
|
79
79
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
80
80
|
|
|
81
|
-
class
|
|
82
|
-
constructor(
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
85
|
-
this._position = ActionPositionEnum.ToolbarRight;
|
|
86
|
-
this._level = ActionLevelEnum.Default;
|
|
87
|
-
this._routeUrl = null;
|
|
88
|
-
this._className = '';
|
|
89
|
-
this._hasRunConfirmation = false;
|
|
90
|
-
this._hasRunNotificationSuccess = true;
|
|
91
|
-
this._hasRunNotificationError = true;
|
|
92
|
-
this._model = model;
|
|
93
|
-
this._actionName = actionName;
|
|
94
|
-
if ((parentType && !parentProperty) || (!parentProperty && parentProperty)) {
|
|
95
|
-
throw new Error(`Provide both the parent type and parent property or none: ${parentType}, ${parentProperty}.`);
|
|
96
|
-
}
|
|
97
|
-
this._parentType = parentType;
|
|
98
|
-
this._parentTypeName = parentType ? TypeUtil.findTypeName(parentType) : undefined;
|
|
99
|
-
this._parentProperty = parentProperty;
|
|
100
|
-
this._i18nModelActionBaseKey = this._parentTypeName
|
|
101
|
-
? `${this._parentTypeName}.actions.${this._parentProperty}_${actionName}`
|
|
102
|
-
: `${this._model.typeName}.actions.${actionName}`;
|
|
103
|
-
}
|
|
104
|
-
get model() {
|
|
105
|
-
return this._model;
|
|
106
|
-
}
|
|
107
|
-
get parentTypeName() {
|
|
108
|
-
return this._parentTypeName;
|
|
109
|
-
}
|
|
110
|
-
get parentProperty() {
|
|
111
|
-
return this._parentProperty;
|
|
112
|
-
}
|
|
113
|
-
get i18nModelActionBaseKey() {
|
|
114
|
-
return this._i18nModelActionBaseKey;
|
|
115
|
-
}
|
|
116
|
-
get type() {
|
|
117
|
-
return this._type;
|
|
118
|
-
}
|
|
119
|
-
get activationTrigger() {
|
|
120
|
-
return this._activationTrigger;
|
|
121
|
-
}
|
|
122
|
-
get position() {
|
|
123
|
-
return this._position;
|
|
124
|
-
}
|
|
125
|
-
get level() {
|
|
126
|
-
return this._level;
|
|
127
|
-
}
|
|
128
|
-
get routeUrl() {
|
|
129
|
-
return this._routeUrl;
|
|
130
|
-
}
|
|
131
|
-
get title() {
|
|
132
|
-
return this._title;
|
|
133
|
-
}
|
|
134
|
-
get icon() {
|
|
135
|
-
return this._icon;
|
|
136
|
-
}
|
|
137
|
-
get tooltip() {
|
|
138
|
-
return this._tooltip;
|
|
139
|
-
}
|
|
140
|
-
get runFunction() {
|
|
141
|
-
if (!this._runFunction) {
|
|
142
|
-
throw new Error('Run function is not defined and cannot be invoked');
|
|
143
|
-
}
|
|
144
|
-
return this._runFunction;
|
|
145
|
-
}
|
|
146
|
-
get isVisibleFunction() {
|
|
147
|
-
return this._isVisibleFunction;
|
|
148
|
-
}
|
|
149
|
-
get isEnabledFunction() {
|
|
150
|
-
return this._isEnabledFunction;
|
|
151
|
-
}
|
|
152
|
-
get actionName() {
|
|
153
|
-
return this._actionName;
|
|
154
|
-
}
|
|
155
|
-
get className() {
|
|
156
|
-
return this._className;
|
|
157
|
-
}
|
|
158
|
-
get hasRunConfirmation() {
|
|
159
|
-
return this._hasRunConfirmation;
|
|
160
|
-
}
|
|
161
|
-
get runConfirmationIcon() {
|
|
162
|
-
return this._runConfirmationIcon;
|
|
163
|
-
}
|
|
164
|
-
get runConfirmationTitle() {
|
|
165
|
-
return this._runConfirmationTitle;
|
|
166
|
-
}
|
|
167
|
-
get runConfirmationMessage() {
|
|
168
|
-
return this._runConfirmationMessage;
|
|
169
|
-
}
|
|
170
|
-
get runConfirmationAcceptTitle() {
|
|
171
|
-
return this._runConfirmationAcceptTitle;
|
|
172
|
-
}
|
|
173
|
-
get runConfirmationRejectTitle() {
|
|
174
|
-
return this._runConfirmationRejectTitle;
|
|
175
|
-
}
|
|
176
|
-
get hasRunNotificationSuccess() {
|
|
177
|
-
return this._hasRunNotificationSuccess;
|
|
178
|
-
}
|
|
179
|
-
get runNotificationSuccessTitle() {
|
|
180
|
-
return this._runNotificationSuccessTitle;
|
|
181
|
-
}
|
|
182
|
-
get runNotificationSuccessMessage() {
|
|
183
|
-
return this._runNotificationSuccessMessage;
|
|
184
|
-
}
|
|
185
|
-
get hasRunNotificationError() {
|
|
186
|
-
return this._hasRunNotificationError;
|
|
187
|
-
}
|
|
188
|
-
get runNotificationErrorTitle() {
|
|
189
|
-
return this._runNotificationErrorTitle;
|
|
190
|
-
}
|
|
191
|
-
get runNotificationErrorMessage() {
|
|
192
|
-
return this._runNotificationErrorMessage;
|
|
81
|
+
class DataProvider {
|
|
82
|
+
constructor(modelType, serviceType) {
|
|
83
|
+
this._modelType = modelType;
|
|
84
|
+
this._serviceType = serviceType;
|
|
193
85
|
}
|
|
194
|
-
|
|
195
|
-
this.
|
|
196
|
-
return this;
|
|
86
|
+
get serviceType() {
|
|
87
|
+
return this._serviceType;
|
|
197
88
|
}
|
|
198
|
-
|
|
199
|
-
this.
|
|
200
|
-
return this;
|
|
89
|
+
get modelType() {
|
|
90
|
+
return this._modelType;
|
|
201
91
|
}
|
|
202
|
-
|
|
203
|
-
this.
|
|
92
|
+
withServiceType(type) {
|
|
93
|
+
this._serviceType = type;
|
|
204
94
|
return this;
|
|
205
95
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
class EditorDataProvider extends DataProvider {
|
|
99
|
+
constructor(modelType, serviceType) {
|
|
100
|
+
super(modelType, serviceType);
|
|
101
|
+
this._fetch = id => throwError(`No fetch function provided for id ${id}.`);
|
|
210
102
|
}
|
|
211
|
-
|
|
212
|
-
this.
|
|
213
|
-
return this;
|
|
103
|
+
get fetch() {
|
|
104
|
+
return this._fetch;
|
|
214
105
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
*/
|
|
218
|
-
withModelTitle() {
|
|
219
|
-
this._title = `${this._i18nModelActionBaseKey}.title`;
|
|
220
|
-
return this;
|
|
106
|
+
get create() {
|
|
107
|
+
return this._create;
|
|
221
108
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
* @param title Title i18n key or title.
|
|
225
|
-
*/
|
|
226
|
-
withTitle(title) {
|
|
227
|
-
this._title = title;
|
|
228
|
-
return this;
|
|
109
|
+
get update() {
|
|
110
|
+
return this._update;
|
|
229
111
|
}
|
|
230
|
-
|
|
231
|
-
this.
|
|
232
|
-
return this;
|
|
112
|
+
get delete() {
|
|
113
|
+
return this._delete;
|
|
233
114
|
}
|
|
234
|
-
|
|
235
|
-
this.
|
|
115
|
+
withFetch(fetch) {
|
|
116
|
+
this._fetch = fetch;
|
|
236
117
|
return this;
|
|
237
118
|
}
|
|
238
|
-
|
|
239
|
-
this.
|
|
119
|
+
withCreate(create) {
|
|
120
|
+
this._create = create;
|
|
240
121
|
return this;
|
|
241
122
|
}
|
|
242
|
-
|
|
243
|
-
this.
|
|
123
|
+
withUpdate(update) {
|
|
124
|
+
this._update = update;
|
|
244
125
|
return this;
|
|
245
126
|
}
|
|
246
|
-
|
|
247
|
-
this.
|
|
248
|
-
this._runConfirmationIcon = icon;
|
|
249
|
-
this._runConfirmationTitle = title;
|
|
250
|
-
this._runConfirmationMessage = message;
|
|
251
|
-
this._runConfirmationAcceptTitle = acceptTitle;
|
|
252
|
-
this._runConfirmationRejectTitle = rejectTitle;
|
|
127
|
+
withDelete(deleteFn) {
|
|
128
|
+
this._delete = deleteFn;
|
|
253
129
|
return this;
|
|
254
130
|
}
|
|
255
|
-
withRunNotificationSuccess(title, message, hasNotification = true) {
|
|
256
|
-
this._hasRunNotificationSuccess = hasNotification;
|
|
257
|
-
this._runNotificationSuccessTitle = title;
|
|
258
|
-
this._runNotificationSuccessMessage = message;
|
|
259
|
-
}
|
|
260
|
-
withRunNotificationError(title, message, hasNotification = true) {
|
|
261
|
-
this._hasRunNotificationError = hasNotification;
|
|
262
|
-
this._runNotificationErrorTitle = title;
|
|
263
|
-
this._runNotificationErrorMessage = message;
|
|
264
|
-
}
|
|
265
131
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
this.
|
|
271
|
-
this._type = ActionTypeEnum.Editor;
|
|
272
|
-
this._editorDescriptor = editorDescriptor;
|
|
273
|
-
}
|
|
274
|
-
get editorTitle() {
|
|
275
|
-
return this._editorTitle;
|
|
276
|
-
}
|
|
277
|
-
get editorDescriptor() {
|
|
278
|
-
return this._editorDescriptor;
|
|
279
|
-
}
|
|
280
|
-
get hasFetchNotificationSuccess() {
|
|
281
|
-
return this._hasFetchNotificationSuccess;
|
|
282
|
-
}
|
|
283
|
-
get fetchNotificationSuccessTitle() {
|
|
284
|
-
return this._fetchNotificationSuccessTitle;
|
|
285
|
-
}
|
|
286
|
-
get fetchNotificationSuccessMessage() {
|
|
287
|
-
return this._fetchNotificationSuccessMessage;
|
|
288
|
-
}
|
|
289
|
-
get runFunction() {
|
|
290
|
-
throw new Error('Run function cannot be used in editor action. Use submit function instead!');
|
|
291
|
-
}
|
|
292
|
-
get fetchFunction() {
|
|
293
|
-
if (!this._fetchFunction) {
|
|
294
|
-
return ctx => {
|
|
295
|
-
console.warn(`Fetch function is not provided for function ${this._actionName}, using default and returning context item`, ctx.data?.item);
|
|
296
|
-
return of(ctx.data?.item ? ctx.data.item : {});
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
return this._fetchFunction;
|
|
300
|
-
}
|
|
301
|
-
get submitFunction() {
|
|
302
|
-
return this._submitFunction;
|
|
303
|
-
}
|
|
304
|
-
withEditorTitle(title) {
|
|
305
|
-
this._editorTitle = title;
|
|
306
|
-
return this;
|
|
307
|
-
}
|
|
308
|
-
withRunFunction(fn) {
|
|
309
|
-
return this.withSubmitFunction(fn);
|
|
132
|
+
|
|
133
|
+
class LookupDataProvider extends DataProvider {
|
|
134
|
+
constructor(modelType, serviceType) {
|
|
135
|
+
super(modelType, serviceType);
|
|
136
|
+
this._lookup = () => of([]);
|
|
310
137
|
}
|
|
311
|
-
|
|
312
|
-
this.
|
|
313
|
-
return this;
|
|
138
|
+
get lookup() {
|
|
139
|
+
return this._lookup;
|
|
314
140
|
}
|
|
315
|
-
|
|
316
|
-
this.
|
|
317
|
-
return this;
|
|
318
|
-
}
|
|
319
|
-
withFetchNotificationError(title, message, hasNotification = true) {
|
|
320
|
-
this._hasFetchNotificationSuccess = hasNotification;
|
|
321
|
-
this._fetchNotificationSuccessTitle = title;
|
|
322
|
-
this._fetchNotificationSuccessMessage = message;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
class ActionEditorDetailsDescriptor extends ActionEditorDescriptor {
|
|
326
|
-
constructor(editorDescriptor) {
|
|
327
|
-
super(editorDescriptor, 'details');
|
|
328
|
-
this.withPosition(ActionPositionEnum.RowClick);
|
|
329
|
-
this.withRouteTrigger(':itemId');
|
|
330
|
-
this.withFetchFunction(ctx => ctx.dataProvider?.fetch && ctx.data?.itemId
|
|
331
|
-
? ctx.dataProvider.fetch(ctx.data?.itemId, ctx.serviceInstance)
|
|
332
|
-
: throwError(new Error(`Data provider fetch function or item id ${ctx.data?.itemId} is missing.`)));
|
|
333
|
-
this.withClassName('mng-details-dynamic-dialog');
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
class ActionEditorAddDescriptor extends ActionEditorDescriptor {
|
|
337
|
-
constructor(editorDescriptor) {
|
|
338
|
-
super(editorDescriptor, 'add');
|
|
339
|
-
this.withPosition(ActionPositionEnum.ToolbarLeft);
|
|
340
|
-
this.withRouteTrigger('add');
|
|
341
|
-
this.withSubmitFunction(ctx => ctx.dataProvider?.create ? ctx.dataProvider.create(ctx.data?.item, ctx.serviceInstance) : throwError(new Error(`Data provider create function is missing.`)));
|
|
342
|
-
this.withLevel(ActionLevelEnum.Success);
|
|
343
|
-
this.withIcon('pi pi-plus');
|
|
344
|
-
this.withClassName('mng-details-dynamic-dialog');
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
class ActionEditorEditDescriptor extends ActionEditorDescriptor {
|
|
348
|
-
constructor(editorDescriptor) {
|
|
349
|
-
super(editorDescriptor, 'edit');
|
|
350
|
-
this.withPosition(ActionPositionEnum.RowInline);
|
|
351
|
-
this.withTitle(null);
|
|
352
|
-
this.withRouteTrigger(':itemId/edit');
|
|
353
|
-
this.withFetchFunction(ctx => ctx.dataProvider?.fetch && ctx.data?.itemId
|
|
354
|
-
? ctx.dataProvider.fetch(ctx.data.itemId, ctx.serviceInstance)
|
|
355
|
-
: throwError(new Error(`Data provider fetch function or item id ${ctx.data?.itemId} is missing.`)));
|
|
356
|
-
this.withSubmitFunction(ctx => ctx.dataProvider?.update && ctx.data?.itemId
|
|
357
|
-
? ctx.dataProvider.update(ctx.data.itemId, ctx.data?.item, ctx.serviceInstance)
|
|
358
|
-
: throwError(new Error(`Data provider update function or item id ${ctx.data?.itemId} is missing.`)));
|
|
359
|
-
this.withIcon('pi pi-pencil');
|
|
360
|
-
this.withClassName('mng-details-dynamic-dialog');
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
class ActionDeleteDescriptor extends ActionDescriptor {
|
|
364
|
-
constructor(model) {
|
|
365
|
-
super(model, 'delete');
|
|
366
|
-
this.withPosition(ActionPositionEnum.RowInline);
|
|
367
|
-
this.withTitle(null);
|
|
368
|
-
this.withRunFunction(ctx => {
|
|
369
|
-
const editorDataProvider = ctx.dataProvider;
|
|
370
|
-
return editorDataProvider?.delete && ctx.data?.itemId
|
|
371
|
-
? editorDataProvider.delete(ctx.data.itemId, ctx.data.item, ctx.serviceInstance)
|
|
372
|
-
: throwError(new Error(`Data provider delete function or item id ${ctx.data?.itemId} is missing.`));
|
|
373
|
-
});
|
|
374
|
-
this.withLevel(ActionLevelEnum.Danger);
|
|
375
|
-
this.withIcon('pi pi-trash');
|
|
376
|
-
this.withRunConfirmation(undefined);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
var ActionPositionEnum;
|
|
380
|
-
(function (ActionPositionEnum) {
|
|
381
|
-
ActionPositionEnum[ActionPositionEnum["ToolbarLeft"] = 0] = "ToolbarLeft";
|
|
382
|
-
ActionPositionEnum[ActionPositionEnum["ToolbarRight"] = 1] = "ToolbarRight";
|
|
383
|
-
ActionPositionEnum[ActionPositionEnum["TableHeader"] = 2] = "TableHeader";
|
|
384
|
-
ActionPositionEnum[ActionPositionEnum["RowInline"] = 3] = "RowInline";
|
|
385
|
-
ActionPositionEnum[ActionPositionEnum["RowClick"] = 4] = "RowClick";
|
|
386
|
-
})(ActionPositionEnum || (ActionPositionEnum = {}));
|
|
387
|
-
var ActionActivationTriggerEnum;
|
|
388
|
-
(function (ActionActivationTriggerEnum) {
|
|
389
|
-
ActionActivationTriggerEnum[ActionActivationTriggerEnum["OnClick"] = 0] = "OnClick";
|
|
390
|
-
ActionActivationTriggerEnum[ActionActivationTriggerEnum["OnRoute"] = 1] = "OnRoute"; // action is triggered for activation by route url
|
|
391
|
-
})(ActionActivationTriggerEnum || (ActionActivationTriggerEnum = {}));
|
|
392
|
-
var ActionTypeEnum;
|
|
393
|
-
(function (ActionTypeEnum) {
|
|
394
|
-
ActionTypeEnum[ActionTypeEnum["Direct"] = 0] = "Direct";
|
|
395
|
-
ActionTypeEnum[ActionTypeEnum["Editor"] = 1] = "Editor"; // editor providing middle step for activation
|
|
396
|
-
})(ActionTypeEnum || (ActionTypeEnum = {}));
|
|
397
|
-
var ActionLevelEnum;
|
|
398
|
-
(function (ActionLevelEnum) {
|
|
399
|
-
ActionLevelEnum[ActionLevelEnum["Default"] = 0] = "Default";
|
|
400
|
-
ActionLevelEnum[ActionLevelEnum["Primary"] = 1] = "Primary";
|
|
401
|
-
ActionLevelEnum[ActionLevelEnum["Secondary"] = 2] = "Secondary";
|
|
402
|
-
ActionLevelEnum[ActionLevelEnum["Info"] = 3] = "Info";
|
|
403
|
-
ActionLevelEnum[ActionLevelEnum["Help"] = 4] = "Help";
|
|
404
|
-
ActionLevelEnum[ActionLevelEnum["Success"] = 5] = "Success";
|
|
405
|
-
ActionLevelEnum[ActionLevelEnum["Warning"] = 6] = "Warning";
|
|
406
|
-
ActionLevelEnum[ActionLevelEnum["Danger"] = 7] = "Danger";
|
|
407
|
-
})(ActionLevelEnum || (ActionLevelEnum = {}));
|
|
408
|
-
|
|
409
|
-
class MngFormEditorSubmitEvent {
|
|
410
|
-
constructor(formItem) {
|
|
411
|
-
this.formItem = formItem;
|
|
412
|
-
this.success = true;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
var MngFormFieldEventTypeEnum;
|
|
416
|
-
(function (MngFormFieldEventTypeEnum) {
|
|
417
|
-
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Component"] = 0] = "Component";
|
|
418
|
-
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["ValueChange"] = 1] = "ValueChange";
|
|
419
|
-
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["DataProvider"] = 2] = "DataProvider";
|
|
420
|
-
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Dialog"] = 3] = "Dialog";
|
|
421
|
-
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Other"] = 4] = "Other";
|
|
422
|
-
})(MngFormFieldEventTypeEnum || (MngFormFieldEventTypeEnum = {}));
|
|
423
|
-
class MngFormFieldEventComponentSubtype {
|
|
424
|
-
}
|
|
425
|
-
MngFormFieldEventComponentSubtype.ON_INIT = 'Component.OnInit';
|
|
426
|
-
MngFormFieldEventComponentSubtype.ON_VIEW_INIT = 'Component.OnViewInit';
|
|
427
|
-
MngFormFieldEventComponentSubtype.ON_CONTENT_INIT = 'Component.OnContentInit';
|
|
428
|
-
MngFormFieldEventComponentSubtype.ON_DESTROY = 'Component.OnDestroy';
|
|
429
|
-
class MngFormFieldEventDialogSubtype {
|
|
430
|
-
}
|
|
431
|
-
MngFormFieldEventDialogSubtype.VISIBILITY = 'Dialog.Visibility';
|
|
432
|
-
MngFormFieldEventDialogSubtype.TABLE_CAPTION_COMPONENT_INSTANCE = 'Dialog.MngTable.CaptionComponentInstance';
|
|
433
|
-
MngFormFieldEventDialogSubtype.TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE = 'Dialog.MngTable.ColumnActionsComponentInstance';
|
|
434
|
-
class MngFormFieldEvent {
|
|
435
|
-
constructor(type, componentType, componentInstance, data = {}) {
|
|
436
|
-
this.type = type;
|
|
437
|
-
this.componentType = componentType;
|
|
438
|
-
this.componentInstance = componentInstance;
|
|
439
|
-
this.data = data;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
class DataProvider {
|
|
444
|
-
constructor(modelType, serviceType) {
|
|
445
|
-
this._modelType = modelType;
|
|
446
|
-
this._serviceType = serviceType;
|
|
447
|
-
}
|
|
448
|
-
get serviceType() {
|
|
449
|
-
return this._serviceType;
|
|
450
|
-
}
|
|
451
|
-
get modelType() {
|
|
452
|
-
return this._modelType;
|
|
453
|
-
}
|
|
454
|
-
withServiceType(type) {
|
|
455
|
-
this._serviceType = type;
|
|
456
|
-
return this;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
class EditorDataProvider extends DataProvider {
|
|
461
|
-
constructor(modelType, serviceType) {
|
|
462
|
-
super(modelType, serviceType);
|
|
463
|
-
this._fetch = id => throwError(`No fetch function provided for id ${id}.`);
|
|
464
|
-
}
|
|
465
|
-
get fetch() {
|
|
466
|
-
return this._fetch;
|
|
467
|
-
}
|
|
468
|
-
get create() {
|
|
469
|
-
return this._create;
|
|
470
|
-
}
|
|
471
|
-
get update() {
|
|
472
|
-
return this._update;
|
|
473
|
-
}
|
|
474
|
-
get delete() {
|
|
475
|
-
return this._delete;
|
|
476
|
-
}
|
|
477
|
-
withFetch(fetch) {
|
|
478
|
-
this._fetch = fetch;
|
|
479
|
-
return this;
|
|
480
|
-
}
|
|
481
|
-
withCreate(create) {
|
|
482
|
-
this._create = create;
|
|
483
|
-
return this;
|
|
484
|
-
}
|
|
485
|
-
withUpdate(update) {
|
|
486
|
-
this._update = update;
|
|
487
|
-
return this;
|
|
488
|
-
}
|
|
489
|
-
withDelete(deleteFn) {
|
|
490
|
-
this._delete = deleteFn;
|
|
491
|
-
return this;
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
class LookupDataProvider extends DataProvider {
|
|
496
|
-
constructor(modelType, serviceType) {
|
|
497
|
-
super(modelType, serviceType);
|
|
498
|
-
this._lookup = () => of([]);
|
|
499
|
-
}
|
|
500
|
-
get lookup() {
|
|
501
|
-
return this._lookup;
|
|
502
|
-
}
|
|
503
|
-
withLookup(lookup) {
|
|
504
|
-
this._lookup = lookup;
|
|
141
|
+
withLookup(lookup) {
|
|
142
|
+
this._lookup = lookup;
|
|
505
143
|
return this;
|
|
506
144
|
}
|
|
507
145
|
}
|
|
@@ -713,76 +351,548 @@ class MediusQueryParamBuilder {
|
|
|
713
351
|
this.queryParam.itemsPerPage = itemsPerPage;
|
|
714
352
|
return this;
|
|
715
353
|
}
|
|
716
|
-
withItemsOffset(itemsOffset) {
|
|
717
|
-
this.queryParam.itemsOffset = itemsOffset;
|
|
718
|
-
return this;
|
|
354
|
+
withItemsOffset(itemsOffset) {
|
|
355
|
+
this.queryParam.itemsOffset = itemsOffset;
|
|
356
|
+
return this;
|
|
357
|
+
}
|
|
358
|
+
withSort(property, asc = true) {
|
|
359
|
+
if (!this.queryParam.sortProperty || !this.queryParam.sortAsc) {
|
|
360
|
+
this.queryParam.sortProperty = [];
|
|
361
|
+
this.queryParam.sortAsc = [];
|
|
362
|
+
}
|
|
363
|
+
this.queryParam.sortProperty.push(property);
|
|
364
|
+
this.queryParam.sortAsc.push(asc);
|
|
365
|
+
return this;
|
|
366
|
+
}
|
|
367
|
+
withFilter(property, value, valueTo = undefined, matchType = MediusFilterMatchType.Contains, matchCaseSensitive = false) {
|
|
368
|
+
if (!this.queryParam.filterParams) {
|
|
369
|
+
this.queryParam.filterParams = [];
|
|
370
|
+
}
|
|
371
|
+
const filterParam = new MediusFilterParam();
|
|
372
|
+
filterParam.property = property;
|
|
373
|
+
filterParam.filterValue = value;
|
|
374
|
+
filterParam.filterValueTo = valueTo;
|
|
375
|
+
filterParam.filterMatchType = matchType;
|
|
376
|
+
filterParam.filterMatchCaseSensitive = matchCaseSensitive;
|
|
377
|
+
this.queryParam.filterParams.push(filterParam);
|
|
378
|
+
return this;
|
|
379
|
+
}
|
|
380
|
+
build() {
|
|
381
|
+
const queryParam = this.queryParam;
|
|
382
|
+
this.queryParam = new MediusQueryParam();
|
|
383
|
+
return queryParam;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/* tslint:disable:no-angle-bracket-type-assertion no-trailing-whitespace member-ordering object-literal-key-quotes */
|
|
388
|
+
const enumsMapBase = {
|
|
389
|
+
FilterMatchType: MediusFilterMatchType,
|
|
390
|
+
QueryMode: MediusQueryMode
|
|
391
|
+
};
|
|
392
|
+
const typeMapBase = {
|
|
393
|
+
FilterParam: MediusFilterParam,
|
|
394
|
+
QueryParam: MediusQueryParam,
|
|
395
|
+
QueryResult: MediusQueryResult,
|
|
396
|
+
QueryResultWithObject: MediusQueryResultWithObject
|
|
397
|
+
};
|
|
398
|
+
|
|
399
|
+
class TableDataProvider extends DataProvider {
|
|
400
|
+
constructor(modelType, serviceType) {
|
|
401
|
+
super(modelType, serviceType);
|
|
402
|
+
this._getAll = () => of(new MediusQueryResult());
|
|
403
|
+
}
|
|
404
|
+
get getAll() {
|
|
405
|
+
return this._getAll;
|
|
406
|
+
}
|
|
407
|
+
withGetAll(getAll) {
|
|
408
|
+
this._getAll = getAll;
|
|
409
|
+
return this;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
class TableviewDataProvider extends EditorDataProvider {
|
|
414
|
+
constructor(modelType, serviceType) {
|
|
415
|
+
super(modelType, serviceType);
|
|
416
|
+
this._getAll = () => of(new MediusQueryResult());
|
|
417
|
+
}
|
|
418
|
+
get getAll() {
|
|
419
|
+
return this._getAll;
|
|
420
|
+
}
|
|
421
|
+
withGetAll(getAll) {
|
|
422
|
+
this._getAll = getAll;
|
|
423
|
+
return this;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
class ActionDescriptor {
|
|
428
|
+
constructor(model, actionName, parentType, parentProperty) {
|
|
429
|
+
this._type = ActionTypeEnum.Direct;
|
|
430
|
+
this._activationTrigger = ActionActivationTriggerEnum.OnClick;
|
|
431
|
+
this._position = ActionPositionEnum.ToolbarRight;
|
|
432
|
+
this._level = ActionLevelEnum.Default;
|
|
433
|
+
this._routeUrl = null;
|
|
434
|
+
this._className = '';
|
|
435
|
+
this._size = ActionDescriptor.SizeEnum.Normal;
|
|
436
|
+
this._hasRunConfirmation = false;
|
|
437
|
+
this._hasRunNotificationSuccess = true;
|
|
438
|
+
this._hasRunNotificationError = true;
|
|
439
|
+
this._model = model;
|
|
440
|
+
this._actionName = actionName;
|
|
441
|
+
if ((parentType && !parentProperty) || (!parentProperty && parentProperty)) {
|
|
442
|
+
throw new Error(`Provide both the parent type and parent property or none: ${parentType}, ${parentProperty}.`);
|
|
443
|
+
}
|
|
444
|
+
this._parentType = parentType;
|
|
445
|
+
this._parentTypeName = parentType ? TypeUtil.findTypeName(parentType) : undefined;
|
|
446
|
+
this._parentProperty = parentProperty;
|
|
447
|
+
this._i18nModelActionBaseKey = this._parentTypeName
|
|
448
|
+
? `${this._parentTypeName}.actions.${this._parentProperty}_${actionName}`
|
|
449
|
+
: `${this._model.typeName}.actions.${actionName}`;
|
|
450
|
+
}
|
|
451
|
+
get model() {
|
|
452
|
+
return this._model;
|
|
453
|
+
}
|
|
454
|
+
get parentTypeName() {
|
|
455
|
+
return this._parentTypeName;
|
|
456
|
+
}
|
|
457
|
+
get parentProperty() {
|
|
458
|
+
return this._parentProperty;
|
|
459
|
+
}
|
|
460
|
+
get i18nModelActionBaseKey() {
|
|
461
|
+
return this._i18nModelActionBaseKey;
|
|
462
|
+
}
|
|
463
|
+
get type() {
|
|
464
|
+
return this._type;
|
|
465
|
+
}
|
|
466
|
+
get activationTrigger() {
|
|
467
|
+
return this._activationTrigger;
|
|
468
|
+
}
|
|
469
|
+
get position() {
|
|
470
|
+
return this._position;
|
|
471
|
+
}
|
|
472
|
+
get level() {
|
|
473
|
+
return this._level;
|
|
474
|
+
}
|
|
475
|
+
get routeUrl() {
|
|
476
|
+
return this._routeUrl;
|
|
477
|
+
}
|
|
478
|
+
get title() {
|
|
479
|
+
return this._title;
|
|
480
|
+
}
|
|
481
|
+
get icon() {
|
|
482
|
+
return this._icon;
|
|
483
|
+
}
|
|
484
|
+
get tooltip() {
|
|
485
|
+
return this._tooltip;
|
|
486
|
+
}
|
|
487
|
+
get dataProvider() {
|
|
488
|
+
return this._dataProvider;
|
|
489
|
+
}
|
|
490
|
+
get runFunction() {
|
|
491
|
+
if (!this._runFunction) {
|
|
492
|
+
throw new Error('Run function is not defined and cannot be invoked');
|
|
493
|
+
}
|
|
494
|
+
return this._runFunction;
|
|
495
|
+
}
|
|
496
|
+
get isVisibleFunction() {
|
|
497
|
+
return this._isVisibleFunction;
|
|
498
|
+
}
|
|
499
|
+
get isEnabledFunction() {
|
|
500
|
+
return this._isEnabledFunction;
|
|
501
|
+
}
|
|
502
|
+
get actionName() {
|
|
503
|
+
return this._actionName;
|
|
504
|
+
}
|
|
505
|
+
get className() {
|
|
506
|
+
return this._className;
|
|
507
|
+
}
|
|
508
|
+
get size() {
|
|
509
|
+
return this._size;
|
|
510
|
+
}
|
|
511
|
+
get isSizeExtraSmall() {
|
|
512
|
+
return this._size === ActionDescriptor.SizeEnum.ExtraSmall;
|
|
513
|
+
}
|
|
514
|
+
get isSizeSmall() {
|
|
515
|
+
return this._size === ActionDescriptor.SizeEnum.Small;
|
|
516
|
+
}
|
|
517
|
+
get isSizeLarge() {
|
|
518
|
+
return this._size === ActionDescriptor.SizeEnum.Large;
|
|
519
|
+
}
|
|
520
|
+
get isSizeExtraLarge() {
|
|
521
|
+
return this._size === ActionDescriptor.SizeEnum.ExtraLarge;
|
|
522
|
+
}
|
|
523
|
+
get hasRunConfirmation() {
|
|
524
|
+
return this._hasRunConfirmation;
|
|
525
|
+
}
|
|
526
|
+
get runConfirmationIcon() {
|
|
527
|
+
return this._runConfirmationIcon;
|
|
528
|
+
}
|
|
529
|
+
get runConfirmationTitle() {
|
|
530
|
+
return this._runConfirmationTitle;
|
|
531
|
+
}
|
|
532
|
+
get runConfirmationMessage() {
|
|
533
|
+
return this._runConfirmationMessage;
|
|
534
|
+
}
|
|
535
|
+
get runConfirmationAcceptTitle() {
|
|
536
|
+
return this._runConfirmationAcceptTitle;
|
|
537
|
+
}
|
|
538
|
+
get runConfirmationRejectTitle() {
|
|
539
|
+
return this._runConfirmationRejectTitle;
|
|
540
|
+
}
|
|
541
|
+
get hasRunNotificationSuccess() {
|
|
542
|
+
return this._hasRunNotificationSuccess;
|
|
543
|
+
}
|
|
544
|
+
get runNotificationSuccessTitle() {
|
|
545
|
+
return this._runNotificationSuccessTitle;
|
|
546
|
+
}
|
|
547
|
+
get runNotificationSuccessMessage() {
|
|
548
|
+
return this._runNotificationSuccessMessage;
|
|
549
|
+
}
|
|
550
|
+
get hasRunNotificationError() {
|
|
551
|
+
return this._hasRunNotificationError;
|
|
552
|
+
}
|
|
553
|
+
get runNotificationErrorTitle() {
|
|
554
|
+
return this._runNotificationErrorTitle;
|
|
555
|
+
}
|
|
556
|
+
get runNotificationErrorMessage() {
|
|
557
|
+
return this._runNotificationErrorMessage;
|
|
558
|
+
}
|
|
559
|
+
withDataProvider(dataProvider) {
|
|
560
|
+
this._dataProvider = dataProvider;
|
|
561
|
+
return this;
|
|
562
|
+
}
|
|
563
|
+
withServiceType(serviceType) {
|
|
564
|
+
this._dataProvider = new DataProvider(this._model.type, serviceType);
|
|
565
|
+
return this;
|
|
566
|
+
}
|
|
567
|
+
withRunFunction(fn) {
|
|
568
|
+
this._runFunction = fn;
|
|
569
|
+
return this;
|
|
570
|
+
}
|
|
571
|
+
withIsVisibleFunction(fn) {
|
|
572
|
+
this._isVisibleFunction = fn;
|
|
573
|
+
return this;
|
|
574
|
+
}
|
|
575
|
+
withIsEnabledFunction(fn) {
|
|
576
|
+
this._isEnabledFunction = fn;
|
|
577
|
+
return this;
|
|
578
|
+
}
|
|
579
|
+
withRouteTrigger(routeUrl) {
|
|
580
|
+
this._activationTrigger = ActionActivationTriggerEnum.OnRoute;
|
|
581
|
+
this._routeUrl = routeUrl;
|
|
582
|
+
return this;
|
|
583
|
+
}
|
|
584
|
+
withLevel(level) {
|
|
585
|
+
this._level = level;
|
|
586
|
+
return this;
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Overrides default title key with model action key (${model.typeName}.actions.${actionName}). Not relevant if parentType name is provided.
|
|
590
|
+
*/
|
|
591
|
+
withModelTitle() {
|
|
592
|
+
this._title = `${this._i18nModelActionBaseKey}.title`;
|
|
593
|
+
return this;
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* Overrides default title key (${actionName}.title). If null, no title will be shown.
|
|
597
|
+
* @param title Title i18n key or title.
|
|
598
|
+
*/
|
|
599
|
+
withTitle(title) {
|
|
600
|
+
this._title = title;
|
|
601
|
+
return this;
|
|
602
|
+
}
|
|
603
|
+
withIcon(icon) {
|
|
604
|
+
this._icon = icon;
|
|
605
|
+
return this;
|
|
606
|
+
}
|
|
607
|
+
withTooltip(tooltip) {
|
|
608
|
+
this._title = tooltip;
|
|
609
|
+
return this;
|
|
610
|
+
}
|
|
611
|
+
withClassName(className) {
|
|
612
|
+
this._className = className;
|
|
613
|
+
return this;
|
|
614
|
+
}
|
|
615
|
+
withSize(size = ActionDescriptor.SizeEnum.Normal) {
|
|
616
|
+
this._size = size;
|
|
617
|
+
return this;
|
|
618
|
+
}
|
|
619
|
+
withPosition(position) {
|
|
620
|
+
this._position = position;
|
|
621
|
+
return this;
|
|
622
|
+
}
|
|
623
|
+
withRunConfirmation(icon = 'pi pi-exclamation-triangle', title, message, acceptTitle, rejectTitle) {
|
|
624
|
+
this._hasRunConfirmation = true;
|
|
625
|
+
this._runConfirmationIcon = icon;
|
|
626
|
+
this._runConfirmationTitle = title;
|
|
627
|
+
this._runConfirmationMessage = message;
|
|
628
|
+
this._runConfirmationAcceptTitle = acceptTitle;
|
|
629
|
+
this._runConfirmationRejectTitle = rejectTitle;
|
|
630
|
+
return this;
|
|
631
|
+
}
|
|
632
|
+
withRunNotificationSuccess(title, message, hasNotification = true) {
|
|
633
|
+
this._hasRunNotificationSuccess = hasNotification;
|
|
634
|
+
this._runNotificationSuccessTitle = title;
|
|
635
|
+
this._runNotificationSuccessMessage = message;
|
|
636
|
+
}
|
|
637
|
+
withRunNotificationError(title, message, hasNotification = true) {
|
|
638
|
+
this._hasRunNotificationError = hasNotification;
|
|
639
|
+
this._runNotificationErrorTitle = title;
|
|
640
|
+
this._runNotificationErrorMessage = message;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
(function (ActionDescriptor) {
|
|
644
|
+
let SizeEnum;
|
|
645
|
+
(function (SizeEnum) {
|
|
646
|
+
SizeEnum[SizeEnum["ExtraSmall"] = 0] = "ExtraSmall";
|
|
647
|
+
SizeEnum[SizeEnum["Small"] = 1] = "Small";
|
|
648
|
+
SizeEnum[SizeEnum["Normal"] = 2] = "Normal";
|
|
649
|
+
SizeEnum[SizeEnum["Large"] = 3] = "Large";
|
|
650
|
+
SizeEnum[SizeEnum["ExtraLarge"] = 4] = "ExtraLarge";
|
|
651
|
+
})(SizeEnum = ActionDescriptor.SizeEnum || (ActionDescriptor.SizeEnum = {}));
|
|
652
|
+
})(ActionDescriptor || (ActionDescriptor = {}));
|
|
653
|
+
class ActionEditorDescriptor extends ActionDescriptor {
|
|
654
|
+
constructor(editorDescriptor, actionName, parentType, parentProperty) {
|
|
655
|
+
super(editorDescriptor.model, actionName, parentType, parentProperty);
|
|
656
|
+
this._editorTitle = undefined;
|
|
657
|
+
this._hasFetchNotificationSuccess = false;
|
|
658
|
+
this._type = ActionTypeEnum.Editor;
|
|
659
|
+
this._editorDescriptor = editorDescriptor;
|
|
660
|
+
}
|
|
661
|
+
get editorTitle() {
|
|
662
|
+
return this._editorTitle;
|
|
663
|
+
}
|
|
664
|
+
get editorDescriptor() {
|
|
665
|
+
return this._editorDescriptor;
|
|
666
|
+
}
|
|
667
|
+
get hasFetchNotificationSuccess() {
|
|
668
|
+
return this._hasFetchNotificationSuccess;
|
|
669
|
+
}
|
|
670
|
+
get fetchNotificationSuccessTitle() {
|
|
671
|
+
return this._fetchNotificationSuccessTitle;
|
|
672
|
+
}
|
|
673
|
+
get fetchNotificationSuccessMessage() {
|
|
674
|
+
return this._fetchNotificationSuccessMessage;
|
|
675
|
+
}
|
|
676
|
+
get dataProvider() {
|
|
677
|
+
return this._dataProvider;
|
|
678
|
+
}
|
|
679
|
+
get runFunction() {
|
|
680
|
+
throw new Error('Run function cannot be used in editor action. Use submit function instead!');
|
|
681
|
+
}
|
|
682
|
+
get fetchFunction() {
|
|
683
|
+
if (!this._fetchFunction) {
|
|
684
|
+
return ctx => {
|
|
685
|
+
console.warn(`Fetch function is not provided for function ${this._actionName}, using default and returning context item`, ctx.data?.item);
|
|
686
|
+
return of(ctx.data?.item ? ctx.data.item : {});
|
|
687
|
+
};
|
|
688
|
+
}
|
|
689
|
+
return this._fetchFunction;
|
|
690
|
+
}
|
|
691
|
+
get submitFunction() {
|
|
692
|
+
return this._submitFunction;
|
|
693
|
+
}
|
|
694
|
+
get editorComponent() {
|
|
695
|
+
return this._editorComponent;
|
|
696
|
+
}
|
|
697
|
+
withEditorTitle(title) {
|
|
698
|
+
this._editorTitle = title;
|
|
699
|
+
return this;
|
|
700
|
+
}
|
|
701
|
+
withDataProvider(dataProvider) {
|
|
702
|
+
this._dataProvider = dataProvider;
|
|
703
|
+
return this;
|
|
704
|
+
}
|
|
705
|
+
withServiceType(serviceType) {
|
|
706
|
+
this._dataProvider = new EditorDataProvider(this._model.type, serviceType);
|
|
707
|
+
return this;
|
|
708
|
+
}
|
|
709
|
+
withRunFunction(fn) {
|
|
710
|
+
return this.withSubmitFunction(fn);
|
|
711
|
+
}
|
|
712
|
+
withFetchFunction(fn) {
|
|
713
|
+
this._fetchFunction = fn;
|
|
714
|
+
return this;
|
|
715
|
+
}
|
|
716
|
+
withSubmitFunction(fn) {
|
|
717
|
+
this._submitFunction = fn;
|
|
718
|
+
return this;
|
|
719
|
+
}
|
|
720
|
+
withFetchNotificationError(title, message, hasNotification = true) {
|
|
721
|
+
this._hasFetchNotificationSuccess = hasNotification;
|
|
722
|
+
this._fetchNotificationSuccessTitle = title;
|
|
723
|
+
this._fetchNotificationSuccessMessage = message;
|
|
724
|
+
return this;
|
|
725
|
+
}
|
|
726
|
+
withEditorComponent(editorComponent) {
|
|
727
|
+
this._editorComponent = editorComponent;
|
|
728
|
+
return this;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
class ActionEditorDetailsDescriptor extends ActionEditorDescriptor {
|
|
732
|
+
constructor(editorDescriptor) {
|
|
733
|
+
super(editorDescriptor, 'details');
|
|
734
|
+
this.withPosition(ActionPositionEnum.RowClick);
|
|
735
|
+
this.withRouteTrigger(':itemId');
|
|
736
|
+
this.withFetchFunction(ctx => ctx.dataProvider?.fetch && ctx.data?.itemId
|
|
737
|
+
? ctx.dataProvider.fetch(ctx.data?.itemId, ctx.serviceInstance)
|
|
738
|
+
: throwError(new Error(`Data provider fetch function or item id ${ctx.data?.itemId} is missing.`)));
|
|
739
|
+
this.withClassName('mng-details-dynamic-dialog');
|
|
740
|
+
}
|
|
741
|
+
withServiceType(serviceType) {
|
|
742
|
+
return this.withServiceFetchFunction(serviceType);
|
|
743
|
+
}
|
|
744
|
+
withServiceFetchFunction(serviceType, fetchFn) {
|
|
745
|
+
const dataProvider = new EditorDataProvider(this._model.type, serviceType);
|
|
746
|
+
if (fetchFn) {
|
|
747
|
+
dataProvider.withFetch(fetchFn);
|
|
748
|
+
}
|
|
749
|
+
this._dataProvider = dataProvider;
|
|
750
|
+
return this;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
class ActionEditorAddDescriptor extends ActionEditorDescriptor {
|
|
754
|
+
constructor(editorDescriptor) {
|
|
755
|
+
super(editorDescriptor, 'add');
|
|
756
|
+
this.withPosition(ActionPositionEnum.ToolbarLeft);
|
|
757
|
+
this.withRouteTrigger('add');
|
|
758
|
+
this.withSubmitFunction(ctx => ctx.dataProvider?.create ? ctx.dataProvider.create(ctx.data?.item, ctx.serviceInstance) : throwError(new Error(`Data provider create function is missing.`)));
|
|
759
|
+
this.withLevel(ActionLevelEnum.Success);
|
|
760
|
+
this.withIcon('pi pi-plus');
|
|
761
|
+
this.withClassName('mng-details-dynamic-dialog');
|
|
762
|
+
}
|
|
763
|
+
withServiceType(serviceType) {
|
|
764
|
+
return this.withServiceSubmitFunction(serviceType);
|
|
719
765
|
}
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
766
|
+
withServiceSubmitFunction(serviceType, createFn, fetchFn) {
|
|
767
|
+
const dataProvider = new EditorDataProvider(this._model.type, serviceType);
|
|
768
|
+
if (createFn) {
|
|
769
|
+
dataProvider.withCreate(createFn);
|
|
724
770
|
}
|
|
725
|
-
|
|
726
|
-
|
|
771
|
+
if (fetchFn) {
|
|
772
|
+
dataProvider.withFetch(fetchFn);
|
|
773
|
+
}
|
|
774
|
+
this._dataProvider = dataProvider;
|
|
727
775
|
return this;
|
|
728
776
|
}
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
777
|
+
}
|
|
778
|
+
class ActionEditorEditDescriptor extends ActionEditorDescriptor {
|
|
779
|
+
constructor(editorDescriptor) {
|
|
780
|
+
super(editorDescriptor, 'edit');
|
|
781
|
+
this.withPosition(ActionPositionEnum.RowInline);
|
|
782
|
+
this.withTitle(null);
|
|
783
|
+
this.withRouteTrigger(':itemId/edit');
|
|
784
|
+
this.withFetchFunction(ctx => ctx.dataProvider?.fetch && ctx.data?.itemId
|
|
785
|
+
? ctx.dataProvider.fetch(ctx.data.itemId, ctx.serviceInstance)
|
|
786
|
+
: throwError(new Error(`Data provider fetch function or item id ${ctx.data?.itemId} is missing.`)));
|
|
787
|
+
this.withSubmitFunction(ctx => ctx.dataProvider?.update && ctx.data?.itemId
|
|
788
|
+
? ctx.dataProvider.update(ctx.data.itemId, ctx.data?.item, ctx.serviceInstance)
|
|
789
|
+
: throwError(new Error(`Data provider update function or item id ${ctx.data?.itemId} is missing.`)));
|
|
790
|
+
this.withIcon('pi pi-pencil');
|
|
791
|
+
this.withClassName('mng-details-dynamic-dialog');
|
|
792
|
+
}
|
|
793
|
+
withServiceType(serviceType) {
|
|
794
|
+
return this.withServiceSubmitFunction(serviceType);
|
|
795
|
+
}
|
|
796
|
+
withServiceSubmitFunction(serviceType, updateFn, fetchFn) {
|
|
797
|
+
const dataProvider = new EditorDataProvider(this._model.type, serviceType);
|
|
798
|
+
if (updateFn) {
|
|
799
|
+
dataProvider.withUpdate(updateFn);
|
|
732
800
|
}
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
filterParam.filterMatchType = matchType;
|
|
738
|
-
filterParam.filterMatchCaseSensitive = matchCaseSensitive;
|
|
739
|
-
this.queryParam.filterParams.push(filterParam);
|
|
801
|
+
if (fetchFn) {
|
|
802
|
+
dataProvider.withFetch(fetchFn);
|
|
803
|
+
}
|
|
804
|
+
this._dataProvider = dataProvider;
|
|
740
805
|
return this;
|
|
741
806
|
}
|
|
742
|
-
build() {
|
|
743
|
-
const queryParam = this.queryParam;
|
|
744
|
-
this.queryParam = new MediusQueryParam();
|
|
745
|
-
return queryParam;
|
|
746
|
-
}
|
|
747
807
|
}
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
const
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
constructor(modelType, serviceType) {
|
|
763
|
-
super(modelType, serviceType);
|
|
764
|
-
this._getAll = () => of(new MediusQueryResult());
|
|
808
|
+
class ActionDeleteDescriptor extends ActionDescriptor {
|
|
809
|
+
constructor(model) {
|
|
810
|
+
super(model, 'delete');
|
|
811
|
+
this.withPosition(ActionPositionEnum.RowInline);
|
|
812
|
+
this.withTitle(null);
|
|
813
|
+
this.withRunFunction(ctx => {
|
|
814
|
+
const editorDataProvider = ctx.dataProvider;
|
|
815
|
+
return editorDataProvider?.delete && ctx.data?.itemId
|
|
816
|
+
? editorDataProvider.delete(ctx.data.itemId, ctx.data.item, ctx.serviceInstance)
|
|
817
|
+
: throwError(new Error(`Data provider delete function or item id ${ctx.data?.itemId} is missing.`));
|
|
818
|
+
});
|
|
819
|
+
this.withLevel(ActionLevelEnum.Danger);
|
|
820
|
+
this.withIcon('pi pi-trash');
|
|
821
|
+
this.withRunConfirmation(undefined);
|
|
765
822
|
}
|
|
766
|
-
|
|
767
|
-
return this.
|
|
823
|
+
withServiceType(serviceType) {
|
|
824
|
+
return this.withServiceDeleteFunction(serviceType);
|
|
768
825
|
}
|
|
769
|
-
|
|
770
|
-
this.
|
|
826
|
+
withServiceDeleteFunction(serviceType, deleteFn) {
|
|
827
|
+
const dataProvider = new EditorDataProvider(this._model.type, serviceType);
|
|
828
|
+
if (deleteFn) {
|
|
829
|
+
dataProvider.withDelete(deleteFn);
|
|
830
|
+
}
|
|
831
|
+
this._dataProvider = dataProvider;
|
|
771
832
|
return this;
|
|
772
833
|
}
|
|
773
834
|
}
|
|
835
|
+
var ActionPositionEnum;
|
|
836
|
+
(function (ActionPositionEnum) {
|
|
837
|
+
ActionPositionEnum[ActionPositionEnum["ToolbarLeft"] = 0] = "ToolbarLeft";
|
|
838
|
+
ActionPositionEnum[ActionPositionEnum["ToolbarRight"] = 1] = "ToolbarRight";
|
|
839
|
+
ActionPositionEnum[ActionPositionEnum["TableHeader"] = 2] = "TableHeader";
|
|
840
|
+
ActionPositionEnum[ActionPositionEnum["RowInline"] = 3] = "RowInline";
|
|
841
|
+
ActionPositionEnum[ActionPositionEnum["RowClick"] = 4] = "RowClick";
|
|
842
|
+
})(ActionPositionEnum || (ActionPositionEnum = {}));
|
|
843
|
+
var ActionActivationTriggerEnum;
|
|
844
|
+
(function (ActionActivationTriggerEnum) {
|
|
845
|
+
ActionActivationTriggerEnum[ActionActivationTriggerEnum["OnClick"] = 0] = "OnClick";
|
|
846
|
+
ActionActivationTriggerEnum[ActionActivationTriggerEnum["OnRoute"] = 1] = "OnRoute"; // action is triggered for activation by route url
|
|
847
|
+
})(ActionActivationTriggerEnum || (ActionActivationTriggerEnum = {}));
|
|
848
|
+
var ActionTypeEnum;
|
|
849
|
+
(function (ActionTypeEnum) {
|
|
850
|
+
ActionTypeEnum[ActionTypeEnum["Direct"] = 0] = "Direct";
|
|
851
|
+
ActionTypeEnum[ActionTypeEnum["Editor"] = 1] = "Editor"; // editor providing middle step for activation
|
|
852
|
+
})(ActionTypeEnum || (ActionTypeEnum = {}));
|
|
853
|
+
var ActionLevelEnum;
|
|
854
|
+
(function (ActionLevelEnum) {
|
|
855
|
+
ActionLevelEnum[ActionLevelEnum["Default"] = 0] = "Default";
|
|
856
|
+
ActionLevelEnum[ActionLevelEnum["Primary"] = 1] = "Primary";
|
|
857
|
+
ActionLevelEnum[ActionLevelEnum["Secondary"] = 2] = "Secondary";
|
|
858
|
+
ActionLevelEnum[ActionLevelEnum["Info"] = 3] = "Info";
|
|
859
|
+
ActionLevelEnum[ActionLevelEnum["Help"] = 4] = "Help";
|
|
860
|
+
ActionLevelEnum[ActionLevelEnum["Success"] = 5] = "Success";
|
|
861
|
+
ActionLevelEnum[ActionLevelEnum["Warning"] = 6] = "Warning";
|
|
862
|
+
ActionLevelEnum[ActionLevelEnum["Danger"] = 7] = "Danger";
|
|
863
|
+
})(ActionLevelEnum || (ActionLevelEnum = {}));
|
|
774
864
|
|
|
775
|
-
class
|
|
776
|
-
constructor(
|
|
777
|
-
|
|
778
|
-
this.
|
|
779
|
-
}
|
|
780
|
-
get getAll() {
|
|
781
|
-
return this._getAll;
|
|
865
|
+
class MngFormEditorSubmitEvent {
|
|
866
|
+
constructor(formItem) {
|
|
867
|
+
this.formItem = formItem;
|
|
868
|
+
this.success = true;
|
|
782
869
|
}
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
870
|
+
}
|
|
871
|
+
var MngFormFieldEventTypeEnum;
|
|
872
|
+
(function (MngFormFieldEventTypeEnum) {
|
|
873
|
+
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Component"] = 0] = "Component";
|
|
874
|
+
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["ValueChange"] = 1] = "ValueChange";
|
|
875
|
+
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["DataProvider"] = 2] = "DataProvider";
|
|
876
|
+
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Dialog"] = 3] = "Dialog";
|
|
877
|
+
MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Other"] = 4] = "Other";
|
|
878
|
+
})(MngFormFieldEventTypeEnum || (MngFormFieldEventTypeEnum = {}));
|
|
879
|
+
class MngFormFieldEventComponentSubtype {
|
|
880
|
+
}
|
|
881
|
+
MngFormFieldEventComponentSubtype.ON_INIT = 'Component.OnInit';
|
|
882
|
+
MngFormFieldEventComponentSubtype.ON_VIEW_INIT = 'Component.OnViewInit';
|
|
883
|
+
MngFormFieldEventComponentSubtype.ON_CONTENT_INIT = 'Component.OnContentInit';
|
|
884
|
+
MngFormFieldEventComponentSubtype.ON_DESTROY = 'Component.OnDestroy';
|
|
885
|
+
class MngFormFieldEventDialogSubtype {
|
|
886
|
+
}
|
|
887
|
+
MngFormFieldEventDialogSubtype.VISIBILITY = 'Dialog.Visibility';
|
|
888
|
+
MngFormFieldEventDialogSubtype.TABLE_CAPTION_COMPONENT_INSTANCE = 'Dialog.MngTable.CaptionComponentInstance';
|
|
889
|
+
MngFormFieldEventDialogSubtype.TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE = 'Dialog.MngTable.ColumnActionsComponentInstance';
|
|
890
|
+
class MngFormFieldEvent {
|
|
891
|
+
constructor(type, componentType, componentInstance, data = {}) {
|
|
892
|
+
this.type = type;
|
|
893
|
+
this.componentType = componentType;
|
|
894
|
+
this.componentInstance = componentInstance;
|
|
895
|
+
this.data = data;
|
|
786
896
|
}
|
|
787
897
|
}
|
|
788
898
|
|
|
@@ -946,12 +1056,18 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
946
1056
|
super(editor);
|
|
947
1057
|
this._required = false;
|
|
948
1058
|
this._disabled = false;
|
|
949
|
-
this._className = '';
|
|
950
1059
|
this._validators = [];
|
|
1060
|
+
this._className = '';
|
|
1061
|
+
this._labelClassName = '';
|
|
1062
|
+
this._inputClassName = '';
|
|
1063
|
+
this._size = FieldDescriptor.SizeEnum.Normal;
|
|
951
1064
|
this._eventsSubject = new Subject();
|
|
952
1065
|
this._property = property;
|
|
953
1066
|
this._label = I18nUtil.getModelPropertyKey(this._editor.model, property);
|
|
954
1067
|
}
|
|
1068
|
+
get property() {
|
|
1069
|
+
return this._property;
|
|
1070
|
+
}
|
|
955
1071
|
get group() {
|
|
956
1072
|
return this._group;
|
|
957
1073
|
}
|
|
@@ -961,6 +1077,9 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
961
1077
|
get placeholder() {
|
|
962
1078
|
return this._placeholder;
|
|
963
1079
|
}
|
|
1080
|
+
get helpText() {
|
|
1081
|
+
return this._helpText;
|
|
1082
|
+
}
|
|
964
1083
|
get required() {
|
|
965
1084
|
return this._required;
|
|
966
1085
|
}
|
|
@@ -970,9 +1089,6 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
970
1089
|
get defaultValue() {
|
|
971
1090
|
return this._defaultValue;
|
|
972
1091
|
}
|
|
973
|
-
get className() {
|
|
974
|
-
return this._className;
|
|
975
|
-
}
|
|
976
1092
|
get getter() {
|
|
977
1093
|
return this._getter;
|
|
978
1094
|
}
|
|
@@ -991,8 +1107,23 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
991
1107
|
get hiddenExpression() {
|
|
992
1108
|
return this._hiddenExpression;
|
|
993
1109
|
}
|
|
994
|
-
get
|
|
995
|
-
return this.
|
|
1110
|
+
get className() {
|
|
1111
|
+
return this._className;
|
|
1112
|
+
}
|
|
1113
|
+
get labelClassName() {
|
|
1114
|
+
return this._labelClassName;
|
|
1115
|
+
}
|
|
1116
|
+
get inputClassName() {
|
|
1117
|
+
return this._inputClassName;
|
|
1118
|
+
}
|
|
1119
|
+
get size() {
|
|
1120
|
+
return this._size;
|
|
1121
|
+
}
|
|
1122
|
+
get isSizeSmall() {
|
|
1123
|
+
return this._size === FieldDescriptor.SizeEnum.Small;
|
|
1124
|
+
}
|
|
1125
|
+
get isSizeLarge() {
|
|
1126
|
+
return this._size === FieldDescriptor.SizeEnum.Large;
|
|
996
1127
|
}
|
|
997
1128
|
withLabel(label) {
|
|
998
1129
|
this._label = label;
|
|
@@ -1002,6 +1133,10 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
1002
1133
|
this._placeholder = placeholder;
|
|
1003
1134
|
return this;
|
|
1004
1135
|
}
|
|
1136
|
+
withHelpText(helpText) {
|
|
1137
|
+
this._helpText = helpText;
|
|
1138
|
+
return this;
|
|
1139
|
+
}
|
|
1005
1140
|
withRequired(required = true, requiredExpression) {
|
|
1006
1141
|
this._required = required;
|
|
1007
1142
|
if (requiredExpression) {
|
|
@@ -1024,10 +1159,6 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
1024
1159
|
this._defaultValue = defaultValue;
|
|
1025
1160
|
return this;
|
|
1026
1161
|
}
|
|
1027
|
-
withClassName(className) {
|
|
1028
|
-
this._className = className;
|
|
1029
|
-
return this;
|
|
1030
|
-
}
|
|
1031
1162
|
withGetter(getter) {
|
|
1032
1163
|
this._getter = getter;
|
|
1033
1164
|
return this;
|
|
@@ -1040,6 +1171,16 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
1040
1171
|
this._validators.push(new FieldValidator(name, expression, message));
|
|
1041
1172
|
return this;
|
|
1042
1173
|
}
|
|
1174
|
+
withClassName(className, labelClassName = '', inputClassName = '') {
|
|
1175
|
+
this._className = className;
|
|
1176
|
+
this._labelClassName = labelClassName;
|
|
1177
|
+
this._inputClassName = inputClassName;
|
|
1178
|
+
return this;
|
|
1179
|
+
}
|
|
1180
|
+
withSize(size = FieldDescriptor.SizeEnum.Normal) {
|
|
1181
|
+
this._size = size;
|
|
1182
|
+
return this;
|
|
1183
|
+
}
|
|
1043
1184
|
nextEvent(type, cmpType, cmpInstance, data) {
|
|
1044
1185
|
this._eventsSubject.next(new MngFormFieldEvent(type, cmpType, cmpInstance, data));
|
|
1045
1186
|
}
|
|
@@ -1049,6 +1190,7 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
1049
1190
|
copyFieldsTo(obj) {
|
|
1050
1191
|
obj._label = this._label;
|
|
1051
1192
|
obj._placeholder = this._placeholder;
|
|
1193
|
+
obj._helpText = this._helpText;
|
|
1052
1194
|
obj._required = this._required;
|
|
1053
1195
|
obj._disabled = this._disabled;
|
|
1054
1196
|
obj._defaultValue = this._defaultValue;
|
|
@@ -1056,11 +1198,21 @@ class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
1056
1198
|
obj._hiddenExpression = this._hiddenExpression;
|
|
1057
1199
|
obj._disabledExpression = this._disabledExpression;
|
|
1058
1200
|
obj._className = this._className;
|
|
1201
|
+
obj._size = this.size;
|
|
1059
1202
|
obj._getter = this._getter;
|
|
1060
1203
|
obj._setter = this._setter;
|
|
1061
1204
|
obj._validators = this._validators;
|
|
1062
1205
|
}
|
|
1063
1206
|
}
|
|
1207
|
+
var FieldDescriptor;
|
|
1208
|
+
(function (FieldDescriptor) {
|
|
1209
|
+
let SizeEnum;
|
|
1210
|
+
(function (SizeEnum) {
|
|
1211
|
+
SizeEnum[SizeEnum["Small"] = 0] = "Small";
|
|
1212
|
+
SizeEnum[SizeEnum["Normal"] = 1] = "Normal";
|
|
1213
|
+
SizeEnum[SizeEnum["Large"] = 2] = "Large";
|
|
1214
|
+
})(SizeEnum = FieldDescriptor.SizeEnum || (FieldDescriptor.SizeEnum = {}));
|
|
1215
|
+
})(FieldDescriptor || (FieldDescriptor = {}));
|
|
1064
1216
|
class FieldInputDescriptor extends AFieldDescriptor {
|
|
1065
1217
|
constructor(editor, property) {
|
|
1066
1218
|
super(editor, property);
|
|
@@ -2720,7 +2872,15 @@ class ModelUtil {
|
|
|
2720
2872
|
}
|
|
2721
2873
|
|
|
2722
2874
|
class ToastUtil {
|
|
2723
|
-
static
|
|
2875
|
+
static notification(viewContainer, title, message, severity = 'success') {
|
|
2876
|
+
const messageService = viewContainer?.getMessageService();
|
|
2877
|
+
if (!messageService) {
|
|
2878
|
+
console.warn(`No message service was provided through view container, message will not be displayed.`);
|
|
2879
|
+
return;
|
|
2880
|
+
}
|
|
2881
|
+
messageService.add({ severity: severity, summary: title, detail: message });
|
|
2882
|
+
}
|
|
2883
|
+
static tableNotificationError(translationService, table, error, viewContainer) {
|
|
2724
2884
|
const params = {};
|
|
2725
2885
|
if (error?.message) {
|
|
2726
2886
|
params.errorMessage = `: ${error.message}`;
|
|
@@ -2731,14 +2891,14 @@ class ToastUtil {
|
|
|
2731
2891
|
console.log(params);
|
|
2732
2892
|
const tableErrorTitle = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.title', undefined, undefined, 'general.error', params) ?? undefined;
|
|
2733
2893
|
const tableErrorMessage = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.message', undefined, undefined, 'general.errorMessage', params) ?? undefined;
|
|
2734
|
-
|
|
2894
|
+
ToastUtil.notification(viewContainer, tableErrorTitle, tableErrorMessage, 'error');
|
|
2735
2895
|
}
|
|
2736
|
-
static actionNotificationSuccess(translationService, action, functionName, customTitleKey, customMessageKey,
|
|
2896
|
+
static actionNotificationSuccess(translationService, action, functionName, customTitleKey, customMessageKey, viewContainer, item) {
|
|
2737
2897
|
const actionSuccessTitle = I18nUtil.instantActionTranslation(translationService, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
|
|
2738
2898
|
const actionSuccessMessage = I18nUtil.instantActionTranslation(translationService, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
|
|
2739
|
-
|
|
2899
|
+
ToastUtil.notification(viewContainer, actionSuccessTitle, actionSuccessMessage);
|
|
2740
2900
|
}
|
|
2741
|
-
static actionNotificationError(translationService, action, error, functionName,
|
|
2901
|
+
static actionNotificationError(translationService, action, error, functionName, viewContainer, item) {
|
|
2742
2902
|
const params = {};
|
|
2743
2903
|
if (error?.message) {
|
|
2744
2904
|
params.errorMessage = `: ${error.message}`;
|
|
@@ -2749,7 +2909,7 @@ class ToastUtil {
|
|
|
2749
2909
|
const actionErrorTitle = I18nUtil.instantActionTranslation(translationService, action, 'error.title', action.runNotificationErrorTitle, item, 'general.error', functionName, params) ??
|
|
2750
2910
|
undefined;
|
|
2751
2911
|
const actionErrorMessage = I18nUtil.instantActionTranslation(translationService, action, 'error.message', action.runNotificationErrorMessage, item, 'general.errorMessage', functionName, params) ?? undefined;
|
|
2752
|
-
|
|
2912
|
+
ToastUtil.notification(viewContainer, actionErrorTitle, actionErrorMessage, 'error');
|
|
2753
2913
|
}
|
|
2754
2914
|
static getFormEditorWarningMessage(translationService, title, message) {
|
|
2755
2915
|
const actionErrorTitle = translationService.instant(title) ?? undefined;
|
|
@@ -3203,12 +3363,12 @@ MediusRestUtil.matchModeMapping = [
|
|
|
3203
3363
|
];
|
|
3204
3364
|
|
|
3205
3365
|
class ActionExecContext {
|
|
3206
|
-
constructor(dataProvider, serviceInstance, data, sourceComponent = null,
|
|
3366
|
+
constructor(dataProvider, serviceInstance, data, sourceComponent = null, viewContainer = null) {
|
|
3207
3367
|
this.dataProvider = dataProvider;
|
|
3208
3368
|
this.serviceInstance = serviceInstance;
|
|
3209
3369
|
this.data = data;
|
|
3210
3370
|
this.sourceComponent = sourceComponent;
|
|
3211
|
-
this.
|
|
3371
|
+
this.viewContainer = viewContainer;
|
|
3212
3372
|
}
|
|
3213
3373
|
}
|
|
3214
3374
|
class ActionError {
|
|
@@ -3260,23 +3420,33 @@ class ActionTriggerResult {
|
|
|
3260
3420
|
}
|
|
3261
3421
|
}
|
|
3262
3422
|
|
|
3263
|
-
|
|
3264
|
-
|
|
3423
|
+
const MNG_BROWSER_STORAGE_IT = new InjectionToken('Browser storage', {
|
|
3424
|
+
providedIn: 'root',
|
|
3425
|
+
factory: () => localStorage
|
|
3426
|
+
});
|
|
3427
|
+
|
|
3428
|
+
const ACTION_EDITOR_DIALOG_COMPONENT_SETTING = new InjectionToken('ACTION_EDITOR_DIALOG_COMPONENT_SETTING');
|
|
3429
|
+
|
|
3430
|
+
const MNG_MODULE_CONFIG_IT = new InjectionToken('MngModuleConfig');
|
|
3431
|
+
|
|
3432
|
+
class MngActionExecutorService {
|
|
3433
|
+
constructor(injector, router, dialogService, confirmationService, translate, defaultEditorDialogComponent) {
|
|
3265
3434
|
this.injector = injector;
|
|
3266
3435
|
this.router = router;
|
|
3267
3436
|
this.dialogService = dialogService;
|
|
3268
3437
|
this.confirmationService = confirmationService;
|
|
3269
3438
|
this.translate = translate;
|
|
3439
|
+
this.defaultEditorDialogComponent = defaultEditorDialogComponent;
|
|
3270
3440
|
}
|
|
3271
|
-
|
|
3272
|
-
return new ActionExecContext(dataProvider, this.getDataProviderService(dataProvider) ?? undefined, {
|
|
3441
|
+
prepareActionExecContext(action, itemId, item, dataProvider, viewContainer, sourceComponent, actionData) {
|
|
3442
|
+
return new ActionExecContext(dataProvider ?? action.dataProvider ?? viewContainer?.getDataProvider(), this.getDataProviderService(dataProvider) ?? undefined, {
|
|
3273
3443
|
item,
|
|
3274
3444
|
itemId,
|
|
3275
3445
|
actionData
|
|
3276
|
-
}, sourceComponent,
|
|
3446
|
+
}, sourceComponent, viewContainer);
|
|
3277
3447
|
}
|
|
3278
|
-
runAction(action, itemId, item, dataProvider, sourceComponent,
|
|
3279
|
-
const context = this.
|
|
3448
|
+
runAction(action, itemId, item, dataProvider, sourceComponent, viewContainer, actionData) {
|
|
3449
|
+
const context = this.prepareActionExecContext(action, itemId, item, dataProvider, viewContainer, sourceComponent, actionData);
|
|
3280
3450
|
if (action.hasRunConfirmation) {
|
|
3281
3451
|
if (typeof sourceComponent?.getConfirmationService !== 'function' || typeof sourceComponent?.getConfirmationServiceInstanceKey !== 'function') {
|
|
3282
3452
|
throw Error(`Source component ${sourceComponent} should be implementing IConfirmationService interface to be able to provide confirmation functionality.`);
|
|
@@ -3314,12 +3484,12 @@ class MngActionService {
|
|
|
3314
3484
|
.runFunction(context)
|
|
3315
3485
|
.pipe(first(), map(res => new ActionRunResult(context, res)), map(value => {
|
|
3316
3486
|
if (action.hasRunNotificationSuccess) {
|
|
3317
|
-
ToastUtil.actionNotificationSuccess(this.translate, action, 'run', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage,
|
|
3487
|
+
ToastUtil.actionNotificationSuccess(this.translate, action, 'run', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage, viewContainer, item);
|
|
3318
3488
|
}
|
|
3319
3489
|
return value;
|
|
3320
3490
|
}), catchError(err => {
|
|
3321
3491
|
if (action.hasRunNotificationError) {
|
|
3322
|
-
ToastUtil.actionNotificationError(this.translate, action, err, 'run',
|
|
3492
|
+
ToastUtil.actionNotificationError(this.translate, action, err, 'run', viewContainer, item);
|
|
3323
3493
|
}
|
|
3324
3494
|
throw err;
|
|
3325
3495
|
}))
|
|
@@ -3337,12 +3507,12 @@ class MngActionService {
|
|
|
3337
3507
|
else {
|
|
3338
3508
|
return action.runFunction(context).pipe(map(res => new ActionRunResult(context, res)), map(value => {
|
|
3339
3509
|
if (action.hasRunNotificationSuccess) {
|
|
3340
|
-
ToastUtil.actionNotificationSuccess(this.translate, action, 'run', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage,
|
|
3510
|
+
ToastUtil.actionNotificationSuccess(this.translate, action, 'run', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage, viewContainer, item);
|
|
3341
3511
|
}
|
|
3342
3512
|
return value;
|
|
3343
3513
|
}), catchError(err => {
|
|
3344
3514
|
if (action.hasRunNotificationError) {
|
|
3345
|
-
ToastUtil.actionNotificationError(this.translate, action, err, 'run',
|
|
3515
|
+
ToastUtil.actionNotificationError(this.translate, action, err, 'run', viewContainer, item);
|
|
3346
3516
|
}
|
|
3347
3517
|
throw err;
|
|
3348
3518
|
}));
|
|
@@ -3356,22 +3526,22 @@ class MngActionService {
|
|
|
3356
3526
|
* @param formItem Item instance (from form).
|
|
3357
3527
|
* @param dataProvider Data provider
|
|
3358
3528
|
* @param sourceComponent Source component from where the fetch function was called.
|
|
3359
|
-
* @param
|
|
3529
|
+
* @param viewContainer View container/service.
|
|
3360
3530
|
* @param actionData Additional action data.
|
|
3361
3531
|
*/
|
|
3362
|
-
runEditorSave(action, itemId, formItem, dataProvider, sourceComponent,
|
|
3363
|
-
const context = this.
|
|
3532
|
+
runEditorSave(action, itemId, formItem, dataProvider, sourceComponent, viewContainer, actionData) {
|
|
3533
|
+
const context = this.prepareExecContextForEditor(action, formItem, itemId, dataProvider, sourceComponent, viewContainer, actionData);
|
|
3364
3534
|
if (typeof action.submitFunction !== 'function') {
|
|
3365
3535
|
throw new Error(`Submit function for action ${action.actionName} cannot be invoked.`);
|
|
3366
3536
|
}
|
|
3367
3537
|
return action.submitFunction(context).pipe(map(res => new ActionRunResult(context, res)), map(value => {
|
|
3368
3538
|
if (action.hasRunNotificationSuccess) {
|
|
3369
|
-
ToastUtil.actionNotificationSuccess(this.translate, action, 'submit', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage,
|
|
3539
|
+
ToastUtil.actionNotificationSuccess(this.translate, action, 'submit', action.runNotificationSuccessTitle, action.runNotificationSuccessMessage, viewContainer, formItem);
|
|
3370
3540
|
}
|
|
3371
3541
|
return value;
|
|
3372
3542
|
}), catchError(err => {
|
|
3373
3543
|
if (action.hasRunNotificationError) {
|
|
3374
|
-
ToastUtil.actionNotificationError(this.translate, action, err, 'submit',
|
|
3544
|
+
ToastUtil.actionNotificationError(this.translate, action, err, 'submit', viewContainer, formItem);
|
|
3375
3545
|
}
|
|
3376
3546
|
throw err;
|
|
3377
3547
|
}));
|
|
@@ -3383,30 +3553,40 @@ class MngActionService {
|
|
|
3383
3553
|
* @param itemId Item id.
|
|
3384
3554
|
* @param dataProvider Data provider
|
|
3385
3555
|
* @param sourceComponent Source component from where the fetch function was called.
|
|
3386
|
-
* @param
|
|
3556
|
+
* @param viewContainer View container/service. Tableview component.
|
|
3387
3557
|
* @param actionData Additional action data.
|
|
3388
3558
|
*/
|
|
3389
|
-
runEditorFetch(action, itemId, dataProvider, sourceComponent,
|
|
3390
|
-
const context = this.
|
|
3559
|
+
runEditorFetch(action, itemId, dataProvider, sourceComponent, viewContainer, actionData) {
|
|
3560
|
+
const context = this.prepareExecContextForEditor(action, undefined, itemId, dataProvider, sourceComponent, viewContainer, actionData);
|
|
3391
3561
|
return action.fetchFunction(context).pipe(map(res => new ActionRunResult(context, res)));
|
|
3392
3562
|
// TODO: error handling
|
|
3393
3563
|
}
|
|
3394
3564
|
/**
|
|
3395
|
-
* Prepares action
|
|
3565
|
+
* Prepares action exec context for action of type editor.
|
|
3396
3566
|
*
|
|
3397
3567
|
* @param item Item instance (if exists).
|
|
3398
3568
|
* @param itemId Item id (if exists).
|
|
3399
3569
|
* @param dataProvider Data provider.
|
|
3400
3570
|
* @param sourceComponent Source component from where the context preparation was called.
|
|
3401
|
-
* @param
|
|
3571
|
+
* @param viewContainer View container/service.
|
|
3402
3572
|
* @param actionData Additional action data.
|
|
3403
3573
|
*/
|
|
3404
|
-
|
|
3405
|
-
|
|
3574
|
+
prepareExecContextForEditor(action, item, itemId, dataProvider, sourceComponent, viewContainer, actionData) {
|
|
3575
|
+
let ctxDataProvider = dataProvider;
|
|
3576
|
+
if (!ctxDataProvider && action.dataProvider) {
|
|
3577
|
+
ctxDataProvider = action.dataProvider;
|
|
3578
|
+
}
|
|
3579
|
+
if (!ctxDataProvider) {
|
|
3580
|
+
const viewContainerDataProvider = viewContainer?.getDataProvider();
|
|
3581
|
+
if (viewContainerDataProvider) {
|
|
3582
|
+
ctxDataProvider = action.dataProvider;
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
const context = new ActionExecContext(ctxDataProvider, this.getDataProviderService(ctxDataProvider) ?? undefined, {
|
|
3406
3586
|
item,
|
|
3407
3587
|
itemId,
|
|
3408
3588
|
actionData
|
|
3409
|
-
}, sourceComponent,
|
|
3589
|
+
}, sourceComponent, viewContainer);
|
|
3410
3590
|
return context;
|
|
3411
3591
|
}
|
|
3412
3592
|
/**
|
|
@@ -3429,11 +3609,15 @@ class MngActionService {
|
|
|
3429
3609
|
* @param item Item instance (if exists).
|
|
3430
3610
|
* @param itemId Item id (if exists).
|
|
3431
3611
|
* @param actionData Optional additional action data.
|
|
3432
|
-
* @param
|
|
3612
|
+
* @param viewContainer View container component/service.
|
|
3433
3613
|
* @param sourceComponent Source activation component.
|
|
3434
3614
|
*/
|
|
3435
|
-
activateAction(action, itemId, item, actionData,
|
|
3615
|
+
activateAction(action, itemId, item, actionData, viewContainer, sourceComponent) {
|
|
3436
3616
|
if (action.type === ActionTypeEnum.Editor) {
|
|
3617
|
+
let dialogComponent = this.defaultEditorDialogComponent;
|
|
3618
|
+
if (action instanceof ActionEditorDescriptor && action.editorComponent) {
|
|
3619
|
+
dialogComponent = action.editorComponent;
|
|
3620
|
+
}
|
|
3437
3621
|
const dialogConfig = {
|
|
3438
3622
|
data: {
|
|
3439
3623
|
action
|
|
@@ -3449,18 +3633,18 @@ class MngActionService {
|
|
|
3449
3633
|
if (actionData) {
|
|
3450
3634
|
dialogConfig.data.actionData = actionData;
|
|
3451
3635
|
}
|
|
3452
|
-
if (
|
|
3453
|
-
dialogConfig.data.
|
|
3636
|
+
if (viewContainer) {
|
|
3637
|
+
dialogConfig.data.viewContainer = viewContainer;
|
|
3454
3638
|
}
|
|
3455
3639
|
if (sourceComponent) {
|
|
3456
3640
|
dialogConfig.data.sourceComponent = sourceComponent;
|
|
3457
3641
|
}
|
|
3458
|
-
const dialogRef = this.dialogService.open(
|
|
3642
|
+
const dialogRef = this.dialogService.open(dialogComponent, dialogConfig);
|
|
3459
3643
|
return of(new ActionActivationResult(undefined, dialogRef));
|
|
3460
3644
|
}
|
|
3461
3645
|
else {
|
|
3462
3646
|
// directly execute action
|
|
3463
|
-
return this.runAction(action, itemId, item,
|
|
3647
|
+
return this.runAction(action, itemId, item, undefined, sourceComponent, viewContainer, actionData).pipe(map(res => new ActionActivationResult(res)));
|
|
3464
3648
|
}
|
|
3465
3649
|
}
|
|
3466
3650
|
/**
|
|
@@ -3484,7 +3668,7 @@ class MngActionService {
|
|
|
3484
3668
|
* @param actionData Optional action data.
|
|
3485
3669
|
* @param route Optional activated route.
|
|
3486
3670
|
*/
|
|
3487
|
-
triggerAction(action, itemId, item, actionData, route,
|
|
3671
|
+
triggerAction(action, itemId, item, actionData, route, viewContainer, sourceComponent) {
|
|
3488
3672
|
if (action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {
|
|
3489
3673
|
const baseUrl = this.router.url.split('?')[0];
|
|
3490
3674
|
const parsedUrl = this.router.parseUrl(this.router.url);
|
|
@@ -3511,15 +3695,18 @@ class MngActionService {
|
|
|
3511
3695
|
return of(new ActionTriggerResult(undefined, from(this.router.navigate([baseUrl, ...actionUrlSegments], { relativeTo: route, queryParams: parsedUrl.queryParams }))));
|
|
3512
3696
|
}
|
|
3513
3697
|
else {
|
|
3514
|
-
return this.activateAction(action, itemId, item, actionData,
|
|
3698
|
+
return this.activateAction(action, itemId, item, actionData, viewContainer, sourceComponent).pipe(map(res => new ActionTriggerResult(res)));
|
|
3515
3699
|
}
|
|
3516
3700
|
}
|
|
3517
3701
|
}
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type:
|
|
3702
|
+
MngActionExecutorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionExecutorService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i3.DialogService }, { token: i2.ConfirmationService }, { token: i3$1.TranslateService }, { token: ACTION_EDITOR_DIALOG_COMPONENT_SETTING }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3703
|
+
MngActionExecutorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionExecutorService });
|
|
3704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionExecutorService, decorators: [{
|
|
3521
3705
|
type: Injectable
|
|
3522
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type:
|
|
3706
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i3.DialogService }, { type: i2.ConfirmationService }, { type: i3$1.TranslateService }, { type: i0.Type, decorators: [{
|
|
3707
|
+
type: Inject,
|
|
3708
|
+
args: [ACTION_EDITOR_DIALOG_COMPONENT_SETTING]
|
|
3709
|
+
}] }]; } });
|
|
3523
3710
|
|
|
3524
3711
|
class MngConfigurationService {
|
|
3525
3712
|
constructor(http) {
|
|
@@ -3597,13 +3784,6 @@ class MngConfigurationService {
|
|
|
3597
3784
|
}
|
|
3598
3785
|
MngConfigurationService._instance = null;
|
|
3599
3786
|
|
|
3600
|
-
const MNG_BROWSER_STORAGE_IT = new InjectionToken('Browser storage', {
|
|
3601
|
-
providedIn: 'root',
|
|
3602
|
-
factory: () => localStorage
|
|
3603
|
-
});
|
|
3604
|
-
|
|
3605
|
-
const MNG_MODULE_CONFIG_IT = new InjectionToken('MngModuleConfig');
|
|
3606
|
-
|
|
3607
3787
|
class MngCommonsService {
|
|
3608
3788
|
constructor(router, primengConfig, translate, titleService, configurationService, moduleConfig, localStorage) {
|
|
3609
3789
|
this.router = router;
|
|
@@ -3926,11 +4106,11 @@ class MngCommonsService {
|
|
|
3926
4106
|
return titlePieces.join(' - ');
|
|
3927
4107
|
}
|
|
3928
4108
|
}
|
|
3929
|
-
MngCommonsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngCommonsService, deps: [{ token: i1.Router }, { token: i2
|
|
4109
|
+
MngCommonsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngCommonsService, deps: [{ token: i1.Router }, { token: i2.PrimeNGConfig }, { token: i3$1.TranslateService }, { token: i4.Title }, { token: MngConfigurationService }, { token: MNG_MODULE_CONFIG_IT }, { token: MNG_BROWSER_STORAGE_IT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3930
4110
|
MngCommonsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngCommonsService });
|
|
3931
4111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngCommonsService, decorators: [{
|
|
3932
4112
|
type: Injectable
|
|
3933
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2
|
|
4113
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.PrimeNGConfig }, { type: i3$1.TranslateService }, { type: i4.Title }, { type: MngConfigurationService }, { type: undefined, decorators: [{
|
|
3934
4114
|
type: Inject,
|
|
3935
4115
|
args: [MNG_MODULE_CONFIG_IT]
|
|
3936
4116
|
}] }, { type: Storage, decorators: [{
|
|
@@ -3981,38 +4161,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
3981
4161
|
type: Injectable
|
|
3982
4162
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i4$1.Location }]; } });
|
|
3983
4163
|
|
|
3984
|
-
|
|
3985
|
-
|
|
4164
|
+
/**
|
|
4165
|
+
* Should be used with providers defined within component.
|
|
4166
|
+
*/
|
|
4167
|
+
class MngViewContainerComponentService {
|
|
4168
|
+
constructor(messageService) {
|
|
4169
|
+
this.messageService = messageService;
|
|
3986
4170
|
this.actions = [];
|
|
3987
4171
|
this._reloadTableSubject = new Subject();
|
|
3988
4172
|
}
|
|
4173
|
+
set dataProvider(dataProvider) {
|
|
4174
|
+
this._dataProvider = dataProvider;
|
|
4175
|
+
}
|
|
3989
4176
|
get reloadTable$() {
|
|
3990
4177
|
return this._reloadTableSubject.asObservable();
|
|
3991
4178
|
}
|
|
3992
4179
|
triggerTableReload(event) {
|
|
3993
4180
|
this._reloadTableSubject.next(event);
|
|
3994
4181
|
}
|
|
4182
|
+
getMessageService() {
|
|
4183
|
+
return this.messageService;
|
|
4184
|
+
}
|
|
4185
|
+
getDataProvider() {
|
|
4186
|
+
return this._dataProvider;
|
|
4187
|
+
}
|
|
3995
4188
|
}
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type:
|
|
4189
|
+
MngViewContainerComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngViewContainerComponentService, deps: [{ token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4190
|
+
MngViewContainerComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngViewContainerComponentService });
|
|
4191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngViewContainerComponentService, decorators: [{
|
|
3999
4192
|
type: Injectable
|
|
4000
|
-
}] });
|
|
4193
|
+
}], ctorParameters: function () { return [{ type: i2.MessageService }]; } });
|
|
4001
4194
|
|
|
4002
4195
|
class MngActionComponent {
|
|
4003
|
-
constructor(route, translate,
|
|
4196
|
+
constructor(route, translate, actionExecutor, confirmationService, viewContainerService) {
|
|
4004
4197
|
this.route = route;
|
|
4005
4198
|
this.translate = translate;
|
|
4006
|
-
this.
|
|
4199
|
+
this.actionExecutor = actionExecutor;
|
|
4007
4200
|
this.confirmationService = confirmationService;
|
|
4008
|
-
this.
|
|
4201
|
+
this.viewContainerService = viewContainerService;
|
|
4009
4202
|
this.loadingSubject = new ReplaySubject(1);
|
|
4010
4203
|
this.$loading = this.loadingSubject.asObservable();
|
|
4011
4204
|
this.cmpId = Math.random().toString(36).substring(2);
|
|
4012
4205
|
this.loadingSubject.next(false);
|
|
4013
4206
|
}
|
|
4014
4207
|
ngOnInit() {
|
|
4015
|
-
|
|
4208
|
+
this.viewContainer = this.viewContainerInit ?? this.viewContainerService ?? undefined;
|
|
4209
|
+
const context = this.actionExecutor.prepareActionExecContext(this.action, this.itemId, this.item, this.dataProvider, this.viewContainer ?? undefined, this, this.actionData);
|
|
4016
4210
|
this.$isVisible = typeof this.action.isVisibleFunction === 'function' ? this.action.isVisibleFunction(context) : of(true);
|
|
4017
4211
|
this.$isEnabled = typeof this.action.isEnabledFunction === 'function' ? this.action.isEnabledFunction(context) : of(true);
|
|
4018
4212
|
this.$label = I18nUtil.streamActionTranslation(this.translate, this.action, 'title', this.action?.title ?? undefined, this.item);
|
|
@@ -4023,11 +4217,17 @@ class MngActionComponent {
|
|
|
4023
4217
|
this.loadingSubject.next(true);
|
|
4024
4218
|
const actionData = this.actionData ? this.actionData : {};
|
|
4025
4219
|
actionData['cmpId'] = this.cmpId;
|
|
4026
|
-
this.
|
|
4027
|
-
.triggerAction(this.action, this.itemId, this.item, actionData, this.route, this.
|
|
4028
|
-
.pipe(first()
|
|
4029
|
-
|
|
4030
|
-
|
|
4220
|
+
this.actionExecutor
|
|
4221
|
+
.triggerAction(this.action, this.itemId, this.item, actionData, this.route, this.viewContainer, this)
|
|
4222
|
+
.pipe(first())
|
|
4223
|
+
.subscribe({
|
|
4224
|
+
next: () => {
|
|
4225
|
+
this.loadingSubject.next(false);
|
|
4226
|
+
},
|
|
4227
|
+
error: err => {
|
|
4228
|
+
console.error(`Error occurred while executing action ${this.action.actionName}.`, err);
|
|
4229
|
+
}
|
|
4230
|
+
});
|
|
4031
4231
|
}
|
|
4032
4232
|
getConfirmationService() {
|
|
4033
4233
|
return this.confirmationService;
|
|
@@ -4036,12 +4236,14 @@ class MngActionComponent {
|
|
|
4036
4236
|
return `${action.actionName}_${this.cmpId}`;
|
|
4037
4237
|
}
|
|
4038
4238
|
}
|
|
4039
|
-
MngActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i3.TranslateService }, { token:
|
|
4040
|
-
MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData" }, providers: [
|
|
4239
|
+
MngActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i3$1.TranslateService }, { token: MngActionExecutorService }, { token: i2.ConfirmationService }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4240
|
+
MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", dataProvider: "dataProvider", viewContainerInit: ["viewContainer", "viewContainerInit"] }, providers: [ConfirmationService], ngImport: i0, template: "<ng-container *ngIf=\"$isVisible | async\">\n <button\n *ngIf=\"action.icon && action.title === null; else noIcon\"\n type=\"button\"\n pButton\n pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"($isEnabled | async) === false\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.mng-button-xs]=\"action.isSizeExtraSmall\"\n [class.mng-button-sm]=\"action.isSizeSmall\"\n [class.mng-button-lg]=\"action.isSizeLarge\"\n [class.mng-button-xl]=\"action.isSizeExtraLarge\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\"></button>\n <ng-template #noIcon>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"($isEnabled | async) === false\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-sm]=\"action.isSizeSmall\"\n [class.p-button-lg]=\"action.isSizeLarge\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\"></button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n", components: [{ type: i6.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], pipes: { "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4041
4241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionComponent, decorators: [{
|
|
4042
4242
|
type: Component,
|
|
4043
|
-
args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
4044
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i3.TranslateService }, { type:
|
|
4243
|
+
args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConfirmationService], template: "<ng-container *ngIf=\"$isVisible | async\">\n <button\n *ngIf=\"action.icon && action.title === null; else noIcon\"\n type=\"button\"\n pButton\n pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"($isEnabled | async) === false\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.mng-button-xs]=\"action.isSizeExtraSmall\"\n [class.mng-button-sm]=\"action.isSizeSmall\"\n [class.mng-button-lg]=\"action.isSizeLarge\"\n [class.mng-button-xl]=\"action.isSizeExtraLarge\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\"></button>\n <ng-template #noIcon>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"($isEnabled | async) === false\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-sm]=\"action.isSizeSmall\"\n [class.p-button-lg]=\"action.isSizeLarge\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\"></button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n" }]
|
|
4244
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i3$1.TranslateService }, { type: MngActionExecutorService }, { type: i2.ConfirmationService }, { type: MngViewContainerComponentService, decorators: [{
|
|
4245
|
+
type: Optional
|
|
4246
|
+
}] }]; }, propDecorators: { action: [{
|
|
4045
4247
|
type: Input
|
|
4046
4248
|
}], item: [{
|
|
4047
4249
|
type: Input
|
|
@@ -4049,22 +4251,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
4049
4251
|
type: Input
|
|
4050
4252
|
}], actionData: [{
|
|
4051
4253
|
type: Input
|
|
4254
|
+
}], dataProvider: [{
|
|
4255
|
+
type: Input
|
|
4256
|
+
}], viewContainerInit: [{
|
|
4257
|
+
type: Input,
|
|
4258
|
+
args: ['viewContainer']
|
|
4052
4259
|
}] } });
|
|
4053
4260
|
|
|
4054
4261
|
class MngActionRouteComponent {
|
|
4055
|
-
constructor(router, route, confirmationService, navigationService,
|
|
4262
|
+
constructor(router, route, confirmationService, navigationService, actionExecutor, viewContainerService) {
|
|
4056
4263
|
this.router = router;
|
|
4057
4264
|
this.route = route;
|
|
4058
4265
|
this.confirmationService = confirmationService;
|
|
4059
4266
|
this.navigationService = navigationService;
|
|
4060
|
-
this.
|
|
4061
|
-
this.
|
|
4267
|
+
this.actionExecutor = actionExecutor;
|
|
4268
|
+
this.viewContainerService = viewContainerService;
|
|
4062
4269
|
this.cmpId = Math.random().toString(36).substring(2);
|
|
4063
4270
|
this.actions = [];
|
|
4064
4271
|
this.subscriptions = [];
|
|
4065
4272
|
}
|
|
4066
4273
|
ngOnInit() {
|
|
4067
|
-
this.actions = this.
|
|
4274
|
+
this.actions = this.viewContainerService?.actions.filter(a => a.activationTrigger === ActionActivationTriggerEnum.OnRoute) ?? [];
|
|
4068
4275
|
const subscription = this.route.params.subscribe(p => {
|
|
4069
4276
|
const action = this.findActiveAction(p);
|
|
4070
4277
|
if (action) {
|
|
@@ -4099,8 +4306,8 @@ class MngActionRouteComponent {
|
|
|
4099
4306
|
for (const key in qp) {
|
|
4100
4307
|
actionData[key] = p[key];
|
|
4101
4308
|
}
|
|
4102
|
-
this.
|
|
4103
|
-
.activateAction(action, itemId, undefined, actionData, this.
|
|
4309
|
+
this.actionExecutor
|
|
4310
|
+
.activateAction(action, itemId, undefined, actionData, this.viewContainerService ?? undefined, this)
|
|
4104
4311
|
.pipe(first())
|
|
4105
4312
|
.subscribe(res => {
|
|
4106
4313
|
if (res.dialogRef) {
|
|
@@ -4108,7 +4315,10 @@ class MngActionRouteComponent {
|
|
|
4108
4315
|
this.dialogCloseSubscription = this.dialogRef?.onClose.subscribe(e => {
|
|
4109
4316
|
const actionEv = e;
|
|
4110
4317
|
if (!actionEv?.error || !actionEv?.error?.dismissed) {
|
|
4111
|
-
this.
|
|
4318
|
+
if (!this.viewContainerService) {
|
|
4319
|
+
console.warn(`View container service could not be found, table reload will not be triggered.`);
|
|
4320
|
+
}
|
|
4321
|
+
this.viewContainerService?.triggerTableReload(actionEv); // reload only if no error in action and
|
|
4112
4322
|
}
|
|
4113
4323
|
this.deactivateAction();
|
|
4114
4324
|
});
|
|
@@ -4180,12 +4390,14 @@ class MngActionRouteComponent {
|
|
|
4180
4390
|
return null;
|
|
4181
4391
|
}
|
|
4182
4392
|
}
|
|
4183
|
-
MngActionRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionRouteComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2
|
|
4393
|
+
MngActionRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionRouteComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ConfirmationService }, { token: MngNavigationService }, { token: MngActionExecutorService }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4184
4394
|
MngActionRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngActionRouteComponent, selector: "mng-action-route", providers: [MessageService, ConfirmationService], ngImport: i0, template: "<p-confirmDialog [key]=\"'actionRoute_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n", components: [{ type: i6.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4185
4395
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionRouteComponent, decorators: [{
|
|
4186
4396
|
type: Component,
|
|
4187
4397
|
args: [{ selector: 'mng-action-route', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageService, ConfirmationService], template: "<p-confirmDialog [key]=\"'actionRoute_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n" }]
|
|
4188
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2
|
|
4398
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ConfirmationService }, { type: MngNavigationService }, { type: MngActionExecutorService }, { type: MngViewContainerComponentService, decorators: [{
|
|
4399
|
+
type: Optional
|
|
4400
|
+
}] }]; } });
|
|
4189
4401
|
|
|
4190
4402
|
class MngComponentDirective {
|
|
4191
4403
|
constructor(viewContainerRef) {
|
|
@@ -4343,7 +4555,7 @@ class MngFormEditorComponent {
|
|
|
4343
4555
|
}
|
|
4344
4556
|
let nextControl = null;
|
|
4345
4557
|
if (control instanceof FormGroup) {
|
|
4346
|
-
|
|
4558
|
+
nextControl = control.get(keyPath[0]);
|
|
4347
4559
|
}
|
|
4348
4560
|
else if (control instanceof FormArray) {
|
|
4349
4561
|
const idx = +keyPath[0];
|
|
@@ -4390,12 +4602,12 @@ class MngFormEditorComponent {
|
|
|
4390
4602
|
this.formOptions.formState.disabled = this.isFormDisabled !== null ? this.isFormDisabled === true : this.descriptor.disabled;
|
|
4391
4603
|
}
|
|
4392
4604
|
}
|
|
4393
|
-
MngFormEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormEditorComponent, deps: [{ token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4394
|
-
MngFormEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormEditorComponent, selector: "mng-form-editor", inputs: { descriptor: "descriptor", submitLoading: "submitLoading", item: "item", isSubmitButtonVisible: "isSubmitButtonVisible", isFormDisabled: "isFormDisabled" }, outputs: { formSubmitEventEmitter: "formSubmit" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button #submitButton pButton type=\"submit\" [class.hidden]=\"!isSubmitButtonVisible\" [disabled]=\"form.disabled\" [loading]=\"(submitLoading$ | async) ?? false\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n", components: [{ type: i3$
|
|
4605
|
+
MngFormEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormEditorComponent, deps: [{ token: i3$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4606
|
+
MngFormEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormEditorComponent, selector: "mng-form-editor", inputs: { descriptor: "descriptor", submitLoading: "submitLoading", item: "item", isSubmitButtonVisible: "isSubmitButtonVisible", isFormDisabled: "isFormDisabled" }, outputs: { formSubmitEventEmitter: "formSubmit" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button #submitButton pButton type=\"submit\" [class.hidden]=\"!isSubmitButtonVisible\" [disabled]=\"form.disabled\" [loading]=\"(submitLoading$ | async) ?? false\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n", components: [{ type: i3$2.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { type: i3$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], pipes: { "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4395
4607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormEditorComponent, decorators: [{
|
|
4396
4608
|
type: Component,
|
|
4397
4609
|
args: [{ selector: 'mng-form-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button #submitButton pButton type=\"submit\" [class.hidden]=\"!isSubmitButtonVisible\" [disabled]=\"form.disabled\" [loading]=\"(submitLoading$ | async) ?? false\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n" }]
|
|
4398
|
-
}], ctorParameters: function () { return [{ type: i3.TranslateService }]; }, propDecorators: { descriptor: [{
|
|
4610
|
+
}], ctorParameters: function () { return [{ type: i3$1.TranslateService }]; }, propDecorators: { descriptor: [{
|
|
4399
4611
|
type: Input
|
|
4400
4612
|
}], submitLoading: [{
|
|
4401
4613
|
type: Input
|
|
@@ -4495,7 +4707,7 @@ class MngAutocompleteComponent {
|
|
|
4495
4707
|
}
|
|
4496
4708
|
}
|
|
4497
4709
|
MngAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngAutocompleteComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
4498
|
-
MngAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", multiselect: "multiselect", placeholder: "placeholder", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { valueChangeEventEmitter: "valueChange" }, providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeAutocomplete", first: true, predicate: AutoComplete, descendants: true }], ngImport: i0, template: "<p-autoComplete\n [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutocomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n", components: [{ type: i1$1.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4710
|
+
MngAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", multiselect: "multiselect", placeholder: "placeholder", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { valueChangeEventEmitter: "valueChange" }, providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeAutocomplete", first: true, predicate: AutoComplete, descendants: true }], ngImport: i0, template: "<p-autoComplete\n [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutocomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n", components: [{ type: i1$1.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4499
4711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngAutocompleteComponent, decorators: [{
|
|
4500
4712
|
type: Component,
|
|
4501
4713
|
args: [{ selector: 'mng-autocomplete', providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-autoComplete\n [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutocomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n" }]
|
|
@@ -4588,7 +4800,7 @@ class MngDropdownComponent {
|
|
|
4588
4800
|
}
|
|
4589
4801
|
}
|
|
4590
4802
|
MngDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngDropdownComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
4591
|
-
MngDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngDropdownComponent, selector: "mng-dropdown", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", itemsValueProperty: "itemsValueProperty", multiselect: "multiselect", placeholder: "placeholder", showClear: "showClear", selectFirstItem: "selectFirstItem", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { valueChangeEventEmitter: "valueChange" }, providers: [MNG_DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true }], ngImport: i0, template: "<p-dropdown\n *ngIf=\"!multiselect; else pMultiselect\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"$any(items$ | async)\"\n [showClear]=\"showClear\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n appendTo=\"body\">\n</p-dropdown>\n<ng-template #pMultiselect>\n <p-multiSelect\n display=\"chip\"\n [formControl]=\"dropdownFormControl\"\n [defaultLabel]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n [filter]=\"false\"\n appendTo=\"body\">\n </p-multiSelect>\n</ng-template>\n", components: [{ type: i1$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2$
|
|
4803
|
+
MngDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngDropdownComponent, selector: "mng-dropdown", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", itemsValueProperty: "itemsValueProperty", multiselect: "multiselect", placeholder: "placeholder", showClear: "showClear", selectFirstItem: "selectFirstItem", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { valueChangeEventEmitter: "valueChange" }, providers: [MNG_DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true }], ngImport: i0, template: "<p-dropdown\n *ngIf=\"!multiselect; else pMultiselect\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"$any(items$ | async)\"\n [showClear]=\"showClear\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n appendTo=\"body\">\n</p-dropdown>\n<ng-template #pMultiselect>\n <p-multiSelect\n display=\"chip\"\n [formControl]=\"dropdownFormControl\"\n [defaultLabel]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n [filter]=\"false\"\n appendTo=\"body\">\n </p-multiSelect>\n</ng-template>\n", components: [{ type: i1$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2$1.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "autoZIndex", "baseZIndex", "filterBy", "virtualScroll", "itemSize", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "scrollHeight", "defaultLabel", "placeholder", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onPanelShow", "onPanelHide"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4592
4804
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngDropdownComponent, decorators: [{
|
|
4593
4805
|
type: Component,
|
|
4594
4806
|
args: [{ selector: 'mng-dropdown', providers: [MNG_DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-dropdown\n *ngIf=\"!multiselect; else pMultiselect\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"$any(items$ | async)\"\n [showClear]=\"showClear\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n appendTo=\"body\">\n</p-dropdown>\n<ng-template #pMultiselect>\n <p-multiSelect\n display=\"chip\"\n [formControl]=\"dropdownFormControl\"\n [defaultLabel]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n [filter]=\"false\"\n appendTo=\"body\">\n </p-multiSelect>\n</ng-template>\n" }]
|
|
@@ -4620,15 +4832,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
4620
4832
|
args: [Dropdown]
|
|
4621
4833
|
}] } });
|
|
4622
4834
|
|
|
4623
|
-
class
|
|
4624
|
-
constructor(injector, translate, dialogRef, dialogConfig,
|
|
4835
|
+
class MngActionEditorComponent {
|
|
4836
|
+
constructor(injector, translate, actionExecutor, mngCommonsService, dialogRef, dialogConfig, viewContainerService) {
|
|
4625
4837
|
this.injector = injector;
|
|
4626
4838
|
this.translate = translate;
|
|
4839
|
+
this.actionExecutor = actionExecutor;
|
|
4840
|
+
this.mngCommonsService = mngCommonsService;
|
|
4627
4841
|
this.dialogRef = dialogRef;
|
|
4628
4842
|
this.dialogConfig = dialogConfig;
|
|
4629
|
-
this.
|
|
4630
|
-
this.mngCommonsService = mngCommonsService;
|
|
4843
|
+
this.viewContainerService = viewContainerService;
|
|
4631
4844
|
this.cmpId = Math.random().toString(36).substring(2);
|
|
4845
|
+
this.isDialog = true;
|
|
4632
4846
|
this.isSaveButton = true;
|
|
4633
4847
|
this.loadingSubject = new ReplaySubject(1);
|
|
4634
4848
|
this.loading$ = this.loadingSubject.asObservable();
|
|
@@ -4638,7 +4852,7 @@ class MngActionDialogComponent {
|
|
|
4638
4852
|
this.subscriptions = [];
|
|
4639
4853
|
}
|
|
4640
4854
|
ngOnInit() {
|
|
4641
|
-
if (this.dialogConfig
|
|
4855
|
+
if (this.dialogConfig?.data) {
|
|
4642
4856
|
if (this.dialogConfig.data.action) {
|
|
4643
4857
|
this.action = this.dialogConfig.data.action;
|
|
4644
4858
|
}
|
|
@@ -4651,18 +4865,25 @@ class MngActionDialogComponent {
|
|
|
4651
4865
|
if (this.dialogConfig.data.actionData) {
|
|
4652
4866
|
this.actionData = this.dialogConfig.data.actionData;
|
|
4653
4867
|
}
|
|
4654
|
-
if (this.dialogConfig.data.
|
|
4655
|
-
this.
|
|
4656
|
-
if (!this.dataProvider && this.
|
|
4657
|
-
|
|
4868
|
+
if (this.dialogConfig.data.viewContainer) {
|
|
4869
|
+
this.viewContainer = this.dialogConfig.data.viewContainer;
|
|
4870
|
+
if (!this.dataProvider && this.viewContainer) {
|
|
4871
|
+
const dataProvider = this.viewContainer.getDataProvider();
|
|
4872
|
+
if (dataProvider && typeof dataProvider['fetch'] === 'function') {
|
|
4873
|
+
this.dataProvider = dataProvider;
|
|
4874
|
+
}
|
|
4658
4875
|
}
|
|
4659
4876
|
}
|
|
4660
4877
|
if (this.dialogConfig.data.sourceComponent) {
|
|
4661
4878
|
this.sourceComponent = this.dialogConfig.data.sourceComponent;
|
|
4662
4879
|
}
|
|
4663
4880
|
}
|
|
4881
|
+
else {
|
|
4882
|
+
this.isDialog = false;
|
|
4883
|
+
this.viewContainer = this.viewContainerInit ?? this.viewContainerService ?? undefined;
|
|
4884
|
+
}
|
|
4664
4885
|
this.isSaveButton = typeof this.action.submitFunction === 'function';
|
|
4665
|
-
this.
|
|
4886
|
+
this.setTitle();
|
|
4666
4887
|
this.loadItemWithDataProvider();
|
|
4667
4888
|
}
|
|
4668
4889
|
ngOnDestroy() {
|
|
@@ -4674,16 +4895,22 @@ class MngActionDialogComponent {
|
|
|
4674
4895
|
return;
|
|
4675
4896
|
}
|
|
4676
4897
|
this.submitLoadingSubject.next(true);
|
|
4677
|
-
this.
|
|
4678
|
-
.runEditorSave(this.action, this.itemId, event.formItem, this.dataProvider, this.sourceComponent, this.
|
|
4679
|
-
.pipe(first()
|
|
4680
|
-
.subscribe(
|
|
4681
|
-
|
|
4898
|
+
this.actionExecutor
|
|
4899
|
+
.runEditorSave(this.action, this.itemId, event.formItem, this.dataProvider, this.sourceComponent, this.viewContainer, this.actionData)
|
|
4900
|
+
.pipe(first())
|
|
4901
|
+
.subscribe({
|
|
4902
|
+
next: res => {
|
|
4903
|
+
this.submitLoadingSubject.next(false);
|
|
4904
|
+
this.closeDialog(res);
|
|
4905
|
+
},
|
|
4906
|
+
error: () => {
|
|
4907
|
+
this.submitLoadingSubject.next(false);
|
|
4908
|
+
}
|
|
4682
4909
|
});
|
|
4683
4910
|
}
|
|
4684
4911
|
}
|
|
4685
4912
|
closeDialog(result) {
|
|
4686
|
-
this.dialogRef
|
|
4913
|
+
this.dialogRef?.close(result ? result : new ActionRunResult(undefined, undefined, new ActionError(null, true)));
|
|
4687
4914
|
}
|
|
4688
4915
|
saveItem() {
|
|
4689
4916
|
this.editorComponent.submit();
|
|
@@ -4693,48 +4920,60 @@ class MngActionDialogComponent {
|
|
|
4693
4920
|
return;
|
|
4694
4921
|
}
|
|
4695
4922
|
this.loadingSubject.next(true);
|
|
4696
|
-
this.
|
|
4697
|
-
.runEditorFetch(this.action, this.itemId, this.dataProvider, this.sourceComponent, this.
|
|
4923
|
+
this.actionExecutor
|
|
4924
|
+
.runEditorFetch(this.action, this.itemId, this.dataProvider, this.sourceComponent, this.viewContainer)
|
|
4698
4925
|
.pipe(first(), catchError(err => {
|
|
4699
4926
|
if (this.action.hasRunNotificationError) {
|
|
4700
|
-
ToastUtil.actionNotificationError(this.translate, this.action, err, 'fetch', this.
|
|
4927
|
+
ToastUtil.actionNotificationError(this.translate, this.action, err, 'fetch', this.viewContainer, this.item);
|
|
4701
4928
|
}
|
|
4702
4929
|
throw err;
|
|
4703
4930
|
}), finalize(() => this.loadingSubject.next(false)))
|
|
4704
4931
|
.subscribe(res => {
|
|
4705
4932
|
this.item = res.result;
|
|
4706
4933
|
if (this.action.hasFetchNotificationSuccess) {
|
|
4707
|
-
ToastUtil.actionNotificationSuccess(this.translate, this.action, 'fetch', this.action.fetchNotificationSuccessTitle, this.action.fetchNotificationSuccessMessage, this.
|
|
4934
|
+
ToastUtil.actionNotificationSuccess(this.translate, this.action, 'fetch', this.action.fetchNotificationSuccessTitle, this.action.fetchNotificationSuccessMessage, this.viewContainer, this.item);
|
|
4708
4935
|
}
|
|
4709
|
-
this.
|
|
4936
|
+
this.setTitle();
|
|
4710
4937
|
});
|
|
4711
4938
|
}
|
|
4712
|
-
|
|
4939
|
+
setTitle() {
|
|
4713
4940
|
if (this.action.editorTitle === null) {
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4941
|
+
this.title = undefined;
|
|
4942
|
+
if (this.dialogConfig) {
|
|
4943
|
+
requestAnimationFrame(() => {
|
|
4944
|
+
this.dialogConfig.header = undefined;
|
|
4945
|
+
});
|
|
4946
|
+
return;
|
|
4947
|
+
}
|
|
4718
4948
|
}
|
|
4719
4949
|
const subscription = I18nUtil.streamActionTranslation(this.translate, this.action, 'dialog.title', undefined, this.item)
|
|
4720
4950
|
.pipe(mergeMap(i18nDialogTitle => i18nDialogTitle === null
|
|
4721
4951
|
? I18nUtil.getActionTranslation(this.translate, this.action, 'title', this.action.editorTitle, this.item)
|
|
4722
4952
|
: of(i18nDialogTitle)))
|
|
4723
4953
|
.subscribe(t => {
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4954
|
+
this.title = t ?? undefined;
|
|
4955
|
+
if (this.dialogConfig) {
|
|
4956
|
+
requestAnimationFrame(() => {
|
|
4957
|
+
this.dialogConfig.header = t ?? undefined;
|
|
4958
|
+
this.mngCommonsService.setPageTitle(t ?? undefined);
|
|
4959
|
+
});
|
|
4960
|
+
}
|
|
4728
4961
|
});
|
|
4729
4962
|
this.subscriptions.push(subscription);
|
|
4730
4963
|
}
|
|
4731
4964
|
}
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type:
|
|
4965
|
+
MngActionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionEditorComponent, deps: [{ token: i0.Injector }, { token: i3$1.TranslateService }, { token: MngActionExecutorService }, { token: MngCommonsService }, { token: i3.DynamicDialogRef, optional: true }, { token: i3.DynamicDialogConfig, optional: true }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4966
|
+
MngActionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngActionEditorComponent, selector: "mng-action-editor", inputs: { action: "action", itemId: "itemId", item: "item", actionData: "actionData", dataProvider: "dataProvider", viewContainerInit: ["viewContainer", "viewContainerInit"] }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: MngFormEditorComponent, descendants: true }], ngImport: i0, template: "<h1 *ngIf=\"!isDialog && title\">{{ title }}</h1>\n<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor *ngIf=\"action.editorDescriptor && (loading$ | async) === false\" [descriptor]=\"action.editorDescriptor\" [item]=\"item\" (formSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n <div class=\"flex flex-row justify-content-between\">\n <div></div>\n <div>\n <button\n type=\"button\"\n pButton\n pRipple\n [label]=\"'general.close' | translate\"\n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\"\n [disabled]=\"submitLoading$ | async\"></button>\n <button\n *ngIf=\"isSaveButton\"\n #submitButton\n type=\"button\"\n pButton\n pRipple\n [label]=\"'general.save' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"saveItem()\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n [disabled]=\"(submitLoading$ | async) ?? false\"></button>\n </div>\n </div>\n</div>\n", components: [{ type: i5.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { type: MngFormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "isSubmitButtonVisible", "isFormDisabled"], outputs: ["formSubmit"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4967
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngActionEditorComponent, decorators: [{
|
|
4735
4968
|
type: Component,
|
|
4736
|
-
args: [{ selector: 'mng-action-
|
|
4737
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i3.TranslateService }, { type:
|
|
4969
|
+
args: [{ selector: 'mng-action-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 *ngIf=\"!isDialog && title\">{{ title }}</h1>\n<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor *ngIf=\"action.editorDescriptor && (loading$ | async) === false\" [descriptor]=\"action.editorDescriptor\" [item]=\"item\" (formSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n <div class=\"flex flex-row justify-content-between\">\n <div></div>\n <div>\n <button\n type=\"button\"\n pButton\n pRipple\n [label]=\"'general.close' | translate\"\n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\"\n [disabled]=\"submitLoading$ | async\"></button>\n <button\n *ngIf=\"isSaveButton\"\n #submitButton\n type=\"button\"\n pButton\n pRipple\n [label]=\"'general.save' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"saveItem()\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n [disabled]=\"(submitLoading$ | async) ?? false\"></button>\n </div>\n </div>\n</div>\n" }]
|
|
4970
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i3$1.TranslateService }, { type: MngActionExecutorService }, { type: MngCommonsService }, { type: i3.DynamicDialogRef, decorators: [{
|
|
4971
|
+
type: Optional
|
|
4972
|
+
}] }, { type: i3.DynamicDialogConfig, decorators: [{
|
|
4973
|
+
type: Optional
|
|
4974
|
+
}] }, { type: MngViewContainerComponentService, decorators: [{
|
|
4975
|
+
type: Optional
|
|
4976
|
+
}] }]; }, propDecorators: { action: [{
|
|
4738
4977
|
type: Input
|
|
4739
4978
|
}], itemId: [{
|
|
4740
4979
|
type: Input
|
|
@@ -4744,6 +4983,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
4744
4983
|
type: Input
|
|
4745
4984
|
}], dataProvider: [{
|
|
4746
4985
|
type: Input
|
|
4986
|
+
}], viewContainerInit: [{
|
|
4987
|
+
type: Input,
|
|
4988
|
+
args: ['viewContainer']
|
|
4747
4989
|
}], templates: [{
|
|
4748
4990
|
type: ContentChildren,
|
|
4749
4991
|
args: [MngTemplateDirective]
|
|
@@ -4762,10 +5004,10 @@ class MngFormlyFieldAutocompleteComponent extends FieldType {
|
|
|
4762
5004
|
}
|
|
4763
5005
|
}
|
|
4764
5006
|
MngFormlyFieldAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4765
|
-
MngFormlyFieldAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldAutocompleteComponent, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"$any(descriptor.dataProvider)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\">\n</mng-autocomplete>\n", components: [{ type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$
|
|
5007
|
+
MngFormlyFieldAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldAutocompleteComponent, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"$any(descriptor.dataProvider)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [className]=\"descriptor.inputClassName\">\n</mng-autocomplete>\n", components: [{ type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4766
5008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldAutocompleteComponent, decorators: [{
|
|
4767
5009
|
type: Component,
|
|
4768
|
-
args: [{ selector: 'mng-formly-field-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"$any(descriptor.dataProvider)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\">\n</mng-autocomplete>\n" }]
|
|
5010
|
+
args: [{ selector: 'mng-formly-field-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"$any(descriptor.dataProvider)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [className]=\"descriptor.inputClassName\">\n</mng-autocomplete>\n" }]
|
|
4769
5011
|
}] });
|
|
4770
5012
|
|
|
4771
5013
|
class MngFormlyFieldInputComponent extends FieldType {
|
|
@@ -4779,10 +5021,10 @@ class MngFormlyFieldInputComponent extends FieldType {
|
|
|
4779
5021
|
}
|
|
4780
5022
|
}
|
|
4781
5023
|
MngFormlyFieldInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4782
|
-
MngFormlyFieldInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldInputComponent, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [useGrouping]=\"$any(descriptor.numberUseGrouping)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton
|
|
5024
|
+
MngFormlyFieldInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldInputComponent, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [useGrouping]=\"$any(descriptor.numberUseGrouping)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\"\n [inputStyleClass]=\"descriptor.inputClassName\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\" [class]=\"descriptor.labelClassName\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"descriptor.inputClassName\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton\n [name]=\"$any(key)\"\n [value]=\"option.value\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [styleClass]=\"descriptor.inputClassName\"></p-radioButton>\n <label [for]=\"option.value\" [class]=\"'mng-radio-button-label ' + descriptor.labelClassName\">{{ option.title | translate }}</label>\n </div>\n </ng-container>\n\n <textarea\n *ngSwitchCase=\"'textarea'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [rows]=\"descriptor.rows ?? 3\"\n pInputTextarea\n [class]=\"descriptor.inputClassName\">\n </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\"\n [inputStyleClass]=\"descriptor.inputClassName\">\n </p-calendar>\n\n <p-inputMask\n *ngSwitchCase=\"'mask'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mask]=\"$any(descriptor.mask)\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [slotChar]=\"$any(descriptor.slotChar)\"\n [styleClass]=\"descriptor.inputClassName\">\n </p-inputMask>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n", components: [{ type: i1$3.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i2$2.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabelledBy"], outputs: ["onChange"] }, { type: i3$2.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i4$3.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5$1.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: i6$1.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }], directives: [{ type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9$1.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { type: i4$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i10$1.InputText, selector: "[pInputText]" }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4783
5025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldInputComponent, decorators: [{
|
|
4784
5026
|
type: Component,
|
|
4785
|
-
args: [{ selector: 'mng-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [useGrouping]=\"$any(descriptor.numberUseGrouping)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton
|
|
5027
|
+
args: [{ selector: 'mng-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [useGrouping]=\"$any(descriptor.numberUseGrouping)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\"\n [inputStyleClass]=\"descriptor.inputClassName\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\" [class]=\"descriptor.labelClassName\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"descriptor.inputClassName\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton\n [name]=\"$any(key)\"\n [value]=\"option.value\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [styleClass]=\"descriptor.inputClassName\"></p-radioButton>\n <label [for]=\"option.value\" [class]=\"'mng-radio-button-label ' + descriptor.labelClassName\">{{ option.title | translate }}</label>\n </div>\n </ng-container>\n\n <textarea\n *ngSwitchCase=\"'textarea'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [rows]=\"descriptor.rows ?? 3\"\n pInputTextarea\n [class]=\"descriptor.inputClassName\">\n </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\"\n [inputStyleClass]=\"descriptor.inputClassName\">\n </p-calendar>\n\n <p-inputMask\n *ngSwitchCase=\"'mask'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mask]=\"$any(descriptor.mask)\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [slotChar]=\"$any(descriptor.slotChar)\"\n [styleClass]=\"descriptor.inputClassName\">\n </p-inputMask>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n" }]
|
|
4786
5028
|
}] });
|
|
4787
5029
|
|
|
4788
5030
|
class MngFormlyFieldDropdownComponent extends FieldType {
|
|
@@ -4792,10 +5034,10 @@ class MngFormlyFieldDropdownComponent extends FieldType {
|
|
|
4792
5034
|
}
|
|
4793
5035
|
}
|
|
4794
5036
|
MngFormlyFieldDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4795
|
-
MngFormlyFieldDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldDropdownComponent, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [showClear]=\"!to.required\">\n</mng-dropdown>\n", components: [{ type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$
|
|
5037
|
+
MngFormlyFieldDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldDropdownComponent, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [showClear]=\"!to.required\"\n [className]=\"descriptor.inputClassName\">\n</mng-dropdown>\n", components: [{ type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4796
5038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldDropdownComponent, decorators: [{
|
|
4797
5039
|
type: Component,
|
|
4798
|
-
args: [{ selector: 'mng-formly-field-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [showClear]=\"!to.required\">\n</mng-dropdown>\n" }]
|
|
5040
|
+
args: [{ selector: 'mng-formly-field-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\"\n [showClear]=\"!to.required\"\n [className]=\"descriptor.inputClassName\">\n</mng-dropdown>\n" }]
|
|
4799
5041
|
}] });
|
|
4800
5042
|
|
|
4801
5043
|
class MngTableLoadEvent {
|
|
@@ -4878,12 +5120,12 @@ class MngTableColumnFilterComponent {
|
|
|
4878
5120
|
}
|
|
4879
5121
|
}
|
|
4880
5122
|
}
|
|
4881
|
-
MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i2
|
|
4882
|
-
MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (valueChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", components: [{ type: i4$
|
|
5123
|
+
MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i2.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
5124
|
+
MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (valueChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", components: [{ type: i4$4.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["valueChange"] }, { type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3$1.TranslatePipe } });
|
|
4883
5125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
|
|
4884
5126
|
type: Component,
|
|
4885
5127
|
args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (valueChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
|
|
4886
|
-
}], ctorParameters: function () { return [{ type: i2
|
|
5128
|
+
}], ctorParameters: function () { return [{ type: i2.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
|
|
4887
5129
|
type: Input
|
|
4888
5130
|
}], display: [{
|
|
4889
5131
|
type: Input
|
|
@@ -4972,7 +5214,7 @@ class MngTableColumnValueComponent {
|
|
|
4972
5214
|
}
|
|
4973
5215
|
}
|
|
4974
5216
|
MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4975
|
-
MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{\n (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property])\n | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue\n | translate\n }}\n </ng-container>\n</ng-container>\n", directives: [{ type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "propertyPath": MngPropertyPathPipe, "number": i4$1.DecimalPipe, "date": i4$1.DatePipe, "boolean": MngBooleanPipe, "translate": i3.TranslatePipe, "enum": MngEnumPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5217
|
+
MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{\n (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property])\n | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue\n | translate\n }}\n </ng-container>\n</ng-container>\n", directives: [{ type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "propertyPath": MngPropertyPathPipe, "number": i4$1.DecimalPipe, "date": i4$1.DatePipe, "boolean": MngBooleanPipe, "translate": i3$1.TranslatePipe, "enum": MngEnumPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4976
5218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
|
|
4977
5219
|
type: Component,
|
|
4978
5220
|
args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{\n (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property])\n | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue\n | translate\n }}\n </ng-container>\n</ng-container>\n" }]
|
|
@@ -5000,12 +5242,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
5000
5242
|
var TypeEnum = FilterDescriptor.TypeEnum;
|
|
5001
5243
|
var PaginationModeEnum = TableDescriptor.PaginationModeEnum;
|
|
5002
5244
|
class MngTableComponent {
|
|
5003
|
-
constructor(injector, router, activatedRoute, translate,
|
|
5245
|
+
constructor(injector, router, activatedRoute, translate, viewContainerService) {
|
|
5004
5246
|
this.injector = injector;
|
|
5005
5247
|
this.router = router;
|
|
5006
5248
|
this.activatedRoute = activatedRoute;
|
|
5007
5249
|
this.translate = translate;
|
|
5008
|
-
this.
|
|
5250
|
+
this.viewContainerService = viewContainerService;
|
|
5009
5251
|
this.filterDisplayRow = TableDescriptor.FilterDisplayEnum.Row;
|
|
5010
5252
|
this.filterDisplayMenu = TableDescriptor.FilterDisplayEnum.Menu;
|
|
5011
5253
|
this.useQueryParams = false;
|
|
@@ -5189,7 +5431,7 @@ class MngTableComponent {
|
|
|
5189
5431
|
this.isSortChanged = false;
|
|
5190
5432
|
this.dataProviderLoadingSubject.next(false);
|
|
5191
5433
|
}, err => {
|
|
5192
|
-
ToastUtil.tableNotificationError(this.translate, this.descriptor, err, this.
|
|
5434
|
+
ToastUtil.tableNotificationError(this.translate, this.descriptor, err, this.viewContainerService ?? undefined);
|
|
5193
5435
|
const emptyQueryResult = new MediusQueryResult();
|
|
5194
5436
|
emptyQueryResult.pageData = [];
|
|
5195
5437
|
emptyQueryResult.allDataCount = 0;
|
|
@@ -5254,12 +5496,12 @@ class MngTableComponent {
|
|
|
5254
5496
|
}
|
|
5255
5497
|
}
|
|
5256
5498
|
}
|
|
5257
|
-
MngTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3.TranslateService }, { token:
|
|
5258
|
-
MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableComponent, selector: "mng-table", inputs: { descriptor: "descriptor", items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", captionComponent: "captionComponent", columnActionComponent: "columnActionComponent" }, outputs: { loadEventEmitter: "tableLoad", cellClickEventEmitter: "cellClick", selectionChangeEventEmitter: "selectionChange", captionCmpInstEventEmitter: "captionComponentInstance", columnActionCmpInstEventEmitter: "columnActionComponentInstance" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "primeTable", first: true, predicate: Table, descendants: true }, { propertyName: "components", predicate: MngComponentDirective, descendants: true }], ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n [selectionMode]=\"selectionMode\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || captionComponent || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else componentOrDefaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #componentOrDefaultCaption>\n <div *ngIf=\"captionComponent; else defaultCaption\" [mngComponent]=\"captionComponent\" (instanceCreated)=\"onCaptionCmpInst($event)\"></div>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate || columnActionComponent\" class=\"text-right\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponent\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponent>\n <span [mngComponent]=\"columnActionComponent!\" (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", components: [{ type: i4$5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i4$5.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i4$5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { type: i4$5.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i4$5.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3.TranslatePipe, "i18nProperty": MngI18nPropertyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5499
|
+
MngTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3$1.TranslateService }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
5500
|
+
MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableComponent, selector: "mng-table", inputs: { descriptor: "descriptor", items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", captionComponent: "captionComponent", columnActionComponent: "columnActionComponent" }, outputs: { loadEventEmitter: "tableLoad", cellClickEventEmitter: "cellClick", selectionChangeEventEmitter: "selectionChange", captionCmpInstEventEmitter: "captionComponentInstance", columnActionCmpInstEventEmitter: "columnActionComponentInstance" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "primeTable", first: true, predicate: Table, descendants: true }, { propertyName: "components", predicate: MngComponentDirective, descendants: true }], ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n [selectionMode]=\"selectionMode\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || captionComponent || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else componentOrDefaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #componentOrDefaultCaption>\n <div *ngIf=\"captionComponent; else defaultCaption\" [mngComponent]=\"captionComponent\" (instanceCreated)=\"onCaptionCmpInst($event)\"></div>\n <ng-template #defaultCaption>\n <h5 class=\"p-0 m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate || columnActionComponent\" class=\"text-right\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponent\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponent>\n <span [mngComponent]=\"columnActionComponent!\" (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", components: [{ type: i4$4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i4$4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i4$4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { type: i4$4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i4$4.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3$1.TranslatePipe, "i18nProperty": MngI18nPropertyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5259
5501
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableComponent, decorators: [{
|
|
5260
5502
|
type: Component,
|
|
5261
|
-
args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n [selectionMode]=\"selectionMode\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || captionComponent || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else componentOrDefaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #componentOrDefaultCaption>\n <div *ngIf=\"captionComponent; else defaultCaption\" [mngComponent]=\"captionComponent\" (instanceCreated)=\"onCaptionCmpInst($event)\"></div>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate || columnActionComponent\" class=\"text-right\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponent\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponent>\n <span [mngComponent]=\"columnActionComponent!\" (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n" }]
|
|
5262
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3.TranslateService }, { type:
|
|
5503
|
+
args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n [selectionMode]=\"selectionMode\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || captionComponent || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else componentOrDefaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #componentOrDefaultCaption>\n <div *ngIf=\"captionComponent; else defaultCaption\" [mngComponent]=\"captionComponent\" (instanceCreated)=\"onCaptionCmpInst($event)\"></div>\n <ng-template #defaultCaption>\n <h5 class=\"p-0 m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <!-- We need the line below, because otherwise p-tableRadioButton shifts the rest of the columns in table -->\n <th *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 2.25em\"></th>\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate || columnActionComponent\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate || columnActionComponent\" class=\"text-right\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponent\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponent>\n <span [mngComponent]=\"columnActionComponent!\" (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate || columnActionComponent ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n" }]
|
|
5504
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3$1.TranslateService }, { type: MngViewContainerComponentService, decorators: [{
|
|
5263
5505
|
type: Optional
|
|
5264
5506
|
}] }]; }, propDecorators: { descriptor: [{
|
|
5265
5507
|
type: Input
|
|
@@ -5308,14 +5550,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
5308
5550
|
}] } });
|
|
5309
5551
|
|
|
5310
5552
|
class MngTableviewComponent {
|
|
5311
|
-
constructor(route, messageService, translateService, dialogService, confirmationService,
|
|
5553
|
+
constructor(route, messageService, translateService, dialogService, confirmationService, actionExecutor, viewContainerService) {
|
|
5312
5554
|
this.route = route;
|
|
5313
5555
|
this.messageService = messageService;
|
|
5314
5556
|
this.translateService = translateService;
|
|
5315
5557
|
this.dialogService = dialogService;
|
|
5316
5558
|
this.confirmationService = confirmationService;
|
|
5317
|
-
this.
|
|
5318
|
-
this.
|
|
5559
|
+
this.actionExecutor = actionExecutor;
|
|
5560
|
+
this.viewContainerService = viewContainerService;
|
|
5319
5561
|
this.actions = [];
|
|
5320
5562
|
this.tableComponent = null;
|
|
5321
5563
|
this.rowClickActions = [];
|
|
@@ -5325,10 +5567,11 @@ class MngTableviewComponent {
|
|
|
5325
5567
|
this.subscriptions = [];
|
|
5326
5568
|
}
|
|
5327
5569
|
ngOnInit() {
|
|
5328
|
-
this.
|
|
5329
|
-
this.
|
|
5330
|
-
|
|
5331
|
-
|
|
5570
|
+
this.viewContainerService.actions = this.actions;
|
|
5571
|
+
if (this.dataProvider) {
|
|
5572
|
+
this.viewContainerService.dataProvider = this.dataProvider;
|
|
5573
|
+
}
|
|
5574
|
+
const reloadTableSubscription = this.viewContainerService.reloadTable$.subscribe(() => {
|
|
5332
5575
|
this.reloadTable();
|
|
5333
5576
|
});
|
|
5334
5577
|
this.subscriptions.push(reloadTableSubscription);
|
|
@@ -5352,23 +5595,29 @@ class MngTableviewComponent {
|
|
|
5352
5595
|
ngOnDestroy() {
|
|
5353
5596
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
5354
5597
|
}
|
|
5598
|
+
getMessageService() {
|
|
5599
|
+
return this.messageService;
|
|
5600
|
+
}
|
|
5601
|
+
getDataProvider() {
|
|
5602
|
+
return this.dataProvider;
|
|
5603
|
+
}
|
|
5355
5604
|
reloadTable() {
|
|
5356
5605
|
this.tableComponent?.reload();
|
|
5357
5606
|
}
|
|
5358
5607
|
onTableCellClick(event) {
|
|
5359
5608
|
if (this.rowClickActions.length) {
|
|
5360
5609
|
for (const action of this.rowClickActions) {
|
|
5361
|
-
this.
|
|
5610
|
+
this.actionExecutor.triggerRowClickAction(action, event, this.route);
|
|
5362
5611
|
}
|
|
5363
5612
|
}
|
|
5364
5613
|
}
|
|
5365
5614
|
}
|
|
5366
|
-
MngTableviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableviewComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2
|
|
5367
|
-
MngTableviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableviewComponent, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [MessageService, ConfirmationService,
|
|
5615
|
+
MngTableviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableviewComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.MessageService }, { token: i3$1.TranslateService }, { token: i3.DialogService }, { token: i2.ConfirmationService }, { token: MngActionExecutorService }, { token: MngViewContainerComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5616
|
+
MngTableviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableviewComponent, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [MessageService, ConfirmationService, MngViewContainerComponentService], viewQueries: [{ propertyName: "tableComponent", first: true, predicate: MngTableComponent, descendants: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <p-toast></p-toast>\n\n <div class=\"card\">\n <p-toolbar styleClass=\"mb-4\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <ng-template pTemplate=\"left\">\n <mng-action *ngFor=\"let action of toolbarLeftActions\" [action]=\"action\"> </mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\"> </mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table [descriptor]=\"descriptor.table\" [dataProvider]=\"dataProvider\" [useQueryParams]=\"true\" (cellClick)=\"onTableCellClick($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle | translate }}</h5>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <mng-action\n *ngFor=\"let action of rowInlineActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.model.idPropertyName ? item[descriptor.model.idPropertyName] : null\">\n </mng-action>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", components: [{ type: i7$1.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { type: i8$1.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataProvider", "viewContainer"] }, { type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], pipes: { "translate": i3$1.TranslatePipe } });
|
|
5368
5617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableviewComponent, decorators: [{
|
|
5369
5618
|
type: Component,
|
|
5370
|
-
args: [{ selector: 'mng-tableview', providers: [MessageService, ConfirmationService,
|
|
5371
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2
|
|
5619
|
+
args: [{ selector: 'mng-tableview', providers: [MessageService, ConfirmationService, MngViewContainerComponentService], template: "<div class=\"mng-tableview\">\n <p-toast></p-toast>\n\n <div class=\"card\">\n <p-toolbar styleClass=\"mb-4\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <ng-template pTemplate=\"left\">\n <mng-action *ngFor=\"let action of toolbarLeftActions\" [action]=\"action\"> </mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\"> </mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table [descriptor]=\"descriptor.table\" [dataProvider]=\"dataProvider\" [useQueryParams]=\"true\" (cellClick)=\"onTableCellClick($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle | translate }}</h5>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <mng-action\n *ngFor=\"let action of rowInlineActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.model.idPropertyName ? item[descriptor.model.idPropertyName] : null\">\n </mng-action>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n" }]
|
|
5620
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.MessageService }, { type: i3$1.TranslateService }, { type: i3.DialogService }, { type: i2.ConfirmationService }, { type: MngActionExecutorService }, { type: MngViewContainerComponentService }]; }, propDecorators: { descriptor: [{
|
|
5372
5621
|
type: Input
|
|
5373
5622
|
}], dataProvider: [{
|
|
5374
5623
|
type: Input
|
|
@@ -5578,15 +5827,16 @@ class MngFormlyFieldLookupDialogComponent extends FieldType {
|
|
|
5578
5827
|
}
|
|
5579
5828
|
}
|
|
5580
5829
|
MngFormlyFieldLookupDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldLookupDialogComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
5581
|
-
MngFormlyFieldLookupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldLookupDialogComponent, selector: "mng-formly-field-lookup-dialog", viewQueries: [{ propertyName: "mngTable", first: true, predicate: MngTableComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-inputgroup mng-dropdown-dialog\">\n <input pInputText type=\"text\" [id]=\"$any(key)\" [readonly]=\"true\" [formlyAttributes]=\"field\" [formControl]=\"fieldLabelFormControl\" />\n <i class=\"mng-dropdown-clear-icon pi pi-times\" (click)=\"clear()\" *ngIf=\"!to.required && formControl?.value\"></i>\n <button pButton pRipple class=\"mng-dropdown-dialog-search-button\" type=\"button\" [label]=\"'general.search' | translate: {item: ''}\" (click)=\"openSelectDialog()\"></button>\n</div>\n\n<p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.lookupTableDescriptor!\"\n [dataProvider]=\"descriptor.lookupTableDataProvider\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading$\"\n [captionComponent]=\"config?.table?.captionComponent\"\n [columnActionComponent]=\"config?.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnActionComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItem()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i3$
|
|
5830
|
+
MngFormlyFieldLookupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldLookupDialogComponent, selector: "mng-formly-field-lookup-dialog", viewQueries: [{ propertyName: "mngTable", first: true, predicate: MngTableComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"'p-inputgroup mng-dropdown-dialog' + descriptor.inputClassName\" [class.p-inputtext-sm]=\"descriptor.isSizeSmall\" [class.p-inputtext-lg]=\"descriptor.isSizeLarge\">\n <input pInputText type=\"text\" [id]=\"$any(key)\" [readonly]=\"true\" [formlyAttributes]=\"field\" [formControl]=\"fieldLabelFormControl\" />\n <i class=\"mng-dropdown-clear-icon pi pi-times\" (click)=\"clear()\" *ngIf=\"!to.required && formControl?.value\"></i>\n <button pButton pRipple class=\"mng-dropdown-dialog-search-button\" type=\"button\" [label]=\"'general.search' | translate: {item: ''}\" (click)=\"openSelectDialog()\"></button>\n</div>\n\n<p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.lookupTableDescriptor!\"\n [dataProvider]=\"descriptor.lookupTableDataProvider\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading$\"\n [captionComponent]=\"config?.table?.captionComponent\"\n [columnActionComponent]=\"config?.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnActionComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItem()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i3$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10$1.InputText, selector: "[pInputText]" }, { type: i3$2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i3$1.TranslatePipe, "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5582
5831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldLookupDialogComponent, decorators: [{
|
|
5583
5832
|
type: Component,
|
|
5584
|
-
args: [{ selector: 'mng-formly-field-lookup-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"p-inputgroup mng-dropdown-dialog\">\n <input pInputText type=\"text\" [id]=\"$any(key)\" [readonly]=\"true\" [formlyAttributes]=\"field\" [formControl]=\"fieldLabelFormControl\" />\n <i class=\"mng-dropdown-clear-icon pi pi-times\" (click)=\"clear()\" *ngIf=\"!to.required && formControl?.value\"></i>\n <button pButton pRipple class=\"mng-dropdown-dialog-search-button\" type=\"button\" [label]=\"'general.search' | translate: {item: ''}\" (click)=\"openSelectDialog()\"></button>\n</div>\n\n<p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.lookupTableDescriptor!\"\n [dataProvider]=\"descriptor.lookupTableDataProvider\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading$\"\n [captionComponent]=\"config?.table?.captionComponent\"\n [columnActionComponent]=\"config?.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnActionComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItem()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
|
|
5833
|
+
args: [{ selector: 'mng-formly-field-lookup-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"'p-inputgroup mng-dropdown-dialog' + descriptor.inputClassName\" [class.p-inputtext-sm]=\"descriptor.isSizeSmall\" [class.p-inputtext-lg]=\"descriptor.isSizeLarge\">\n <input pInputText type=\"text\" [id]=\"$any(key)\" [readonly]=\"true\" [formlyAttributes]=\"field\" [formControl]=\"fieldLabelFormControl\" />\n <i class=\"mng-dropdown-clear-icon pi pi-times\" (click)=\"clear()\" *ngIf=\"!to.required && formControl?.value\"></i>\n <button pButton pRipple class=\"mng-dropdown-dialog-search-button\" type=\"button\" [label]=\"'general.search' | translate: {item: ''}\" (click)=\"openSelectDialog()\"></button>\n</div>\n\n<p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.lookupTableDescriptor!\"\n [dataProvider]=\"descriptor.lookupTableDataProvider\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading$\"\n [captionComponent]=\"config?.table?.captionComponent\"\n [columnActionComponent]=\"config?.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnActionComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItem()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
|
|
5585
5834
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { mngTable: [{
|
|
5586
5835
|
type: ViewChild,
|
|
5587
5836
|
args: [MngTableComponent]
|
|
5588
5837
|
}] } });
|
|
5589
5838
|
|
|
5839
|
+
var SizeEnum = ActionDescriptor.SizeEnum;
|
|
5590
5840
|
class MngFormlyFieldTableDialogFormComponent extends FieldType {
|
|
5591
5841
|
constructor() {
|
|
5592
5842
|
super(...arguments);
|
|
@@ -5608,6 +5858,7 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
|
|
|
5608
5858
|
.withTitle(null)
|
|
5609
5859
|
.withIcon('pi pi-plus')
|
|
5610
5860
|
.withClassName('mng-formly-field-table-form-dialog')
|
|
5861
|
+
.withSize(SizeEnum.ExtraSmall)
|
|
5611
5862
|
.withSubmitFunction(ctx => {
|
|
5612
5863
|
if (!ctx.data?.item) {
|
|
5613
5864
|
throw new Error(`No item was provided in context, edit cannot be done.`);
|
|
@@ -5627,6 +5878,7 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
|
|
|
5627
5878
|
.withTitle(null)
|
|
5628
5879
|
.withIcon('pi pi-pencil')
|
|
5629
5880
|
.withClassName('mng-formly-field-table-form-dialog')
|
|
5881
|
+
.withSize(SizeEnum.ExtraSmall)
|
|
5630
5882
|
.withSubmitFunction(ctx => {
|
|
5631
5883
|
if (!ctx.data?.item) {
|
|
5632
5884
|
throw new Error(`No item was provided in context, edit cannot be done.`);
|
|
@@ -5646,6 +5898,7 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
|
|
|
5646
5898
|
.withLevel(ActionLevelEnum.Danger)
|
|
5647
5899
|
.withTitle(null)
|
|
5648
5900
|
.withIcon('pi pi-trash')
|
|
5901
|
+
.withSize(SizeEnum.ExtraSmall)
|
|
5649
5902
|
.withRunFunction(ctx => {
|
|
5650
5903
|
if (!ctx.data?.item) {
|
|
5651
5904
|
throw new Error(`No item was provided in context, delete cannot be done.`);
|
|
@@ -5693,10 +5946,10 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
|
|
|
5693
5946
|
}
|
|
5694
5947
|
}
|
|
5695
5948
|
MngFormlyFieldTableDialogFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5696
|
-
MngFormlyFieldTableDialogFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogFormComponent, selector: "mng-formly-table-dialog-form-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items$\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <mng-action *ngFor=\"let action of toolbarActions\" [action]=\"action\"></mng-action>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n <mng-action\n *ngFor=\"let action of rowActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.tableviewDescriptor.model.idPropertyName ? item[descriptor.tableviewDescriptor.model.idPropertyName] : undefined\"\n [actionData]=\"{itemIndex: idx}\">\n </mng-action>\n </ng-template>\n</mng-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"], components: [{ type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData"] }], directives: [{ type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5949
|
+
MngFormlyFieldTableDialogFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogFormComponent, selector: "mng-formly-table-dialog-form-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items$\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <mng-action *ngFor=\"let action of toolbarActions\" [action]=\"action\"></mng-action>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n <mng-action\n *ngFor=\"let action of rowActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.tableviewDescriptor.model.idPropertyName ? item[descriptor.tableviewDescriptor.model.idPropertyName] : undefined\"\n [actionData]=\"{itemIndex: idx}\">\n </mng-action>\n </ng-template>\n</mng-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"], components: [{ type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataProvider", "viewContainer"] }], directives: [{ type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5697
5950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogFormComponent, decorators: [{
|
|
5698
5951
|
type: Component,
|
|
5699
|
-
args: [{ selector: 'mng-formly-table-dialog-form-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items$\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <mng-action *ngFor=\"let action of toolbarActions\" [action]=\"action\"></mng-action>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n <mng-action\n *ngFor=\"let action of rowActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.tableviewDescriptor.model.idPropertyName ? item[descriptor.tableviewDescriptor.model.idPropertyName] : undefined\"\n [actionData]=\"{itemIndex: idx}\">\n </mng-action>\n </ng-template>\n</mng-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"] }]
|
|
5952
|
+
args: [{ selector: 'mng-formly-table-dialog-form-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items$\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <mng-action *ngFor=\"let action of toolbarActions\" [action]=\"action\"></mng-action>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n <mng-action\n *ngFor=\"let action of rowActions\"\n [action]=\"action\"\n [item]=\"item\"\n [itemId]=\"descriptor.tableviewDescriptor.model.idPropertyName ? item[descriptor.tableviewDescriptor.model.idPropertyName] : undefined\"\n [actionData]=\"{itemIndex: idx}\">\n </mng-action>\n </ng-template>\n</mng-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"] }]
|
|
5700
5953
|
}] });
|
|
5701
5954
|
|
|
5702
5955
|
class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
|
|
@@ -5804,16 +6057,16 @@ class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
|
|
|
5804
6057
|
}
|
|
5805
6058
|
}
|
|
5806
6059
|
MngFormlyFieldTableDialogMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
5807
|
-
MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i1$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3$
|
|
6060
|
+
MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i1$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i3$1.TranslatePipe, "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5808
6061
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, decorators: [{
|
|
5809
6062
|
type: Component,
|
|
5810
|
-
args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
|
|
6063
|
+
args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
|
|
5811
6064
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
5812
6065
|
|
|
5813
6066
|
class MngFormlyFieldTabsComponent extends FieldType {
|
|
5814
6067
|
}
|
|
5815
6068
|
MngFormlyFieldTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5816
|
-
MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1$5.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1$5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i3$
|
|
6069
|
+
MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1$5.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1$5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i3$2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5817
6070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTabsComponent, decorators: [{
|
|
5818
6071
|
type: Component,
|
|
5819
6072
|
args: [{ selector: 'mng-formly-field-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n" }]
|
|
@@ -5822,7 +6075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
5822
6075
|
class MngFormlyFieldFieldsetComponent extends FieldType {
|
|
5823
6076
|
}
|
|
5824
6077
|
MngFormlyFieldFieldsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5825
|
-
MngFormlyFieldFieldsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldFieldsetComponent, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let group of field.fieldGroup; let i = index; let last = last\">\n <p-fieldset *ngIf=\"!group.templateOptions?.['descriptor']?.default; else defaultSet\" [legend]=\"group.templateOptions?.label! | translate\">\n <formly-field [field]=\"group\"></formly-field>\n </p-fieldset>\n <ng-template #defaultSet>\n <formly-field [field]=\"group\"></formly-field>\n </ng-template>\n</ng-container>\n", components: [{ type: i1$6.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { type: i3$
|
|
6078
|
+
MngFormlyFieldFieldsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldFieldsetComponent, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let group of field.fieldGroup; let i = index; let last = last\">\n <p-fieldset *ngIf=\"!group.templateOptions?.['descriptor']?.default; else defaultSet\" [legend]=\"group.templateOptions?.label! | translate\">\n <formly-field [field]=\"group\"></formly-field>\n </p-fieldset>\n <ng-template #defaultSet>\n <formly-field [field]=\"group\"></formly-field>\n </ng-template>\n</ng-container>\n", components: [{ type: i1$6.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { type: i3$2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5826
6079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldFieldsetComponent, decorators: [{
|
|
5827
6080
|
type: Component,
|
|
5828
6081
|
args: [{ selector: 'mng-formly-field-fieldset', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let group of field.fieldGroup; let i = index; let last = last\">\n <p-fieldset *ngIf=\"!group.templateOptions?.['descriptor']?.default; else defaultSet\" [legend]=\"group.templateOptions?.label! | translate\">\n <formly-field [field]=\"group\"></formly-field>\n </p-fieldset>\n <ng-template #defaultSet>\n <formly-field [field]=\"group\"></formly-field>\n </ng-template>\n</ng-container>\n" }]
|
|
@@ -5831,19 +6084,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
5831
6084
|
class MngFormlyFieldWrapperComponent extends FieldWrapper {
|
|
5832
6085
|
}
|
|
5833
6086
|
MngFormlyFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5834
|
-
MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field\">\n <label [for]=\"key\">{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i3$
|
|
6087
|
+
MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field\">\n <label [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i3$2.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5835
6088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldWrapperComponent, decorators: [{
|
|
5836
6089
|
type: Component,
|
|
5837
|
-
args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field\">\n <label [for]=\"key\">{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
|
|
6090
|
+
args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field\">\n <label [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
|
|
5838
6091
|
}] });
|
|
5839
6092
|
|
|
5840
6093
|
class MngFormlyTableWrapperComponent extends FieldWrapper {
|
|
5841
6094
|
}
|
|
5842
6095
|
MngFormlyTableWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyTableWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5843
|
-
MngFormlyTableWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyTableWrapperComponent, selector: "mng-formly-table-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i3$
|
|
6096
|
+
MngFormlyTableWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyTableWrapperComponent, selector: "mng-formly-table-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i3$2.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5844
6097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyTableWrapperComponent, decorators: [{
|
|
5845
6098
|
type: Component,
|
|
5846
|
-
args: [{ selector: 'mng-formly-table-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
|
|
6099
|
+
args: [{ selector: 'mng-formly-table-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
|
|
5847
6100
|
}] });
|
|
5848
6101
|
|
|
5849
6102
|
class MngBreadcrumbComponent {
|
|
@@ -5852,7 +6105,7 @@ class MngBreadcrumbComponent {
|
|
|
5852
6105
|
}
|
|
5853
6106
|
}
|
|
5854
6107
|
MngBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngBreadcrumbComponent, deps: [{ token: MngCommonsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5855
|
-
MngBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngBreadcrumbComponent, selector: "mng-breadcrumb", ngImport: i0, template: "<div class=\"layout-breadcrumb-container\">\n <div class=\"layout-breadcrumb\">\n <p-breadcrumb [home]=\"$any(mngCommons.breadcrumbHome$ | async)\" [model]=\"$any(mngCommons.breadcrumbs$ | async)\" styleClass=\"layout-breadcrumb py-2\"></p-breadcrumb>\n </div>\n</div>\n", components: [{ type: i2$
|
|
6108
|
+
MngBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngBreadcrumbComponent, selector: "mng-breadcrumb", ngImport: i0, template: "<div class=\"layout-breadcrumb-container\">\n <div class=\"layout-breadcrumb\">\n <p-breadcrumb [home]=\"$any(mngCommons.breadcrumbHome$ | async)\" [model]=\"$any(mngCommons.breadcrumbs$ | async)\" styleClass=\"layout-breadcrumb py-2\"></p-breadcrumb>\n </div>\n</div>\n", components: [{ type: i2$3.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }], pipes: { "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5856
6109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngBreadcrumbComponent, decorators: [{
|
|
5857
6110
|
type: Component,
|
|
5858
6111
|
args: [{ selector: 'mng-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-breadcrumb-container\">\n <div class=\"layout-breadcrumb\">\n <p-breadcrumb [home]=\"$any(mngCommons.breadcrumbHome$ | async)\" [model]=\"$any(mngCommons.breadcrumbs$ | async)\" styleClass=\"layout-breadcrumb py-2\"></p-breadcrumb>\n </div>\n</div>\n" }]
|
|
@@ -5865,7 +6118,7 @@ class MngFooterComponent {
|
|
|
5865
6118
|
}
|
|
5866
6119
|
}
|
|
5867
6120
|
MngFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFooterComponent, deps: [{ token: MngCommonsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5868
|
-
MngFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFooterComponent, selector: "mng-footer", ngImport: i0, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n <img id=\"footer-logo\" [src]=\"mngCommons.colorSchemeIsLight ? mngCommons.appLogoDark : mngCommons.appLogoLight\" alt=\"atlantis-layout\" />\n <span class=\"app-name\">{{ mngCommons.appName | translate }}</span>\n </div>\n <span class=\"copyright\">© {{ mngCommons.appOwner | translate }} - {{ currentYear }}</span>\n</div>\n", pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6121
|
+
MngFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFooterComponent, selector: "mng-footer", ngImport: i0, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n <img id=\"footer-logo\" [src]=\"mngCommons.colorSchemeIsLight ? mngCommons.appLogoDark : mngCommons.appLogoLight\" alt=\"atlantis-layout\" />\n <span class=\"app-name\">{{ mngCommons.appName | translate }}</span>\n </div>\n <span class=\"copyright\">© {{ mngCommons.appOwner | translate }} - {{ currentYear }}</span>\n</div>\n", pipes: { "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5869
6122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFooterComponent, decorators: [{
|
|
5870
6123
|
type: Component,
|
|
5871
6124
|
args: [{ selector: 'mng-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n <img id=\"footer-logo\" [src]=\"mngCommons.colorSchemeIsLight ? mngCommons.appLogoDark : mngCommons.appLogoLight\" alt=\"atlantis-layout\" />\n <span class=\"app-name\">{{ mngCommons.appName | translate }}</span>\n </div>\n <span class=\"copyright\">© {{ mngCommons.appOwner | translate }} - {{ currentYear }}</span>\n</div>\n" }]
|
|
@@ -6201,7 +6454,7 @@ class MngMenuItemComponent {
|
|
|
6201
6454
|
}
|
|
6202
6455
|
}
|
|
6203
6456
|
MngMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMenuItemComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: MngCommonsService }, { token: MngMainLayoutComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6204
|
-
MngMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngMenuItemComponent, selector: "[mng-menuitem]", inputs: { item: "item", index: "index", root: "root", parentKey: "parentKey" }, host: { properties: { "class.layout-root-menuitem": "root", "class.active-menuitem": "active" } }, ngImport: i0, template: "<ng-container>\n <div *ngIf=\"root && item.visible !== false && (isAllowed$ | async) === true\" class=\"layout-menuitem-root-text\">{{ item.label! | translate }}</div>\n <a\n *ngIf=\"(!item.routerLink || item.items) && item.visible !== false && (isAllowed$ | async) === true\"\n [attr.href]=\"item.href\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (keydown.enter)=\"itemClick($event)\"\n [routerLink]=\"item.routerLink\"\n [attr.target]=\"item.target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item.className ?? ''\"\n pRipple>\n <i [ngClass]=\"item.icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label! | translate }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n <span class=\"menuitem-badge\" *ngIf=\"item.badge\">{{ item.badge }}</span>\n </a>\n <a\n *ngIf=\"item.routerLink && !item.items && item.visible !== false && (isAllowed$ | async) === true\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"hover = true\"\n (mouseleave)=\"hover = false\"\n [routerLink]=\"item.routerLink\"\n routerLinkActive=\"active-menuitem-routerlink\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [attr.target]=\"item.target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item.className ?? ''\"\n pRipple>\n <i [ngClass]=\"item.icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label! | translate }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n <span class=\"menuitem-badge\" *ngIf=\"item.badge\">{{ item.badge }}</span>\n </a>\n <ul\n *ngIf=\"((item.items && active) || (item.items && (mngCommons.menuModeIsStatic$ | async) && (root || active))) && item.visible !== false && (isAllowed$ | async) === true\"\n [@children]=\"\n (mngCommons.menuModeIsSlim$ | async) && (mainLayoutService.isMobile$ | async) === false && root\n ? active\n ? 'visible'\n : 'hidden'\n : (mngCommons.menuModeIsStatic$ | async) && root && (mainLayoutService.isMobile$ | async) === false\n ? 'visible'\n : active\n ? 'visibleAnimated'\n : 'hiddenAnimated'\n \">\n <ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n <li mng-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child.badgeClassName\"></li>\n </ng-template>\n </ul>\n</ng-container>\n", components: [{ type: MngMenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "index", "root", "parentKey"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3.TranslatePipe }, animations: [
|
|
6457
|
+
MngMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngMenuItemComponent, selector: "[mng-menuitem]", inputs: { item: "item", index: "index", root: "root", parentKey: "parentKey" }, host: { properties: { "class.layout-root-menuitem": "root", "class.active-menuitem": "active" } }, ngImport: i0, template: "<ng-container>\n <div *ngIf=\"root && item.visible !== false && (isAllowed$ | async) === true\" class=\"layout-menuitem-root-text\">{{ item.label! | translate }}</div>\n <a\n *ngIf=\"(!item.routerLink || item.items) && item.visible !== false && (isAllowed$ | async) === true\"\n [attr.href]=\"item.href\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (keydown.enter)=\"itemClick($event)\"\n [routerLink]=\"item.routerLink\"\n [attr.target]=\"item.target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item.className ?? ''\"\n pRipple>\n <i [ngClass]=\"item.icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label! | translate }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n <span class=\"menuitem-badge\" *ngIf=\"item.badge\">{{ item.badge }}</span>\n </a>\n <a\n *ngIf=\"item.routerLink && !item.items && item.visible !== false && (isAllowed$ | async) === true\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"hover = true\"\n (mouseleave)=\"hover = false\"\n [routerLink]=\"item.routerLink\"\n routerLinkActive=\"active-menuitem-routerlink\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [attr.target]=\"item.target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item.className ?? ''\"\n pRipple>\n <i [ngClass]=\"item.icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label! | translate }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n <span class=\"menuitem-badge\" *ngIf=\"item.badge\">{{ item.badge }}</span>\n </a>\n <ul\n *ngIf=\"((item.items && active) || (item.items && (mngCommons.menuModeIsStatic$ | async) && (root || active))) && item.visible !== false && (isAllowed$ | async) === true\"\n [@children]=\"\n (mngCommons.menuModeIsSlim$ | async) && (mainLayoutService.isMobile$ | async) === false && root\n ? active\n ? 'visible'\n : 'hidden'\n : (mngCommons.menuModeIsStatic$ | async) && root && (mainLayoutService.isMobile$ | async) === false\n ? 'visible'\n : active\n ? 'visibleAnimated'\n : 'hiddenAnimated'\n \">\n <ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n <li mng-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child.badgeClassName\"></li>\n </ng-template>\n </ul>\n</ng-container>\n", components: [{ type: MngMenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "index", "root", "parentKey"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3$1.TranslatePipe }, animations: [
|
|
6205
6458
|
trigger('children', [
|
|
6206
6459
|
state('void', style({
|
|
6207
6460
|
height: '0px'
|
|
@@ -6313,7 +6566,7 @@ class MngTopbarComponent {
|
|
|
6313
6566
|
}
|
|
6314
6567
|
}
|
|
6315
6568
|
MngTopbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTopbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: MngCommonsService }, { token: MngMainLayoutComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6316
|
-
MngTopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTopbarComponent, selector: "mng-topbar", viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n", components: [{ type: i1$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6569
|
+
MngTopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTopbarComponent, selector: "mng-topbar", viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n", components: [{ type: i1$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i3$1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6317
6570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTopbarComponent, decorators: [{
|
|
6318
6571
|
type: Component,
|
|
6319
6572
|
args: [{ selector: 'mng-topbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n" }]
|
|
@@ -6647,7 +6900,7 @@ const declarations = [
|
|
|
6647
6900
|
// editor components
|
|
6648
6901
|
MngFormEditorComponent,
|
|
6649
6902
|
MngActionComponent,
|
|
6650
|
-
|
|
6903
|
+
MngActionEditorComponent,
|
|
6651
6904
|
MngActionRouteComponent
|
|
6652
6905
|
];
|
|
6653
6906
|
class MngCommonsModule {
|
|
@@ -6659,12 +6912,12 @@ class MngCommonsModule {
|
|
|
6659
6912
|
DialogService,
|
|
6660
6913
|
MessageService,
|
|
6661
6914
|
ConfirmationService,
|
|
6662
|
-
|
|
6915
|
+
MngActionExecutorService,
|
|
6663
6916
|
MngNavigationService,
|
|
6664
6917
|
MngCommonsService,
|
|
6665
6918
|
// component service
|
|
6666
6919
|
MngMainLayoutComponentService,
|
|
6667
|
-
|
|
6920
|
+
MngViewContainerComponentService,
|
|
6668
6921
|
{
|
|
6669
6922
|
provide: MNG_MODULE_CONFIG_IT,
|
|
6670
6923
|
useValue: config
|
|
@@ -6695,6 +6948,10 @@ class MngCommonsModule {
|
|
|
6695
6948
|
multi: true,
|
|
6696
6949
|
useFactory: mngFormlyConfigProvider,
|
|
6697
6950
|
deps: [TranslateService, MNG_MODULE_CONFIG_IT]
|
|
6951
|
+
},
|
|
6952
|
+
{
|
|
6953
|
+
provide: ACTION_EDITOR_DIALOG_COMPONENT_SETTING,
|
|
6954
|
+
useValue: MngActionEditorComponent
|
|
6698
6955
|
}
|
|
6699
6956
|
]
|
|
6700
6957
|
};
|
|
@@ -6741,13 +6998,13 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
6741
6998
|
// editor components
|
|
6742
6999
|
MngFormEditorComponent,
|
|
6743
7000
|
MngActionComponent,
|
|
6744
|
-
|
|
7001
|
+
MngActionEditorComponent,
|
|
6745
7002
|
MngActionRouteComponent], imports: [
|
|
6746
7003
|
// angular modules
|
|
6747
7004
|
CommonModule,
|
|
6748
7005
|
RouterModule,
|
|
6749
7006
|
HttpClientModule,
|
|
6750
|
-
ReactiveFormsModule, i3.TranslateModule, i3$
|
|
7007
|
+
ReactiveFormsModule, i3$1.TranslateModule, i3$2.FormlyModule, AutoCompleteModule,
|
|
6751
7008
|
BreadcrumbModule,
|
|
6752
7009
|
ButtonModule,
|
|
6753
7010
|
CalendarModule,
|
|
@@ -6853,7 +7110,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
6853
7110
|
// editor components
|
|
6854
7111
|
MngFormEditorComponent,
|
|
6855
7112
|
MngActionComponent,
|
|
6856
|
-
|
|
7113
|
+
MngActionEditorComponent,
|
|
6857
7114
|
MngActionRouteComponent] });
|
|
6858
7115
|
MngCommonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngCommonsModule, imports: [[
|
|
6859
7116
|
// angular modules
|
|
@@ -7458,5 +7715,5 @@ class RouteDataBuilder {
|
|
|
7458
7715
|
* Generated bundle index. Do not edit.
|
|
7459
7716
|
*/
|
|
7460
7717
|
|
|
7461
|
-
export { AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngCrudApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionPositionEnum, ActionRunResult, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidator, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, I18nUtil, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusQueryResultBase, MediusQueryResultWithObject, MediusRestUtil, MngActionComponent,
|
|
7718
|
+
export { AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngCrudApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionPositionEnum, ActionRunResult, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldDescriptor, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidator, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, I18nUtil, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusQueryResultBase, MediusQueryResultWithObject, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngEnumPipe, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngPropertyPathPipe, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTopbarComponent, ModelDescriptor, ModelUtil, ObjectSerializer, RouteBuilder, RouteDataBuilder, RoutesBuilder, TableDataProvider, TableDescriptor, TableviewDataProvider, TableviewDescriptor, ToastUtil, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngCommonsInitializerProvider, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
|
|
7462
7719
|
//# sourceMappingURL=mediusinc-mng-commons.mjs.map
|