@mediusinc/mng-commons 7.0.0-rc.0 → 7.0.0-rc.2

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 (38) hide show
  1. package/core/index.d.ts +31 -11
  2. package/fesm2022/mediusinc-mng-commons-core.mjs +109 -77
  3. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  4. package/fesm2022/mediusinc-mng-commons-filter.mjs +36 -0
  5. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  6. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-form.mjs +475 -35
  8. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -1
  10. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -1
  12. package/fesm2022/mediusinc-mng-commons-table-api.mjs +0 -2
  13. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  14. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs +30 -0
  15. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs.map +1 -0
  16. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs +2700 -0
  17. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs.map +1 -0
  18. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
  19. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -1
  20. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +47 -6
  21. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  22. package/fesm2022/mediusinc-mng-commons-tableview.mjs +189 -161
  23. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  24. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  25. package/filter/index.d.ts +29 -3
  26. package/form/index.d.ts +143 -14
  27. package/i18n/en.json +17 -3
  28. package/i18n/sl.json +17 -3
  29. package/package.json +24 -24
  30. package/table/api/index.d.ts +4 -4
  31. package/table/index.d.ts +248 -145
  32. package/tableview/api/index.d.ts +18 -5
  33. package/tableview/index.d.ts +31 -34
  34. package/version-info.json +6 -6
  35. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-Dvenjj9n.mjs +0 -30
  36. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-Dvenjj9n.mjs.map +0 -1
  37. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-DFcdSUCN.mjs +0 -2142
  38. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-DFcdSUCN.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, signal, Injector, input, booleanAttribute, output, viewChild, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, model, effect, untracked, afterNextRender, HostListener, contentChildren, viewChildren, QueryList, ChangeDetectorRef, Directive, Pipe, LOCALE_ID, HostBinding, ViewChild } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, signal, Injector, input, booleanAttribute, output, viewChild, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, model, effect, untracked, afterNextRender, HostListener, contentChildren, ChangeDetectorRef, Directive, Pipe, LOCALE_ID, HostBinding, ViewChild } from '@angular/core';
3
3
  import { takeUntilDestroyed, toSignal, outputFromObservable, toObservable as toObservable$1 } from '@angular/core/rxjs-interop';
4
4
  import { Router, NavigationEnd, ActivatedRoute, RouterLink, NavigationStart, NavigationCancel, NavigationError, NavigationSkipped, RouterOutlet } from '@angular/router';
5
5
  import { TranslateService, TranslatePipe } from '@ngx-translate/core';
@@ -7,7 +7,7 @@ import { ButtonDirective, Button } from 'primeng/button';
7
7
  import { Menu } from 'primeng/menu';
8
8
  import { Tooltip } from 'primeng/tooltip';
9
9
  import { ReplaySubject, BehaviorSubject, distinctUntilChanged, Subject, take, of, switchMap, mergeMap as mergeMap$1, from, timeout, combineLatest, debounceTime, delay, tap, combineLatestWith, NEVER, isObservable, throwError, filter as filter$1 } from 'rxjs';
10
- import { getI18n, getI18nAsync, LoggerService, toastMessage, getI18nErrorParams, getI18nForError, CommonsService, ParametrizePipe, escapeHtmlAny, StyleLevelEnum, toObservable, CommonsInternalError, StyleSizeEnum, CommonsHttpError, PermissionService, effectWithDeps, Permissions, ComponentDirective, CommonsStorageService, objectDeepCopy, Styles, TemplateDirective, findTemplateByName, getI18nTypePropertyKey, getI18nTypeGroupKey, getI18nTypeTabKey, fromSubscribeError, getErrorLogLevel, getObjectPropertyByPath, FilterMatchMode, COMMONS_MODULE_CONFIG_IT, dateToIsoString, RouteBuilder, createLazyRoute, CommonsFeatureTypeEnum } from '@mediusinc/mng-commons/core';
10
+ import { getI18n, getI18nAsync, LoggerService, toastMessage, getI18nErrorParams, getI18nForError, CommonsService, ParametrizePipe, escapeHtmlAny, StyleLevelEnum, toObservable, CommonsInternalError, StyleSizeEnum, CommonsHttpError, PermissionService, effectWithDeps, Permissions, ComponentDirective, CommonsStorageService, narrowPrimeMessageSeverity, objectDeepCopy, Styles, getI18nTypePropertyKey, getI18nTypeGroupKey, getI18nTypeTabKey, fromSubscribeError, getErrorLogLevel, getObjectPropertyByPath, FilterMatchMode, COMMONS_MODULE_CONFIG_IT, dateToIsoString, RouteBuilder, createLazyRoute, CommonsFeatureTypeEnum } from '@mediusinc/mng-commons/core';
11
11
  import { ButtonStyleBuilder, LookupDataProviderInst, lookupDataProvider } from '@mediusinc/mng-commons/form/api';
12
12
  import { ActionEditorDescriptorInst, ActionInstanceStateEnum, ActionActivationTriggerEnum, ActionTypeEnum, DataProviderExecutor, TableviewActionDefaultCategories, CommonsActionError, ActionLinkDescriptorInst, TableviewEditorTypeEnum, TableviewDescriptorInst, FieldInputDescriptor, FieldInputTypeEnum, FieldActionDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldLookupDescriptor, FieldManyToManyEditorDescriptor, FieldManyEditorDescriptor, FieldValidationDescriptor, FormEventTypeEnum, FormFieldEventComponentSubtype, ActionEditorSubmitTypeEnum, ActionEditorSubmitDescriptorInst, ActionPositionEnum, runFnFromDataProviderOrFallback, runGetAllFromDataProvider, runFetchFromDataProvider, runCreateFromDataProvider, runUpdateFromDataProvider, runDeleteFromDataProvider, FormFieldEventTypeEnum, AFieldDescriptor, AFieldGroupDescriptor, FieldGroupTypeEnum, FormFieldEventDialogSubtype, FieldManyEditorActionEnum, actionEditor, actionEditorCancel, action, FieldManyToManyEditorActionEnum, fieldDescriptorEmptyLabelType, EditorDescriptorNestedObjectWrapper, fieldLookupGetProviderCfgObj, DATA_LANGUAGE_DROPDOWN_COMPONENT_IT } from '@mediusinc/mng-commons/tableview/api';
13
13
  import { mergeMap, map, filter, startWith, catchError, first, take as take$1 } from 'rxjs/operators';
@@ -15,7 +15,7 @@ import { getI18nModelParams, getI18nModelParamsAsync } from '@mediusinc/mng-comm
15
15
  import { HttpErrorResponse } from '@angular/common/http';
16
16
  import { MessageService, ConfirmationService } from 'primeng/api';
17
17
  import { DialogService, DynamicDialogConfig } from 'primeng/dynamicdialog';
18
- import { Location, DatePipe, NgTemplateOutlet, NgClass } from '@angular/common';
18
+ import { Location, DatePipe, NgClass } from '@angular/common';
19
19
  import { ProgressSpinner } from 'primeng/progressspinner';
20
20
  import { Toolbar } from 'primeng/toolbar';
21
21
  import { ZIndexUtils } from 'primeng/utils';
@@ -23,8 +23,8 @@ import * as i1 from '@angular/forms';
23
23
  import { Validators, UntypedFormGroup, FormGroup, FormArray, ReactiveFormsModule, FormsModule, FormBuilder, FormControl } from '@angular/forms';
24
24
  import { FormlyConfig, FORMLY_CONFIG, FormlyForm, FieldType, FormlyAttributes, FormlyField, FormlyValidationMessage, FieldWrapper, provideFormlyCore } from '@ngx-formly/core';
25
25
  import { Message } from 'primeng/message';
26
- import { DropdownComponent, AutocompleteComponent, InputTrimDirective, InputEmptyValueDirective } from '@mediusinc/mng-commons/form';
27
- import { TableComponent } from '@mediusinc/mng-commons/table';
26
+ import { DropdownComponent, AutocompleteComponent, InputTrimDirective, InputEmptyValueDirective, DatetimePickerComponent } from '@mediusinc/mng-commons/form';
27
+ import { TableTemplateDirective, TableComponent } from '@mediusinc/mng-commons/table';
28
28
  import { TableSizeEnum } from '@mediusinc/mng-commons/table/api';
29
29
  import { Fieldset } from 'primeng/fieldset';
30
30
  import { FileUpload } from 'primeng/fileupload';
@@ -39,7 +39,6 @@ import { Textarea } from 'primeng/textarea';
39
39
  import { ToggleSwitch } from 'primeng/toggleswitch';
40
40
  import { Dialog } from 'primeng/dialog';
41
41
  import { Tabs, TabList, Tab, TabPanels, TabPanel } from 'primeng/tabs';
42
- import { DatePicker } from 'primeng/datepicker';
43
42
 
