@mediusinc/mng-commons 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/esm2020/lib/api/models/query-result.model.mjs +7 -1
  2. package/esm2020/lib/components/action/action.component.mjs +7 -7
  3. package/esm2020/lib/components/action/editor/action-editor.component.mjs +5 -5
  4. package/esm2020/lib/components/form/date-range/date-range.component.mjs +5 -2
  5. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +14 -13
  6. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +5 -4
  7. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +3 -3
  8. package/esm2020/lib/components/tableview/table/table.component.mjs +18 -4
  9. package/esm2020/lib/components/tableview/tableview.component.mjs +17 -4
  10. package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +15 -44
  11. package/esm2020/lib/descriptors/action-button.descriptor.mjs +60 -0
  12. package/esm2020/lib/descriptors/action.descriptor.mjs +27 -22
  13. package/esm2020/lib/descriptors/column.descriptor.mjs +1 -1
  14. package/esm2020/lib/descriptors/filter.descriptor.mjs +7 -3
  15. package/esm2020/lib/descriptors/index.mjs +2 -2
  16. package/esm2020/lib/descriptors/types/action.type.mjs +1 -28
  17. package/esm2020/lib/mng-commons.module.mjs +4 -11
  18. package/esm2020/lib/services/action-executor.service.mjs +23 -20
  19. package/esm2020/lib/styles/button-style.builder.mjs +30 -28
  20. package/esm2020/lib/styles/models/index.mjs +3 -0
  21. package/esm2020/lib/styles/models/style-level.enum.mjs +12 -0
  22. package/esm2020/lib/styles/models/style-size.enum.mjs +9 -0
  23. package/esm2020/lib/styles/styles.util.mjs +9 -8
  24. package/esm2020/public-api.mjs +2 -2
  25. package/fesm2015/mediusinc-mng-commons.mjs +249 -338
  26. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  27. package/fesm2020/mediusinc-mng-commons.mjs +244 -331
  28. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  29. package/lib/api/models/query-result.model.d.ts +1 -0
  30. package/lib/components/tableview/table/table.component.d.ts +2 -0
  31. package/lib/components/tableview/tableview.component.d.ts +7 -3
  32. package/lib/descriptors/action/action-confirmation.descriptor.d.ts +7 -19
  33. package/lib/descriptors/action-button.descriptor.d.ts +22 -0
  34. package/lib/descriptors/action.descriptor.d.ts +15 -13
  35. package/lib/descriptors/index.d.ts +1 -1
  36. package/lib/descriptors/types/action.type.d.ts +0 -24
  37. package/lib/mng-commons.module.d.ts +41 -42
  38. package/lib/styles/button-style.builder.d.ts +8 -8
  39. package/lib/styles/models/index.d.ts +2 -0
  40. package/lib/styles/models/style-level.enum.d.ts +10 -0
  41. package/lib/styles/models/style-size.enum.d.ts +7 -0
  42. package/package.json +1 -1
  43. package/public-api.d.ts +1 -1
  44. package/templates/tableview-route.component.html +1 -1
  45. package/version-info.json +5 -5
  46. package/esm2020/lib/components/button/button.component.mjs +0 -46
  47. package/esm2020/lib/components/button/index.mjs +0 -2
  48. package/esm2020/lib/descriptors/button.descriptor.mjs +0 -111
  49. package/lib/components/button/button.component.d.ts +0 -16
  50. package/lib/components/button/index.d.ts +0 -1
  51. package/lib/descriptors/button.descriptor.d.ts +0 -40
@@ -226,6 +226,12 @@ MediusQueryParam.attributeTypeMap = [
226
226
  ];
227
227
 
228
228
  class MediusQueryResult {
229
+ static fromArray(pageData, allDataCount) {
230
+ const mqr = new MediusQueryResult();
231
+ mqr.allDataCount = allDataCount ?? pageData.length;
232
+ mqr.pageData = pageData;
233
+ return mqr;
234
+ }
229
235
  static getAttributeTypeMap() {
230
236
  return MediusQueryResult.attributeTypeMap;
231
237
  }
@@ -842,33 +848,6 @@ var ActionTypeEnum;
842
848
  ActionTypeEnum[ActionTypeEnum["Direct"] = 0] = "Direct";
843
849
  ActionTypeEnum[ActionTypeEnum["Editor"] = 1] = "Editor"; // editor providing middle step for activation
844
850
  })(ActionTypeEnum || (ActionTypeEnum = {}));
845
- var ActionLevelEnum;
846
- (function (ActionLevelEnum) {
847
- ActionLevelEnum[ActionLevelEnum["Default"] = 0] = "Default";
848
- ActionLevelEnum[ActionLevelEnum["Primary"] = 1] = "Primary";
849
- ActionLevelEnum[ActionLevelEnum["Secondary"] = 2] = "Secondary";
850
- ActionLevelEnum[ActionLevelEnum["Info"] = 3] = "Info";
851
- ActionLevelEnum[ActionLevelEnum["Help"] = 4] = "Help";
852
- ActionLevelEnum[ActionLevelEnum["Success"] = 5] = "Success";
853
- ActionLevelEnum[ActionLevelEnum["Warning"] = 6] = "Warning";
854
- ActionLevelEnum[ActionLevelEnum["Danger"] = 7] = "Danger";
855
- })(ActionLevelEnum || (ActionLevelEnum = {}));
856
- var ActionSizeEnum;
857
- (function (ActionSizeEnum) {
858
- ActionSizeEnum[ActionSizeEnum["ExtraSmall"] = 0] = "ExtraSmall";
859
- ActionSizeEnum[ActionSizeEnum["Small"] = 1] = "Small";
860
- ActionSizeEnum[ActionSizeEnum["Normal"] = 2] = "Normal";
861
- ActionSizeEnum[ActionSizeEnum["Large"] = 3] = "Large";
862
- ActionSizeEnum[ActionSizeEnum["ExtraLarge"] = 4] = "ExtraLarge";
863
- })(ActionSizeEnum || (ActionSizeEnum = {}));
864
- var ActionEditorDialogSizeEnum;
865
- (function (ActionEditorDialogSizeEnum) {
866
- ActionEditorDialogSizeEnum[ActionEditorDialogSizeEnum["ExtraSmall"] = 0] = "ExtraSmall";
867
- ActionEditorDialogSizeEnum[ActionEditorDialogSizeEnum["Small"] = 1] = "Small";
868
- ActionEditorDialogSizeEnum[ActionEditorDialogSizeEnum["Normal"] = 2] = "Normal";
869
- ActionEditorDialogSizeEnum[ActionEditorDialogSizeEnum["Large"] = 3] = "Large";
870
- ActionEditorDialogSizeEnum[ActionEditorDialogSizeEnum["ExtraLarge"] = 4] = "ExtraLarge";
871
- })(ActionEditorDialogSizeEnum || (ActionEditorDialogSizeEnum = {}));
872
851
  var ActionEditorSubmitTypeEnum;
873
852
  (function (ActionEditorSubmitTypeEnum) {
874
853
  ActionEditorSubmitTypeEnum[ActionEditorSubmitTypeEnum["Submit"] = 0] = "Submit";
@@ -1004,6 +983,27 @@ var TableDynamicColumnsModeEnum;
1004
983
  TableDynamicColumnsModeEnum[TableDynamicColumnsModeEnum["INCLUDE_ONLY"] = 1] = "INCLUDE_ONLY";
1005
984
  })(TableDynamicColumnsModeEnum || (TableDynamicColumnsModeEnum = {}));
1006
985
 