44
43
  /**
45
44
  * Asynchronously retrieves internationalized text for a specified action.
@@ -527,10 +526,10 @@ class NavigationService {
527
526
  this.router.navigateByUrl('/');
528
527
  }
529
528
  }
530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
531
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NavigationService }); }
529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
530
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NavigationService }); }
532
531
  }
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NavigationService, decorators: [{
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NavigationService, decorators: [{
534
533
  type: Injectable
535
534
  }], ctorParameters: () => [] });
536
535
 
@@ -566,10 +565,10 @@ class ViewContainer {
566
565
  closeEditor(event) {
567
566
  this._editorCloseSubject.next(event ?? {});
568
567
  }
569
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ViewContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
570
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ViewContainer }); }
568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewContainer }); }
571
570
  }
572
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ViewContainer, decorators: [{
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewContainer, decorators: [{
573
572
  type: Injectable
574
573
  }] });
575
574
 
@@ -637,7 +636,7 @@ class ActionExecutorService {
637
636
  let confirmParams = {
638
637
  icon: confirmationOpts.icon !== null ? (confirmationOpts.icon ?? 'pi pi-exclamation-triangle') : undefined,
639
638
  header: getTranslationOrUndefined(confirmationOpts.title, 'confirm.title', 'general.confirmation'),
640
- message: getTranslationOrUndefined(confirmationOpts.message, 'confirm.message', 'general.confirmation'),
639
+ message: getTranslationOrUndefined(confirmationOpts.message, 'confirm.message', 'general.confirmation', true),
641
640
  acceptVisible: true,
642
641
  acceptLabel: getTranslationOrUndefined(confirmationOpts.acceptButton?.label, 'confirm.accept', 'general.yes'),
643
642
  acceptIcon: confirmationOpts.acceptButton?.icon !== null ? (confirmationOpts.acceptButton?.icon ?? ctx.instance.action.button?.icon ?? 'pi pi-check') : undefined,
@@ -1016,22 +1015,24 @@ class ActionExecutorService {
1016
1015
  },
1017
1016
  injector: this.injector
1018
1017
  };
1018
+ dialogConfig.maximizable = action.dialogIsMaximizable ?? true;
1019
1019
  }
1020
- dialogConfig.styleClass = dialogClassNames.join(' ');
1021
1020
  if (action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {
1021
+ dialogClassNames.push('mng-action-editor-on-route-dialog');
1022
1022
  dialogConfig.closable = false;
1023
1023
  dialogConfig.closeOnEscape = false;
1024
1024
  }
1025
+ dialogConfig.styleClass = dialogClassNames.join(' ');
1025
1026
  // commons has its own focus trap
1026
1027
  // there is also a bug in primeng: https://github.com/primefaces/primeng/issues/17479
1027
1028
  dialogConfig.focusOnShow = false;
1028
1029
  dialogConfig.modal = true;
1029
1030
  const dialogRef = this.dialogService.open(dialogComponent, dialogConfig);
1030
- dialogRef.onClose.pipe(take(1)).subscribe(() => {
1031
+ dialogRef?.onClose.pipe(take(1)).subscribe(() => {
1031
1032
  // to close dialog on 'X' click or esc button
1032
1033
  this.finishAction(instance);
1033
1034
  });
1034
- instance.activationDialogRef = dialogRef;
1035
+ instance.activationDialogRef = dialogRef ?? undefined;
1035
1036
  return instance;
1036
1037
  }
1037
1038
  else {
@@ -1341,10 +1342,10 @@ class RootActionExecutorService extends ActionExecutorService {
1341
1342
  get instances() {
1342
1343
  return this._instances;
1343
1344
  }
1344
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RootActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1345
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RootActionExecutorService }); }
1345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RootActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1346
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RootActionExecutorService }); }
1346
1347
  }
1347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RootActionExecutorService, decorators: [{
1348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RootActionExecutorService, decorators: [{
1348
1349
  type: Injectable
1349
1350
  }] });
1350
1351
 
@@ -1356,10 +1357,10 @@ class ComponentActionExecutorService extends ActionExecutorService {
1356
1357
  get instances() {
1357
1358
  return this.rootActionExecutorService.instances;
1358
1359
  }
1359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ComponentActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1360
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ComponentActionExecutorService }); }
1360
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ComponentActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1361
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ComponentActionExecutorService }); }
1361
1362
  }
1362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ComponentActionExecutorService, decorators: [{
1363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ComponentActionExecutorService, decorators: [{
1363
1364
  type: Injectable
1364
1365
  }] });
1365
1366
 
@@ -1624,13 +1625,13 @@ class ActionComponent {
1624
1625
  return menuItem;
1625
1626
  });
1626
1627
  }
1627
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1628
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: ActionComponent, isStandalone: true, selector: "mng-action", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: false, transformFunction: null }, dataListParams: { classPropertyName: "dataListParams", publicName: "dataListParams", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, hostComponent: { classPropertyName: "hostComponent", publicName: "hostComponent", isSignal: true, isRequired: false, transformFunction: null }, routeInit: { classPropertyName: "routeInit", publicName: "route", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inputLoading: { classPropertyName: "inputLoading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { finish: "finish" }, host: { properties: { "class": "hostClass()", "class.m-0": "isHostHidden()" } }, providers: [provideActionExecutor()], viewQueries: [{ propertyName: "subactionsMenu", first: true, predicate: Menu, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isVisible() && isPermitted()) {\n @if (actionLink(); as actionLink) {\n @if (actionLink.url !== '') {\n <a\n pButton\n [label]=\"label()\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [href]=\"!isEnabled() || inputDisabled() ? null : (actionLink.url | mngParametrize: itemId() : item() : actionData())\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n } @else {\n <a\n pButton\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"!isEnabled() || inputDisabled() ? null : (actionLink.pathSegments | mngParametrize: itemId() : item() : actionData())\"\n [relativeTo]=\"route()\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId() : item() : actionData()\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n }\n } @else if (action().component || action().componentFromDi) {\n <ng-container\n [mngComponent]=\"action().component\"\n [injectionToken]=\"action().componentFromDi\"\n [inputs]=\"{\n action: action(),\n item: item(),\n itemId: itemId(),\n actionData: actionData(),\n enabled: isEnabled(),\n loading: loading()\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action().subactions.length > 0 && !action().subactionsAsMenu) {\n @defer (on idle) {\n <p-splitButton\n [icon]=\"action().button?.icon ?? undefined\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (onClick)=\"triggerAction(action())\"\n [class]=\"buttonClass()\"\n [model]=\"subactions()\" />\n }\n } @else {\n <button\n pButton\n type=\"button\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [loading]=\"loading() || inputLoading()\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (click)=\"triggerAction(action(), undefined, $event)\"\n [class]=\"buttonClass()\"></button>\n @defer (on idle) {\n <p-menu #subactionsMenu [model]=\"subactions()\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n }\n}\n", styles: ["mng-action{margin:var(--mng-action-margin-y, .15rem) var(--mng-action-margin-y, .15rem)}mng-action a.disabled{opacity:var(--mng-action-anchor-disabled-opacity, .6);cursor:default}\n"], dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "pipe", type: ParametrizePipe, name: "mngParametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [Tooltip, import('primeng/splitbutton').then(m => m.SplitButton)], () => [Menu]] }); }
1628
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1629
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ActionComponent, isStandalone: true, selector: "mng-action", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: false, transformFunction: null }, dataListParams: { classPropertyName: "dataListParams", publicName: "dataListParams", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, hostComponent: { classPropertyName: "hostComponent", publicName: "hostComponent", isSignal: true, isRequired: false, transformFunction: null }, routeInit: { classPropertyName: "routeInit", publicName: "route", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inputLoading: { classPropertyName: "inputLoading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { finish: "finish" }, host: { properties: { "class": "hostClass()", "class.m-0": "isHostHidden()" } }, providers: [provideActionExecutor()], viewQueries: [{ propertyName: "subactionsMenu", first: true, predicate: Menu, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isVisible() && isPermitted()) {\n @if (actionLink(); as actionLink) {\n @if (actionLink.url !== '') {\n <a\n pButton\n [label]=\"label()\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [href]=\"!isEnabled() || inputDisabled() ? null : (actionLink.url | mngParametrize: itemId() : item() : actionData())\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n } @else {\n <a\n pButton\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"!isEnabled() || inputDisabled() ? null : (actionLink.pathSegments | mngParametrize: itemId() : item() : actionData())\"\n [relativeTo]=\"route()\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId() : item() : actionData()\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n }\n } @else if (action().component || action().componentFromDi) {\n <ng-container\n [mngComponent]=\"action().component\"\n [injectionToken]=\"action().componentFromDi\"\n [inputs]=\"{\n action: action(),\n item: item(),\n itemId: itemId(),\n actionData: actionData(),\n enabled: isEnabled(),\n loading: loading()\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action().subactions.length > 0 && !action().subactionsAsMenu) {\n @defer (on idle) {\n <p-splitButton\n [icon]=\"action().button?.icon ?? undefined\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (onClick)=\"triggerAction(action())\"\n [class]=\"buttonClass()\"\n [model]=\"subactions()\" />\n }\n } @else {\n <button\n pButton\n type=\"button\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [loading]=\"loading() || inputLoading()\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (click)=\"triggerAction(action(), undefined, $event)\"\n [class]=\"buttonClass()\"></button>\n @defer (on idle) {\n <p-menu #subactionsMenu [model]=\"subactions()\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n }\n}\n", styles: ["mng-action{margin:var(--mng-action-margin-y, .15rem) var(--mng-action-margin-y, .15rem)}mng-action a.disabled{opacity:var(--mng-action-anchor-disabled-opacity, .6);cursor:default}\n"], dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "pipe", type: ParametrizePipe, name: "mngParametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [Tooltip, import('primeng/splitbutton').then(m => m.SplitButton)], () => [Menu]] }); }
1629
1630
  }
1630
- i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.1.7", ngImport: i0, type: ActionComponent, resolveDeferredDeps: () => [import('primeng/splitbutton').then(m => m.SplitButton)], resolveMetadata: SplitButton => ({ decorators: [{
1631
+ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.15", ngImport: i0, type: ActionComponent, resolveDeferredDeps: () => [import('primeng/splitbutton').then(m => m.SplitButton)], resolveMetadata: SplitButton => ({ decorators: [{
1631
1632
  type: Component,
1632
1633
  args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ParametrizePipe, ComponentDirective, RouterLink, ButtonDirective, Tooltip, SplitButton, Menu], providers: [provideActionExecutor()], host: { '[class]': 'hostClass()', '[class.m-0]': 'isHostHidden()' }, encapsulation: ViewEncapsulation.None, template: "@if (isVisible() && isPermitted()) {\n @if (actionLink(); as actionLink) {\n @if (actionLink.url !== '') {\n <a\n pButton\n [label]=\"label()\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [href]=\"!isEnabled() || inputDisabled() ? null : (actionLink.url | mngParametrize: itemId() : item() : actionData())\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n } @else {\n <a\n pButton\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"!isEnabled() || inputDisabled() ? null : (actionLink.pathSegments | mngParametrize: itemId() : item() : actionData())\"\n [relativeTo]=\"route()\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId() : item() : actionData()\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"!isEnabled() || inputDisabled()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [class]=\"buttonClass()\"></a>\n }\n } @else if (action().component || action().componentFromDi) {\n <ng-container\n [mngComponent]=\"action().component\"\n [injectionToken]=\"action().componentFromDi\"\n [inputs]=\"{\n action: action(),\n item: item(),\n itemId: itemId(),\n actionData: actionData(),\n enabled: isEnabled(),\n loading: loading()\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action().subactions.length > 0 && !action().subactionsAsMenu) {\n @defer (on idle) {\n <p-splitButton\n [icon]=\"action().button?.icon ?? undefined\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (onClick)=\"triggerAction(action())\"\n [class]=\"buttonClass()\"\n [model]=\"subactions()\" />\n }\n } @else {\n <button\n pButton\n type=\"button\"\n [icon]=\"$any(action().button?.icon)\"\n [iconPos]=\"action().button?.iconPosition ?? 'left'\"\n [label]=\"label()\"\n [pTooltip]=\"tooltip()\"\n [tooltipPosition]=\"action().button?.tooltipPosition ?? 'top'\"\n [loading]=\"loading() || inputLoading()\"\n [disabled]=\"!isEnabled() || inputDisabled()\"\n (click)=\"triggerAction(action(), undefined, $event)\"\n [class]=\"buttonClass()\"></button>\n @defer (on idle) {\n <p-menu #subactionsMenu [model]=\"subactions()\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n }\n}\n", styles: ["mng-action{margin:var(--mng-action-margin-y, .15rem) var(--mng-action-margin-y, .15rem)}mng-action a.disabled{opacity:var(--mng-action-anchor-disabled-opacity, .6);cursor:default}\n"] }]
1633
- }], ctorParameters: () => [], propDecorators: null }) });
1634
+ }], ctorParameters: () => [], propDecorators: { action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: true }] }], item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], itemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemId", required: false }] }], actionData: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionData", required: false }] }], dataListParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataListParams", required: false }] }], dataProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataProvider", required: false }] }], hostComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "hostComponent", required: false }] }], routeInit: [{ type: i0.Input, args: [{ isSignal: true, alias: "route", required: false }] }], inputDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], inputLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }], finish: [{ type: i0.Output, args: ["finish"] }], subactionsMenu: [{ type: i0.ViewChild, args: [i0.forwardRef(() => Menu), { isSignal: true }] }] } }) });
1634
1635
 
1635
1636
  class EditorAutoSaveStatusComponent {
1636
1637
  constructor() {
@@ -1675,8 +1676,8 @@ class EditorAutoSaveStatusComponent {
1675
1676
  }
1676
1677
  }, ...(ngDevMode ? [{ debugName: "icon" }] : []));
1677
1678
  }
1678
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: EditorAutoSaveStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1679
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: EditorAutoSaveStatusComponent, isStandalone: true, selector: "mng-editor-auto-save-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1679
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditorAutoSaveStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1680
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: EditorAutoSaveStatusComponent, isStandalone: true, selector: "mng-editor-auto-save-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1680
1681
  <span>
1681
1682
  @if (icon(); as icon) {
1682
1683
  <i [class]="icon"></i>
@@ -1688,7 +1689,7 @@ class EditorAutoSaveStatusComponent {
1688
1689
  </span>
1689
1690
  `, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1690
1691
  }
1691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: EditorAutoSaveStatusComponent, decorators: [{
1692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditorAutoSaveStatusComponent, decorators: [{
1692
1693
  type: Component,
1693
1694
  args: [{
1694
1695
  selector: 'mng-editor-auto-save-status',
@@ -1706,7 +1707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1706
1707
  `,
1707
1708
  changeDetection: ChangeDetectionStrategy.OnPush
1708
1709
  }]
1709
- }] });
1710
+ }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] } });
1710
1711
 
1711
1712
  /**
1712
1713
  * Generates a unique key for autosave data of an editor.
@@ -2288,10 +2289,10 @@ class FormEditorService {
2288
2289
  init(formComponent) {
2289
2290
  this._formComponent = formComponent;
2290
2291
  }
2291
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormEditorService, deps: [{ token: FormEditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2292
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormEditorService }); }
2292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormEditorService, deps: [{ token: FormEditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2293
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormEditorService }); }
2293
2294
  }
2294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormEditorService, decorators: [{
2295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormEditorService, decorators: [{
2295
2296
  type: Injectable
2296
2297
  }], ctorParameters: () => [{ type: FormEditorService }] });
2297
2298
  function provideFormComponent() {
@@ -2373,6 +2374,11 @@ class FormEditorComponent {
2373
2374
  this._formlyInitialItem = {}; // initialized in ngOnInit, should not be changed after
2374
2375
  this.setterFields = computed(() => this.descriptor().fields.filter(f => typeof f.setter === 'function'), ...(ngDevMode ? [{ debugName: "setterFields" }] : []));
2375
2376
  this.formMessages = signal([], ...(ngDevMode ? [{ debugName: "formMessages" }] : []));
2377
+ this.formMessagesTypeNarrowed = computed(() => this.formMessages().map(m => ({
2378
+ severity: narrowPrimeMessageSeverity(m.severity),
2379
+ text: m.detail,
2380
+ icon: m.icon
2381
+ })), ...(ngDevMode ? [{ debugName: "formMessagesTypeNarrowed" }] : []));
2376
2382
  // autosave
2377
2383
  this.restoreLocalStateButtonStyle = ButtonStyleBuilder.from({ level: StyleLevelEnum.Success, size: StyleSizeEnum.Small }).build();
2378
2384
  this.previewLocalStateButtonStyle = ButtonStyleBuilder.from({ level: StyleLevelEnum.Info, size: StyleSizeEnum.Small }).build();
@@ -2755,13 +2761,13 @@ class FormEditorComponent {
2755
2761
  this.autoSaveRestore.set(this.commonsStorageService.getItem(this.cmpTypeName, this.autoSaveStorageKey()) ?? null);
2756
2762
  }
2757
2763
  }
2758
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, submitLoading: { classPropertyName: "submitLoading", publicName: "submitLoading", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isFormDisabled: { classPropertyName: "isFormDisabled", publicName: "isFormDisabled", isSignal: true, isRequired: false, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, showAutoSaveStatus: { classPropertyName: "showAutoSaveStatus", publicName: "showAutoSaveStatus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", formSubmit: "formSubmit", valueChange: "valueChange", autoSaveStatus: "autoSaveStatus" }, providers: [provideFormComponent()], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true, isSignal: true }, { propertyName: "focusThiefElRef", first: true, predicate: ["focusThiefInput"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (autoSaveShowRestore()) {\n <p-message severity=\"warn\" icon=\"pi pi-save\">\n <ng-template #container>\n <div class=\"flex w-full justify-end items-center\">\n <div class=\"grow\">\n {{\n 'mngEditor.autoSave.restore.title'\n | translate: {lastChange: autoSaveRestore()?.savedAt ? (autoSaveRestore()?.savedAt! | date: 'dd. MM. yyyy HH:mm:ss') : ''}\n }}\n </div>\n <div>\n <button\n pButton\n icon=\"pi pi-sync\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.restore' | translate\"\n [class]=\"restoreLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSaveRestore()\"></button>\n @if (autoSave()?.state !== 'preview' || autoSave()?.state !== 'previewCurrent') {\n <button\n pButton\n icon=\"pi pi-eye\"\n size=\"small\"\n [label]=\"autoSavePreviewButtonLabel() | translate\"\n [class]=\"previewLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSavePreview()\"></button>\n }\n <button\n pButton\n icon=\"pi pi-times\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.dismiss' | translate\"\n [class]=\"clearLocalStateButtonStyle\"\n (click)=\"onAutoSaveDismiss()\"></button>\n </div>\n </div>\n </ng-template>\n </p-message>\n}\n\n@if (autofocusEnabled()) {\n <input type=\"hidden\" class=\"hidden!\" #focusThiefInput tabindex=\"0\" />\n}\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton type=\"submit\" class=\"hidden!\"></button>\n</form>\n@for (message of formMessages(); track message) {\n <p-message [severity]=\"message.severity\" [text]=\"message.detail\" [icon]=\"message.icon\" />\n}\n\n@if (descriptor().autoSave && showAutoSaveStatus()) {\n <mng-editor-auto-save-status [status]=\"autoSave()\" />\n}\n", styles: ["mng-form-editor .mng-field-control{width:100%}mng-form-editor .mng-field{margin:var(--mng-field-margin, 0 0 .5rem 0)}:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) .p-inputnumber,:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) input{width:100%}mng-form-editor .mng-field.mng-field-switch .mng-field-control{width:var(--p-toggleswitch-width)}mng-form-editor .mng-field.mng-field-radio .mng-field-control{width:var(--p-radiobutton-width)}mng-form-editor .mng-field.mng-field-datepicker .mng-field-control-input{max-width:var(--mng-field-datepicker-max-width, 400px)}mng-form-editor .mng-field.mng-field-autocomplete .p-autocomplete{width:100%}:is(mng-form-editor .mng-field.mng-field-dropdown,mng-form-editor .mng-field.mng-field-enum) .p-select{width:100%}mng-form-editor .mng-localized-input-translation-missing input,mng-form-editor .mng-localized-input-translation-missing textarea{border-color:var(--p-button-warn-background)}mng-form-editor .field.table .p-datatable .p-datatable-header{border-top:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:.25rem}mng-form-editor .p-fieldset{margin-bottom:1rem}mng-form-editor .p-fieldset .p-fieldset-content{padding:.75rem 0 0}mng-form-editor .mng-field-validation-messages{color:var(--p-form-field-invalid-placeholder-color)}\n"], dependencies: [{ kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: EditorAutoSaveStatusComponent, selector: "mng-editor-auto-save-status", inputs: ["status"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2764
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2765
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, submitLoading: { classPropertyName: "submitLoading", publicName: "submitLoading", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isFormDisabled: { classPropertyName: "isFormDisabled", publicName: "isFormDisabled", isSignal: true, isRequired: false, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, showAutoSaveStatus: { classPropertyName: "showAutoSaveStatus", publicName: "showAutoSaveStatus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", formSubmit: "formSubmit", valueChange: "valueChange", autoSaveStatus: "autoSaveStatus" }, providers: [provideFormComponent()], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true, isSignal: true }, { propertyName: "focusThiefElRef", first: true, predicate: ["focusThiefInput"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (autoSaveShowRestore()) {\n <p-message severity=\"warn\" icon=\"pi pi-save\">\n <ng-template #container>\n <div class=\"flex w-full justify-end items-center\">\n <div class=\"grow\">\n {{\n 'mngEditor.autoSave.restore.title'\n | translate: {lastChange: autoSaveRestore()?.savedAt ? (autoSaveRestore()?.savedAt! | date: 'dd. MM. yyyy HH:mm:ss') : ''}\n }}\n </div>\n <div>\n <button\n pButton\n icon=\"pi pi-sync\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.restore' | translate\"\n [class]=\"restoreLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSaveRestore()\"></button>\n @if (autoSave()?.state !== 'preview' || autoSave()?.state !== 'previewCurrent') {\n <button\n pButton\n icon=\"pi pi-eye\"\n size=\"small\"\n [label]=\"autoSavePreviewButtonLabel() | translate\"\n [class]=\"previewLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSavePreview()\"></button>\n }\n <button\n pButton\n icon=\"pi pi-times\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.dismiss' | translate\"\n [class]=\"clearLocalStateButtonStyle\"\n (click)=\"onAutoSaveDismiss()\"></button>\n </div>\n </div>\n </ng-template>\n </p-message>\n}\n\n@if (autofocusEnabled()) {\n <input type=\"hidden\" class=\"hidden!\" #focusThiefInput tabindex=\"0\" />\n}\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton type=\"submit\" class=\"hidden!\"></button>\n</form>\n@for (message of formMessagesTypeNarrowed(); track message) {\n <p-message [severity]=\"message.severity\" [text]=\"message.text\" [icon]=\"message.icon\" />\n}\n\n@if (descriptor().autoSave && showAutoSaveStatus()) {\n <mng-editor-auto-save-status [status]=\"autoSave()\" />\n}\n", styles: ["mng-form-editor .mng-field-control{width:100%}mng-form-editor .mng-field{margin:var(--mng-field-margin, 0 0 .5rem 0)}:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) .p-inputnumber,:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) input{width:100%}mng-form-editor .mng-field.mng-field-switch .mng-field-control{width:var(--p-toggleswitch-width)}mng-form-editor .mng-field.mng-field-radio .mng-field-control{width:var(--p-radiobutton-width)}mng-form-editor .mng-field.mng-field-datepicker mng-datetime-picker{max-width:var(--mng-field-datepicker-max-width, 450px)}mng-form-editor .mng-field.mng-field-autocomplete .p-autocomplete{width:100%}:is(mng-form-editor .mng-field.mng-field-dropdown,mng-form-editor .mng-field.mng-field-enum) .p-select{width:100%}mng-form-editor .mng-localized-input-translation-missing input,mng-form-editor .mng-localized-input-translation-missing textarea{border-color:var(--p-button-warn-background)}mng-form-editor .field.table .p-datatable .p-datatable-header{border-top:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:.25rem}mng-form-editor .p-fieldset{margin-bottom:1rem}mng-form-editor .p-fieldset .p-fieldset-content{padding:.75rem 0 0}mng-form-editor .mng-field-validation-messages{color:var(--p-form-field-invalid-placeholder-color)}.mng-field-datepicker.p-datepicker-panel{width:415px}\n"], dependencies: [{ kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: EditorAutoSaveStatusComponent, selector: "mng-editor-auto-save-status", inputs: ["status"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2760
2766
  }
2761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormEditorComponent, decorators: [{
2767
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormEditorComponent, decorators: [{
2762
2768
  type: Component,
2763
- args: [{ selector: 'mng-form-editor', imports: [FormlyForm, ReactiveFormsModule, TranslatePipe, DatePipe, EditorAutoSaveStatusComponent, Message, ButtonDirective], providers: [provideFormComponent()], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (autoSaveShowRestore()) {\n <p-message severity=\"warn\" icon=\"pi pi-save\">\n <ng-template #container>\n <div class=\"flex w-full justify-end items-center\">\n <div class=\"grow\">\n {{\n 'mngEditor.autoSave.restore.title'\n | translate: {lastChange: autoSaveRestore()?.savedAt ? (autoSaveRestore()?.savedAt! | date: 'dd. MM. yyyy HH:mm:ss') : ''}\n }}\n </div>\n <div>\n <button\n pButton\n icon=\"pi pi-sync\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.restore' | translate\"\n [class]=\"restoreLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSaveRestore()\"></button>\n @if (autoSave()?.state !== 'preview' || autoSave()?.state !== 'previewCurrent') {\n <button\n pButton\n icon=\"pi pi-eye\"\n size=\"small\"\n [label]=\"autoSavePreviewButtonLabel() | translate\"\n [class]=\"previewLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSavePreview()\"></button>\n }\n <button\n pButton\n icon=\"pi pi-times\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.dismiss' | translate\"\n [class]=\"clearLocalStateButtonStyle\"\n (click)=\"onAutoSaveDismiss()\"></button>\n </div>\n </div>\n </ng-template>\n </p-message>\n}\n\n@if (autofocusEnabled()) {\n <input type=\"hidden\" class=\"hidden!\" #focusThiefInput tabindex=\"0\" />\n}\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton type=\"submit\" class=\"hidden!\"></button>\n</form>\n@for (message of formMessages(); track message) {\n <p-message [severity]=\"message.severity\" [text]=\"message.detail\" [icon]=\"message.icon\" />\n}\n\n@if (descriptor().autoSave && showAutoSaveStatus()) {\n <mng-editor-auto-save-status [status]=\"autoSave()\" />\n}\n", styles: ["mng-form-editor .mng-field-control{width:100%}mng-form-editor .mng-field{margin:var(--mng-field-margin, 0 0 .5rem 0)}:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) .p-inputnumber,:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) input{width:100%}mng-form-editor .mng-field.mng-field-switch .mng-field-control{width:var(--p-toggleswitch-width)}mng-form-editor .mng-field.mng-field-radio .mng-field-control{width:var(--p-radiobutton-width)}mng-form-editor .mng-field.mng-field-datepicker .mng-field-control-input{max-width:var(--mng-field-datepicker-max-width, 400px)}mng-form-editor .mng-field.mng-field-autocomplete .p-autocomplete{width:100%}:is(mng-form-editor .mng-field.mng-field-dropdown,mng-form-editor .mng-field.mng-field-enum) .p-select{width:100%}mng-form-editor .mng-localized-input-translation-missing input,mng-form-editor .mng-localized-input-translation-missing textarea{border-color:var(--p-button-warn-background)}mng-form-editor .field.table .p-datatable .p-datatable-header{border-top:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:.25rem}mng-form-editor .p-fieldset{margin-bottom:1rem}mng-form-editor .p-fieldset .p-fieldset-content{padding:.75rem 0 0}mng-form-editor .mng-field-validation-messages{color:var(--p-form-field-invalid-placeholder-color)}\n"] }]
2764
- }], ctorParameters: () => [] });
2769
+ args: [{ selector: 'mng-form-editor', imports: [FormlyForm, ReactiveFormsModule, TranslatePipe, DatePipe, EditorAutoSaveStatusComponent, Message, ButtonDirective], providers: [provideFormComponent()], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (autoSaveShowRestore()) {\n <p-message severity=\"warn\" icon=\"pi pi-save\">\n <ng-template #container>\n <div class=\"flex w-full justify-end items-center\">\n <div class=\"grow\">\n {{\n 'mngEditor.autoSave.restore.title'\n | translate: {lastChange: autoSaveRestore()?.savedAt ? (autoSaveRestore()?.savedAt! | date: 'dd. MM. yyyy HH:mm:ss') : ''}\n }}\n </div>\n <div>\n <button\n pButton\n icon=\"pi pi-sync\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.restore' | translate\"\n [class]=\"restoreLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSaveRestore()\"></button>\n @if (autoSave()?.state !== 'preview' || autoSave()?.state !== 'previewCurrent') {\n <button\n pButton\n icon=\"pi pi-eye\"\n size=\"small\"\n [label]=\"autoSavePreviewButtonLabel() | translate\"\n [class]=\"previewLocalStateButtonStyle\"\n [text]=\"true\"\n (click)=\"onAutoSavePreview()\"></button>\n }\n <button\n pButton\n icon=\"pi pi-times\"\n size=\"small\"\n [label]=\"'mngEditor.autoSave.restore.dismiss' | translate\"\n [class]=\"clearLocalStateButtonStyle\"\n (click)=\"onAutoSaveDismiss()\"></button>\n </div>\n </div>\n </ng-template>\n </p-message>\n}\n\n@if (autofocusEnabled()) {\n <input type=\"hidden\" class=\"hidden!\" #focusThiefInput tabindex=\"0\" />\n}\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton type=\"submit\" class=\"hidden!\"></button>\n</form>\n@for (message of formMessagesTypeNarrowed(); track message) {\n <p-message [severity]=\"message.severity\" [text]=\"message.text\" [icon]=\"message.icon\" />\n}\n\n@if (descriptor().autoSave && showAutoSaveStatus()) {\n <mng-editor-auto-save-status [status]=\"autoSave()\" />\n}\n", styles: ["mng-form-editor .mng-field-control{width:100%}mng-form-editor .mng-field{margin:var(--mng-field-margin, 0 0 .5rem 0)}:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) .p-inputnumber,:is(mng-form-editor .mng-field.mng-field-number,mng-form-editor .mng-field.mng-field-currency) input{width:100%}mng-form-editor .mng-field.mng-field-switch .mng-field-control{width:var(--p-toggleswitch-width)}mng-form-editor .mng-field.mng-field-radio .mng-field-control{width:var(--p-radiobutton-width)}mng-form-editor .mng-field.mng-field-datepicker mng-datetime-picker{max-width:var(--mng-field-datepicker-max-width, 450px)}mng-form-editor .mng-field.mng-field-autocomplete .p-autocomplete{width:100%}:is(mng-form-editor .mng-field.mng-field-dropdown,mng-form-editor .mng-field.mng-field-enum) .p-select{width:100%}mng-form-editor .mng-localized-input-translation-missing input,mng-form-editor .mng-localized-input-translation-missing textarea{border-color:var(--p-button-warn-background)}mng-form-editor .field.table .p-datatable .p-datatable-header{border-top:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:.25rem}mng-form-editor .p-fieldset{margin-bottom:1rem}mng-form-editor .p-fieldset .p-fieldset-content{padding:.75rem 0 0}mng-form-editor .mng-field-validation-messages{color:var(--p-form-field-invalid-placeholder-color)}.mng-field-datepicker.p-datepicker-panel{width:415px}\n"] }]
2770
+ }], ctorParameters: () => [], propDecorators: { descriptor: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptor", required: true }] }], submitLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitLoading", required: false }] }], item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }, { type: i0.Output, args: ["itemChange"] }], isFormDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFormDisabled", required: false }] }], editorId: [{ type: i0.Input, args: [{ isSignal: true, alias: "editorId", required: false }] }], itemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemId", required: false }] }], showAutoSaveStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAutoSaveStatus", required: false }] }], formSubmit: [{ type: i0.Output, args: ["formSubmit"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], autoSaveStatus: [{ type: i0.Output, args: ["autoSaveStatus"] }], submitButtonElementRef: [{ type: i0.ViewChild, args: ['submitButton', { isSignal: true }] }], focusThiefElRef: [{ type: i0.ViewChild, args: ['focusThiefInput', { isSignal: true }] }] } });
2765
2771
 
2766
2772
  class ActionEditorInjectorContextComponent {
2767
2773
  constructor() {
@@ -3086,7 +3092,8 @@ class ActionEditorInjectorContextComponent {
3086
3092
  if (this.data().isDialog &&
3087
3093
  this.editorAction().activationTrigger === ActionActivationTriggerEnum.OnRoute &&
3088
3094
  this.instance?.activationDialogRef &&
3089
- parseInt(this.dialogService.dialogComponentRefMap.get(this.instance?.activationDialogRef)?.instance.container?.style.zIndex ?? '') === ZIndexUtils.getCurrent())
3095
+ parseInt(this.dialogService.dialogComponentRefMap.get(this.instance?.activationDialogRef)?.instance.el.nativeElement.querySelector('.p-dialog')?.style?.zIndex) ===
3096
+ ZIndexUtils.getCurrent())
3090
3097
  this.closeWithUnsavedChangesConfirmation();
3091
3098
  }
3092
3099
  closeWithUnsavedChangesConfirmation(callFromGuard = false) {
@@ -3150,13 +3157,13 @@ class ActionEditorInjectorContextComponent {
3150
3157
  sourceComponent: this
3151
3158
  };
3152
3159
  }
3153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionEditorInjectorContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: ActionEditorInjectorContextComponent, isStandalone: true, selector: "mng-action-editor-injector-context", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { actionRun: "actionRun", actionCancel: "actionCancel" }, host: { listeners: { "window:beforeunload": "beforeWindowUnload()", "window:keydown.Escape": "onEscapePressed()" } }, providers: [provideActionExecutor()], viewQueries: [{ propertyName: "formEditorCmp", first: true, predicate: (FormEditorComponent), descendants: true, isSignal: true }], ngImport: i0, template: "@if (!data().isDialog && title()) {\n <h5>{{ title() }}</h5>\n}\n@if (data().isDialog && editorAction().activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n <span class=\"p-dialog-header mng-action-editor-dialog-close-button-wrapper\">\n <button\n class=\"p-dialog-header-icon p-dialog-header-maximize\"\n type=\"button\"\n (click)=\"closeWithUnsavedChangesConfirmation()\"\n (keydown.enter)=\"closeWithUnsavedChangesConfirmation()\">\n <span class=\"p-dialog-header-close-icon pi pi-times\"></span>\n </button>\n </span>\n}\n<div class=\"h-full flex flex-col\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <div class=\"grow mng-action-editor-toolbar-container\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n </div>\n }\n\n <div class=\"grow mng-action-editor-form-container\">\n @if (loading()) {\n <div class=\"text-center\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n }\n @if (editorAction().editorDescriptor && !loading()) {\n <mng-form-editor\n [descriptor]=\"editorAction().editorDescriptor\"\n [editorId]=\"editorAction().actionNameLong\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"\n [isFormDisabled]=\"isFormDisabled()\"\n showAutoSaveStatus=\"false\"\n (valueChange)=\"onValueChange($event)\"\n (formSubmit)=\"onSubmit($event)\"\n (autoSaveStatus)=\"onAutoSave($event)\" />\n }\n </div>\n\n <div class=\"flex flex-row justify-between items-center mng-action-editor-footer-container\">\n <div>\n @for (action of footerLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n @if (editorAction().editorDescriptor.autoSave) {\n <mng-editor-auto-save-status [status]=\"autoSaveStatus()\"></mng-editor-auto-save-status>\n }\n </div>\n <div>\n @for (action of footerRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n </div>\n</div>\n", styles: [".p-dialog.mng-dialog.mng-action-editor-dialog .p-dialog-header.mng-action-editor-dialog-close-button-wrapper{position:absolute;top:1.286rem;right:1.714rem;background:transparent;padding:0}mng-action-editor-injector-context.p-toolbar.mng-action-editor-toolbar{border:none}\n"], dependencies: [{ kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: FormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "isFormDisabled", "editorId", "itemId", "showAutoSaveStatus"], outputs: ["itemChange", "formSubmit", "valueChange", "autoSaveStatus"] }, { kind: "component", type: EditorAutoSaveStatusComponent, selector: "mng-editor-auto-save-status", inputs: ["status"] }, { kind: "component", type: ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionEditorInjectorContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ActionEditorInjectorContextComponent, isStandalone: true, selector: "mng-action-editor-injector-context", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { actionRun: "actionRun", actionCancel: "actionCancel" }, host: { listeners: { "window:beforeunload": "beforeWindowUnload()", "window:keydown.Escape": "onEscapePressed()" } }, providers: [provideActionExecutor()], viewQueries: [{ propertyName: "formEditorCmp", first: true, predicate: (FormEditorComponent), descendants: true, isSignal: true }], ngImport: i0, template: "@if (!data().isDialog && title()) {\n <h5>{{ title() }}</h5>\n}\n@if (data().isDialog && editorAction().activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n <span class=\"p-dialog-header mng-action-editor-dialog-close-button-wrapper\">\n <button\n pButton\n severity=\"secondary\"\n class=\"p-dialog-header-icon p-button-icon-only p-button-rounded p-button-text p-dialog-close-button\"\n type=\"button\"\n (click)=\"closeWithUnsavedChangesConfirmation()\"\n (keydown.enter)=\"closeWithUnsavedChangesConfirmation()\">\n <i class=\"pi pi-times\"></i>\n </button>\n </span>\n}\n<div class=\"h-full flex flex-col\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <div class=\"grow mng-action-editor-toolbar-container\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n </div>\n }\n\n <div class=\"grow mng-action-editor-form-container\">\n @if (loading()) {\n <div class=\"text-center\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n }\n @if (editorAction().editorDescriptor && !loading()) {\n <mng-form-editor\n [descriptor]=\"editorAction().editorDescriptor\"\n [editorId]=\"editorAction().actionNameLong\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"\n [isFormDisabled]=\"isFormDisabled()\"\n showAutoSaveStatus=\"false\"\n (valueChange)=\"onValueChange($event)\"\n (formSubmit)=\"onSubmit($event)\"\n (autoSaveStatus)=\"onAutoSave($event)\" />\n }\n </div>\n\n <div class=\"flex flex-row justify-between items-center mng-action-editor-footer-container\">\n <div>\n @for (action of footerLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n @if (editorAction().editorDescriptor.autoSave) {\n <mng-editor-auto-save-status [status]=\"autoSaveStatus()\"></mng-editor-auto-save-status>\n }\n </div>\n <div>\n @for (action of footerRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n </div>\n</div>\n", styles: [".p-dialog.mng-dialog.mng-action-editor-dialog .p-dialog-header.mng-action-editor-dialog-close-button-wrapper{position:absolute;top:.63rem;right:1rem;background:transparent;padding:0}.p-dialog.mng-dialog.mng-action-editor-on-route-dialog .p-dialog-header .p-dialog-maximize-button{position:absolute;top:.6rem;right:4.1rem}mng-action-editor-injector-context.p-toolbar.mng-action-editor-toolbar{border:none}\n"], dependencies: [{ kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: FormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "isFormDisabled", "editorId", "itemId", "showAutoSaveStatus"], outputs: ["itemChange", "formSubmit", "valueChange", "autoSaveStatus"] }, { kind: "component", type: EditorAutoSaveStatusComponent, selector: "mng-editor-auto-save-status", inputs: ["status"] }, { kind: "component", type: ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3155
3162
  }
3156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionEditorInjectorContextComponent, decorators: [{
3163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionEditorInjectorContextComponent, decorators: [{
3157
3164
  type: Component,
3158
- args: [{ selector: 'mng-action-editor-injector-context', imports: [ActionComponent, FormEditorComponent, EditorAutoSaveStatusComponent, ProgressSpinner, Toolbar], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [provideActionExecutor()], template: "@if (!data().isDialog && title()) {\n <h5>{{ title() }}</h5>\n}\n@if (data().isDialog && editorAction().activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n <span class=\"p-dialog-header mng-action-editor-dialog-close-button-wrapper\">\n <button\n class=\"p-dialog-header-icon p-dialog-header-maximize\"\n type=\"button\"\n (click)=\"closeWithUnsavedChangesConfirmation()\"\n (keydown.enter)=\"closeWithUnsavedChangesConfirmation()\">\n <span class=\"p-dialog-header-close-icon pi pi-times\"></span>\n </button>\n </span>\n}\n<div class=\"h-full flex flex-col\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <div class=\"grow mng-action-editor-toolbar-container\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n </div>\n }\n\n <div class=\"grow mng-action-editor-form-container\">\n @if (loading()) {\n <div class=\"text-center\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n }\n @if (editorAction().editorDescriptor && !loading()) {\n <mng-form-editor\n [descriptor]=\"editorAction().editorDescriptor\"\n [editorId]=\"editorAction().actionNameLong\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"\n [isFormDisabled]=\"isFormDisabled()\"\n showAutoSaveStatus=\"false\"\n (valueChange)=\"onValueChange($event)\"\n (formSubmit)=\"onSubmit($event)\"\n (autoSaveStatus)=\"onAutoSave($event)\" />\n }\n </div>\n\n <div class=\"flex flex-row justify-between items-center mng-action-editor-footer-container\">\n <div>\n @for (action of footerLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n @if (editorAction().editorDescriptor.autoSave) {\n <mng-editor-auto-save-status [status]=\"autoSaveStatus()\"></mng-editor-auto-save-status>\n }\n </div>\n <div>\n @for (action of footerRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n </div>\n</div>\n", styles: [".p-dialog.mng-dialog.mng-action-editor-dialog .p-dialog-header.mng-action-editor-dialog-close-button-wrapper{position:absolute;top:1.286rem;right:1.714rem;background:transparent;padding:0}mng-action-editor-injector-context.p-toolbar.mng-action-editor-toolbar{border:none}\n"] }]
3159
- }], propDecorators: { beforeWindowUnload: [{
3165
+ args: [{ selector: 'mng-action-editor-injector-context', imports: [ActionComponent, FormEditorComponent, EditorAutoSaveStatusComponent, ProgressSpinner, Toolbar, ButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [provideActionExecutor()], template: "@if (!data().isDialog && title()) {\n <h5>{{ title() }}</h5>\n}\n@if (data().isDialog && editorAction().activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n <span class=\"p-dialog-header mng-action-editor-dialog-close-button-wrapper\">\n <button\n pButton\n severity=\"secondary\"\n class=\"p-dialog-header-icon p-button-icon-only p-button-rounded p-button-text p-dialog-close-button\"\n type=\"button\"\n (click)=\"closeWithUnsavedChangesConfirmation()\"\n (keydown.enter)=\"closeWithUnsavedChangesConfirmation()\">\n <i class=\"pi pi-times\"></i>\n </button>\n </span>\n}\n<div class=\"h-full flex flex-col\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <div class=\"grow mng-action-editor-toolbar-container\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n </div>\n }\n\n <div class=\"grow mng-action-editor-form-container\">\n @if (loading()) {\n <div class=\"text-center\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n }\n @if (editorAction().editorDescriptor && !loading()) {\n <mng-form-editor\n [descriptor]=\"editorAction().editorDescriptor\"\n [editorId]=\"editorAction().actionNameLong\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"\n [isFormDisabled]=\"isFormDisabled()\"\n showAutoSaveStatus=\"false\"\n (valueChange)=\"onValueChange($event)\"\n (formSubmit)=\"onSubmit($event)\"\n (autoSaveStatus)=\"onAutoSave($event)\" />\n }\n </div>\n\n <div class=\"flex flex-row justify-between items-center mng-action-editor-footer-container\">\n <div>\n @for (action of footerLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n @if (editorAction().editorDescriptor.autoSave) {\n <mng-editor-auto-save-status [status]=\"autoSaveStatus()\"></mng-editor-auto-save-status>\n }\n </div>\n <div>\n @for (action of footerRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"formValue()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n </div>\n</div>\n", styles: [".p-dialog.mng-dialog.mng-action-editor-dialog .p-dialog-header.mng-action-editor-dialog-close-button-wrapper{position:absolute;top:.63rem;right:1rem;background:transparent;padding:0}.p-dialog.mng-dialog.mng-action-editor-on-route-dialog .p-dialog-header .p-dialog-maximize-button{position:absolute;top:.6rem;right:4.1rem}mng-action-editor-injector-context.p-toolbar.mng-action-editor-toolbar{border:none}\n"] }]
3166
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], actionRun: [{ type: i0.Output, args: ["actionRun"] }], actionCancel: [{ type: i0.Output, args: ["actionCancel"] }], formEditorCmp: [{ type: i0.ViewChild, args: [i0.forwardRef(() => FormEditorComponent), { isSignal: true }] }], beforeWindowUnload: [{
3160
3167
  type: HostListener,
3161
3168
  args: ['window:beforeunload']
3162
3169
  }], onEscapePressed: [{
@@ -3237,13 +3244,13 @@ class ActionEditorComponent {
3237
3244
  triggerSubmit() {
3238
3245
  this.actionEditorWInjContextCmp?.triggerSubmit();
3239
3246
  }
3240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: ActionEditorComponent, isStandalone: true, selector: "mng-action-editor", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionRun: "actionRun", actionCancel: "actionCancel" }, ngImport: i0, template: "<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData()\n }\"\n [parentInjector]=\"parentInjector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n", dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ActionEditorComponent, isStandalone: true, selector: "mng-action-editor", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionRun: "actionRun", actionCancel: "actionCancel" }, ngImport: i0, template: "<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData()\n }\"\n [parentInjector]=\"parentInjector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n", dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3242
3249
  }
3243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionEditorComponent, decorators: [{
3250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionEditorComponent, decorators: [{
3244
3251
  type: Component,
3245
3252
  args: [{ selector: 'mng-action-editor', imports: [ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData()\n }\"\n [parentInjector]=\"parentInjector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n" }]
3246
- }], ctorParameters: () => [] });
3253
+ }], ctorParameters: () => [], propDecorators: { action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: true }] }], itemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemId", required: false }] }], item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], actionData: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionData", required: false }] }], dataProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataProvider", required: false }] }], actionRun: [{ type: i0.Output, args: ["actionRun"] }], actionCancel: [{ type: i0.Output, args: ["actionCancel"] }] } });
3247
3254
 
3248
3255
  class DataLanguageDropdownComponent {
3249
3256
  constructor() {
@@ -3263,13 +3270,13 @@ class DataLanguageDropdownComponent {
3263
3270
  this.commons.setAppDataLocale(dataLang);
3264
3271
  this.viewContainer?.reloadTable({});
3265
3272
  }
3266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: DataLanguageDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: DataLanguageDropdownComponent, isStandalone: true, selector: "mng-data-language-dropdown", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: true, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: true, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { trigger: "trigger" }, ngImport: i0, template: "<mng-dropdown [dataProvider]=\"selectionItemsDataProvider()\" [ngModel]=\"commons.appDataLocale()\" [showClear]=\"false\" (valueChange)=\"updateDataLocale($event)\"></mng-dropdown>\n", dependencies: [{ kind: "component", type: DropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "options", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur", "loading", "disabled", "allowInput", "appendTo", "inlineSearch", "searchTrim"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DataLanguageDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: DataLanguageDropdownComponent, isStandalone: true, selector: "mng-data-language-dropdown", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null }, actionData: { classPropertyName: "actionData", publicName: "actionData", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: true, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: true, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { trigger: "trigger" }, ngImport: i0, template: "<mng-dropdown [dataProvider]=\"selectionItemsDataProvider()\" [ngModel]=\"commons.appDataLocale()\" [showClear]=\"false\" (valueChange)=\"updateDataLocale($event)\"></mng-dropdown>\n", dependencies: [{ kind: "component", type: DropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "options", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur", "loading", "disabled", "allowInput", "appendTo", "templates", "inlineSearch", "searchTrim"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3268
3275
  }
3269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: DataLanguageDropdownComponent, decorators: [{
3276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DataLanguageDropdownComponent, decorators: [{
3270
3277
  type: Component,
3271
3278
  args: [{ selector: 'mng-data-language-dropdown', imports: [DropdownComponent, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown [dataProvider]=\"selectionItemsDataProvider()\" [ngModel]=\"commons.appDataLocale()\" [showClear]=\"false\" (valueChange)=\"updateDataLocale($event)\"></mng-dropdown>\n" }]
3272
- }] });
3279
+ }], propDecorators: { action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: true }] }], actionData: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionData", required: true }] }], item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], itemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemId", required: true }] }], enabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "enabled", required: true }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: true }] }], trigger: [{ type: i0.Output, args: ["trigger"] }] } });
3273
3280
 
3274
3281
  class ActionRouteComponent {
3275
3282
  constructor() {
@@ -3398,10 +3405,10 @@ class ActionRouteComponent {
3398
3405
  this.instanceStateSubscription?.unsubscribe();
3399
3406
  this.instanceReactivationSubscription?.unsubscribe();
3400
3407
  }
3401
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: ActionRouteComponent, isStandalone: true, selector: "mng-action-route", providers: [provideActionExecutor()], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3408
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3409
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ActionRouteComponent, isStandalone: true, selector: "mng-action-route", providers: [provideActionExecutor()], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3403
3410
  }
3404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionRouteComponent, decorators: [{
3411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionRouteComponent, decorators: [{
3405
3412
  type: Component,
3406
3413
  args: [{ selector: 'mng-action-route', changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideActionExecutor()], template: "" }]
3407
3414
  }] });
@@ -3455,6 +3462,7 @@ class ActionTableComponent {
3455
3462
  this.dataProvider = input(...(ngDevMode ? [undefined, { debugName: "dataProvider" }] : []));
3456
3463
  this.useQueryParams = input(false, ...(ngDevMode ? [{ debugName: "useQueryParams" }] : []));
3457
3464
  // extra features input
3465
+ this.tableTemplates = input([], ...(ngDevMode ? [{ debugName: "tableTemplates" }] : []));
3458
3466
  this.tableClassName = input(...(ngDevMode ? [undefined, { debugName: "tableClassName" }] : []));
3459
3467
  this.selectionMode = input('multiple', ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
3460
3468
  this.selectionEnabled = input(false, ...(ngDevMode ? [{ debugName: "selectionEnabled" }] : []));
@@ -3463,8 +3471,6 @@ class ActionTableComponent {
3463
3471
  // actions
3464
3472
  this.actions = input([], ...(ngDevMode ? [{ debugName: "actions" }] : [])); // can be anything
3465
3473
  // component inputs
3466
- this.captionComponent = input(...(ngDevMode ? [undefined, { debugName: "captionComponent" }] : []));
3467
- this.columnActionComponent = input(...(ngDevMode ? [undefined, { debugName: "columnActionComponent" }] : []));
3468
3474
  this.columnActionMinWidthInput = input(undefined, ...(ngDevMode ? [{ debugName: "columnActionMinWidthInput", alias: 'columnActionMinWidth' }] : [{ alias: 'columnActionMinWidth' }]));
3469
3475
  this.columnActionMinWidth = computed(() => this.descriptor() && !this.columnActionMinWidthInput()
3470
3476
  ? calculateTableColumnActionWidth(this.descriptor(), this.rowInlineActions())
@@ -3472,17 +3478,13 @@ class ActionTableComponent {
3472
3478
  // event outputs
3473
3479
  this.tableLoad = output();
3474
3480
  this.selectionChange = output();
3475
- this.captionComponentInstance = output();
3476
- this.columnActionComponentInstance = output();
3477
3481
  this.rowReorder = output();
3478
3482
  // content and view queries
3479
- this.templates = contentChildren(TemplateDirective, ...(ngDevMode ? [{ debugName: "templates" }] : []));
3480
- this.components = viewChildren((QueryList), ...(ngDevMode ? [{ debugName: "components" }] : []));
3483
+ this.contentTemplates = contentChildren(TableTemplateDirective, ...(ngDevMode ? [{ debugName: "contentTemplates" }] : []));
3481
3484
  this.table = viewChild.required(TableComponent);
3482
- // templates
3483
- this.captionTemplate = computed(() => findTemplateByName([...this.templates()], 'caption'), ...(ngDevMode ? [{ debugName: "captionTemplate" }] : []));
3484
- this.footerTemplate = computed(() => findTemplateByName([...this.templates()], 'footer'), ...(ngDevMode ? [{ debugName: "footerTemplate" }] : []));
3485
- this.rowExpandTemplate = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'), ...(ngDevMode ? [{ debugName: "rowExpandTemplate" }] : []));
3485
+ this.tableTemplatesMerged = computed(() => {
3486
+ return [...this.contentTemplates(), ...this.tableTemplates()];
3487
+ }, ...(ngDevMode ? [{ debugName: "tableTemplatesMerged" }] : []));
3486
3488
  // actions
3487
3489
  this.rowClickActions = computed(() => {
3488
3490
  return this.actions().filter(action => action.position === ActionPositionEnum.RowClick);
@@ -3523,13 +3525,13 @@ class ActionTableComponent {
3523
3525
  this.reload();
3524
3526
  }
3525
3527
  }
3526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3527
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: ActionTableComponent, isStandalone: true, selector: "mng-action-table", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, useQueryParams: { classPropertyName: "useQueryParams", publicName: "useQueryParams", isSignal: true, isRequired: false, transformFunction: null }, tableClassName: { classPropertyName: "tableClassName", publicName: "tableClassName", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectionEnabled: { classPropertyName: "selectionEnabled", publicName: "selectionEnabled", isSignal: true, isRequired: false, transformFunction: null }, globalFilterFields: { classPropertyName: "globalFilterFields", publicName: "globalFilterFields", isSignal: true, isRequired: false, transformFunction: null }, rowReorderEnabled: { classPropertyName: "rowReorderEnabled", publicName: "rowReorderEnabled", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, captionComponent: { classPropertyName: "captionComponent", publicName: "captionComponent", isSignal: true, isRequired: false, transformFunction: null }, columnActionComponent: { classPropertyName: "columnActionComponent", publicName: "columnActionComponent", isSignal: true, isRequired: false, transformFunction: null }, columnActionMinWidthInput: { classPropertyName: "columnActionMinWidthInput", publicName: "columnActionMinWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableLoad: "tableLoad", selectionChange: "selectionChange", captionComponentInstance: "captionComponentInstance", columnActionComponentInstance: "columnActionComponentInstance", rowReorder: "rowReorder" }, providers: [provideActionExecutor()], queries: [{ propertyName: "templates", predicate: TemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "components", predicate: (QueryList), descendants: true, isSignal: true }, { propertyName: "table", first: true, predicate: TableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor()\"\n [items]=\"items()\"\n [result]=\"result()\"\n [loading]=\"loading()\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"useQueryParams()\"\n [selectionMode]=\"selectionMode()\"\n [selectionEnabled]=\"selectionEnabled()\"\n [globalFilterFields]=\"globalFilterFields()\"\n [captionComponent]=\"captionComponent()\"\n [columnCustomLastComponent]=\"columnActionComponent()\"\n [columnLastMinWidth]=\"columnActionMinWidth()\"\n [cellClickEnabled]=\"this.rowClickActions().length > 0\"\n [rowReorderEnabled]=\"rowReorderEnabled()\"\n [class]=\"tableClassName()\"\n (tableLoad)=\"tableLoad.emit($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionComponentInstance.emit($event)\"\n (columnCustomLastComponentInstance)=\"columnActionComponentInstance.emit($event)\"\n (rowReorder)=\"onRowReorder($event)\">\n @if (!columnActionComponent() && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor().model.idProperty ? item[descriptor().model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent()) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </ng-template>\n }\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n", dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance", "rowReorder"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["mngTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3529
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ActionTableComponent, isStandalone: true, selector: "mng-action-table", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, useQueryParams: { classPropertyName: "useQueryParams", publicName: "useQueryParams", isSignal: true, isRequired: false, transformFunction: null }, tableTemplates: { classPropertyName: "tableTemplates", publicName: "tableTemplates", isSignal: true, isRequired: false, transformFunction: null }, tableClassName: { classPropertyName: "tableClassName", publicName: "tableClassName", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectionEnabled: { classPropertyName: "selectionEnabled", publicName: "selectionEnabled", isSignal: true, isRequired: false, transformFunction: null }, globalFilterFields: { classPropertyName: "globalFilterFields", publicName: "globalFilterFields", isSignal: true, isRequired: false, transformFunction: null }, rowReorderEnabled: { classPropertyName: "rowReorderEnabled", publicName: "rowReorderEnabled", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, columnActionMinWidthInput: { classPropertyName: "columnActionMinWidthInput", publicName: "columnActionMinWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableLoad: "tableLoad", selectionChange: "selectionChange", rowReorder: "rowReorder" }, providers: [provideActionExecutor()], queries: [{ propertyName: "contentTemplates", predicate: TableTemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "table", first: true, predicate: TableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor()\"\n [items]=\"items()\"\n [result]=\"result()\"\n [loading]=\"loading()\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"useQueryParams()\"\n [selectionMode]=\"selectionMode()\"\n [selectionEnabled]=\"selectionEnabled()\"\n [globalFilterFields]=\"globalFilterFields()\"\n [columnLastMinWidth]=\"columnActionMinWidth()\"\n [cellClickEnabled]=\"this.rowClickActions().length > 0\"\n [rowReorderEnabled]=\"rowReorderEnabled()\"\n [class]=\"tableClassName()\"\n [templates]=\"tableTemplatesMerged()\"\n (tableLoad)=\"tableLoad.emit($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowReorder)=\"onRowReorder($event)\">\n @if (rowInlineActions().length > 0) {\n <ng-template mngTableTemplate name=\"columnCustomLast\" let-item=\"item\" let-idx=\"index\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor().model.idProperty ? item[descriptor().model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n</mng-table>\n", dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "globalFilterFields", "templates"], outputs: ["tableLoad", "cellClick", "selectionChange", "rowReorder"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3528
3530
  }
3529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ActionTableComponent, decorators: [{
3531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionTableComponent, decorators: [{
3530
3532
  type: Component,
3531
- args: [{ selector: 'mng-action-table', imports: [TableComponent, ActionComponent, TemplateDirective, NgTemplateOutlet], providers: [provideActionExecutor()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor()\"\n [items]=\"items()\"\n [result]=\"result()\"\n [loading]=\"loading()\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"useQueryParams()\"\n [selectionMode]=\"selectionMode()\"\n [selectionEnabled]=\"selectionEnabled()\"\n [globalFilterFields]=\"globalFilterFields()\"\n [captionComponent]=\"captionComponent()\"\n [columnCustomLastComponent]=\"columnActionComponent()\"\n [columnLastMinWidth]=\"columnActionMinWidth()\"\n [cellClickEnabled]=\"this.rowClickActions().length > 0\"\n [rowReorderEnabled]=\"rowReorderEnabled()\"\n [class]=\"tableClassName()\"\n (tableLoad)=\"tableLoad.emit($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionComponentInstance.emit($event)\"\n (columnCustomLastComponentInstance)=\"columnActionComponentInstance.emit($event)\"\n (rowReorder)=\"onRowReorder($event)\">\n @if (!columnActionComponent() && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor().model.idProperty ? item[descriptor().model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent()) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </ng-template>\n }\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n" }]
3532
- }], ctorParameters: () => [] });
3533
+ args: [{ selector: 'mng-action-table', imports: [TableComponent, ActionComponent, TableTemplateDirective], providers: [provideActionExecutor()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor()\"\n [items]=\"items()\"\n [result]=\"result()\"\n [loading]=\"loading()\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"useQueryParams()\"\n [selectionMode]=\"selectionMode()\"\n [selectionEnabled]=\"selectionEnabled()\"\n [globalFilterFields]=\"globalFilterFields()\"\n [columnLastMinWidth]=\"columnActionMinWidth()\"\n [cellClickEnabled]=\"this.rowClickActions().length > 0\"\n [rowReorderEnabled]=\"rowReorderEnabled()\"\n [class]=\"tableClassName()\"\n [templates]=\"tableTemplatesMerged()\"\n (tableLoad)=\"tableLoad.emit($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowReorder)=\"onRowReorder($event)\">\n @if (rowInlineActions().length > 0) {\n <ng-template mngTableTemplate name=\"columnCustomLast\" let-item=\"item\" let-idx=\"index\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor().model.idProperty ? item[descriptor().model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n</mng-table>\n" }]
3534
+ }], ctorParameters: () => [], propDecorators: { descriptor: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptor", required: true }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], result: [{ type: i0.Input, args: [{ isSignal: true, alias: "result", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], dataProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataProvider", required: false }] }], useQueryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "useQueryParams", required: false }] }], tableTemplates: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableTemplates", required: false }] }], tableClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableClassName", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], selectionEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionEnabled", required: false }] }], globalFilterFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "globalFilterFields", required: false }] }], rowReorderEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowReorderEnabled", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], columnActionMinWidthInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnActionMinWidth", required: false }] }], tableLoad: [{ type: i0.Output, args: ["tableLoad"] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], rowReorder: [{ type: i0.Output, args: ["rowReorder"] }], contentTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TableTemplateDirective), { isSignal: true }] }], table: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TableComponent), { isSignal: true }] }] } });
3533
3535
 
3534
3536
  const unsavedChangesGuard = (component) => {
3535
3537
  return component.canDeactivate();
@@ -3563,9 +3565,8 @@ class TableviewComponent {
3563
3565
  this.tableParams = signal(undefined, ...(ngDevMode ? [{ debugName: "tableParams" }] : []));
3564
3566
  this.hasItemSelectionAction = computed(() => [...this.toolbarLeftActions(), ...this.toolbarRightActions()].some(e => e.hasItemsSelection), ...(ngDevMode ? [{ debugName: "hasItemSelectionAction" }] : []));
3565
3567
  this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
3566
- this.templates = contentChildren(TemplateDirective, ...(ngDevMode ? [{ debugName: "templates" }] : []));
3567
- this.footerTemplate = computed(() => findTemplateByName([...this.templates()], 'footer'), ...(ngDevMode ? [{ debugName: "footerTemplate" }] : []));
3568
- this.rowExpandTemplate = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'), ...(ngDevMode ? [{ debugName: "rowExpandTemplate" }] : []));
3568
+ this.contentTableTemplates = contentChildren(TableTemplateDirective, ...(ngDevMode ? [{ debugName: "contentTableTemplates" }] : []));
3569
+ this.tableTemplates = computed(() => [...this.contentTableTemplates()], ...(ngDevMode ? [{ debugName: "tableTemplates" }] : []));
3569
3570
  }
3570
3571
  ngOnInit() {
3571
3572
  if (this.viewContainer) {
@@ -3577,25 +3578,25 @@ class TableviewComponent {
3577
3578
  }
3578
3579
  }
3579
3580
  onTableLoad(event) {
3580
- // TODO: table item in event
3581
3581
  this.tableParams.set(event.params);
3582
3582
  }
3583
3583
  selectionChange(selectedItems) {
3584
- // TODO: table item in selected item
3585
3584
  this.selectedItems.set(selectedItems);
3586
3585
  }
3587
3586
  filterActionsByPositions(actions, actionPositions) {
3588
3587
  return actions.filter(action => (action.positionTableviewCategories?.includes(TableviewActionDefaultCategories.READ) ?? true) && actionPositions.includes(action.position));
3589
3588
  }
3590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3591
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: TableviewComponent, isStandalone: true, selector: "mng-tableview", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideViewContainer()], queries: [{ propertyName: "templates", predicate: TemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "actionTable", first: true, predicate: (ActionTableComponent), descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <p-toolbar styleClass=\"mb-6\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor().table\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions()\"\n [selectionEnabled]=\"hasItemSelectionAction()\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [".mng-tableview .p-paginator .p-paginator-current{margin-left:auto}.mng-tableview .p-progressbar{height:.5rem;background-color:#d8dadc}.mng-tableview .p-progressbar .p-progressbar-value{background-color:#607d8b}.mng-tableview .p-datatable .p-datatable-scrollable-table>.p-datatable-thead{z-index:2}.mng-tableview .p-datatable .p-datatable-loading-overlay{z-index:3}.mng-tableview .p-datatable .p-datatable-header{text-align:left;font-size:1.5rem}.mng-tableview .p-datatable .p-datatable-thead>tr>th{text-align:left}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "tableClassName", "selectionMode", "selectionEnabled", "globalFilterFields", "rowReorderEnabled", "actions", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "captionComponentInstance", "columnActionComponentInstance", "rowReorder"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["mngTemplate"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3589
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3590
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: TableviewComponent, isStandalone: true, selector: "mng-tableview", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideViewContainer()], queries: [{ propertyName: "contentTableTemplates", predicate: TableTemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "actionTable", first: true, predicate: (ActionTableComponent), descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <p-toolbar styleClass=\"mb-6\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor().table\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions()\"\n [selectionEnabled]=\"hasItemSelectionAction()\"\n [selectionMode]=\"'multiple'\"\n [tableTemplates]=\"tableTemplates()\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [".mng-tableview .p-paginator .p-paginator-current{margin-left:auto}.mng-tableview .p-progressbar{height:.5rem;background-color:#d8dadc}.mng-tableview .p-progressbar .p-progressbar-value{background-color:#607d8b}.mng-tableview .p-datatable .p-datatable-scrollable-table>.p-datatable-thead{z-index:2}.mng-tableview .p-datatable .p-datatable-loading-overlay{z-index:3}.mng-tableview .p-datatable .p-datatable-header{text-align:left;font-size:1.5rem}.mng-tableview .p-datatable .p-datatable-thead>tr>th{text-align:left}\n"], dependencies: [{ kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "tableTemplates", "tableClassName", "selectionMode", "selectionEnabled", "globalFilterFields", "rowReorderEnabled", "actions", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "rowReorder"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3592
3591
  }
3593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableviewComponent, decorators: [{
3592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableviewComponent, decorators: [{
3594
3593
  type: Component,
3595
- args: [{ selector: 'mng-tableview', imports: [NgTemplateOutlet, ActionComponent, ActionTableComponent, TemplateDirective, RouterOutlet, Toolbar], providers: [provideViewContainer()], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <p-toolbar styleClass=\"mb-6\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor().table\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions()\"\n [selectionEnabled]=\"hasItemSelectionAction()\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [".mng-tableview .p-paginator .p-paginator-current{margin-left:auto}.mng-tableview .p-progressbar{height:.5rem;background-color:#d8dadc}.mng-tableview .p-progressbar .p-progressbar-value{background-color:#607d8b}.mng-tableview .p-datatable .p-datatable-scrollable-table>.p-datatable-thead{z-index:2}.mng-tableview .p-datatable .p-datatable-loading-overlay{z-index:3}.mng-tableview .p-datatable .p-datatable-header{text-align:left;font-size:1.5rem}.mng-tableview .p-datatable .p-datatable-thead>tr>th{text-align:left}\n"] }]
3596
- }] });
3594
+ args: [{ selector: 'mng-tableview', imports: [ActionComponent, ActionTableComponent, RouterOutlet, Toolbar], providers: [provideViewContainer()], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <p-toolbar styleClass=\"mb-6\">\n <ng-template #start>\n @for (action of toolbarLeftActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n <ng-template #end>\n @for (action of toolbarRightActions(); track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams()\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor().table\"\n [dataProvider]=\"dataProvider()\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions()\"\n [selectionEnabled]=\"hasItemSelectionAction()\"\n [selectionMode]=\"'multiple'\"\n [tableTemplates]=\"tableTemplates()\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [".mng-tableview .p-paginator .p-paginator-current{margin-left:auto}.mng-tableview .p-progressbar{height:.5rem;background-color:#d8dadc}.mng-tableview .p-progressbar .p-progressbar-value{background-color:#607d8b}.mng-tableview .p-datatable .p-datatable-scrollable-table>.p-datatable-thead{z-index:2}.mng-tableview .p-datatable .p-datatable-loading-overlay{z-index:3}.mng-tableview .p-datatable .p-datatable-header{text-align:left;font-size:1.5rem}.mng-tableview .p-datatable .p-datatable-thead>tr>th{text-align:left}\n"] }]
3595
+ }], propDecorators: { actionTable: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ActionTableComponent), { isSignal: true }] }], descriptor: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptor", required: true }] }], dataProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataProvider", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], contentTableTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TableTemplateDirective), { isSignal: true }] }] } });
3597
3596
 
3598
- function getActionParentFormEditor(ctx, editorType) {
3597
+ function getActionParentFormEditor(ctx,
3598
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
3599
+ editorType) {
3599
3600
  return ctx.injector.get(FormEditorService, null, { optional: true });
3600
3601
  }
3601
3602
  /**
@@ -3619,7 +3620,9 @@ function getActionFormEditor(ctx) {
3619
3620
  *
3620
3621
  * @return {TableComponent<Item, Sorts, Filters> | null} The parent table associated with the action context and descriptor, or null if not found.
3621
3622
  */
3622
- function getActionParentTable(ctx, tableType) {
3623
+ function getActionParentTable(ctx,
3624
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
3625
+ tableType) {
3623
3626
  return (ctx.injector.get(ActionTableComponent, null, { optional: true }) ?? ctx.injector.get(TableviewComponent, null, { optional: true })?.actionTable())?.table() ?? null;
3624
3627
  }
3625
3628
 
@@ -3653,10 +3656,10 @@ class DefaultDataProviderExecutor extends DataProviderExecutor {
3653
3656
  runDelete(ctx, fallback) {
3654
3657
  return fallback ? runFnFromDataProviderOrFallback(ctx, runDeleteFromDataProvider, fallback) : runDeleteFromDataProvider(ctx);
3655
3658
  }
3656
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: DefaultDataProviderExecutor, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3657
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: DefaultDataProviderExecutor }); }
3659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DefaultDataProviderExecutor, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3660
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DefaultDataProviderExecutor }); }
3658
3661
  }
3659
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: DefaultDataProviderExecutor, decorators: [{
3662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DefaultDataProviderExecutor, decorators: [{
3660
3663
  type: Injectable
3661
3664
  }] });
3662
3665
 
@@ -3695,10 +3698,10 @@ class ACommonsFormlyType extends FieldType {
3695
3698
  .pipe(startWith(this.formState.disabled ?? false), takeUntilDestroyed(this.destroyRef))
3696
3699
  .subscribe(value => this.formStateDisabledSubject.next(value));
3697
3700
  }