986
+ var StyleLevelEnum;
987
+ (function (StyleLevelEnum) {
988
+ StyleLevelEnum[StyleLevelEnum["Default"] = 0] = "Default";
989
+ StyleLevelEnum[StyleLevelEnum["Primary"] = 1] = "Primary";
990
+ StyleLevelEnum[StyleLevelEnum["Secondary"] = 2] = "Secondary";
991
+ StyleLevelEnum[StyleLevelEnum["Info"] = 3] = "Info";
992
+ StyleLevelEnum[StyleLevelEnum["Help"] = 4] = "Help";
993
+ StyleLevelEnum[StyleLevelEnum["Success"] = 5] = "Success";
994
+ StyleLevelEnum[StyleLevelEnum["Warning"] = 6] = "Warning";
995
+ StyleLevelEnum[StyleLevelEnum["Danger"] = 7] = "Danger";
996
+ })(StyleLevelEnum || (StyleLevelEnum = {}));
997
+
998
+ var StyleSizeEnum;
999
+ (function (StyleSizeEnum) {
1000
+ StyleSizeEnum[StyleSizeEnum["ExtraSmall"] = 0] = "ExtraSmall";
1001
+ StyleSizeEnum[StyleSizeEnum["Small"] = 1] = "Small";
1002
+ StyleSizeEnum[StyleSizeEnum["Normal"] = 2] = "Normal";
1003
+ StyleSizeEnum[StyleSizeEnum["Large"] = 3] = "Large";
1004
+ StyleSizeEnum[StyleSizeEnum["ExtraLarge"] = 4] = "ExtraLarge";
1005
+ })(StyleSizeEnum || (StyleSizeEnum = {}));
1006
+
1007
1007
  class StylesUtil {
1008
1008
  static calculateTableColumnActionWidth(table, actions) {
1009
1009
  const buttonsWidth = actions.reduce((acc, action) => acc + StylesUtil.getActionButtonRoundedWidth(action) + 2 * StylesUtil.ACTION_BUTTON_MARGIN_X, 0);
@@ -1021,15 +1021,15 @@ class StylesUtil {
1021
1021
  }
1022
1022
  }
1023
1023
  static getActionButtonRoundedWidth(action) {
1024
- switch (action.buttonDescriptor.styleClass.size) {
1025
- case ActionSizeEnum.ExtraSmall:
1024
+ switch (action.button.styleClass.size) {
1025
+ case StyleSizeEnum.ExtraSmall:
1026
1026
  return StylesUtil.BUTTON_ROUNDED_WIDTH_XS;
1027
- case ActionSizeEnum.Small:
1027
+ case StyleSizeEnum.Small:
1028
1028
  return StylesUtil.BUTTON_ROUNDED_WIDTH_SM;
1029
- case ActionSizeEnum.Large:
1030
- case ActionSizeEnum.ExtraLarge:
1029
+ case StyleSizeEnum.Large:
1030
+ case StyleSizeEnum.ExtraLarge:
1031
1031
  return StylesUtil.BUTTON_ROUNDED_WIDTH_LG;
1032
- case ActionSizeEnum.Normal:
1032
+ case StyleSizeEnum.Normal:
1033
1033
  default:
1034
1034
  return StylesUtil.BUTTON_ROUNDED_WIDTH;
1035
1035
  }
@@ -1045,8 +1045,8 @@ StylesUtil.TABLE_CELL_PADDING_X_SM = 4;
1045
1045
  StylesUtil.TABLE_CELL_PADDING_X_LG = 12;
1046
1046
 
1047
1047
  class ButtonStyleBuilder {
1048
- constructor(level = ActionLevelEnum.Default, customClass) {
1049
- this._size = ActionSizeEnum.Normal;
1048
+ constructor(level = StyleLevelEnum.Default, customClass) {
1049
+ this._size = StyleSizeEnum.Normal;
1050
1050
  this._textButton = false;
1051
1051
  this._outlineButton = false;
1052
1052
  this._raisedButton = false;
@@ -1054,7 +1054,7 @@ class ButtonStyleBuilder {
1054
1054
  this._actionLevel = level;
1055
1055
  this._customClass = customClass;
1056
1056
  }
1057
- getButtonClass(hasNoTitle = false) {
1057
+ build(hasNoTitle = false) {
1058
1058
  const styles = [this.convertActionLevelToStyleClass(), this.convertSizeToStyleClass(), this._customClass];
1059
1059
  if (hasNoTitle && this._roundedStyle === ButtonStyleRoundedEnum.DEFAULT) {
1060
1060
  styles.push(`p-button-rounded mng-action-button-icon`);
@@ -1082,15 +1082,16 @@ class ButtonStyleBuilder {
1082
1082
  * @param raisedButton if true, raised button will be applied
1083
1083
  * @param customClass additional custom classes (will be added at generating)
1084
1084
  */
1085
- create(actionLevel, size, textButton, outlineButton, raisedButton, roundedButton, customClass) {
1086
- this._actionLevel = actionLevel ?? this._actionLevel;
1087
- this._size = size ?? this._size;
1088
- this._textButton = textButton ?? this._textButton;
1089
- this._outlineButton = outlineButton ?? this._outlineButton;
1090
- this._raisedButton = raisedButton ?? this._raisedButton;
1091
- this._roundedStyle = roundedButton ?? this._roundedStyle;
1092
- this._customClass = customClass;
1093
- return this;
1085
+ static create(actionLevel, size, textButton, outlineButton, raisedButton, roundedButton, customClass) {
1086
+ const descriptor = new ButtonStyleBuilder(actionLevel, customClass);
1087
+ descriptor._actionLevel = actionLevel ?? descriptor._actionLevel;
1088
+ descriptor._size = size ?? descriptor._size;
1089
+ descriptor._textButton = textButton ?? descriptor._textButton;
1090
+ descriptor._outlineButton = outlineButton ?? descriptor._outlineButton;
1091
+ descriptor._raisedButton = raisedButton ?? descriptor._raisedButton;
1092
+ descriptor._roundedStyle = roundedButton ?? descriptor._roundedStyle;
1093
+ descriptor._customClass = customClass;
1094
+ return descriptor;
1094
1095
  }
1095
1096
  /**
1096
1097
  * sets custom action level and returns this object
@@ -1146,35 +1147,36 @@ class ButtonStyleBuilder {
1146
1147
  }
1147
1148
  convertActionLevelToStyleClass() {
1148
1149
  switch (this._actionLevel) {
1149
- case ActionLevelEnum.Default:
1150
- case ActionLevelEnum.Primary:
1150
+ case StyleLevelEnum.Default:
1151
+ case StyleLevelEnum.Primary:
1151
1152
  return 'p-button-primary';
1152
- case ActionLevelEnum.Secondary:
1153
+ case StyleLevelEnum.Secondary:
1153
1154
  return 'p-button-secondary';
1154
- case ActionLevelEnum.Info:
1155
+ case StyleLevelEnum.Info:
1155
1156
  return 'p-button-info';
1156
- case ActionLevelEnum.Help:
1157
+ case StyleLevelEnum.Help:
1157
1158
  return 'p-button-help';
1158
- case ActionLevelEnum.Success:
1159
+ case StyleLevelEnum.Success:
1159
1160
  return 'p-button-success';
1160
- case ActionLevelEnum.Warning:
1161
+ case StyleLevelEnum.Warning:
1161
1162
  return 'p-button-warning';
1162
- case ActionLevelEnum.Danger:
1163
+ case StyleLevelEnum.Danger:
1163
1164
  return 'p-button-danger';
1164
1165
  }
1165
1166
  }
1166
1167
  convertSizeToStyleClass() {
1167
1168
  switch (this._size) {
1168
- case ActionSizeEnum.ExtraSmall:
1169
+ case StyleSizeEnum.ExtraSmall:
1169
1170
  return 'p-button-sm mng-button-xs';
1170
- case ActionSizeEnum.Small:
1171
+ case StyleSizeEnum.Small:
1171
1172
  return 'p-button-sm mng-button-sm';
1172
- case ActionSizeEnum.Normal:
1173
- return '';
1174
- case ActionSizeEnum.Large:
1173
+ case StyleSizeEnum.Large:
1175
1174
  return 'p-button-lg mng-button-lg';
1176
- case ActionSizeEnum.ExtraLarge:
1175
+ case StyleSizeEnum.ExtraLarge:
1177
1176
  return 'p-button-lg mng-button-xl';
1177
+ case StyleSizeEnum.Normal:
1178
+ default:
1179
+ return '';
1178
1180
  }
1179
1181
  }
1180
1182
  get actionLevel() {
@@ -1206,50 +1208,91 @@ var ButtonStyleRoundedEnum;
1206
1208
  ButtonStyleRoundedEnum[ButtonStyleRoundedEnum["SQUARE"] = 2] = "SQUARE";
1207
1209
  })(ButtonStyleRoundedEnum || (ButtonStyleRoundedEnum = {}));
1208
1210
 
1209
- class ActionConfirmationDialogDescriptor {
1211
+ class ActionButtonDescriptor {
1210
1212
  constructor() {
1211
- this._closeOnEscape = true; // Defines if dialog closes when esc key is pressed.
1212
- this._closable = true; // Defines if dialog is closable.
1213
- this._acceptButtonStyle = new ButtonStyleBuilder(ActionLevelEnum.Default);
1214
- this._rejectButtonStyle = new ButtonStyleBuilder(ActionLevelEnum.Default).withTextButton();
1215
- this._icon = 'pi pi-exclamation-triangle';
1216
- this._acceptIcon = 'pi pi-check';
1217
- this._rejectIcon = 'pi pi-times';
1213
+ this._iconPosition = 'left';
1214
+ this._styleClass = new ButtonStyleBuilder();
1215
+ }
1216
+ withLabel(label) {
1217
+ this._label = label;
1218
+ return this;
1218
1219
  }
1219
1220
  withIcon(icon) {
1220
1221
  this._icon = icon;
1221
1222
  return this;
1222
1223
  }
1223
- withTitle(title) {
1224
- this._title = title;
1224
+ withIconPosition(iconPosition) {
1225
+ this._iconPosition = iconPosition;
1225
1226
  return this;
1226
1227
  }
1227
- withMessage(message) {
1228
- this._message = message;
1228
+ withStyleClass(style) {
1229
+ this._styleClass = style;
1229
1230
  return this;
1230
1231
  }
1231
- withAcceptLabel(acceptLabel) {
1232
- this._acceptLabel = acceptLabel;
1232
+ withBadge(badge) {
1233
+ this._badge = badge;
1233
1234
  return this;
1234
1235
  }
1235
- withAcceptIcon(acceptIcon) {
1236
- this._acceptIcon = acceptIcon;
1236
+ withTooltip(tooltip) {
1237
+ this._tooltip = tooltip;
1237
1238
  return this;
1238
1239
  }
1239
- withAcceptButtonStyle(buttonStyle) {
1240
- this._acceptButtonStyle = buttonStyle;
1240
+ get label() {
1241
+ return this._label;
1242
+ }
1243
+ get icon() {
1244
+ return this._icon;
1245
+ }
1246
+ get iconPosition() {
1247
+ return this._iconPosition;
1248
+ }
1249
+ get styleClass() {
1250
+ return this._styleClass;
1251
+ }
1252
+ get badge() {
1253
+ return this._badge;
1254
+ }
1255
+ get tooltip() {
1256
+ return this._tooltip;
1257
+ }
1258
+ copy() {
1259
+ const descriptor = new ActionButtonDescriptor();
1260
+ descriptor._label = this._label;
1261
+ descriptor._icon = this._icon;
1262
+ descriptor._iconPosition = this._iconPosition;
1263
+ descriptor._styleClass = this._styleClass;
1264
+ descriptor._badge = this._badge;
1265
+ descriptor._tooltip = this._tooltip;
1266
+ return descriptor;
1267
+ }
1268
+ }
1269
+
1270
+ class ActionConfirmationDialogDescriptor {
1271
+ constructor() {
1272
+ this._closeOnEscape = true; // Defines if dialog closes when esc key is pressed.
1273
+ this._closable = true; // Defines if dialog is closable.
1274
+ this._acceptButton = new ActionButtonDescriptor().withIcon('pi pi-check').withStyleClass(new ButtonStyleBuilder(StyleLevelEnum.Default));
1275
+ this._rejectButton = new ActionButtonDescriptor().withIcon('pi pi-times').withStyleClass(new ButtonStyleBuilder(StyleLevelEnum.Default).withTextButton());
1276
+ this._icon = 'pi pi-exclamation-triangle';
1277
+ }
1278
+ withIcon(icon) {
1279
+ this._icon = icon;
1280
+ return this;
1281
+ }
1282
+ withTitle(title) {
1283
+ this._title = title;
1241
1284
  return this;
1242
1285
  }
1243
- withRejectLabel(rejectLabel) {
1244
- this._rejectLabel = rejectLabel;
1286
+ withMessage(message) {
1287
+ this._message = message;
1245
1288
  return this;
1246
1289
  }
1247
- withRejectIcon(rejectIcon) {
1248
- this._rejectIcon = rejectIcon;
1290
+ withAcceptButton(actionButtonDescriptor) {
1291
+ this._acceptButton = actionButtonDescriptor;
1249
1292
  return this;
1250
1293
  }
1251
- withRejectButtonStyle(buttonStyle) {
1252
- this._rejectButtonStyle = buttonStyle;
1294
+ withRejectButton(actionButtonDescriptor) {
1295
+ this._rejectButton = actionButtonDescriptor;
1253
1296
  return this;
1254
1297
  }
1255
1298
  /**
@@ -1281,24 +1324,6 @@ class ActionConfirmationDialogDescriptor {
1281
1324
  get message() {
1282
1325
  return this._message;
1283
1326
  }
1284
- get acceptLabel() {
1285
- return this._acceptLabel;
1286
- }
1287
- get acceptIcon() {
1288
- return this._acceptIcon;
1289
- }
1290
- get acceptButtonStyle() {
1291
- return this._acceptButtonStyle;
1292
- }
1293
- get rejectLabel() {
1294
- return this._rejectLabel;
1295
- }
1296
- get rejectIcon() {
1297
- return this._rejectIcon;
1298
- }
1299
- get rejectButtonStyle() {
1300
- return this._rejectButtonStyle;
1301
- }
1302
1327
  get closeOnEscape() {
1303
1328
  return this._closeOnEscape;
1304
1329
  }
@@ -1308,6 +1333,12 @@ class ActionConfirmationDialogDescriptor {
1308
1333
  get runConfirmationConfigMapFn() {
1309
1334
  return this._runConfirmationConfigMapFn;
1310
1335
  }
1336
+ get acceptButton() {
1337
+ return this._acceptButton;
1338
+ }
1339
+ get rejectButton() {
1340
+ return this._rejectButton;
1341
+ }
1311
1342
  }
1312
1343
 
1313
1344
  class ActionDescriptor {
@@ -1315,12 +1346,12 @@ class ActionDescriptor {
1315
1346
  this._type = ActionTypeEnum.Direct;
1316
1347
  this._activationTrigger = ActionActivationTriggerEnum.OnClick;
1317
1348
  this._position = ActionPositionEnum.ToolbarRight;
1318
- this._level = ActionLevelEnum.Default;
1349
+ this._level = StyleLevelEnum.Default;
1319
1350
  this._routeUrl = null;
1320
1351
  this._hasRunNotificationSuccess = true;
1321
1352
  this._hasRunNotificationError = true;
1322
1353
  //button
1323
- this._buttonDescriptor = new ButtonDescriptor();
1354
+ this._button = new ActionButtonDescriptor();
1324
1355
  // multiple row selection
1325
1356
  this._hasItemsSelection = false;
1326
1357
  this._model = model;
@@ -1396,7 +1427,7 @@ class ActionDescriptor {
1396
1427
  return this._actionNameLong;
1397
1428
  }
1398
1429
  get className() {
1399
- return this.buttonDescriptor.styleClass.customClass;
1430
+ return this.button.styleClass.customClass;
1400
1431
  }
1401
1432
  get runConfirmationDialogDescriptor() {
1402
1433
  return this._runConfirmationDialogDescriptor;
@@ -1437,8 +1468,8 @@ class ActionDescriptor {
1437
1468
  get hasItemsSelection() {
1438
1469
  return this._hasItemsSelection;
1439
1470
  }
1440
- get buttonDescriptor() {
1441
- return this._buttonDescriptor;
1471
+ get button() {
1472
+ return this._button;
1442
1473
  }
1443
1474
  withDataProvider(dataProvider) {
1444
1475
  this._dataProvider = dataProvider;
@@ -1477,8 +1508,8 @@ class ActionDescriptor {
1477
1508
  */
1478
1509
  withRunConfirmation() {
1479
1510
  this._runConfirmationDialogDescriptor = new ActionConfirmationDialogDescriptor();
1480
- this._runConfirmationDialogDescriptor.acceptButtonStyle.withActionLevel(this._level);
1481
- this._runConfirmationDialogDescriptor.rejectButtonStyle.withActionLevel(this._level);
1511
+ this._runConfirmationDialogDescriptor.acceptButton.styleClass.withActionLevel(this._level);
1512
+ this._runConfirmationDialogDescriptor.rejectButton?.styleClass.withActionLevel(this._level);
1482
1513
  return this._runConfirmationDialogDescriptor;
1483
1514
  }
1484
1515
  /**
@@ -1520,8 +1551,12 @@ class ActionDescriptor {
1520
1551
  this._permissionsRouteType = permissionsRouteType;
1521
1552
  return this;
1522
1553
  }
1523
- withButtonDescriptor(buttonDescriptor) {
1524
- this._buttonDescriptor = buttonDescriptor;
1554
+ withButtonDescriptor(button) {
1555
+ this._button = button;
1556
+ return this;
1557
+ }
1558
+ withButton(label, icon = null, styleLevel = StyleLevelEnum.Default, styleText = false) {
1559
+ this._button = new ActionButtonDescriptor().withLabel(label).withIcon(icon).withStyleClass(new ButtonStyleBuilder(styleLevel).withTextButton(styleText));
1525
1560
  return this;
1526
1561
  }
1527
1562
  withItemsSelection(hasSelection = true) {
@@ -1542,7 +1577,7 @@ class ActionEditorDescriptor extends ActionDescriptor {
1542
1577
  this._editorActions = [];
1543
1578
  this._editorTitle = undefined;
1544
1579
  this._hasFetchNotificationSuccess = false;
1545
- this._dialogSize = ActionEditorDialogSizeEnum.Normal;
1580
+ this._dialogSize = StyleSizeEnum.Normal;
1546
1581
  this._type = ActionTypeEnum.Editor;
1547
1582
  this._editorDescriptor = editorDescriptor;
1548
1583
  this._editorActions.push(ActionEditorSubmitDescriptor.forPrimary(this), ActionEditorSubmitDescriptor.forSecondary(this));
@@ -1607,7 +1642,7 @@ class ActionEditorDescriptor extends ActionDescriptor {
1607
1642
  this._dataProvider = new EditorDataProvider(this._model.type, serviceType);
1608
1643
  return this;
1609
1644
  }
1610
- withDialogSize(size = ActionEditorDialogSizeEnum.Normal) {
1645
+ withDialogSize(size = StyleSizeEnum.Normal) {
1611
1646
  this._dialogSize = size;
1612
1647
  return this;
1613
1648
  }
@@ -1651,7 +1686,7 @@ class ActionEditorSubmitDescriptor extends ActionDescriptor {
1651
1686
  this._editorAction = editorAction;
1652
1687
  this._submitType = submitType;
1653
1688
  this._position = ActionPositionEnum.FooterRight;
1654
- this.buttonDescriptor.styleClass.withActionLevel(editorAction.level).withTextButton();
1689
+ this.button.styleClass.withActionLevel(editorAction.level).withTextButton();
1655
1690
  }
1656
1691
  /**
1657
1692
  * creates primary action with primary button style
@@ -1659,7 +1694,7 @@ class ActionEditorSubmitDescriptor extends ActionDescriptor {
1659
1694
  * @param submitType
1660
1695
  */
1661
1696
  static forPrimary(editorAction, submitType = ActionEditorSubmitTypeEnum.Submit) {
1662
- return new ActionEditorSubmitDescriptor(editorAction, submitType).withButtonDescriptor(new ButtonDescriptor().withStyleClass(new ButtonStyleBuilder()));
1697
+ return new ActionEditorSubmitDescriptor(editorAction, submitType).withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder()));
1663
1698
  }
1664
1699
  /**
1665
1700
  * creates secondary button with text button style
@@ -1667,7 +1702,7 @@ class ActionEditorSubmitDescriptor extends ActionDescriptor {
1667
1702
  * @param submitType
1668
1703
  */
1669
1704
  static forSecondary(editorAction, submitType = ActionEditorSubmitTypeEnum.Cancel) {
1670
- return new ActionEditorSubmitDescriptor(editorAction, submitType).withButtonDescriptor(new ButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withTextButton()));
1705
+ return new ActionEditorSubmitDescriptor(editorAction, submitType).withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withTextButton()));
1671
1706
  }
1672
1707
  get submitType() {
1673
1708
  return this._submitType;
@@ -1701,8 +1736,8 @@ class ActionEditorAddDescriptor extends ActionEditorDescriptor {
1701
1736
  this.withPosition(ActionPositionEnum.ToolbarLeft);
1702
1737
  this.withRouteTrigger('add');
1703
1738
  this.withSubmitFunction(ActionDataProviderUtil.runCreateOrFail);
1704
- this.buttonDescriptor.styleClass.withActionLevel(ActionLevelEnum.Success);
1705
- this.buttonDescriptor.withIcon('pi pi-plus');
1739
+ this.button.styleClass.withActionLevel(StyleLevelEnum.Success);
1740
+ this.button.withIcon('pi pi-plus');
1706
1741
  this.withPermissionsRouteType(Permissions.ActionTypes.ADD);
1707
1742
  }
1708
1743
  withServiceType(serviceType) {
@@ -1729,7 +1764,7 @@ class ActionEditorEditDescriptor extends ActionEditorDescriptor {
1729
1764
  this.withFetchFunction(ActionDataProviderUtil.runFetchOrFail);
1730
1765
  this.withSubmitFunction(ActionDataProviderUtil.runUpdateOrFail);
1731
1766
  this.withPermissionsRouteType(Permissions.ActionTypes.EDIT);
1732
- this.buttonDescriptor.withLabel(null).withIcon('pi pi-pencil');
1767
+ this.button.withLabel(null).withIcon('pi pi-pencil');
1733
1768
  }
1734
1769
  withServiceType(serviceType) {
1735
1770
  return this.withServiceSubmitFunction(serviceType);
@@ -1752,10 +1787,10 @@ class ActionDeleteDescriptor extends ActionDescriptor {
1752
1787
  super(model, ActionDeleteDescriptor.ACTION_NAME);
1753
1788
  this.withPosition(ActionPositionEnum.RowInline);
1754
1789
  this.withRunFunction(ActionDataProviderUtil.runDeleteOrFail);
1755
- this.buttonDescriptor.styleClass.withActionLevel(ActionLevelEnum.Danger);
1790
+ this.button.styleClass.withActionLevel(StyleLevelEnum.Danger);
1756
1791
  this.withRunConfirmation();
1757
1792
  this.withPermissionsRouteType(Permissions.ActionTypes.DELETE);
1758
- this.buttonDescriptor.withLabel(null).withIcon('pi pi-trash');
1793
+ this.button.withLabel(null).withIcon('pi pi-trash');
1759
1794
  }
1760
1795
  withServiceType(serviceType) {
1761
1796
  return this.withServiceDeleteFunction(serviceType);
@@ -2223,8 +2258,12 @@ class FilterLookupDescriptor extends FilterDescriptor {
2223
2258
  this._defaultValue = filterValue;
2224
2259
  this._defaultValueTo = filterValueTo;
2225
2260
  this._defaultFilterMatchMode = filterMatchMode;
2226
- if (Array.isArray(filterValue) && !this.multiselect) {
2227
- throw new Error('Array default filter can only be used with a multiselect filter.');
2261
+ if (filterMatchMode && this._matchModes && this._matchModes.indexOf(filterMatchMode) < 0) {
2262
+ this._defaultFilterMatchMode = undefined;
2263
+ console.warn(`Default filter match mode '${filterMatchMode}' could not be assigned for property ${this._property}.`);
2264
+ }
2265
+ if ((Array.isArray(filterValue) && !this.multiselect) || (this.multiselect && !Array.isArray(filterValue))) {
2266
+ throw new Error(`Default value not in correct format for property ${this._property}.`);
2228
2267
  }
2229
2268
  return this;
2230
2269
  }
@@ -4588,116 +4627,6 @@ class TableviewDynamicDescriptor extends TableviewDescriptor {
4588
4627
  }
4589
4628
  }
4590
4629
 
4591
- class ButtonDescriptor {
4592
- constructor() {
4593
- this._disabled = false;
4594
- this._iconPosition = 'left';
4595
- this._styleClass = new ButtonStyleBuilder();
4596
- this._loading = false;
4597
- this._loadingIcon = 'pi pi-spinner pi-spin';
4598
- }
4599
- withLabel(label) {
4600
- this._label = label;
4601
- return this;
4602
- }
4603
- withDisabled(disabled = true) {
4604
- this._disabled = disabled;
4605
- return this;
4606
- }
4607
- withIcon(icon) {
4608
- this._icon = icon;
4609
- return this;
4610
- }
4611
- withIconPosition(iconPosition) {
4612
- this._iconPosition = iconPosition;
4613
- return this;
4614
- }
4615
- withStyleClass(style) {
4616
- this._styleClass = style;
4617
- return this;
4618
- }
4619
- withOnClick(onClick) {
4620
- this._onClick = onClick;
4621
- return this;
4622
- }
4623
- withOnFocus(onFocus) {
4624
- this._onFocus = onFocus;
4625
- return this;
4626
- }
4627
- withOnBlur(onBlur) {
4628
- this._onBlur = onBlur;
4629
- return this;
4630
- }
4631
- withLoading(loading = true) {
4632
- this._loading = loading;
4633
- return this;
4634
- }
4635
- withLoadingIcon(loadingIcon) {
4636
- this._loadingIcon = loadingIcon;
4637
- return this;
4638
- }
4639
- withBadge(badge) {
4640
- this._badge = badge;
4641
- return this;
4642
- }
4643
- withTooltip(tooltip) {
4644
- this._tooltip = tooltip;
4645
- return this;
4646
- }
4647
- get label() {
4648
- return this._label;
4649
- }
4650
- get disabled() {
4651
- return this._disabled;
4652
- }
4653
- get icon() {
4654
- return this._icon;
4655
- }
4656
- get iconPosition() {
4657
- return this._iconPosition;
4658
- }
4659
- get styleClass() {
4660
- return this._styleClass;
4661
- }
4662
- get onClick() {
4663
- return this._onClick;
4664
- }
4665
- get onFocus() {
4666
- return this._onFocus;
4667
- }
4668
- get onBlur() {
4669
- return this._onBlur;
4670
- }
4671
- get loading() {
4672
- return this._loading;
4673
- }
4674
- get loadingIcon() {
4675
- return this._loadingIcon;
4676
- }
4677
- get badge() {
4678
- return this._badge;
4679
- }
4680
- get tooltip() {
4681
- return this._tooltip;
4682
- }
4683
- copy() {
4684
- const descriptor = new ButtonDescriptor();
4685
- descriptor._label = this._label;
4686
- descriptor._disabled = this._disabled;
4687
- descriptor._icon = this._icon;
4688
- descriptor._iconPosition = this._iconPosition;
4689
- descriptor._styleClass = this._styleClass;
4690
- descriptor._onClick = this._onClick;
4691
- descriptor._onFocus = this._onFocus;
4692
- descriptor._onBlur = this._onBlur;
4693
- descriptor._loading = this._loading;
4694
- descriptor._loadingIcon = this._loadingIcon;
4695
- descriptor._badge = this._badge;
4696
- descriptor._tooltip = this._tooltip;
4697
- return descriptor;
4698
- }
4699
- }
4700
-
4701
4630
  class EditorFormlyUtil {
4702
4631
  static createFormlyConfigFromDescriptor(descriptor) {
4703
4632
  const fields = [];
@@ -6923,11 +6852,11 @@ class MngActionExecutorService {
6923
6852
  key: srcConfirmComponent.getConfirmationServiceInstanceKey(action),
6924
6853
  icon: confirmationDescriptor.icon,
6925
6854
  acceptVisible: true,
6926
- acceptIcon: confirmationDescriptor.acceptIcon ?? undefined,
6927
- acceptButtonStyleClass: confirmationDescriptor.acceptButtonStyle.getButtonClass(),
6855
+ acceptIcon: confirmationDescriptor.acceptButton.icon ?? undefined,
6856
+ acceptButtonStyleClass: confirmationDescriptor.acceptButton.styleClass.build(),
6928
6857
  rejectVisible: true,
6929
- rejectIcon: confirmationDescriptor.rejectIcon ?? undefined,
6930
- rejectButtonStyleClass: confirmationDescriptor.rejectButtonStyle.getButtonClass(),
6858
+ rejectIcon: confirmationDescriptor.rejectButton?.icon ?? undefined,
6859
+ rejectButtonStyleClass: confirmationDescriptor.rejectButton?.styleClass.build(),
6931
6860
  closeOnEscape: confirmationDescriptor.closeOnEscape
6932
6861
  };
6933
6862
  if (confirmationDescriptor.title !== null) {
@@ -6938,19 +6867,21 @@ class MngActionExecutorService {
6938
6867
  I18nUtils.Action.get(this.translate, action, 'confirm.message', confirmationDescriptor.message, StringUtil.escapeHtmlAny(item), 'general.confirmation') ??
6939
6868
  undefined;
6940
6869
  }
6941
- if (confirmationDescriptor.acceptLabel !== null) {
6942
- confirmParams.acceptLabel = I18nUtils.Action.get(this.translate, action, 'confirm.accept', confirmationDescriptor.acceptLabel, item, 'general.yes') ?? undefined;
6870
+ if (confirmationDescriptor.acceptButton.label !== null) {
6871
+ confirmParams.acceptLabel =
6872
+ I18nUtils.Action.get(this.translate, action, 'confirm.accept', confirmationDescriptor.acceptButton.label, item, 'general.yes') ?? undefined;
6943
6873
  }
6944
- if (confirmationDescriptor.acceptIcon !== null) {
6945
- confirmParams.acceptIcon = confirmationDescriptor.acceptIcon;
6874
+ if (confirmationDescriptor.acceptButton.icon !== null) {
6875
+ confirmParams.acceptIcon = confirmationDescriptor.acceptButton.icon;
6946
6876
  }
6947
- if (confirmationDescriptor.rejectIcon !== null) {
6948
- confirmParams.rejectIcon = confirmationDescriptor.rejectIcon;
6877
+ if (confirmationDescriptor.rejectButton?.icon !== null) {
6878
+ confirmParams.rejectIcon = confirmationDescriptor.rejectButton?.icon;
6949
6879
  }
6950
- if (confirmationDescriptor.rejectLabel !== null) {
6951
- confirmParams.rejectLabel = I18nUtils.Action.get(this.translate, action, 'confirm.reject', confirmationDescriptor.rejectLabel, item, 'general.no') ?? undefined;
6880
+ if (confirmationDescriptor.rejectButton?.label !== null) {
6881
+ confirmParams.rejectLabel =
6882
+ I18nUtils.Action.get(this.translate, action, 'confirm.reject', confirmationDescriptor.rejectButton?.label, item, 'general.no') ?? undefined;
6952
6883
  }
6953
- if (confirmationDescriptor.rejectLabel === null && confirmationDescriptor.rejectIcon === null) {
6884
+ if (confirmationDescriptor.rejectButton == null || (confirmationDescriptor.rejectButton.label === null && confirmationDescriptor.rejectButton.icon === null)) {
6954
6885
  confirmParams.rejectVisible = false;
6955
6886
  }
6956
6887
  confirmParams.accept = () => {
@@ -6998,19 +6929,19 @@ class MngActionExecutorService {
6998
6929
  dialogClassName = action.dialogClassName ?? 'mng-action-editor-dialog';
6999
6930
  let dialogSizeClassName = '';
7000
6931
  switch (action.dialogSize) {
7001
- case ActionEditorDialogSizeEnum.ExtraSmall:
6932
+ case StyleSizeEnum.ExtraSmall:
7002
6933
  dialogSizeClassName = 'mng-action-editor-dialog-xs';
7003
6934
  break;
7004
- case ActionEditorDialogSizeEnum.Small:
6935
+ case StyleSizeEnum.Small:
7005
6936
  dialogSizeClassName = 'mng-action-editor-dialog-sm';
7006
6937
  break;
7007
- case ActionEditorDialogSizeEnum.Large:
6938
+ case StyleSizeEnum.Large:
7008
6939
  dialogSizeClassName = 'mng-action-editor-dialog-lg';
7009
6940
  break;
7010
- case ActionEditorDialogSizeEnum.ExtraLarge:
6941
+ case StyleSizeEnum.ExtraLarge:
7011
6942
  dialogSizeClassName = 'mng-action-editor-dialog-xl';
7012
6943
  break;
7013
- case ActionEditorDialogSizeEnum.Normal:
6944
+ case StyleSizeEnum.Normal:
7014
6945
  default:
7015
6946
  break;
7016
6947
  }
@@ -7645,7 +7576,7 @@ class MngActionComponent {
7645
7576
  }
7646
7577
  ngOnInit() {
7647
7578
  this.viewContainer = this.viewContainerInit ?? this.viewContainerService ?? undefined;
7648
- this.hasNoTitle = this.action.buttonDescriptor.label === null;
7579
+ this.hasNoTitle = this.action.button.label === null;
7649
7580
  this.isEnabledSubject.next(true);
7650
7581
  this.isVisibleSubject.next(true);
7651
7582
  this.isPermittedSubject.next(true);
@@ -7668,7 +7599,7 @@ class MngActionComponent {
7668
7599
  this.isHostHidden = !isVisible || !isPermitted;
7669
7600
  });
7670
7601
  this.subscriptions.push(hostVisibilitySubscription);
7671
- this.buttonClass = this.action.buttonDescriptor.styleClass.getButtonClass(this.hasNoTitle);
7602
+ this.buttonClass = this.action.button.styleClass.build(this.action.button.label == null || this.action.button.label.length == 0);
7672
7603
  }
7673
7604
  ngOnChanges(changes) {
7674
7605
  if (!(changes['item']?.firstChange ?? true) ||
@@ -7755,21 +7686,21 @@ class MngActionComponent {
7755
7686
  }
7756
7687
  if (!this.hasNoTitle) {
7757
7688
  this.labelSubscription?.unsubscribe();
7758
- this.labelSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'title', this.action.buttonDescriptor.label ?? undefined, this.item).subscribe({
7689
+ this.labelSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'title', this.action.button.label ?? undefined, this.item).subscribe({
7759
7690
  next: i18n => this.labelSubject.next(i18n)
7760
7691
  });
7761
7692
  }
7762
7693
  this.tooltipSubscription?.unsubscribe();
7763
- this.tooltipSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'tooltip', this.action.buttonDescriptor.tooltip, this.item).subscribe({
7694
+ this.tooltipSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'tooltip', this.action.button.tooltip, this.item).subscribe({
7764
7695
  next: i18n => this.tooltipSubject.next(i18n)
7765
7696
  });
7766
7697
  }
7767
7698
  }
7768
7699
  MngActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1$2.TranslateService }, { token: MngAuthorizationService }, { token: MngActionExecutorService }, { token: i2.ConfirmationService }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7769
- MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", queryParam: "queryParam", dataProvider: "dataProvider", inputDisabled: ["disabled", "inputDisabled"], inputLoading: ["loading", "inputLoading"], viewContainerInit: ["viewContainer", "viewContainerInit"], selectedItems: "selectedItems" }, outputs: { finishEventEmitter: "finish" }, host: { properties: { "class": "this.hostClass", "class.m-0": "this.isHostHidden" } }, providers: [ConfirmationService], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.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"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: MngParametrizePipe, name: "parametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7700
+ MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", queryParam: "queryParam", dataProvider: "dataProvider", inputDisabled: ["disabled", "inputDisabled"], inputLoading: ["loading", "inputLoading"], viewContainerInit: ["viewContainer", "viewContainerInit"], selectedItems: "selectedItems" }, outputs: { finishEventEmitter: "finish" }, host: { properties: { "class": "this.hostClass", "class.m-0": "this.isHostHidden" } }, providers: [ConfirmationService], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.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"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: MngParametrizePipe, name: "parametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7770
7701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngActionComponent, decorators: [{
7771
7702
  type: Component,
7772
- args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConfirmationService], template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.buttonDescriptor.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"] }]
7703
+ args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConfirmationService], template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"] }]
7773
7704
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1$2.TranslateService }, { type: MngAuthorizationService }, { type: MngActionExecutorService }, { type: i2.ConfirmationService }, { type: MngViewContainerComponentService, decorators: [{
7774
7705
  type: Optional
7775
7706
  }] }]; }, propDecorators: { hostClass: [{
@@ -8727,9 +8658,12 @@ class MngDateRangeComponent {
8727
8658
  this.fromCtrl.setValue(startDate);
8728
8659
  this.toCtrl.setValue(endDate);
8729
8660
  }
8730
- else {
8661
+ else if (startDate || endDate) {
8731
8662
  this.dateRangeCtrl.setValue([startDate, endDate]);
8732
8663
  }
8664
+ else {
8665
+ this.dateRangeCtrl.setValue(null);
8666
+ }
8733
8667
  }
8734
8668
  onValueChange() {
8735
8669
  if (this.showTime) {
@@ -8816,11 +8750,11 @@ class MngActionEditorComponent {
8816
8750
  this.setTitle();
8817
8751
  for (const action of this.action.editorActions) {
8818
8752
  if (action instanceof ActionEditorSubmitDescriptor) {
8819
- if (typeof action.buttonDescriptor.icon === 'undefined') {
8820
- action.buttonDescriptor.withIcon(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'pi pi-check' : 'pi pi-times');
8753
+ if (typeof action.button.icon === 'undefined') {
8754
+ action.button.withIcon(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'pi pi-check' : 'pi pi-times');
8821
8755
  }
8822
- if (typeof action.buttonDescriptor.label === 'undefined') {
8823
- action.buttonDescriptor.withLabel(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'general.save' : this.isDialog ? 'general.close' : 'general.cancel');
8756
+ if (typeof action.button.label === 'undefined') {
8757
+ action.button.withLabel(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'general.save' : this.isDialog ? 'general.close' : 'general.cancel');
8824
8758
  }
8825
8759
  // assign run operations
8826
8760
  action.withRunNotificationSuccess(undefined, undefined, false);
@@ -8987,47 +8921,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
8987
8921
  args: [MngFormEditorComponent]
8988
8922
  }] } });
8989
8923
 
8990
- class MngButtonComponent {
8991
- constructor() {
8992
- this.clickEmitter = new EventEmitter();
8993
- this.focusEmitter = new EventEmitter();
8994
- this.blurEmitter = new EventEmitter();
8995
- this.buttonClass = 'p-button';
8996
- }
8997
- ngOnInit() {
8998
- this.buttonClass = `${this.descriptor.styleClass.getButtonClass(this.descriptor.label == null)}`;
8999
- }
9000
- onClick(event) {
9001
- this.clickEmitter.next(event);
9002
- this.descriptor.onClick?.(event);
9003
- }
9004
- onFocus(event) {
9005
- this.focusEmitter.next(event);
9006
- this.descriptor.onFocus?.(event);
9007
- }
9008
- onBlur(event) {
9009
- this.blurEmitter.next(event);
9010
- this.descriptor.onBlur?.(event);
9011
- }
9012
- }
9013
- MngButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9014
- MngButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngButtonComponent, selector: "mng-button", inputs: { descriptor: "descriptor" }, outputs: { clickEmitter: "buttonClick", focusEmitter: "buttonFocus", blurEmitter: "buttonBlur" }, ngImport: i0, template: "<p-button\n #button\n type=\"button\"\n [label]=\"$any(descriptor.label) | translate\"\n [icon]=\"$any(descriptor.icon)\"\n [iconPos]=\"$any(descriptor.iconPosition)\"\n [loading]=\"$any(descriptor.loading)\"\n [loadingIcon]=\"$any(descriptor.loadingIcon)\"\n [disabled]=\"$any(descriptor.disabled)\"\n [styleClass]=\"buttonClass\"\n [pTooltip]=\"$any(descriptor.tooltip) | translate\"\n [badge]=\"$any(descriptor.badge)\"\n (onClick)=\"onClick($event)\"\n (onBlur)=\"onBlur($event)\"\n (onFocus)=\"onFocus($event)\"></p-button>\n", dependencies: [{ kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngButtonComponent, decorators: [{
9016
- type: Component,
9017
- args: [{ selector: 'mng-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-button\n #button\n type=\"button\"\n [label]=\"$any(descriptor.label) | translate\"\n [icon]=\"$any(descriptor.icon)\"\n [iconPos]=\"$any(descriptor.iconPosition)\"\n [loading]=\"$any(descriptor.loading)\"\n [loadingIcon]=\"$any(descriptor.loadingIcon)\"\n [disabled]=\"$any(descriptor.disabled)\"\n [styleClass]=\"buttonClass\"\n [pTooltip]=\"$any(descriptor.tooltip) | translate\"\n [badge]=\"$any(descriptor.badge)\"\n (onClick)=\"onClick($event)\"\n (onBlur)=\"onBlur($event)\"\n (onFocus)=\"onFocus($event)\"></p-button>\n" }]
9018
- }], propDecorators: { descriptor: [{
9019
- type: Input
9020
- }], clickEmitter: [{
9021
- type: Output,
9022
- args: ['buttonClick']
9023
- }], focusEmitter: [{
9024
- type: Output,
9025
- args: ['buttonFocus']
9026
- }], blurEmitter: [{
9027
- type: Output,
9028
- args: ['buttonBlur']
9029
- }] } });
9030
-
9031
8924
  class MngFormlyFieldAutocompleteComponent extends FieldType {
9032
8925
  constructor() {
9033
8926
  super(...arguments);
@@ -9564,6 +9457,7 @@ class MngTableComponent {
9564
9457
  else {
9565
9458
  this.initializeDataLoadingTriggers();
9566
9459
  }
9460
+ this.queryResultSubscription = this.queryResult$.subscribe(e => (this.queryResult = e));
9567
9461
  }
9568
9462
  ngAfterContentInit() {
9569
9463
  this.templates.forEach(template => {
@@ -9577,6 +9471,9 @@ class MngTableComponent {
9577
9471
  this.showInlineActionsColumn = true;
9578
9472
  }
9579
9473
  break;
9474
+ case 'footer':
9475
+ this.footerTemplate = template.template;
9476
+ break;
9580
9477
  }
9581
9478
  });
9582
9479
  }
@@ -9587,6 +9484,7 @@ class MngTableComponent {
9587
9484
  }
9588
9485
  ngOnDestroy() {
9589
9486
  this.dataProviderSubscription?.unsubscribe();
9487
+ this.queryResultSubscription?.unsubscribe();
9590
9488
  this.subscriptions.forEach(s => s.unsubscribe());
9591
9489
  }
9592
9490
  reload(emitEvent = false, resetParams = false) {
@@ -9757,8 +9655,17 @@ class MngTableComponent {
9757
9655
  break;
9758
9656
  }
9759
9657
  }
9658
+ let value = null;
9659
+ if (applyDefaultFilters) {
9660
+ if (f.defaultValueTo && f.defaultValue) {
9661
+ value = [f.defaultValue, f.defaultValueTo];
9662
+ }
9663
+ else if (f.defaultValue) {
9664
+ value = f.defaultValue;
9665
+ }
9666
+ }
9760
9667
  primeFilterMeta[f.property] = {
9761
- value: applyDefaultFilters && f.defaultValue ? f.defaultValue : null,
9668
+ value: value,
9762
9669
  matchMode: matchMode
9763
9670
  };
9764
9671
  });
@@ -9840,10 +9747,10 @@ class MngTableComponent {
9840
9747
  }
9841
9748
  }
9842
9749
  MngTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i1$2.TranslateService }, { token: MngActionExecutorService }, { token: MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
9843
- MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableComponent, selector: "mng-table", inputs: { initialDescriptor: ["descriptor", "initialDescriptor"], items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", actions: "actions", isColumnClickable: "isColumnClickable", viewContainerInit: ["viewContainer", "viewContainerInit"], captionComponent: "captionComponent", columnActionComponent: "columnActionComponent", columnActionMinWidth: "columnActionMinWidth" }, 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 }], usesOnChanges: true, ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + 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$ | async)\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor?.dataKeyProperty ?? null)\"\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 [selectionMode]=\"$any(selectionEnabled ? selectionMode : null)\"\n [rowHover]=\"descriptor?.hasHover ?? true\"\n [styleClass]=\"className\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\"\n [resizableColumns]=\"true\"\n [autoLayout]=\"true\">\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\" class=\"mng-table-header\" [class]=\"descriptor?.headerClassName\">\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=\"min-width: 36px\"></th>\n <ng-container *ngFor=\"let col of descriptor?.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\" [style.width.%]=\"col.width\" [style.min-width.px]=\"col.minWidth\" [class]=\"col.headerClassName\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.title ?? (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.title ?? (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=\"showInlineActionsColumn\"></th>\n </tr>\n <tr *ngIf=\"descriptor?.filterDisplay === filterDisplayRow && hasColumnFilters\" class=\"mng-column-filter-row\">\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=\"min-width: 36px\"></th>\n <th\n *ngFor=\"let col of descriptor?.columns\"\n [class]=\"(col.filterDescriptor ? 'mng-column-filter-' + col.filterDescriptor.filterType + ' ' : ' ') + col.filterDescriptor?.columnClassName\"\n [style.width.%]=\"col.filterDescriptor?.columnWidth ?? col.width\"\n [style.min-width.px]=\"col.filterDescriptor?.columnMinWidth ?? col.minWidth\">\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=\"showInlineActionsColumn\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"rowHeight\" [class]=\"descriptor?.rowClassName | mngClassMapPipe: descriptor?.rowClassNameMapFn:item\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\" style=\"width: 3rem\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 3rem\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td\n *ngFor=\"let col of descriptor?.columns\"\n (click)=\"onCellClick($event, col, item, idx)\"\n [class]=\"col.className\"\n [class.clickable]=\"isColumnClickable\"\n [style.width.%]=\"col.width\"\n [style.min-width.px]=\"col.minWidth\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"showInlineActionsColumn\" class=\"column-action text-right\" [style.min-width.px]=\"columnActionMinWidth\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponentOrDefault\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponentOrDefault>\n <span\n *ngIf=\"columnActionComponent; else defaultColumnActions\"\n [mngComponent]=\"columnActionComponent!\"\n (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n <ng-template #defaultColumnActions>\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 [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"(descriptor?.columns?.length ?? 0) + (showInlineActionsColumn ? 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 ?? 0) + (showInlineActionsColumn ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6$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", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "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"] }, { kind: "directive", type: i6$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i6$4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i6$4.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i6$4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i6$4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i7$3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { kind: "component", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { kind: "component", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "pipe", type: MngI18nPropertyPipe, name: "i18nProperty" }, { kind: "pipe", type: MngClassMapPipe, name: "mngClassMapPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9750
+ MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableComponent, selector: "mng-table", inputs: { initialDescriptor: ["descriptor", "initialDescriptor"], items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", actions: "actions", isColumnClickable: "isColumnClickable", viewContainerInit: ["viewContainer", "viewContainerInit"], captionComponent: "captionComponent", columnActionComponent: "columnActionComponent", columnActionMinWidth: "columnActionMinWidth" }, 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 }], usesOnChanges: true, ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + 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$ | async)\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor?.dataKeyProperty ?? null)\"\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 [selectionMode]=\"$any(selectionEnabled ? selectionMode : null)\"\n [rowHover]=\"descriptor?.hasHover ?? true\"\n [styleClass]=\"className\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\"\n [resizableColumns]=\"true\"\n [autoLayout]=\"true\">\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\" class=\"mng-table-header\" [class]=\"descriptor?.headerClassName\">\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=\"min-width: 36px\"></th>\n <ng-container *ngFor=\"let col of descriptor?.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\" [style.width.%]=\"col.width\" [style.min-width.px]=\"col.minWidth\" [class]=\"col.headerClassName\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.title ?? (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.title ?? (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=\"showInlineActionsColumn\"></th>\n </tr>\n <tr *ngIf=\"descriptor?.filterDisplay === filterDisplayRow && hasColumnFilters\" class=\"mng-column-filter-row\">\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=\"min-width: 36px\"></th>\n <th\n *ngFor=\"let col of descriptor?.columns\"\n [class]=\"(col.filterDescriptor ? 'mng-column-filter-' + col.filterDescriptor.filterType + ' ' : ' ') + col.filterDescriptor?.columnClassName\"\n [style.width.%]=\"col.filterDescriptor?.columnWidth ?? col.width\"\n [style.min-width.px]=\"col.filterDescriptor?.columnMinWidth ?? col.minWidth\">\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=\"showInlineActionsColumn\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"rowHeight\" [class]=\"descriptor?.rowClassName | mngClassMapPipe: descriptor?.rowClassNameMapFn:item\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\" style=\"width: 3rem\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 3rem\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td\n *ngFor=\"let col of descriptor?.columns\"\n (click)=\"onCellClick($event, col, item, idx)\"\n [class]=\"col.className\"\n [class.clickable]=\"isColumnClickable\"\n [style.width.%]=\"col.width\"\n [style.min-width.px]=\"col.minWidth\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"showInlineActionsColumn\" class=\"column-action text-right\" [style.min-width.px]=\"columnActionMinWidth\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponentOrDefault\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponentOrDefault>\n <span\n *ngIf=\"columnActionComponent; else defaultColumnActions\"\n [mngComponent]=\"columnActionComponent!\"\n (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n <ng-template #defaultColumnActions>\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 [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"(descriptor?.columns?.length ?? 0) + (showInlineActionsColumn ? 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 ?? 0) + (showInlineActionsColumn ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template *ngIf=\"footerTemplate\" pTemplate=\"summary\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </p-table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6$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", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "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"] }, { kind: "directive", type: i6$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i6$4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i6$4.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i6$4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i6$4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i7$3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { kind: "component", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { kind: "component", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "pipe", type: MngI18nPropertyPipe, name: "i18nProperty" }, { kind: "pipe", type: MngClassMapPipe, name: "mngClassMapPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9844
9751
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableComponent, decorators: [{
9845
9752
  type: Component,
9846
- args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + 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$ | async)\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor?.dataKeyProperty ?? null)\"\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 [selectionMode]=\"$any(selectionEnabled ? selectionMode : null)\"\n [rowHover]=\"descriptor?.hasHover ?? true\"\n [styleClass]=\"className\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\"\n [resizableColumns]=\"true\"\n [autoLayout]=\"true\">\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\" class=\"mng-table-header\" [class]=\"descriptor?.headerClassName\">\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=\"min-width: 36px\"></th>\n <ng-container *ngFor=\"let col of descriptor?.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\" [style.width.%]=\"col.width\" [style.min-width.px]=\"col.minWidth\" [class]=\"col.headerClassName\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.title ?? (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.title ?? (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=\"showInlineActionsColumn\"></th>\n </tr>\n <tr *ngIf=\"descriptor?.filterDisplay === filterDisplayRow && hasColumnFilters\" class=\"mng-column-filter-row\">\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=\"min-width: 36px\"></th>\n <th\n *ngFor=\"let col of descriptor?.columns\"\n [class]=\"(col.filterDescriptor ? 'mng-column-filter-' + col.filterDescriptor.filterType + ' ' : ' ') + col.filterDescriptor?.columnClassName\"\n [style.width.%]=\"col.filterDescriptor?.columnWidth ?? col.width\"\n [style.min-width.px]=\"col.filterDescriptor?.columnMinWidth ?? col.minWidth\">\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=\"showInlineActionsColumn\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"rowHeight\" [class]=\"descriptor?.rowClassName | mngClassMapPipe: descriptor?.rowClassNameMapFn:item\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\" style=\"width: 3rem\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 3rem\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td\n *ngFor=\"let col of descriptor?.columns\"\n (click)=\"onCellClick($event, col, item, idx)\"\n [class]=\"col.className\"\n [class.clickable]=\"isColumnClickable\"\n [style.width.%]=\"col.width\"\n [style.min-width.px]=\"col.minWidth\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"showInlineActionsColumn\" class=\"column-action text-right\" [style.min-width.px]=\"columnActionMinWidth\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponentOrDefault\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponentOrDefault>\n <span\n *ngIf=\"columnActionComponent; else defaultColumnActions\"\n [mngComponent]=\"columnActionComponent!\"\n (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n <ng-template #defaultColumnActions>\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 [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"(descriptor?.columns?.length ?? 0) + (showInlineActionsColumn ? 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 ?? 0) + (showInlineActionsColumn ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n" }]
9753
+ args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + 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$ | async)\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor?.dataKeyProperty ?? null)\"\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 [selectionMode]=\"$any(selectionEnabled ? selectionMode : null)\"\n [rowHover]=\"descriptor?.hasHover ?? true\"\n [styleClass]=\"className\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\"\n [resizableColumns]=\"true\"\n [autoLayout]=\"true\">\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\" class=\"mng-table-header\" [class]=\"descriptor?.headerClassName\">\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=\"min-width: 36px\"></th>\n <ng-container *ngFor=\"let col of descriptor?.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\" [style.width.%]=\"col.width\" [style.min-width.px]=\"col.minWidth\" [class]=\"col.headerClassName\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.title ?? (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.title ?? (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=\"showInlineActionsColumn\"></th>\n </tr>\n <tr *ngIf=\"descriptor?.filterDisplay === filterDisplayRow && hasColumnFilters\" class=\"mng-column-filter-row\">\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=\"min-width: 36px\"></th>\n <th\n *ngFor=\"let col of descriptor?.columns\"\n [class]=\"(col.filterDescriptor ? 'mng-column-filter-' + col.filterDescriptor.filterType + ' ' : ' ') + col.filterDescriptor?.columnClassName\"\n [style.width.%]=\"col.filterDescriptor?.columnWidth ?? col.width\"\n [style.min-width.px]=\"col.filterDescriptor?.columnMinWidth ?? col.minWidth\">\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=\"showInlineActionsColumn\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"rowHeight\" [class]=\"descriptor?.rowClassName | mngClassMapPipe: descriptor?.rowClassNameMapFn:item\">\n <td *ngIf=\"selectionEnabled && selectionMode === 'multiple'\" style=\"width: 3rem\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"selectionEnabled && selectionMode === 'single'\" style=\"width: 3rem\">\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n </td>\n <td\n *ngFor=\"let col of descriptor?.columns\"\n (click)=\"onCellClick($event, col, item, idx)\"\n [class]=\"col.className\"\n [class.clickable]=\"isColumnClickable\"\n [style.width.%]=\"col.width\"\n [style.min-width.px]=\"col.minWidth\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"showInlineActionsColumn\" class=\"column-action text-right\" [style.min-width.px]=\"columnActionMinWidth\">\n <ng-container *ngIf=\"columnActionTemplate; else showColumnActionComponentOrDefault\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </ng-container>\n <ng-template #showColumnActionComponentOrDefault>\n <span\n *ngIf=\"columnActionComponent; else defaultColumnActions\"\n [mngComponent]=\"columnActionComponent!\"\n (instanceCreated)=\"onColumnActionCmpInst($event)\"></span>\n </ng-template>\n <ng-template #defaultColumnActions>\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 [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"(descriptor?.columns?.length ?? 0) + (showInlineActionsColumn ? 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 ?? 0) + (showInlineActionsColumn ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template *ngIf=\"footerTemplate\" pTemplate=\"summary\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </p-table>\n</div>\n" }]
9847
9754
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i1$2.TranslateService }, { type: MngActionExecutorService }, { type: MngViewContainerComponentService, decorators: [{
9848
9755
  type: Optional
9849
9756
  }] }]; }, propDecorators: { initialDescriptor: [{
@@ -9948,6 +9855,15 @@ class MngTableviewComponent {
9948
9855
  this.toolbarRightActions = this.toolbarRightActions.reverse();
9949
9856
  this.hasItemSelectionAction = [...this.toolbarLeftActions, ...this.toolbarRightActions].some(e => e.hasItemsSelection);
9950
9857
  }
9858
+ ngAfterContentInit() {
9859
+ this.templates.forEach(template => {
9860
+ switch (template.getType()) {
9861
+ case 'footer':
9862
+ this.footerTemplate = template.template;
9863
+ break;
9864
+ }
9865
+ });
9866
+ }
9951
9867
  ngOnDestroy() {
9952
9868
  this.subscriptions.forEach(s => s.unsubscribe());
9953
9869
  }
@@ -9968,10 +9884,10 @@ class MngTableviewComponent {
9968
9884
  }
9969
9885
  }
9970
9886
  MngTableviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.MessageService }, { token: i1$2.TranslateService }, { token: i3.DialogService }, { token: i2.ConfirmationService }, { token: MngActionExecutorService }, { token: MngViewContainerComponentService }], target: i0.ɵɵFactoryTarget.Component });
9971
- MngTableviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", 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\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"actions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($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 </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7$4.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i6$2.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { kind: "directive", type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] });
9887
+ MngTableviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableviewComponent, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [MessageService, ConfirmationService, MngViewContainerComponentService], queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], 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\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"actions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($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\n <ng-template let-queryResult=\"queryResult\" mngTemplate=\"footer\">\n <ng-container *ngIf=\"footerTemplate\" [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7$4.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i6$2.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { kind: "directive", type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] });
9972
9888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewComponent, decorators: [{
9973
9889
  type: Component,
9974
- 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\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"actions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($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 </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n" }]
9890
+ 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\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action *ngFor=\"let action of toolbarRightActions\" [action]=\"action\" [queryParam]=\"tableQueryParam\" [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"actions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($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\n <ng-template let-queryResult=\"queryResult\" mngTemplate=\"footer\">\n <ng-container *ngIf=\"footerTemplate\" [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n" }]
9975
9891
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.MessageService }, { type: i1$2.TranslateService }, { type: i3.DialogService }, { type: i2.ConfirmationService }, { type: MngActionExecutorService }, { type: MngViewContainerComponentService }]; }, propDecorators: { descriptor: [{
9976
9892
  type: Input
9977
9893
  }], dataProvider: [{
@@ -9981,6 +9897,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
9981
9897
  }], tableComponent: [{
9982
9898
  type: ViewChild,
9983
9899
  args: [MngTableComponent]
9900
+ }], templates: [{
9901
+ type: ContentChildren,
9902
+ args: [MngTemplateDirective]
9984
9903
  }] } });
9985
9904
 
9986
9905
  class AMngTableviewRouteComponent {
@@ -10031,7 +9950,7 @@ class AMngTableviewRouteComponent {
10031
9950
  }));
10032
9951
  })
10033
9952
  .withPosition(ActionPositionEnum.ToolbarRight);
10034
- action.buttonDescriptor.withIcon('pi pi-upload');
9953
+ action.button.withIcon('pi pi-upload');
10035
9954
  return action;
10036
9955
  }
10037
9956
  createActionDescriptorForRefresh(descriptor = this.descriptor.model) {
@@ -10043,7 +9962,7 @@ class AMngTableviewRouteComponent {
10043
9962
  ctx.parameters.viewContainer.triggerTableReload({});
10044
9963
  return of(null);
10045
9964
  });
10046
- action.buttonDescriptor.withIcon('pi pi-refresh').styleClass.withActionLevel(ActionLevelEnum.Secondary);
9965
+ action.button.withIcon('pi pi-refresh').styleClass.withActionLevel(StyleLevelEnum.Secondary);
10047
9966
  return action;
10048
9967
  }
10049
9968
  }
@@ -10083,10 +10002,10 @@ class MngTableviewRouteComponent extends AMngTableviewRouteComponent {
10083
10002
  }
10084
10003
  }
10085
10004
  MngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10086
- MngTableviewRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: { descriptorInit: ["descriptor", "descriptorInit"], dataProviderInit: ["dataProvider", "dataProviderInit"], actionsInit: ["actions", "actionsInit"] }, viewQueries: [{ propertyName: "tableviewComponent", first: true, predicate: MngTableviewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] });
10005
+ MngTableviewRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: { descriptorInit: ["descriptor", "descriptorInit"], dataProviderInit: ["dataProvider", "dataProviderInit"], actionsInit: ["actions", "actionsInit"] }, viewQueries: [{ propertyName: "tableviewComponent", first: true, predicate: MngTableviewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] });
10087
10006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, decorators: [{
10088
10007
  type: Component,
10089
- args: [{ selector: 'mng-tableview-route', template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview>\n </div>\n</div>\n" }]
10008
+ args: [{ selector: 'mng-tableview-route', template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n" }]
10090
10009
  }], propDecorators: { descriptorInit: [{
10091
10010
  type: Input,
10092
10011
  args: ['descriptor']
@@ -10283,17 +10202,17 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
10283
10202
  const viewAction = new ActionEditorDescriptor(this.descriptor.tableviewDescriptor.viewEditor, 'details', this.descriptor.editor.model.type, this.descriptor.property)
10284
10203
  .withPosition(ActionPositionEnum.RowClick)
10285
10204
  .withDialogClassName('mng-field-dialog mng-action-editor-dialog')
10286
- .withDialogSize(ActionEditorDialogSizeEnum.Small);
10205
+ .withDialogSize(StyleSizeEnum.Small);
10287
10206
  viewAction.withEditorActions([new ActionEditorSubmitDescriptor(viewAction, ActionEditorSubmitTypeEnum.Cancel)]);
10288
- viewAction.buttonDescriptor.withLabel(null);
10207
+ viewAction.button.withLabel(null);
10289
10208
  this.actions.push(viewAction);
10290
10209
  }
10291
10210
  if (hasAddAction) {
10292
10211
  const addAction = new ActionEditorDescriptor(this.descriptor.tableviewDescriptor.addEditor, 'add', this.descriptor.editor.model.type, this.descriptor.property)
10293
10212
  .withPosition(ActionPositionEnum.ToolbarRight)
10294
10213
  .withDialogClassName('mng-field-dialog mng-action-editor-dialog')
10295
- .withDialogSize(ActionEditorDialogSizeEnum.Small)
10296
- .withButtonDescriptor(new ButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(ActionSizeEnum.ExtraSmall)))
10214
+ .withDialogSize(StyleSizeEnum.Small)
10215
+ .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(StyleSizeEnum.ExtraSmall)))
10297
10216
  .withSubmitFunction(ctx => {
10298
10217
  if (!ctx.parameters.item) {
10299
10218
  return throwError(() => new Error(`No item was provided in context, edit cannot be done.`));
@@ -10306,15 +10225,15 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
10306
10225
  })
10307
10226
  .withIsVisibleFunction(() => of(!this.options?.formState.disabled))
10308
10227
  .withIsEnabledFunction(() => this.isEnabled$);
10309
- addAction.buttonDescriptor.withLabel(null).withIcon('pi pi-plus');
10228
+ addAction.button.withLabel(null).withIcon('pi pi-plus');
10310
10229
  this.actions.push(addAction);
10311
10230
  }
10312
10231
  if (hasEditAction) {
10313
10232
  const editAction = new ActionEditorDescriptor(this.descriptor.tableviewDescriptor.editEditor, 'edit', this.descriptor.editor.model.type, this.descriptor.property)
10314
10233
  .withPosition(ActionPositionEnum.RowInline)
10315
10234
  .withDialogClassName('mng-field-dialog mng-action-editor-dialog')
10316
- .withDialogSize(ActionEditorDialogSizeEnum.Small)
10317
- .withButtonDescriptor(new ButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(ActionSizeEnum.ExtraSmall)))
10235
+ .withDialogSize(StyleSizeEnum.Small)
10236
+ .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(StyleSizeEnum.ExtraSmall)))
10318
10237
  .withSubmitFunction(ctx => {
10319
10238
  if (!ctx.parameters.item) {
10320
10239
  return throwError(() => new Error(`No item was provided in context, edit cannot be done.`));
@@ -10327,13 +10246,13 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
10327
10246
  })
10328
10247
  .withIsVisibleFunction(() => of(!this.formControl?.disabled))
10329
10248
  .withIsEnabledFunction(() => this.isEnabled$);
10330
- editAction.buttonDescriptor.withLabel(null).withIcon('pi pi-pencil');
10249
+ editAction.button.withLabel(null).withIcon('pi pi-pencil');
10331
10250
  this.actions.push(editAction);
10332
10251
  }
10333
10252
  if (hasDeleteAction) {
10334
10253
  const deleteAction = new ActionDescriptor(this.descriptor.tableviewDescriptor.model, 'delete', this.descriptor.editor.model.type, this.descriptor.property)
10335
10254
  .withPosition(ActionPositionEnum.RowInline)
10336
- .withButtonDescriptor(new ButtonDescriptor().withStyleClass(new ButtonStyleBuilder(ActionLevelEnum.Danger).withSize(ActionSizeEnum.ExtraSmall)))
10255
+ .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder(StyleLevelEnum.Danger).withSize(StyleSizeEnum.ExtraSmall)))
10337
10256
  .withRunFunction(ctx => {
10338
10257
  if (!ctx.parameters.item) {
10339
10258
  return throwError(() => new Error(`No item was provided in context, delete cannot be done.`));
@@ -10358,7 +10277,7 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
10358
10277
  })
10359
10278
  .withIsVisibleFunction(() => of(!this.options?.formState.disabled))
10360
10279
  .withIsEnabledFunction(() => this.isEnabled$);
10361
- deleteAction.buttonDescriptor.withLabel(null).withIcon('pi pi-trash');
10280
+ deleteAction.button.withLabel(null).withIcon('pi pi-trash');
10362
10281
  this.actions.push(deleteAction);
10363
10282
  }
10364
10283
  this.actions.push(...this.descriptor.actions);
@@ -11560,9 +11479,7 @@ const declarations = [
11560
11479
  MngFormEditorComponent,
11561
11480
  MngActionComponent,
11562
11481
  MngActionEditorComponent,
11563
- MngActionRouteComponent,
11564
- //button
11565
- MngButtonComponent
11482
+ MngActionRouteComponent
11566
11483
  ];
11567
11484
  class MngCommonsModule {
11568
11485
  static forRoot(config) {
@@ -11685,9 +11602,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
11685
11602
  MngFormEditorComponent,
11686
11603
  MngActionComponent,
11687
11604
  MngActionEditorComponent,
11688
- MngActionRouteComponent,
11689
- //button
11690
- MngButtonComponent], imports: [
11605
+ MngActionRouteComponent], imports: [
11691
11606
  // angular modules
11692
11607
  CommonModule,
11693
11608
  RouterModule,
@@ -11806,9 +11721,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
11806
11721
  MngFormEditorComponent,
11807
11722
  MngActionComponent,
11808
11723
  MngActionEditorComponent,
11809
- MngActionRouteComponent,
11810
- //button
11811
- MngButtonComponent] });
11724
+ MngActionRouteComponent] });
11812
11725
  MngCommonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngCommonsModule, imports: [
11813
11726
  // angular modules
11814
11727
  CommonModule,
@@ -12648,5 +12561,5 @@ class TableviewRouteBuilder {
12648
12561
  * Generated bundle index. Do not edit.
12649
12562
  */
12650
12563
 
12651
- export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorDialogSizeEnum, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLevelEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionSizeEnum, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonDescriptor, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DateUtil, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DATE_RANGE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAuthorizationGuard, MngAuthorizationService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngButtonComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDateRangeComponent, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewRouteBuilder, TableviewTypeEnum, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
12564
+ export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionButtonDescriptor, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DateUtil, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DATE_RANGE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAuthorizationGuard, MngAuthorizationService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDateRangeComponent, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StyleLevelEnum, StyleSizeEnum, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewRouteBuilder, TableviewTypeEnum, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
12652
12565
  //# sourceMappingURL=mediusinc-mng-commons.mjs.map