3698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3699
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: ACommonsFormlyType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3701
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3702
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ACommonsFormlyType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3700
3703
  }
3701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyType, decorators: [{
3704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyType, decorators: [{
3702
3705
  type: Directive
3703
3706
  }] });
3704
3707
 
@@ -3710,10 +3713,10 @@ class ACommonsFormlyFieldType extends ACommonsFormlyType {
3710
3713
  this.controlInputClassName = computed(() => ['mng-field-control-input', this.descriptorSig()?.className?.input].filter(c => !!c).join(' '), ...(ngDevMode ? [{ debugName: "controlInputClassName" }] : []));
3711
3714
  this.controlWithInputClassName = computed(() => this.controlClassName() + ' ' + this.controlInputClassName(), ...(ngDevMode ? [{ debugName: "controlWithInputClassName" }] : []));
3712
3715
  }
3713
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyFieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3714
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: ACommonsFormlyFieldType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3716
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyFieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3717
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ACommonsFormlyFieldType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3715
3718
  }
3716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyFieldType, decorators: [{
3719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyFieldType, decorators: [{
3717
3720
  type: Directive
3718
3721
  }] });
3719
3722
 
@@ -3760,10 +3763,10 @@ class FormlyFieldActionComponent extends ACommonsFormlyFieldType {
3760
3763
  this.actionMessage = res.message;
3761
3764
  }
3762
3765
  }
3763
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3764
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldActionComponent, isStandalone: true, selector: "mng-formly-field-action", usesInheritance: true, ngImport: i0, template: "<div class=\"mng-field flex items-center\">\n <button\n type=\"button\"\n pButton\n [icon]=\"$any(descriptor.button?.icon)\"\n [label]=\"$any(descriptor.button?.label === null ? null : (descriptor.button?.label ?? props!.label)) | translate\"\n [pTooltip]=\"$any(descriptor.button?.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass()\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\" closable=\"true\"></p-message>\n }\n</div>\n", dependencies: [{ kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3766
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3767
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldActionComponent, isStandalone: true, selector: "mng-formly-field-action", usesInheritance: true, ngImport: i0, template: "<div class=\"mng-field flex items-center\">\n <button\n type=\"button\"\n pButton\n [icon]=\"$any(descriptor.button?.icon)\"\n [label]=\"$any(descriptor.button?.label === null ? null : (descriptor.button?.label ?? props!.label)) | translate\"\n [pTooltip]=\"$any(descriptor.button?.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass()\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\" closable=\"true\"></p-message>\n }\n</div>\n", dependencies: [{ kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3765
3768
  }
3766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldActionComponent, decorators: [{
3769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldActionComponent, decorators: [{
3767
3770
  type: Component,
3768
3771
  args: [{ selector: 'mng-formly-field-action', imports: [TranslatePipe, Tooltip, Message, ButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mng-field flex items-center\">\n <button\n type=\"button\"\n pButton\n [icon]=\"$any(descriptor.button?.icon)\"\n [label]=\"$any(descriptor.button?.label === null ? null : (descriptor.button?.label ?? props!.label)) | translate\"\n [pTooltip]=\"$any(descriptor.button?.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass()\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\" closable=\"true\"></p-message>\n }\n</div>\n" }]
3769
3772
  }] });
@@ -3793,10 +3796,10 @@ class FormlyFieldAutocompleteComponent extends ACommonsFormlyFieldType {
3793
3796
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
3794
3797
  });
3795
3798
  }
3796
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3797
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\">\n</mng-autocomplete>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim", "disabled"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3799
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3800
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\">\n</mng-autocomplete>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim", "disabled", "templates"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3798
3801
  }
3799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
3802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
3800
3803
  type: Component,
3801
3804
  args: [{ selector: 'mng-formly-field-autocomplete', imports: [AutocompleteComponent, ReactiveFormsModule, TranslatePipe, FormlyAttributes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\">\n</mng-autocomplete>\n" }]
3802
3805
  }] });
@@ -3822,10 +3825,10 @@ class FormlyFieldCustomComponent extends ACommonsFormlyFieldType {
3822
3825
  ...this.descriptor.customComponentInputs
3823
3826
  };
3824
3827
  }
3825
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3826
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: FormlyFieldCustomComponent, isStandalone: true, selector: "mng-formly-field-custom", usesInheritance: true, ngImport: i0, template: `<ng-container [mngComponent]="descriptor.customComponentType!" [inputs]="inputs"></ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3828
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3829
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: FormlyFieldCustomComponent, isStandalone: true, selector: "mng-formly-field-custom", usesInheritance: true, ngImport: i0, template: `<ng-container [mngComponent]="descriptor.customComponentType!" [inputs]="inputs"></ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3827
3830
  }
3828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
3831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
3829
3832
  type: Component,
3830
3833
  args: [{
3831
3834
  selector: 'mng-formly-field-custom',
@@ -3855,10 +3858,10 @@ class FormlyFieldDropdownComponent extends ACommonsFormlyFieldType {
3855
3858
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
3856
3859
  });
3857
3860
  }
3858
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3859
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: FormlyFieldDropdownComponent, isStandalone: true, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsLabelTranslate]=\"descriptor.optionsLabelTranslate\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [optionsDisabledProperty]=\"descriptor.optionsDisabledProperty\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [showClear]=\"!props.required\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\">\n</mng-dropdown>\n", dependencies: [{ kind: "component", type: DropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "options", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur", "loading", "disabled", "allowInput", "appendTo", "inlineSearch", "searchTrim"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3861
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3862
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: FormlyFieldDropdownComponent, isStandalone: true, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsLabelTranslate]=\"descriptor.optionsLabelTranslate\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [optionsDisabledProperty]=\"descriptor.optionsDisabledProperty\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [showClear]=\"!props.required\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\">\n</mng-dropdown>\n", dependencies: [{ kind: "component", type: DropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "options", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur", "loading", "disabled", "allowInput", "appendTo", "templates", "inlineSearch", "searchTrim"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3860
3863
  }
3861
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldDropdownComponent, decorators: [{
3864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldDropdownComponent, decorators: [{
3862
3865
  type: Component,
3863
3866
  args: [{ selector: 'mng-formly-field-dropdown', imports: [DropdownComponent, ReactiveFormsModule, TranslatePipe, FormlyAttributes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsLabelTranslate]=\"descriptor.optionsLabelTranslate\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [optionsDisabledProperty]=\"descriptor.optionsDisabledProperty\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [showClear]=\"!props.required\"\n [className]=\"controlInputClassName()\"\n [class]=\"controlClassName()\">\n</mng-dropdown>\n" }]
3864
3867
  }] });
@@ -3904,10 +3907,10 @@ class FormlyFieldLabelPipe {
3904
3907
  transform(value, editorDescriptor) {
3905
3908
  return getEditorFieldLabel(value, editorDescriptor) ?? '';
3906
3909
  }
3907
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3908
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLabelPipe, isStandalone: true, name: "mngFormlyFieldLabel" }); }
3910
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3911
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLabelPipe, isStandalone: true, name: "mngFormlyFieldLabel" }); }
3909
3912
  }
3910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLabelPipe, decorators: [{
3913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLabelPipe, decorators: [{
3911
3914
  type: Pipe,
3912
3915
  args: [{
3913
3916
  name: 'mngFormlyFieldLabel',
@@ -3916,10 +3919,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
3916
3919
  }] });
3917
3920
 
3918
3921
  class ACommonsFormlyGroupType extends ACommonsFormlyType {
3919
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyGroupType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3920
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: ACommonsFormlyGroupType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3922
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyGroupType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3923
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ACommonsFormlyGroupType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3921
3924
  }
3922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ACommonsFormlyGroupType, decorators: [{
3925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ACommonsFormlyGroupType, decorators: [{
3923
3926
  type: Directive
3924
3927
  }] });
3925
3928
 
@@ -3937,10 +3940,10 @@ class FormlyFieldFieldsetComponent extends ACommonsFormlyGroupType {
3937
3940
  }));
3938
3941
  }, ...(ngDevMode ? [{ debugName: "fieldGroup" }] : []));
3939
3942
  }
3940
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3941
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n", dependencies: [{ kind: "component", type: Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3943
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3944
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n", dependencies: [{ kind: "component", type: Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3942
3945
  }
3943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
3946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
3944
3947
  type: Component,
3945
3948
  args: [{ selector: 'mng-formly-field-fieldset', imports: [TranslatePipe, FormlyFieldLabelPipe, Fieldset, FormlyField], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n" }]
3946
3949
  }] });
@@ -4092,10 +4095,10 @@ class FormlyFieldInputComponent extends ACommonsFormlyFieldType {
4092
4095
  return 'pi-file';
4093
4096
  }
4094
4097
  }
4095
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4096
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldInputComponent, isStandalone: true, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "@switch (props.type) {\n @case ('number') {\n <p-inputNumber\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"(descriptor.numberAutoCorrect ? descriptor.numberMin : undefined) ?? NUMBER_MIN_SAFE\"\n [max]=\"(descriptor.numberAutoCorrect ? descriptor.numberMax : undefined) ?? NUMBER_MAX_SAFE\"\n [step]=\"descriptor.numberStep ?? 1\"\n [useGrouping]=\"descriptor.numberUseGrouping\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\"\n [styleClass]=\"controlClassName()\"\n [inputStyleClass]=\"controlInputClassName()\"\n [locale]=\"descriptor.locale ?? applicationLocale\"\n [mode]=\"numberFieldMode\"\n [prefix]=\"descriptor.numberPrefix\"\n [suffix]=\"descriptor.numberSuffix\"\n [currency]=\"currency\"\n [currencyDisplay]=\"descriptor.currencyDisplay\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\">\n </p-inputNumber>\n }\n @case ('switch') {\n <div class=\"flex flex-col\">\n <label [for]=\"key\" [class]=\"labelClassName()\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <p-toggle-switch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"controlClassName()\"></p-toggle-switch>\n @if (showError) {\n <small class=\"mng-field-validation-messages\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n }\n @case ('radio') {\n @for (option of descriptor.radioOptions; track option) {\n <div [id]=\"key\" class=\"mb-2\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"option.value\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"controlClassName()\"></p-radioButton>\n <label [for]=\"option.value\" [class]=\"'ml-2 ' + (descriptor.radioLabelClassName ?? '')\">{{ option.title | translate }}</label>\n </div>\n }\n }\n @case ('textarea') {\n <textarea\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [rows]=\"descriptor.rows ?? 3\"\n pTextarea\n [class]=\"controlWithInputClassName()\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [mngInputTrim]=\"descriptor.textTrim ?? 'both'\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\">\n </textarea>\n }\n @case ('mask') {\n <p-inputMask\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mask]=\"descriptor.mask\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [slotChar]=\"$any(descriptor.slotChar)\"\n [styleClass]=\"controlWithInputClassName()\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\" />\n }\n @case ('file') {\n <p-fileUpload\n #fileUploadInput\n [id]=\"$any(key)\"\n [disabled]=\"iFormControl.disabled\"\n [multiple]=\"descriptor.fileMultiple ?? false\"\n [accept]=\"descriptor.fileAccept ?? (descriptor.fieldType === DESC_INPUT_TYPE_IMAGE_FILE ? 'image/*' : undefined)\"\n [maxFileSize]=\"descriptor.fileMaxFileSize ?? 500000\"\n [showUploadButton]=\"false\"\n chooseStyleClass=\"p-button-sm p-button-outlined\"\n cancelStyleClass=\"p-button-sm p-button-outlined\"\n [styleClass]=\"controlClassName()\"\n mode=\"advanced\"\n (onSelect)=\"onFileSelect($event)\"\n (onRemove)=\"onFileRemove($event)\"\n (onClear)=\"onFileClear($event)\">\n <ng-template #file let-file let-idx=\"index\">\n <div class=\"p-fileupload-file\">\n <div>\n @if (fileUploadInput.isImage(file)) {\n @if (descriptor.imagePreview) {\n @if (descriptor.imagePreviewComponent) {\n <ng-container\n [mngComponent]=\"descriptor.imagePreviewComponent\"\n [inputs]=\"{\n imageUrl: file.objectURL\n }\">\n </ng-container>\n } @else if (!isFileImageSvg(file) || descriptor.imagePreviewAllowSvg) {\n <img [src]=\"file.objectURL\" [width]=\"fileUploadInput.previewWidth\" (error)=\"fileUploadInput.imageError($event)\" />\n } @else {\n <span class=\"flex items-center justify-center\">\n <i class=\"pi pi-image text-2xl\"></i>\n </span>\n }\n } @else {\n <span class=\"flex items-center justify-center\">\n <i class=\"pi pi-image text-2xl\"></i>\n </span>\n }\n } @else {\n <span class=\"flex items-center justify-center\">\n <i [class]=\"'pi ' + getFileDocumentTypeIcon(file) + ' text-2xl'\"></i>\n </span>\n }\n </div>\n <div class=\"p-fileupload-file-info\">\n <div class=\"p-fileupload-file-name\">{{ file.name }}</div>\n <span class=\"p-fileupload-file-size\">{{ fileUploadInput.formatSize(file.size) }}</span>\n </div>\n <div class=\"p-fileupload-file-actions\">\n <p-button\n icon=\"pi pi-times\"\n severity=\"danger\"\n size=\"small\"\n outlined=\"true\"\n rounded=\"true\"\n (click)=\"fileUploadInput.remove($event, idx)\"\n [disabled]=\"fileUploadInput.uploading\" />\n </div>\n </div>\n </ng-template>\n <ng-template #empty>\n <div class=\"text-gray-300 mng-fileupload-dragdrop-zone\">\n <span><i class=\"pi pi-file-import mr-2\"></i>{{ 'fileUpload.dragAndDrop' | translate }}</span>\n </div>\n </ng-template>\n </p-fileUpload>\n }\n @case ('imageUrl') {\n <div>\n @if (descriptor.imagePreview) {\n <div class=\"flex flex-wrap justify-start\">\n @for (image of imageFormArray.controls; track image; let idx = $index) {\n @if (imageFormArray.at(idx).valid && imageFormArray.at(idx).value) {\n @if (descriptor.imagePreviewComponent) {\n <ng-container\n [mngComponent]=\"descriptor.imagePreviewComponent\"\n [inputs]=\"{\n imageUrl: imageFormArray.at(idx).value\n }\">\n </ng-container>\n } @else if (!isUrlSvgImage(imageFormArray.at(idx).value) || descriptor.imagePreviewAllowSvg) {\n <p-image [src]=\"imageFormArray.at(idx).value\" [preview]=\"true\" (onImageError)=\"onImageUrlLoadError()\" styleClass=\"mng-image m-2\"></p-image>\n } @else {\n <span class=\"mng-image m-2 p-image-preview mng-no-image\">\n <div class=\"p-image-preview-indicator\">\n <i class=\"p-image-preview-icon pi pi-ban\"></i>\n </div>\n </span>\n }\n }\n }\n </div>\n }\n @if (!descriptor.imagePreview || descriptor.imageUrlInputVisibleOnDisabled || !iFormControl.disabled) {\n @for (imageCtrlName of imageFormArray.controls; track imageCtrlName; let idx = $index) {\n <p-inputgroup [styleClass]=\"controlClassName() + ' mb-1'\">\n <input\n pInputText\n [placeholder]=\"'mngEditor.imageUrlPlaceholder' | translate\"\n [id]=\"$any(key)\"\n type=\"text\"\n [class]=\"controlInputClassName()\"\n [formControl]=\"$any(imageFormArray.at(idx))\"\n [formlyAttributes]=\"field\" />\n @if (descriptor.fileMultiple && !iFormControl.disabled && imageFormArray.controls.length > 1) {\n <p-inputgroup-addon>\n <p-button type=\"button\" icon=\"pi pi-minus\" severity=\"secondary\" (click)=\"removeImageUrlAt(idx)\"></p-button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n }\n @if (descriptor.fileMultiple && !iFormControl.disabled) {\n <p-button\n type=\"button\"\n icon=\"pi pi-plus\"\n size=\"small\"\n severity=\"primary\"\n outlined=\"true\"\n styleClass=\"mt-2\"\n [label]=\"'mngEditor.imageUrlAdd' | translate\"\n (click)=\"addImageUrl()\"></p-button>\n }\n }\n </div>\n }\n @default {\n <input\n pInputText\n [class]=\"controlWithInputClassName()\"\n [id]=\"$any(key)\"\n [type]=\"props.type || 'text'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mngInputTrim]=\"descriptor.textTrim ?? 'both'\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n }\n}\n", styles: ["mng-formly-field-input .mng-image.p-image-preview{height:150px}mng-formly-field-input .mng-image.p-image-preview img{max-height:100%}mng-formly-field-input .mng-image.p-image-preview.mng-no-image{width:150px}mng-formly-field-input .mng-image.p-image-preview.mng-no-image .p-image-preview-indicator{background-color:var(--p-surface-200);height:100%;opacity:1;cursor:default;display:flex;align-items:center;justify-content:center}mng-formly-field-input .mng-image.p-image-preview.mng-no-image .p-image-preview-indicator .p-image-preview-icon{color:var(--p-primary-800);font-size:1.5rem}mng-formly-field-input .p-fileupload .p-fileupload-content{gap:var(--mng-fileupload-content-gap, 0);padding:var(--p-panel-header-padding)}mng-formly-field-input .p-fileupload .p-fileupload-content .p-progressbar{display:none}mng-formly-field-input .p-fileupload .p-fileupload-content .mng-fileupload-dragdrop-zone{height:5rem;display:flex;border:dashed;border-radius:8px;align-items:center;justify-content:center}mng-formly-field-input .p-fileupload .p-fileupload-content .p-fileupload-file-list .p-fileupload-file>div:first-child{flex-grow:0;flex-shrink:0;width:50px;padding:0}mng-formly-field-input .p-fileupload .p-fileupload-content .p-fileupload-file-list .p-fileupload-file img{max-width:100%}mng-formly-field-input .p-fileupload .p-fileupload-buttonbar span.p-fileupload-choose{width:auto}mng-formly-field-input .p-fileupload .p-fileupload-buttonbar p-button button{width:auto}\n"], dependencies: [{ kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "styleClass", "autofocus", "binary", "variant", "size"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabel", "ariaLabelledBy", "ariaRequired", "readonly", "unmask", "characterPattern", "autofocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "directive", type: InputTrimDirective, selector: "[mngInputTrim]", inputs: ["mngInputTrim"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "component", type: ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "component", type: Image, selector: "p-image", inputs: ["imageClass", "imageStyle", "styleClass", "src", "srcSet", "sizes", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "preview", "showTransitionOptions", "hideTransitionOptions", "appendTo"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "directive", type: InputEmptyValueDirective, selector: "[mngInputEmptyValue]", inputs: ["mngInputEmptyValue"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4098
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4099
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldInputComponent, isStandalone: true, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "@switch (props.type) {\n @case ('number') {\n <p-inputNumber\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"(descriptor.numberAutoCorrect ? descriptor.numberMin : undefined) ?? NUMBER_MIN_SAFE\"\n [max]=\"(descriptor.numberAutoCorrect ? descriptor.numberMax : undefined) ?? NUMBER_MAX_SAFE\"\n [step]=\"descriptor.numberStep ?? 1\"\n [useGrouping]=\"descriptor.numberUseGrouping\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\"\n [styleClass]=\"controlClassName()\"\n [inputStyleClass]=\"controlInputClassName()\"\n [locale]=\"descriptor.locale ?? applicationLocale\"\n [mode]=\"numberFieldMode\"\n [prefix]=\"descriptor.numberPrefix\"\n [suffix]=\"descriptor.numberSuffix\"\n [currency]=\"currency\"\n [currencyDisplay]=\"descriptor.currencyDisplay\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\">\n </p-inputNumber>\n }\n @case ('switch') {\n <div class=\"flex flex-col\">\n <label [for]=\"key\" [class]=\"labelClassName()\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <p-toggle-switch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"controlClassName()\"></p-toggle-switch>\n @if (showError) {\n <small class=\"mng-field-validation-messages\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n }\n @case ('radio') {\n @for (option of descriptor.radioOptions; track option) {\n <div [id]=\"key\" class=\"mb-2\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"option.value\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"controlClassName()\"></p-radioButton>\n <label [for]=\"option.value\" [class]=\"'ml-2 ' + (descriptor.radioLabelClassName ?? '')\">{{ option.title | translate }}</label>\n </div>\n }\n }\n @case ('textarea') {\n <textarea\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [rows]=\"descriptor.rows ?? 3\"\n pTextarea\n [class]=\"controlWithInputClassName()\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [mngInputTrim]=\"descriptor.textTrim ?? 'both'\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\">\n </textarea>\n }\n @case ('mask') {\n <p-inputMask\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mask]=\"descriptor.mask\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n [slotChar]=\"$any(descriptor.slotChar)\"\n [styleClass]=\"controlWithInputClassName()\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\" />\n }\n @case ('file') {\n <p-fileUpload\n #fileUploadInput\n [id]=\"$any(key)\"\n [disabled]=\"iFormControl.disabled\"\n [multiple]=\"descriptor.fileMultiple ?? false\"\n [accept]=\"descriptor.fileAccept ?? (descriptor.fieldType === DESC_INPUT_TYPE_IMAGE_FILE ? 'image/*' : undefined)\"\n [maxFileSize]=\"descriptor.fileMaxFileSize ?? 500000\"\n [showUploadButton]=\"false\"\n chooseStyleClass=\"p-button-sm p-button-outlined\"\n cancelStyleClass=\"p-button-sm p-button-outlined\"\n [styleClass]=\"controlClassName()\"\n mode=\"advanced\"\n (onSelect)=\"onFileSelect($event)\"\n (onRemove)=\"onFileRemove($event)\"\n (onClear)=\"onFileClear($event)\">\n <ng-template #file let-file let-idx=\"index\">\n <div class=\"p-fileupload-file\">\n <div>\n @if (fileUploadInput.isImage(file)) {\n @if (descriptor.imagePreview) {\n @if (descriptor.imagePreviewComponent) {\n <ng-container\n [mngComponent]=\"descriptor.imagePreviewComponent\"\n [inputs]=\"{\n imageUrl: file.objectURL\n }\">\n </ng-container>\n } @else if (!isFileImageSvg(file) || descriptor.imagePreviewAllowSvg) {\n <img [src]=\"file.objectURL\" [width]=\"fileUploadInput.previewWidth\" (error)=\"fileUploadInput.imageError($event)\" />\n } @else {\n <span class=\"flex items-center justify-center\">\n <i class=\"pi pi-image text-2xl\"></i>\n </span>\n }\n } @else {\n <span class=\"flex items-center justify-center\">\n <i class=\"pi pi-image text-2xl\"></i>\n </span>\n }\n } @else {\n <span class=\"flex items-center justify-center\">\n <i [class]=\"'pi ' + getFileDocumentTypeIcon(file) + ' text-2xl'\"></i>\n </span>\n }\n </div>\n <div class=\"p-fileupload-file-info\">\n <div class=\"p-fileupload-file-name\">{{ file.name }}</div>\n <span class=\"p-fileupload-file-size\">{{ fileUploadInput.formatSize(file.size) }}</span>\n </div>\n <div class=\"p-fileupload-file-actions\">\n <p-button\n icon=\"pi pi-times\"\n severity=\"danger\"\n size=\"small\"\n outlined=\"true\"\n rounded=\"true\"\n (click)=\"fileUploadInput.remove($event, idx)\"\n [disabled]=\"fileUploadInput.uploading\" />\n </div>\n </div>\n </ng-template>\n <ng-template #empty>\n <div class=\"text-gray-300 mng-fileupload-dragdrop-zone\">\n <span><i class=\"pi pi-file-import mr-2\"></i>{{ 'fileUpload.dragAndDrop' | translate }}</span>\n </div>\n </ng-template>\n </p-fileUpload>\n }\n @case ('imageUrl') {\n <div>\n @if (descriptor.imagePreview) {\n <div class=\"flex flex-wrap justify-start\">\n @for (image of imageFormArray.controls; track image; let idx = $index) {\n @if (imageFormArray.at(idx).valid && imageFormArray.at(idx).value) {\n @if (descriptor.imagePreviewComponent) {\n <ng-container\n [mngComponent]=\"descriptor.imagePreviewComponent\"\n [inputs]=\"{\n imageUrl: imageFormArray.at(idx).value\n }\">\n </ng-container>\n } @else if (!isUrlSvgImage(imageFormArray.at(idx).value) || descriptor.imagePreviewAllowSvg) {\n <p-image [src]=\"imageFormArray.at(idx).value\" [preview]=\"true\" (onImageError)=\"onImageUrlLoadError()\" styleClass=\"mng-image m-2\"></p-image>\n } @else {\n <span class=\"mng-image m-2 p-image-preview mng-no-image\">\n <div class=\"p-image-preview-indicator\">\n <i class=\"p-image-preview-icon pi pi-ban\"></i>\n </div>\n </span>\n }\n }\n }\n </div>\n }\n @if (!descriptor.imagePreview || descriptor.imageUrlInputVisibleOnDisabled || !iFormControl.disabled) {\n @for (imageCtrlName of imageFormArray.controls; track imageCtrlName; let idx = $index) {\n <p-inputgroup [styleClass]=\"controlClassName() + ' mb-1'\">\n <input\n pInputText\n [placeholder]=\"'mngEditor.imageUrlPlaceholder' | translate\"\n [id]=\"$any(key)\"\n type=\"text\"\n [class]=\"controlInputClassName()\"\n [formControl]=\"$any(imageFormArray.at(idx))\"\n [formlyAttributes]=\"field\" />\n @if (descriptor.fileMultiple && !iFormControl.disabled && imageFormArray.controls.length > 1) {\n <p-inputgroup-addon>\n <p-button type=\"button\" icon=\"pi pi-minus\" severity=\"secondary\" (click)=\"removeImageUrlAt(idx)\"></p-button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n }\n @if (descriptor.fileMultiple && !iFormControl.disabled) {\n <p-button\n type=\"button\"\n icon=\"pi pi-plus\"\n size=\"small\"\n severity=\"primary\"\n outlined=\"true\"\n styleClass=\"mt-2\"\n [label]=\"'mngEditor.imageUrlAdd' | translate\"\n (click)=\"addImageUrl()\"></p-button>\n }\n }\n </div>\n }\n @default {\n <input\n pInputText\n [class]=\"controlWithInputClassName()\"\n [id]=\"$any(key)\"\n [type]=\"props.type || 'text'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mngInputTrim]=\"descriptor.textTrim ?? 'both'\"\n [mngInputEmptyValue]=\"descriptor.emptyValue ?? 'undefined'\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n }\n}\n", styles: ["mng-formly-field-input .mng-image.p-image-preview{height:150px}mng-formly-field-input .mng-image.p-image-preview img{max-height:100%}mng-formly-field-input .mng-image.p-image-preview.mng-no-image{width:150px}mng-formly-field-input .mng-image.p-image-preview.mng-no-image .p-image-preview-indicator{background-color:var(--p-surface-200);height:100%;opacity:1;cursor:default;display:flex;align-items:center;justify-content:center}mng-formly-field-input .mng-image.p-image-preview.mng-no-image .p-image-preview-indicator .p-image-preview-icon{color:var(--p-primary-800);font-size:1.5rem}mng-formly-field-input .p-fileupload .p-fileupload-content{gap:var(--mng-fileupload-content-gap, 0);padding:var(--p-panel-header-padding)}mng-formly-field-input .p-fileupload .p-fileupload-content .p-progressbar{display:none}mng-formly-field-input .p-fileupload .p-fileupload-content .mng-fileupload-dragdrop-zone{height:5rem;display:flex;border:dashed;border-radius:8px;align-items:center;justify-content:center}mng-formly-field-input .p-fileupload .p-fileupload-content .p-fileupload-file-list .p-fileupload-file>div:first-child{flex-grow:0;flex-shrink:0;width:50px;padding:0}mng-formly-field-input .p-fileupload .p-fileupload-content .p-fileupload-file-list .p-fileupload-file img{max-width:100%}mng-formly-field-input .p-fileupload .p-fileupload-buttonbar span.p-fileupload-choose{width:auto}mng-formly-field-input .p-fileupload .p-fileupload-buttonbar p-button button{width:auto}\n"], dependencies: [{ kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "styleClass", "autofocus", "binary", "variant", "size"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabel", "ariaLabelledBy", "ariaRequired", "readonly", "unmask", "characterPattern", "autofocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "directive", type: InputTrimDirective, selector: "[mngInputTrim]", inputs: ["mngInputTrim"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "component", type: ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "component", type: Image, selector: "p-image", inputs: ["imageClass", "imageStyle", "styleClass", "src", "srcSet", "sizes", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "preview", "showTransitionOptions", "hideTransitionOptions", "appendTo"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "directive", type: InputEmptyValueDirective, selector: "[mngInputEmptyValue]", inputs: ["mngInputEmptyValue"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4097
4100
  }
4098
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldInputComponent, decorators: [{
4101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldInputComponent, decorators: [{
4099
4102
  type: Component,
4100
4103
  args: [{ selector: 'mng-formly-field-input', imports: [
4101
4104
  InputNumber,
@@ -4129,10 +4132,10 @@ class FormlyFieldLabelComponent extends ACommonsFormlyFieldType {
4129
4132
  super.ngOnInit();
4130
4133
  this.formControl?.patchValue(this.descriptor.label);
4131
4134
  }
4132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: FormlyFieldLabelComponent, isStandalone: true, selector: "mng-formly-field-label", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: FormlyFieldLabelComponent, isStandalone: true, selector: "mng-formly-field-label", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4134
4137
  }
4135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLabelComponent, decorators: [{
4138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLabelComponent, decorators: [{
4136
4139
  type: Component,
4137
4140
  args: [{ selector: 'mng-formly-field-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
4138
4141
  }], propDecorators: { className: [{
@@ -4245,18 +4248,6 @@ class FormlyFieldLookupDialogComponent extends ACommonsFormlyFieldType {
4245
4248
  onSelectionChange(item) {
4246
4249
  this.dialogSelectedItem = item;
4247
4250
  }
4248
- onCaptionCmpInst(instance) {
4249
- this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, this, {
4250
- eventSubtype: FormFieldEventDialogSubtype.TABLE_CAPTION_COMPONENT_INSTANCE,
4251
- captionComponentInstance: instance
4252
- });
4253
- }
4254
- onColumnActionCmpInst(instance) {
4255
- this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, this, {
4256
- eventSubtype: FormFieldEventDialogSubtype.TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE,
4257
- captionComponentInstance: instance
4258
- });
4259
- }
4260
4251
  clear() {
4261
4252
  this.formControl.setValue(undefined);
4262
4253
  this.formControl.markAsTouched();
@@ -4296,12 +4287,24 @@ class FormlyFieldLookupDialogComponent extends ACommonsFormlyFieldType {
4296
4287
  this.fieldLabelFormControl.setValue(value);
4297
4288
  }
4298
4289
  }
4299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLookupDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldLookupDialogComponent, isStandalone: true, selector: "mng-formly-field-lookup-dialog", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-search\" text=\"true\" severity=\"secondary\" [disabled]=\"formControl.disabled\" (click)=\"openSelectDialog()\"></button>\n </p-inputgroup-addon>\n <input\n pInputText\n type=\"text\"\n (click)=\"openSelectDialog()\"\n [id]=\"$any(key)\"\n [readonly]=\"true\"\n [formlyAttributes]=\"field\"\n [formControl]=\"fieldLabelFormControl\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n @if (!props.required && formControl.value && !formControl.disabled) {\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"clear()\"></button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: props.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-formly-field-lookup-dialog\">\n <ng-template #content>\n <mng-table\n [descriptor]=\"descriptor.dialogTableDescriptor!\"\n [dataProvider]=\"descriptor.dialogTableDataProvider\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading()\"\n [captionComponent]=\"config.table?.captionComponent\"\n [columnCustomLastComponent]=\"config.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnCustomLastComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n </ng-template>\n\n <ng-template #footer>\n <button pButton type=\"button\" severity=\"secondary\" text=\"true\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n (click)=\"onAddItem()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n </p-dialog>\n</p-inputgroup>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance", "rowReorder"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4290
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLookupDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldLookupDialogComponent, isStandalone: true, selector: "mng-formly-field-lookup-dialog", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-search\" text=\"true\" severity=\"secondary\" [disabled]=\"formControl.disabled\" (click)=\"openSelectDialog()\"></button>\n </p-inputgroup-addon>\n <input\n pInputText\n type=\"text\"\n (click)=\"openSelectDialog()\"\n [id]=\"$any(key)\"\n [readonly]=\"true\"\n [formlyAttributes]=\"field\"\n [formControl]=\"fieldLabelFormControl\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n @if (!props.required && formControl.value && !formControl.disabled) {\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"clear()\"></button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: props.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-formly-field-lookup-dialog\">\n <ng-template #content>\n <mng-table\n [descriptor]=\"descriptor.dialogTableDescriptor!\"\n [dataProvider]=\"descriptor.dialogTableDataProvider\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n @if (config.table?.headerTitleComponent; as captionComponent) {\n <ng-template mngTableTemplate name=\"headerTitle\">\n <ng-container [mngComponent]=\"captionComponent\" attachToHost=\"true\"></ng-container>\n </ng-template>\n }\n @if (config.table?.columnActionComponent; as columnActionComponent) {\n <ng-template mngTableTemplate name=\"columnCustomLast\">\n <ng-container [mngComponent]=\"columnActionComponent\" attachToHost=\"true\"></ng-container>\n </ng-template>\n }\n </mng-table>\n </ng-template>\n\n <ng-template #footer>\n <button pButton type=\"button\" severity=\"secondary\" text=\"true\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n (click)=\"onAddItem()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n </p-dialog>\n</p-inputgroup>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "globalFilterFields", "templates"], outputs: ["tableLoad", "cellClick", "selectionChange", "rowReorder"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4301
4292
  }
4302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldLookupDialogComponent, decorators: [{
4293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldLookupDialogComponent, decorators: [{
4303
4294
  type: Component,
4304
- args: [{ selector: 'mng-formly-field-lookup-dialog', imports: [TranslatePipe, ReactiveFormsModule, Dialog, TableComponent, InputText, InputGroup, InputGroupAddon, ButtonDirective, FormlyAttributes], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-search\" text=\"true\" severity=\"secondary\" [disabled]=\"formControl.disabled\" (click)=\"openSelectDialog()\"></button>\n </p-inputgroup-addon>\n <input\n pInputText\n type=\"text\"\n (click)=\"openSelectDialog()\"\n [id]=\"$any(key)\"\n [readonly]=\"true\"\n [formlyAttributes]=\"field\"\n [formControl]=\"fieldLabelFormControl\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n @if (!props.required && formControl.value && !formControl.disabled) {\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"clear()\"></button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: props.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-formly-field-lookup-dialog\">\n <ng-template #content>\n <mng-table\n [descriptor]=\"descriptor.dialogTableDescriptor!\"\n [dataProvider]=\"descriptor.dialogTableDataProvider\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading()\"\n [captionComponent]=\"config.table?.captionComponent\"\n [columnCustomLastComponent]=\"config.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnCustomLastComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n </ng-template>\n\n <ng-template #footer>\n <button pButton type=\"button\" severity=\"secondary\" text=\"true\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n (click)=\"onAddItem()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n </p-dialog>\n</p-inputgroup>\n" }]
4295
+ args: [{ selector: 'mng-formly-field-lookup-dialog', imports: [
4296
+ TranslatePipe,
4297
+ ReactiveFormsModule,
4298
+ Dialog,
4299
+ TableComponent,
4300
+ InputText,
4301
+ InputGroup,
4302
+ InputGroupAddon,
4303
+ ButtonDirective,
4304
+ FormlyAttributes,
4305
+ TableTemplateDirective,
4306
+ ComponentDirective
4307
+ ], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup [styleClass]=\"controlClassName()\">\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-search\" text=\"true\" severity=\"secondary\" [disabled]=\"formControl.disabled\" (click)=\"openSelectDialog()\"></button>\n </p-inputgroup-addon>\n <input\n pInputText\n type=\"text\"\n (click)=\"openSelectDialog()\"\n [id]=\"$any(key)\"\n [readonly]=\"true\"\n [formlyAttributes]=\"field\"\n [formControl]=\"fieldLabelFormControl\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\" />\n @if (!props.required && formControl.value && !formControl.disabled) {\n <p-inputgroup-addon>\n <button pButton type=\"button\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"clear()\"></button>\n </p-inputgroup-addon>\n }\n </p-inputgroup>\n\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: props.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-formly-field-lookup-dialog\">\n <ng-template #content>\n <mng-table\n [descriptor]=\"descriptor.dialogTableDescriptor!\"\n [dataProvider]=\"descriptor.dialogTableDataProvider\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n @if (config.table?.headerTitleComponent; as captionComponent) {\n <ng-template mngTableTemplate name=\"headerTitle\">\n <ng-container [mngComponent]=\"captionComponent\" attachToHost=\"true\"></ng-container>\n </ng-template>\n }\n @if (config.table?.columnActionComponent; as columnActionComponent) {\n <ng-template mngTableTemplate name=\"columnCustomLast\">\n <ng-container [mngComponent]=\"columnActionComponent\" attachToHost=\"true\"></ng-container>\n </ng-template>\n }\n </mng-table>\n </ng-template>\n\n <ng-template #footer>\n <button pButton type=\"button\" severity=\"secondary\" text=\"true\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n (click)=\"onAddItem()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n </p-dialog>\n</p-inputgroup>\n" }]
4305
4308
  }] });
4306
4309
 
4307
4310
  const labelInfoTooltipDefaultIcon = 'pi pi-info-circle';
@@ -4523,12 +4526,12 @@ class FormlyFieldTableDialogFormComponent extends ACommonsFormlyFieldType {
4523
4526
  }
4524
4527
  return false;
4525
4528
  }
4526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4527
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldTableDialogFormComponent, isStandalone: true, selector: "mng-formly-table-dialog-form-field", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<mng-action-table\n [descriptor]=\"descriptor.tableDescriptor\"\n [items]=\"items()\"\n [actions]=\"actions\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n tableClassName=\"mng-table-header-compact pb-2\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n <div>\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [hostComponent]=\"this\"></mng-action>\n }\n </div>\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"], dependencies: [{ kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "tableClassName", "selectionMode", "selectionEnabled", "globalFilterFields", "rowReorderEnabled", "actions", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "captionComponentInstance", "columnActionComponentInstance", "rowReorder"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["mngTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4530
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldTableDialogFormComponent, isStandalone: true, selector: "mng-formly-table-dialog-form-field", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<mng-action-table\n [descriptor]=\"descriptor.tableDescriptor\"\n [items]=\"items()\"\n [actions]=\"actions\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n tableClassName=\"mng-table-header-compact pb-2\">\n <ng-template mngTableTemplate name=\"headerTitle\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n </div>\n </ng-template>\n <ng-template mngTableTemplate name=\"headerTitleRowRight\">\n <div class=\"flex justify-end items-center grow\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [hostComponent]=\"this\"></mng-action>\n }\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"], dependencies: [{ kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "tableTemplates", "tableClassName", "selectionMode", "selectionEnabled", "globalFilterFields", "rowReorderEnabled", "actions", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "rowReorder"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4528
4531
  }
4529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTableDialogFormComponent, decorators: [{
4532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTableDialogFormComponent, decorators: [{
4530
4533
  type: Component,
4531
- args: [{ selector: 'mng-formly-table-dialog-form-field', imports: [TranslatePipe, ActionComponent, ActionTableComponent, TemplateDirective, FormlyFieldLabelPipe, NgClass, Tooltip], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-action-table\n [descriptor]=\"descriptor.tableDescriptor\"\n [items]=\"items()\"\n [actions]=\"actions\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n tableClassName=\"mng-table-header-compact pb-2\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n <div>\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [hostComponent]=\"this\"></mng-action>\n }\n </div>\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"] }]
4534
+ args: [{ selector: 'mng-formly-table-dialog-form-field', imports: [TranslatePipe, ActionComponent, ActionTableComponent, FormlyFieldLabelPipe, NgClass, Tooltip, TableTemplateDirective], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-action-table\n [descriptor]=\"descriptor.tableDescriptor\"\n [items]=\"items()\"\n [actions]=\"actions\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n tableClassName=\"mng-table-header-compact pb-2\">\n <ng-template mngTableTemplate name=\"headerTitle\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n </div>\n </ng-template>\n <ng-template mngTableTemplate name=\"headerTitleRowRight\">\n <div class=\"flex justify-end items-center grow\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [hostComponent]=\"this\"></mng-action>\n }\n </div>\n </ng-template>\n</mng-action-table>\n", styles: [".submit-button{display:none!important;visibility:hidden}\n"] }]
4532
4535
  }] });
4533
4536
 
4534
4537
  class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyFieldType {
@@ -4700,12 +4703,12 @@ class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyFieldType
4700
4703
  this.formControl.setValue(newValue);
4701
4704
  this.descriptor.nextEvent(FormFieldEventTypeEnum.RowReorder, this, { dragIndex: event.dragIndex, dropIndex: event.dropIndex });
4702
4705
  }
4703
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4704
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldTableDialogMultiselectComponent, isStandalone: true, selector: "mng-formly-table-multiselect-add-field", providers: [provideViewContainer(false)], viewQueries: [{ propertyName: "addTableComponent", first: true, predicate: ["addTableComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [items]=\"items()\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n class=\"mng-table-header-compact\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n <div>\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-plus\"\n rounded=\"true\"\n outlined=\"true\"\n class=\"mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-trash\"\n outlined=\"true\"\n severity=\"danger\"\n rounded=\"true\"\n class=\"mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template #content class=\"table-container\">\n <div class=\"h-full flex flex-col\">\n <div class=\"grow formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"], dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance", "rowReorder"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["mngTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4706
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4707
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldTableDialogMultiselectComponent, isStandalone: true, selector: "mng-formly-table-multiselect-add-field", providers: [provideViewContainer(false)], viewQueries: [{ propertyName: "addTableComponent", first: true, predicate: ["addTableComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [items]=\"items()\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n class=\"mng-table-header-compact\">\n <ng-template mngTableTemplate name=\"headerTitle\">\n <label [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n </ng-template>\n <ng-template mngTableTemplate name=\"headerTitleRowRight\">\n <div class=\"flex grow justify-end\">\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-plus\"\n rounded=\"true\"\n outlined=\"true\"\n class=\"mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </ng-template>\n <ng-template mngTableTemplate name=\"columnCustomLast\" let-item=\"item\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-trash\"\n outlined=\"true\"\n severity=\"danger\"\n rounded=\"true\"\n class=\"mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template #content class=\"table-container\">\n <div class=\"h-full flex flex-col\">\n <div class=\"grow formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"], dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "cellClickEnabled", "selectionMode", "selectionEnabled", "rowReorderEnabled", "columnLastMinWidth", "globalFilterFields", "templates"], outputs: ["tableLoad", "cellClick", "selectionChange", "rowReorder"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "component", type: Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4705
4708
  }
4706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, decorators: [{
4709
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, decorators: [{
4707
4710
  type: Component,
4708
- args: [{ selector: 'mng-formly-table-multiselect-add-field', imports: [TranslatePipe, TableComponent, TemplateDirective, FormlyFieldLabelPipe, NgClass, ButtonDirective, Tooltip, Dialog], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [items]=\"items()\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n class=\"mng-table-header-compact\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex justify-end items-center\">\n <label class=\"grow\" [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n <div>\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-plus\"\n rounded=\"true\"\n outlined=\"true\"\n class=\"mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-trash\"\n outlined=\"true\"\n severity=\"danger\"\n rounded=\"true\"\n class=\"mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template #content class=\"table-container\">\n <div class=\"h-full flex flex-col\">\n <div class=\"grow formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"] }]
4711
+ args: [{ selector: 'mng-formly-table-multiselect-add-field', imports: [TranslatePipe, TableComponent, FormlyFieldLabelPipe, NgClass, ButtonDirective, Tooltip, Dialog, TableTemplateDirective], providers: [provideViewContainer(false)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [items]=\"items()\"\n [rowReorderEnabled]=\"!disableRowReorder()\"\n (rowReorder)=\"onRowReorder($event)\"\n class=\"mng-table-header-compact\">\n <ng-template mngTableTemplate name=\"headerTitle\">\n <label [for]=\"key\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n </ng-template>\n <ng-template mngTableTemplate name=\"headerTitleRowRight\">\n <div class=\"flex grow justify-end\">\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-plus\"\n rounded=\"true\"\n outlined=\"true\"\n class=\"mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </ng-template>\n <ng-template mngTableTemplate name=\"columnCustomLast\" let-item=\"item\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n type=\"button\"\n icon=\"pi pi-trash\"\n outlined=\"true\"\n severity=\"danger\"\n rounded=\"true\"\n class=\"mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template #content class=\"table-container\">\n <div class=\"h-full flex flex-col\">\n <div class=\"grow formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [result]=\"addItems()\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading()\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" text=\"true\" severity=\"secondary\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"onAddItems()\"\n [loading]=\"dialogIsLoading()\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n", styles: [".table-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;align-content:center;margin-top:2rem}.table-container{overflow:hidden}.table-footer button{width:8rem}.table-footer button:not(:first-child){margin-left:1.5rem}.table-scroll{max-height:75vh;overflow-y:auto}\n"] }]
4709
4712
  }], propDecorators: { addTableComponent: [{
4710
4713
  type: ViewChild,
4711
4714
  args: ['addTableComponent']
@@ -4720,12 +4723,15 @@ class FormlyFieldTabsComponent extends ACommonsFormlyGroupType {
4720
4723
  super.ngOnInit();
4721
4724
  this.fieldGroup.set(this.field.fieldGroup === undefined ? [] : this.field.fieldGroup);
4722
4725
  }
4723
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4724
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabs scrollable=\"true\" [value]=\"fieldGroup()[0].id ?? 0\">\n <p-tablist>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tab [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <span class=\"mng-tab-title\" [class.mng-tab-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">\n {{ tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate }}\n </span>\n </p-tab>\n }\n </p-tablist>\n <p-tabpanels>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tabpanel [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabpanel>\n }\n </p-tabpanels>\n</p-tabs>\n", styles: ["mng-formly-field-tabs .p-tab .mng-tab-title.mng-tab-error{color:var(--p-form-field-float-label-invalid-color)!important}\n"], dependencies: [{ kind: "component", type: Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: TabList, selector: "p-tablist" }, { kind: "component", type: Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TabPanels, selector: "p-tabpanels" }, { kind: "component", type: TabPanel, selector: "p-tabpanel", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4726
+ onEscape() {
4727
+ window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, cancelable: true }));
4728
+ }
4729
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4730
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabs scrollable=\"true\" [value]=\"fieldGroup()[0].id ?? 0\">\n <p-tablist>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tab [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\" (keydown.escape)=\"onEscape()\">\n <span class=\"mng-tab-title\" [class.mng-tab-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">\n {{ tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate }}\n </span>\n </p-tab>\n }\n </p-tablist>\n <p-tabpanels>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tabpanel [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabpanel>\n }\n </p-tabpanels>\n</p-tabs>\n", styles: ["mng-formly-field-tabs .p-tab .mng-tab-title.mng-tab-error{color:var(--p-form-field-float-label-invalid-color)!important}\n"], dependencies: [{ kind: "component", type: Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: TabList, selector: "p-tablist" }, { kind: "component", type: Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TabPanels, selector: "p-tabpanels" }, { kind: "component", type: TabPanel, selector: "p-tabpanel", inputs: ["lazy", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4725
4731
  }
4726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
4732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
4727
4733
  type: Component,
4728
- args: [{ selector: 'mng-formly-field-tabs', imports: [TranslatePipe, FormlyFieldLabelPipe, Tabs, TabList, Tab, TabPanels, TabPanel, FormlyField], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<p-tabs scrollable=\"true\" [value]=\"fieldGroup()[0].id ?? 0\">\n <p-tablist>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tab [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <span class=\"mng-tab-title\" [class.mng-tab-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">\n {{ tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate }}\n </span>\n </p-tab>\n }\n </p-tablist>\n <p-tabpanels>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tabpanel [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabpanel>\n }\n </p-tabpanels>\n</p-tabs>\n", styles: ["mng-formly-field-tabs .p-tab .mng-tab-title.mng-tab-error{color:var(--p-form-field-float-label-invalid-color)!important}\n"] }]
4734
+ args: [{ selector: 'mng-formly-field-tabs', imports: [TranslatePipe, FormlyFieldLabelPipe, Tabs, TabList, Tab, TabPanels, TabPanel, FormlyField], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<p-tabs scrollable=\"true\" [value]=\"fieldGroup()[0].id ?? 0\">\n <p-tablist>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tab [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\" (keydown.escape)=\"onEscape()\">\n <span class=\"mng-tab-title\" [class.mng-tab-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">\n {{ tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate }}\n </span>\n </p-tab>\n }\n </p-tablist>\n <p-tabpanels>\n @for (tab of fieldGroup(); track tab; let idx = $index) {\n <p-tabpanel [value]=\"tab.id ?? idx\" [class.hidden!]=\"tab.props['groupHidden']\">\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabpanel>\n }\n </p-tabpanels>\n</p-tabs>\n", styles: ["mng-formly-field-tabs .p-tab .mng-tab-title.mng-tab-error{color:var(--p-form-field-float-label-invalid-color)!important}\n"] }]
4729
4735
  }] });
4730
4736
 
4731
4737
  class FormlyFieldNoLabelWrapperComponent extends FieldWrapper {
@@ -4758,10 +4764,10 @@ class FormlyFieldNoLabelWrapperComponent extends FieldWrapper {
4758
4764
  }
4759
4765
  return field;
4760
4766
  }
4761
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4762
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldNoLabelWrapperComponent, isStandalone: true, selector: "mng-formly-field-no-label-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError && shouldShowError()) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"sanitizeErrorsForGroups(field)\"></formly-validation-message>\n </small>\n }\n</div>\n", dependencies: [{ kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4767
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4768
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldNoLabelWrapperComponent, isStandalone: true, selector: "mng-formly-field-no-label-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError && shouldShowError()) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"sanitizeErrorsForGroups(field)\"></formly-validation-message>\n </small>\n }\n</div>\n", dependencies: [{ kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4763
4769
  }
4764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, decorators: [{
4770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, decorators: [{
4765
4771
  type: Component,
4766
4772
  args: [{ selector: 'mng-formly-field-no-label-wrapper', imports: [TranslatePipe, FormlyValidationMessage], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"wrapperClassName()\">\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError && shouldShowError()) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"sanitizeErrorsForGroups(field)\"></formly-validation-message>\n </small>\n }\n</div>\n" }]
4767
4773
  }] });
@@ -4808,10 +4814,10 @@ class FormlyFieldWrapperComponent extends FieldWrapper {
4808
4814
  this.helpText.set(descriptor.helpText);
4809
4815
  }
4810
4816
  }
4811
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4812
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FormlyFieldWrapperComponent, isStandalone: true, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @if (emptyLabel()) {\n <label [for]=\"key\" class=\"col\" [class]=\"descriptor.className?.label\">&nbsp;</label>\n } @else if (descriptor.label !== null) {\n <label [for]=\"key\" [class]=\"descriptor.className?.label\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n }\n </div>\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4817
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4818
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FormlyFieldWrapperComponent, isStandalone: true, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @if (emptyLabel()) {\n <label [for]=\"key\" class=\"col\" [class]=\"descriptor.className?.label\">&nbsp;</label>\n } @else if (descriptor.label !== null) {\n <label [for]=\"key\" [class]=\"descriptor.className?.label\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n }\n </div>\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "component", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4813
4819
  }
4814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldWrapperComponent, decorators: [{
4820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldWrapperComponent, decorators: [{
4815
4821
  type: Component,
4816
4822
  args: [{ selector: 'mng-formly-field-wrapper', imports: [TranslatePipe, FormlyFieldLabelPipe, NgClass, Tooltip, FormlyValidationMessage], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @if (emptyLabel()) {\n <label [for]=\"key\" class=\"col\" [class]=\"descriptor.className?.label\">&nbsp;</label>\n } @else if (descriptor.label !== null) {\n <label [for]=\"key\" [class]=\"descriptor.className?.label\">\n {{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n @if (descriptor.labelInfoTooltip !== undefined) {\n <span [ngClass]=\"{'ml-1': props.required && props['hideRequiredMarker'] !== true}\">\n <i [class]=\"descriptor.labelInfoTooltipIcon ?? labelInfoTooltipDefaultIcon\" [pTooltip]=\"descriptor.labelInfoTooltip | translate\"></i>\n </span>\n }\n </label>\n }\n </div>\n <ng-container #fieldComponent></ng-container>\n @if (helpText(); as ht) {\n <small class=\"block\">{{ ht | translate }}</small>\n }\n @if (showError) {\n <small class=\"block mng-field-validation-messages\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n</div>\n" }]
4817
4823
  }] });
@@ -4846,6 +4852,28 @@ class FormlyFieldDatepickerComponent extends ACommonsFormlyFieldType {
4846
4852
  this.dpFormControl.enable({ emitEvent: false });
4847
4853
  }
4848
4854
  });
4855
+ this.dpFormControl.statusChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(status => {
4856
+ if (status === 'INVALID') {
4857
+ const errors = { ...this.formControl.errors };
4858
+ if (errors['invalidDate'] == null) {
4859
+ // add error and set all of them
4860
+ errors['invalidDate'] = true;
4861
+ this.formControl.setErrors(errors);
4862
+ }
4863
+ }
4864
+ else if (status === 'VALID') {
4865
+ const errors = { ...this.formControl.errors };
4866
+ if (errors['invalidDate'] != null && Object.keys(errors).length === 1) {
4867
+ // only one error left, null should be set
4868
+ this.formControl.setErrors(null);
4869
+ }
4870
+ else if (errors['invalidDate'] != null) {
4871
+ // there are still others, remove this one and leave others
4872
+ delete errors['invalidDate'];
4873
+ this.formControl.setErrors(errors);
4874
+ }
4875
+ }
4876
+ });
4849
4877
  // init values from form to datepicker
4850
4878
  if (typeof this.formControl?.value === 'string' || typeof this.formControl?.value === 'number') {
4851
4879
  this.dpFormControl.setValue(new Date(this.formControl.value));
@@ -4954,12 +4982,12 @@ class FormlyFieldDatepickerComponent extends ACommonsFormlyFieldType {
4954
4982
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
4955
4983
  });
4956
4984
  }
4957
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4958
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: FormlyFieldDatepickerComponent, isStandalone: true, selector: "mng-formly-field-datepicker", usesInheritance: true, ngImport: i0, template: "<p-date-picker\n appendTo=\"body\"\n [class]=\"styleClass()\"\n [formControl]=\"dpFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(minDate())\"\n [maxDate]=\"$any(maxDate())\"\n [showTime]=\"descriptor.datePickerShowTime ?? false\"\n [showSeconds]=\"descriptor.datePickerShowSeconds ?? false\"\n showIcon=\"true\"\n showButtonBar=\"true\"\n [showClear]=\"!props.required\"\n [styleClass]=\"controlClassName()\"\n [inputStyleClass]=\"controlInputClassName()\"\n [firstDayOfWeek]=\"1\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n (onBlur)=\"onBlur()\">\n</p-date-picker>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "styleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "readonlyInput", "shortYearCutoff", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "view", "defaultDate", "appendTo"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4985
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4986
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: FormlyFieldDatepickerComponent, isStandalone: true, selector: "mng-formly-field-datepicker", usesInheritance: true, ngImport: i0, template: "<mng-datetime-picker\n [className]=\"styleClass()\"\n [formControl]=\"dpFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(minDate())\"\n [maxDate]=\"$any(maxDate())\"\n [time]=\"descriptor.datePickerShowTime\"\n [seconds]=\"descriptor.datePickerShowSeconds\"\n [milliseconds]=\"descriptor.datePickerShowMilliseconds\"\n [primeTimePicker]=\"descriptor.datePickerPrimeTimePicker\"\n [timeSelect]=\"descriptor.datePickerTimeSelect\"\n [timeSelectInterval]=\"descriptor.datePickerTimeSelectInterval\"\n showIcon=\"true\"\n showButtonBar=\"true\"\n [showClear]=\"!props.required\"\n [panelStyleClass]=\"controlClassName() + ' mng-field-datepicker'\"\n [inputStyleClass]=\"controlInputClassName()\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n (blur)=\"onBlur()\">\n</mng-datetime-picker>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: DatetimePickerComponent, selector: "mng-datetime-picker", inputs: ["templates", "time", "timeSelect", "timeSelectInterval", "seconds", "milliseconds", "primeTimePicker", "dateFormat", "placeholder", "minDate", "maxDate", "disabled", "required", "showIcon", "showButtonBar", "showClear", "className", "panelStyleClass", "inputStyleClass", "dateRange"], outputs: ["blur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4959
4987
  }
4960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FormlyFieldDatepickerComponent, decorators: [{
4988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FormlyFieldDatepickerComponent, decorators: [{
4961
4989
  type: Component,
4962
- args: [{ selector: 'mng-formly-field-datepicker', imports: [ReactiveFormsModule, TranslatePipe, DatePicker, FormlyAttributes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-date-picker\n appendTo=\"body\"\n [class]=\"styleClass()\"\n [formControl]=\"dpFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(minDate())\"\n [maxDate]=\"$any(maxDate())\"\n [showTime]=\"descriptor.datePickerShowTime ?? false\"\n [showSeconds]=\"descriptor.datePickerShowSeconds ?? false\"\n showIcon=\"true\"\n showButtonBar=\"true\"\n [showClear]=\"!props.required\"\n [styleClass]=\"controlClassName()\"\n [inputStyleClass]=\"controlInputClassName()\"\n [firstDayOfWeek]=\"1\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n (onBlur)=\"onBlur()\">\n</p-date-picker>\n" }]
4990
+ args: [{ selector: 'mng-formly-field-datepicker', imports: [ReactiveFormsModule, TranslatePipe, FormlyAttributes, DatetimePickerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-datetime-picker\n [className]=\"styleClass()\"\n [formControl]=\"dpFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(minDate())\"\n [maxDate]=\"$any(maxDate())\"\n [time]=\"descriptor.datePickerShowTime\"\n [seconds]=\"descriptor.datePickerShowSeconds\"\n [milliseconds]=\"descriptor.datePickerShowMilliseconds\"\n [primeTimePicker]=\"descriptor.datePickerPrimeTimePicker\"\n [timeSelect]=\"descriptor.datePickerTimeSelect\"\n [timeSelectInterval]=\"descriptor.datePickerTimeSelectInterval\"\n showIcon=\"true\"\n showButtonBar=\"true\"\n [showClear]=\"!props.required\"\n [panelStyleClass]=\"controlClassName() + ' mng-field-datepicker'\"\n [inputStyleClass]=\"controlInputClassName()\"\n [placeholder]=\"descriptor.placeholder ?? '' | translate\"\n (blur)=\"onBlur()\">\n</mng-datetime-picker>\n" }]
4963
4991
  }] });
4964
4992
 
4965
4993
  const formlyWrappersConfig = [
@@ -5261,13 +5289,13 @@ class TableviewRouteComponent {
5261
5289
  constructor() {
5262
5290
  this.tableview = input.required(...(ngDevMode ? [{ debugName: "tableview" }] : []));
5263
5291
  }
5264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: TableviewRouteComponent, isStandalone: true, selector: "mng-tableview-route", inputs: { tableview: { classPropertyName: "tableview", publicName: "tableview", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mng-tableview [descriptor]=\"tableview().descriptor\" [dataProvider]=\"tableview().dataProvider\" [actions]=\"tableview().actions\"> </mng-tableview>\n", dependencies: [{ kind: "component", type: TableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: TableviewRouteComponent, isStandalone: true, selector: "mng-tableview-route", inputs: { tableview: { classPropertyName: "tableview", publicName: "tableview", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mng-tableview [descriptor]=\"tableview().descriptor\" [dataProvider]=\"tableview().dataProvider\" [actions]=\"tableview().actions\"> </mng-tableview>\n", dependencies: [{ kind: "component", type: TableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5266
5294
  }
5267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableviewRouteComponent, decorators: [{
5295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableviewRouteComponent, decorators: [{
5268
5296
  type: Component,
5269
5297
  args: [{ selector: 'mng-tableview-route', imports: [TableviewComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-tableview [descriptor]=\"tableview().descriptor\" [dataProvider]=\"tableview().dataProvider\" [actions]=\"tableview().actions\"> </mng-tableview>\n" }]
5270
- }] });
5298
+ }], propDecorators: { tableview: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableview", required: true }] }] } });
5271
5299
 
5272
5300
  class TableviewRouteBuilder extends RouteBuilder {
5273
5301
  constructor(path, component, loadComponent) {
@@ -5381,7 +5409,7 @@ class TableviewRouteBuilder extends RouteBuilder {
5381
5409
  };
5382
5410
  this.withData(this.routeData);
5383
5411
  if (this.tableviewPermissions?.[TableviewActionDefaultCategories.READ]) {
5384
- this.routeData.permissions = this.tableviewPermissions[TableviewActionDefaultCategories.READ];
5412
+ super.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.READ]);
5385
5413
  }
5386
5414
  // copy route data for children, reset breadcrumbs menu items and permission
5387
5415
  const childrenRouteData = {