@mediusinc/mng-commons 7.0.1 → 7.1.0-rc.5-88c730b9

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.
@@ -526,10 +526,10 @@ class NavigationService {
526
526
  this.router.navigateByUrl('/');
527
527
  }
528
528
  }
529
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
530
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NavigationService }); }
529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
530
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: NavigationService }); }
531
531
  }
532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NavigationService, decorators: [{
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: NavigationService, decorators: [{
533
533
  type: Injectable
534
534
  }], ctorParameters: () => [] });
535
535
 
@@ -565,10 +565,10 @@ class ViewContainer {
565
565
  closeEditor(event) {
566
566
  this._editorCloseSubject.next(event ?? {});
567
567
  }
568
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ViewContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
569
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ViewContainer }); }
568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ViewContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ViewContainer }); }
570
570
  }
571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ViewContainer, decorators: [{
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ViewContainer, decorators: [{
572
572
  type: Injectable
573
573
  }] });
574
574
 
@@ -1352,10 +1352,10 @@ class RootActionExecutorService extends ActionExecutorService {
1352
1352
  get instances() {
1353
1353
  return this._instances;
1354
1354
  }
1355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RootActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1356
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RootActionExecutorService }); }
1355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: RootActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1356
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: RootActionExecutorService }); }
1357
1357
  }
1358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RootActionExecutorService, decorators: [{
1358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: RootActionExecutorService, decorators: [{
1359
1359
  type: Injectable
1360
1360
  }] });
1361
1361
 
@@ -1367,10 +1367,10 @@ class ComponentActionExecutorService extends ActionExecutorService {
1367
1367
  get instances() {
1368
1368
  return this.rootActionExecutorService.instances;
1369
1369
  }
1370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ComponentActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1371
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ComponentActionExecutorService }); }
1370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ComponentActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1371
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ComponentActionExecutorService }); }
1372
1372
  }
1373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ComponentActionExecutorService, decorators: [{
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ComponentActionExecutorService, decorators: [{
1374
1374
  type: Injectable
1375
1375
  }] });
1376
1376
 
@@ -1404,8 +1404,9 @@ class ActionComponent {
1404
1404
  // eslint-disable-next-line @angular-eslint/no-output-native
1405
1405
  this.finish = output();
1406
1406
  this.subactionsMenu = viewChild(Menu, ...(ngDevMode ? [{ debugName: "subactionsMenu" }] : []));
1407
- this.hostClass = computed(() => this.action().button?.style?.class ?? 'mng-action-button', ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
1407
+ this.hostClass = computed(() => this.action().button?.style?.class ?? 'mng-action-button' + ` ${this.action().actionNameLong} ${this.action().actionName}`, ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
1408
1408
  this.isHostHidden = computed(() => !this.isVisible() || !this.isPermitted(), ...(ngDevMode ? [{ debugName: "isHostHidden" }] : []));
1409
+ this.id = computed(() => this.action().actionNameLong, ...(ngDevMode ? [{ debugName: "id" }] : []));
1409
1410
  this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
1410
1411
  this.isVisible = signal(true, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
1411
1412
  this.isPermitted = signal(true, ...(ngDevMode ? [{ debugName: "isPermitted" }] : []));
@@ -1635,12 +1636,12 @@ class ActionComponent {
1635
1636
  return menuItem;
1636
1637
  });
1637
1638
  }
1638
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1639
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\n (click)=\"triggerAction(action(), undefined, $event)\"></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", "pButtonPT", "pButtonUnstyled", "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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: ParametrizePipe, name: "mngParametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [Tooltip, import('primeng/splitbutton').then(m => m.SplitButton)], () => [Menu]] }); }
1639
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1640
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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()", "id": "id()" } }, 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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\n (click)=\"triggerAction(action(), undefined, $event)\"></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", "pButtonPT", "pButtonUnstyled", "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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: ParametrizePipe, name: "mngParametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [Tooltip, import('primeng/splitbutton').then(m => m.SplitButton)], () => [Menu]] }); }
1640
1641
  }
1641
- i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.0.6", ngImport: i0, type: ActionComponent, resolveDeferredDeps: () => [import('primeng/splitbutton').then(m => m.SplitButton)], resolveMetadata: SplitButton => ({ decorators: [{
1642
+ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.0.8", ngImport: i0, type: ActionComponent, resolveDeferredDeps: () => [import('primeng/splitbutton').then(m => m.SplitButton)], resolveMetadata: SplitButton => ({ decorators: [{
1642
1643
  type: Component,
1643
- 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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\n (click)=\"triggerAction(action(), undefined, $event)\"></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"] }]
1644
+ args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ParametrizePipe, ComponentDirective, RouterLink, ButtonDirective, Tooltip, SplitButton, Menu], providers: [provideActionExecutor()], host: { '[class]': 'hostClass()', '[class.m-0]': 'isHostHidden()', '[id]': 'id()' }, 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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\">\n </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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\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 [size]=\"buttonStyles().size\"\n [severity]=\"buttonStyles().severity\"\n [text]=\"buttonStyles().text\"\n [outlined]=\"buttonStyles().outlined\"\n [raised]=\"buttonStyles().raised\"\n [rounded]=\"buttonStyles().rounded\"\n [class]=\"buttonStyles().class\"\n (click)=\"triggerAction(action(), undefined, $event)\"></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"] }]
1644
1645
  }], 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 }] }] } }) });
1645
1646
 
1646
1647
  class EditorAutoSaveStatusComponent {
@@ -1686,8 +1687,8 @@ class EditorAutoSaveStatusComponent {
1686
1687
  }
1687
1688
  }, ...(ngDevMode ? [{ debugName: "icon" }] : []));
1688
1689
  }
1689
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EditorAutoSaveStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1690
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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: `
1690
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EditorAutoSaveStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1691
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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: `
1691
1692
  <span>
1692
1693
  @if (icon(); as icon) {
1693
1694
  <i [class]="icon"></i>
@@ -1699,7 +1700,7 @@ class EditorAutoSaveStatusComponent {
1699
1700
  </span>
1700
1701
  `, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1701
1702
  }
1702
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EditorAutoSaveStatusComponent, decorators: [{
1703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EditorAutoSaveStatusComponent, decorators: [{
1703
1704
  type: Component,
1704
1705
  args: [{
1705
1706
  selector: 'mng-editor-auto-save-status',
@@ -2299,10 +2300,10 @@ class FormEditorService {
2299
2300
  init(formComponent) {
2300
2301
  this._formComponent = formComponent;
2301
2302
  }
2302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormEditorService, deps: [{ token: FormEditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2303
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormEditorService }); }
2303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormEditorService, deps: [{ token: FormEditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2304
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormEditorService }); }
2304
2305
  }
2305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormEditorService, decorators: [{
2306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormEditorService, decorators: [{
2306
2307
  type: Injectable
2307
2308
  }], ctorParameters: () => [{ type: FormEditorService }] });
2308
2309
  function provideFormComponent() {
@@ -2764,10 +2765,10 @@ class FormEditorComponent {
2764
2765
  this.autoSaveRestore.set(this.commonsStorageService.getItem(this.cmpTypeName, this.autoSaveStorageKey()) ?? null);
2765
2766
  }
2766
2767
  }
2767
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2768
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 severity=\"success\"\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 severity=\"info\"\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 severity=\"danger\"\n text=\"true\"\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\" [icon]=\"message.icon\">{{ message.text }} </p-message>\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],[formArray],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", "motionOptions"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "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 }); }
2768
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2769
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 severity=\"success\"\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 severity=\"info\"\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 severity=\"danger\"\n text=\"true\"\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\" [icon]=\"message.icon\">{{ message.text }} </p-message>\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],[formArray],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", "motionOptions"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "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 }); }
2769
2770
  }
2770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormEditorComponent, decorators: [{
2771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormEditorComponent, decorators: [{
2771
2772
  type: Component,
2772
2773
  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 severity=\"success\"\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 severity=\"info\"\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 severity=\"danger\"\n text=\"true\"\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\" [icon]=\"message.icon\">{{ message.text }} </p-message>\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"] }]
2773
2774
  }], 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 }] }] } });
@@ -3148,10 +3149,10 @@ class ActionEditorInjectorContextComponent {
3148
3149
  sourceComponent: this
3149
3150
  };
3150
3151
  }
3151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionEditorInjectorContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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-dialog-close-button\"\n text=\"true\"\n rounded=\"true\"\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 class=\"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", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionEditorInjectorContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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-dialog-close-button\"\n text=\"true\"\n rounded=\"true\"\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 class=\"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", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3153
3154
  }
3154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionEditorInjectorContextComponent, decorators: [{
3155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionEditorInjectorContextComponent, decorators: [{
3155
3156
  type: Component,
3156
3157
  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-dialog-close-button\"\n text=\"true\"\n rounded=\"true\"\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 class=\"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"] }]
3157
3158
  }], ctorParameters: () => [], 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: [{
@@ -3235,10 +3236,10 @@ class ActionEditorComponent {
3235
3236
  triggerSubmit() {
3236
3237
  this.actionEditorWInjContextCmp?.triggerSubmit();
3237
3238
  }
3238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3239
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", 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 }); }
3239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", 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 }); }
3240
3241
  }
3241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionEditorComponent, decorators: [{
3242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionEditorComponent, decorators: [{
3242
3243
  type: Component,
3243
3244
  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" }]
3244
3245
  }], 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"] }] } });
@@ -3261,10 +3262,10 @@ class DataLanguageDropdownComponent {
3261
3262
  this.commons.setAppDataLocale(dataLang);
3262
3263
  this.viewContainer?.reloadTable({});
3263
3264
  }
3264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DataLanguageDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", 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 }); }
3265
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DataLanguageDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3266
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", 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 }); }
3266
3267
  }
3267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DataLanguageDropdownComponent, decorators: [{
3268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DataLanguageDropdownComponent, decorators: [{
3268
3269
  type: Component,
3269
3270
  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" }]
3270
3271
  }], 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"] }] } });
@@ -3396,10 +3397,10 @@ class ActionRouteComponent {
3396
3397
  this.instanceStateSubscription?.unsubscribe();
3397
3398
  this.instanceReactivationSubscription?.unsubscribe();
3398
3399
  }
3399
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3400
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: ActionRouteComponent, isStandalone: true, selector: "mng-action-route", providers: [provideActionExecutor()], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: ActionRouteComponent, isStandalone: true, selector: "mng-action-route", providers: [provideActionExecutor()], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3401
3402
  }
3402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionRouteComponent, decorators: [{
3403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionRouteComponent, decorators: [{
3403
3404
  type: Component,
3404
3405
  args: [{ selector: 'mng-action-route', changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideActionExecutor()], template: "" }]
3405
3406
  }] });
@@ -3459,6 +3460,7 @@ class ActionTableComponent {
3459
3460
  this.selectionEnabled = input(false, ...(ngDevMode ? [{ debugName: "selectionEnabled" }] : []));
3460
3461
  this.globalFilterFields = input(...(ngDevMode ? [undefined, { debugName: "globalFilterFields" }] : []));
3461
3462
  this.rowReorderEnabled = input(true, ...(ngDevMode ? [{ debugName: "rowReorderEnabled" }] : []));
3463
+ this.featureConfig = input(undefined, ...(ngDevMode ? [{ debugName: "featureConfig" }] : []));
3462
3464
  // actions
3463
3465
  this.actions = input([], ...(ngDevMode ? [{ debugName: "actions" }] : [])); // can be anything
3464
3466
  // component inputs
@@ -3516,13 +3518,13 @@ class ActionTableComponent {
3516
3518
  this.reload();
3517
3519
  }
3518
3520
  }
3519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3520
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 }); }
3521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3522
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 }, featureConfig: { classPropertyName: "featureConfig", publicName: "featureConfig", 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 [featureConfig]=\"featureConfig()\"\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", "featureConfig", "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 }); }
3521
3523
  }
3522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ActionTableComponent, decorators: [{
3524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ActionTableComponent, decorators: [{
3523
3525
  type: Component,
3524
- 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" }]
3525
- }], 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 }] }] } });
3526
+ 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 [featureConfig]=\"featureConfig()\"\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" }]
3527
+ }], 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 }] }], featureConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "featureConfig", 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 }] }] } });
3526
3528
 
3527
3529
  const unsavedChangesGuard = (component) => {
3528
3530
  return component.canDeactivate();
@@ -3546,6 +3548,7 @@ function provideViewContainer(provideParentIfPresent = true) {
3546
3548
  class TableviewComponent {
3547
3549
  constructor() {
3548
3550
  this.viewContainer = inject(ViewContainer, { optional: true });
3551
+ this.config = inject(COMMONS_TABLEVIEW_FEATURE_CONFIG_IT, { optional: true });
3549
3552
  this.actionTable = viewChild.required((ActionTableComponent));
3550
3553
  this.descriptor = input.required(...(ngDevMode ? [{ debugName: "descriptor" }] : []));
3551
3554
  this.dataProvider = input(...(ngDevMode ? [undefined, { debugName: "dataProvider" }] : []));
@@ -3577,12 +3580,12 @@ class TableviewComponent {
3577
3580
  filterActionsByPositions(actions, actionPositions) {
3578
3581
  return actions.filter(action => (action.positionTableviewCategories?.includes(TableviewActionDefaultCategories.READ) ?? true) && actionPositions.includes(action.position));
3579
3582
  }
3580
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TableviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3581
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 }); }
3583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TableviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3584
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 [featureConfig]=\"config?.table\"\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", "featureConfig", "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 }); }
3582
3585
  }
3583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TableviewComponent, decorators: [{
3586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TableviewComponent, decorators: [{
3584
3587
  type: Component,
3585
- 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"] }]
3588
+ 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 [featureConfig]=\"config?.table\"\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"] }]
3586
3589
  }], 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 }] }] } });
3587
3590
 
3588
3591
  function getActionParentFormEditor(ctx,
@@ -3647,10 +3650,10 @@ class DefaultDataProviderExecutor extends DataProviderExecutor {
3647
3650
  runDelete(ctx, fallback) {
3648
3651
  return fallback ? runFnFromDataProviderOrFallback(ctx, runDeleteFromDataProvider, fallback) : runDeleteFromDataProvider(ctx);
3649
3652
  }
3650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DefaultDataProviderExecutor, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3651
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DefaultDataProviderExecutor }); }
3653
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DefaultDataProviderExecutor, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3654
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DefaultDataProviderExecutor }); }
3652
3655
  }
3653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DefaultDataProviderExecutor, decorators: [{
3656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DefaultDataProviderExecutor, decorators: [{
3654
3657
  type: Injectable
3655
3658
  }] });
3656
3659
 
@@ -3689,10 +3692,10 @@ class ACommonsFormlyType extends FieldType {
3689
3692
  .pipe(startWith(this.formState.disabled ?? false), takeUntilDestroyed(this.destroyRef))
3690
3693
  .subscribe(value => this.formStateDisabledSubject.next(value));
3691
3694
  }
3692
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3693
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ACommonsFormlyType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3695
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3696
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type: ACommonsFormlyType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3694
3697
  }
3695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyType, decorators: [{
3698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyType, decorators: [{
3696
3699
  type: Directive
3697
3700
  }] });
3698
3701
 
@@ -3704,10 +3707,10 @@ class ACommonsFormlyFieldType extends ACommonsFormlyType {
3704
3707
  this.controlInputClassName = computed(() => ['mng-field-control-input', this.descriptorSig()?.className?.input].filter(c => !!c).join(' '), ...(ngDevMode ? [{ debugName: "controlInputClassName" }] : []));
3705
3708
  this.controlWithInputClassName = computed(() => this.controlClassName() + ' ' + this.controlInputClassName(), ...(ngDevMode ? [{ debugName: "controlWithInputClassName" }] : []));
3706
3709
  }
3707
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyFieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3708
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ACommonsFormlyFieldType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3710
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyFieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3711
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type: ACommonsFormlyFieldType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3709
3712
  }
3710
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyFieldType, decorators: [{
3713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyFieldType, decorators: [{
3711
3714
  type: Directive
3712
3715
  }] });
3713
3716
 
@@ -3755,10 +3758,10 @@ class FormlyFieldActionComponent extends ACommonsFormlyFieldType {
3755
3758
  this.actionMessage.set(res.message);
3756
3759
  }
3757
3760
  }
3758
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 [size]=\"buttonStyle().size\"\n [severity]=\"buttonStyle().severity\"\n [text]=\"buttonStyle().text\"\n [outlined]=\"buttonStyle().outlined\"\n [raised]=\"buttonStyle().raised\"\n [rounded]=\"buttonStyle().rounded\"\n [class]=\"buttonStyle().class\"\n (click)=\"onClick()\"></button>\n @if (actionMessage()) {\n <p-message [severity]=\"actionMessage()?.severity ?? 'success'\" closable=\"true\">{{ actionMessage()?.content }}</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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant", "motionOptions"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "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 }); }
3761
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3762
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 [size]=\"buttonStyle().size\"\n [severity]=\"buttonStyle().severity\"\n [text]=\"buttonStyle().text\"\n [outlined]=\"buttonStyle().outlined\"\n [raised]=\"buttonStyle().raised\"\n [rounded]=\"buttonStyle().rounded\"\n [class]=\"buttonStyle().class\"\n (click)=\"onClick()\"></button>\n @if (actionMessage()) {\n <p-message [severity]=\"actionMessage()?.severity ?? 'success'\" closable=\"true\">{{ actionMessage()?.content }}</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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant", "motionOptions"], outputs: ["onClose"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "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 }); }
3760
3763
  }
3761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldActionComponent, decorators: [{
3764
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldActionComponent, decorators: [{
3762
3765
  type: Component,
3763
3766
  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 [size]=\"buttonStyle().size\"\n [severity]=\"buttonStyle().severity\"\n [text]=\"buttonStyle().text\"\n [outlined]=\"buttonStyle().outlined\"\n [raised]=\"buttonStyle().raised\"\n [rounded]=\"buttonStyle().rounded\"\n [class]=\"buttonStyle().class\"\n (click)=\"onClick()\"></button>\n @if (actionMessage()) {\n <p-message [severity]=\"actionMessage()?.severity ?? 'success'\" closable=\"true\">{{ actionMessage()?.content }}</p-message>\n }\n</div>\n" }]
3764
3767
  }] });
@@ -3788,12 +3791,12 @@ class FormlyFieldAutocompleteComponent extends ACommonsFormlyFieldType {
3788
3791
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
3789
3792
  });
3790
3793
  }
3791
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3792
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", 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 }); }
3794
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3795
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"descriptor.property\"\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 }); }
3793
3796
  }
3794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
3797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
3795
3798
  type: Component,
3796
- 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" }]
3799
+ args: [{ selector: 'mng-formly-field-autocomplete', imports: [AutocompleteComponent, ReactiveFormsModule, TranslatePipe, FormlyAttributes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"descriptor.property\"\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" }]
3797
3800
  }] });
3798
3801
 
3799
3802
  class FormlyFieldCustomComponent extends ACommonsFormlyFieldType {
@@ -3817,10 +3820,10 @@ class FormlyFieldCustomComponent extends ACommonsFormlyFieldType {
3817
3820
  ...this.descriptor.customComponentInputs
3818
3821
  };
3819
3822
  }
3820
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3821
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", 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 }); }
3823
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3824
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", 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 }); }
3822
3825
  }
3823
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
3826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
3824
3827
  type: Component,
3825
3828
  args: [{
3826
3829
  selector: 'mng-formly-field-custom',
@@ -3850,12 +3853,12 @@ class FormlyFieldDropdownComponent extends ACommonsFormlyFieldType {
3850
3853
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
3851
3854
  });
3852
3855
  }
3853
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3854
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", 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 }); }
3856
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3857
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: FormlyFieldDropdownComponent, isStandalone: true, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"descriptor.property\"\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 }); }
3855
3858
  }
3856
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldDropdownComponent, decorators: [{
3859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldDropdownComponent, decorators: [{
3857
3860
  type: Component,
3858
- 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" }]
3861
+ args: [{ selector: 'mng-formly-field-dropdown', imports: [DropdownComponent, ReactiveFormsModule, TranslatePipe, FormlyAttributes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"descriptor.property\"\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" }]
3859
3862
  }] });
3860
3863
 
3861
3864
  function getEditorFieldLabel(descriptor, editorDescriptor) {
@@ -3900,10 +3903,10 @@ class FormlyFieldLabelPipe {
3900
3903
  const label = getEditorFieldLabel(value, editorDescriptor) ?? '';
3901
3904
  return label === '' ? '\u00A0' : label;
3902
3905
  }
3903
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3904
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLabelPipe, isStandalone: true, name: "mngFormlyFieldLabel" }); }
3906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3907
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLabelPipe, isStandalone: true, name: "mngFormlyFieldLabel" }); }
3905
3908
  }
3906
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLabelPipe, decorators: [{
3909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLabelPipe, decorators: [{
3907
3910
  type: Pipe,
3908
3911
  args: [{
3909
3912
  name: 'mngFormlyFieldLabel',
@@ -3912,10 +3915,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
3912
3915
  }] });
3913
3916
 
3914
3917
  class ACommonsFormlyGroupType extends ACommonsFormlyType {
3915
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyGroupType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3916
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ACommonsFormlyGroupType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3918
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyGroupType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
3919
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type: ACommonsFormlyGroupType, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
3917
3920
  }
3918
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ACommonsFormlyGroupType, decorators: [{
3921
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ACommonsFormlyGroupType, decorators: [{
3919
3922
  type: Directive
3920
3923
  }] });
3921
3924
 
@@ -3933,10 +3936,10 @@ class FormlyFieldFieldsetComponent extends ACommonsFormlyGroupType {
3933
3936
  }));
3934
3937
  }, ...(ngDevMode ? [{ debugName: "fieldGroup" }] : []));
3935
3938
  }
3936
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3937
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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", "style", "styleClass", "transitionOptions", "motionOptions", "collapsed"], 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 }); }
3939
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3940
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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", "style", "styleClass", "transitionOptions", "motionOptions", "collapsed"], 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 }); }
3938
3941
  }
3939
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
3942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
3940
3943
  type: Component,
3941
3944
  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" }]
3942
3945
  }] });
@@ -4088,10 +4091,10 @@ class FormlyFieldInputComponent extends ACommonsFormlyFieldType {
4088
4091
  return 'pi-file';
4089
4092
  }
4090
4093
  }
4091
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4092
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 @if (descriptor.label !== null) {\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 }\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", "pInputTextPT", "pInputTextUnstyled", "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: ["pTextareaPT", "pTextareaUnstyled", "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", "modalEnterAnimation", "modalLeaveAnimation", "appendTo", "maskMotionOptions", "motionOptions"], 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 }); }
4094
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4095
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label [for]=\"descriptor.property\" [class]=\"labelClassName()\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n }\n <p-toggle-switch [id]=\"descriptor.property\" [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]=\"descriptor.property\" 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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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", "pInputTextPT", "pInputTextUnstyled", "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: ["pTextareaPT", "pTextareaUnstyled", "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", "modalEnterAnimation", "modalLeaveAnimation", "appendTo", "maskMotionOptions", "motionOptions"], 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 }); }
4093
4096
  }
4094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldInputComponent, decorators: [{
4097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldInputComponent, decorators: [{
4095
4098
  type: Component,
4096
4099
  args: [{ selector: 'mng-formly-field-input', imports: [
4097
4100
  InputNumber,
@@ -4113,7 +4116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
4113
4116
  InputEmptyValueDirective,
4114
4117
  FormlyAttributes,
4115
4118
  FormlyValidationMessage
4116
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 @if (descriptor.label !== null) {\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 }\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"] }]
4119
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@switch (props.type) {\n @case ('number') {\n <p-inputNumber\n [id]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label [for]=\"descriptor.property\" [class]=\"labelClassName()\"\n >{{ descriptor | mngFormlyFieldLabel: editorDescriptor | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n }\n <p-toggle-switch [id]=\"descriptor.property\" [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]=\"descriptor.property\" 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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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]=\"descriptor.property\"\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"] }]
4117
4120
  }] });
4118
4121
 
4119
4122
  class FormlyFieldLabelComponent extends ACommonsFormlyFieldType {
@@ -4125,10 +4128,10 @@ class FormlyFieldLabelComponent extends ACommonsFormlyFieldType {
4125
4128
  super.ngOnInit();
4126
4129
  this.formControl?.patchValue(this.descriptor.label);
4127
4130
  }
4128
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: FormlyFieldLabelComponent, isStandalone: true, selector: "mng-formly-field-label", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: FormlyFieldLabelComponent, isStandalone: true, selector: "mng-formly-field-label", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4130
4133
  }
4131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLabelComponent, decorators: [{
4134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLabelComponent, decorators: [{
4132
4135
  type: Component,
4133
4136
  args: [{ selector: 'mng-formly-field-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
4134
4137
  }], propDecorators: { className: [{
@@ -4280,10 +4283,10 @@ class FormlyFieldLookupDialogComponent extends ACommonsFormlyFieldType {
4280
4283
  this.fieldLabelFormControl.setValue(value);
4281
4284
  }
4282
4285
  }
4283
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLookupDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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", "maskMotionOptions", "motionOptions", "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", "pInputTextPT", "pInputTextUnstyled", "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", "pButtonPT", "pButtonUnstyled", "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 }); }
4286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLookupDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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]=\"descriptor.property\"\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", "maskMotionOptions", "motionOptions", "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", "featureConfig", "columnLastMinWidth", "globalFilterFields", "templates"], outputs: ["tableLoad", "cellClick", "selectionChange", "rowReorder"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "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", "pButtonPT", "pButtonUnstyled", "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 }); }
4285
4288
  }
4286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldLookupDialogComponent, decorators: [{
4289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldLookupDialogComponent, decorators: [{
4287
4290
  type: Component,
4288
4291
  args: [{ selector: 'mng-formly-field-lookup-dialog', imports: [
4289
4292
  TranslatePipe,
@@ -4297,7 +4300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
4297
4300
  FormlyAttributes,
4298
4301
  TableTemplateDirective,
4299
4302
  ComponentDirective
4300
- ], 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" }]
4303
+ ], 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]=\"descriptor.property\"\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" }]
4301
4304
  }] });
4302
4305
 
4303
4306
  const labelInfoTooltipDefaultIcon = 'pi pi-info-circle';
@@ -4519,12 +4522,12 @@ class FormlyFieldTableDialogFormComponent extends ACommonsFormlyFieldType {
4519
4522
  }
4520
4523
  return false;
4521
4524
  }
4522
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4523
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 @if (descriptor.label !== null) {\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 }\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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4525
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTableDialogFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4526
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: FormlyFieldTableDialogFormComponent, isStandalone: true, selector: "mng-formly-table-dialog-form-field", providers: [provideViewContainer(false)], usesInheritance: true, ngImport: i0, template: "<mng-action-table\n [id]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label class=\"grow\" [for]=\"descriptor.property\"\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-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", "featureConfig", "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", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "directive", type: TableTemplateDirective, selector: "[mngTableTemplate]", inputs: ["name"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4524
4527
  }
4525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTableDialogFormComponent, decorators: [{
4528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTableDialogFormComponent, decorators: [{
4526
4529
  type: Component,
4527
- 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 @if (descriptor.label !== null) {\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 }\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"] }]
4530
+ 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 [id]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label class=\"grow\" [for]=\"descriptor.property\"\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-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"] }]
4528
4531
  }] });
4529
4532
 
4530
4533
  class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyFieldType {
@@ -4696,12 +4699,12 @@ class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyFieldType
4696
4699
  this.formControl.setValue(newValue);
4697
4700
  this.descriptor.nextEvent(FormFieldEventTypeEnum.RowReorder, this, { dragIndex: event.dragIndex, dropIndex: event.dropIndex });
4698
4701
  }
4699
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4700
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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 @if (descriptor.label !== null) {\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 }\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 (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", "pButtonPT", "pButtonUnstyled", "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", "pTooltipPT", "pTooltipUnstyled"] }, { 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", "maskMotionOptions", "motionOptions", "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 }); }
4702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4703
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 [id]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label [for]=\"descriptor.property\">\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 </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 (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", "featureConfig", "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", "pButtonPT", "pButtonUnstyled", "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", "pTooltipPT", "pTooltipUnstyled"] }, { 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", "maskMotionOptions", "motionOptions", "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 }); }
4701
4704
  }
4702
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, decorators: [{
4705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTableDialogMultiselectComponent, decorators: [{
4703
4706
  type: Component,
4704
- 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 @if (descriptor.label !== null) {\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 }\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 (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"] }]
4707
+ 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 [id]=\"descriptor.property\"\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 @if (descriptor.label !== null) {\n <label [for]=\"descriptor.property\">\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 </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 (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"] }]
4705
4708
  }], propDecorators: { addTableComponent: [{
4706
4709
  type: ViewChild,
4707
4710
  args: ['addTableComponent']
@@ -4719,10 +4722,10 @@ class FormlyFieldTabsComponent extends ACommonsFormlyGroupType {
4719
4722
  onEscape() {
4720
4723
  window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, cancelable: true }));
4721
4724
  }
4722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4723
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4726
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 }); }
4724
4727
  }
4725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
4728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
4726
4729
  type: Component,
4727
4730
  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"] }]
4728
4731
  }] });
@@ -4757,10 +4760,10 @@ class FormlyFieldNoLabelWrapperComponent extends FieldWrapper {
4757
4760
  }
4758
4761
  return field;
4759
4762
  }
4760
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4761
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4764
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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 }); }
4762
4765
  }
4763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, decorators: [{
4766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldNoLabelWrapperComponent, decorators: [{
4764
4767
  type: Component,
4765
4768
  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" }]
4766
4769
  }] });
@@ -4805,10 +4808,10 @@ class FormlyFieldWrapperComponent extends FieldWrapper {
4805
4808
  this.helpText.set(descriptor.helpText);
4806
4809
  }
4807
4810
  }
4808
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4809
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FormlyFieldWrapperComponent, isStandalone: true, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @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", "pTooltipPT", "pTooltipUnstyled"] }, { 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 }); }
4811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4812
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: FormlyFieldWrapperComponent, isStandalone: true, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @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", "pTooltipPT", "pTooltipUnstyled"] }, { 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 }); }
4810
4813
  }
4811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldWrapperComponent, decorators: [{
4814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldWrapperComponent, decorators: [{
4812
4815
  type: Component,
4813
4816
  args: [{ selector: 'mng-formly-field-wrapper', imports: [TranslatePipe, FormlyFieldLabelPipe, NgClass, Tooltip, FormlyValidationMessage], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"wrapperClassName()\">\n <div>\n @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" }]
4814
4817
  }] });
@@ -4973,12 +4976,12 @@ class FormlyFieldDatepickerComponent extends ACommonsFormlyFieldType {
4973
4976
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
4974
4977
  });
4975
4978
  }
4976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4977
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", 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 }); }
4979
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4980
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: FormlyFieldDatepickerComponent, isStandalone: true, selector: "mng-formly-field-datepicker", usesInheritance: true, ngImport: i0, template: "<mng-datetime-picker\n [id]=\"descriptor.property\"\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 }); }
4978
4981
  }
4979
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FormlyFieldDatepickerComponent, decorators: [{
4982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FormlyFieldDatepickerComponent, decorators: [{
4980
4983
  type: Component,
4981
- 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" }]
4984
+ args: [{ selector: 'mng-formly-field-datepicker', imports: [ReactiveFormsModule, TranslatePipe, FormlyAttributes, DatetimePickerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-datetime-picker\n [id]=\"descriptor.property\"\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" }]
4982
4985
  }] });
4983
4986
 
4984
4987
  const formlyWrappersConfig = [
@@ -5280,10 +5283,10 @@ class TableviewRouteComponent {
5280
5283
  constructor() {
5281
5284
  this.tableview = input.required(...(ngDevMode ? [{ debugName: "tableview" }] : []));
5282
5285
  }
5283
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", 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 }); }
5286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", 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 }); }
5285
5288
  }
5286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TableviewRouteComponent, decorators: [{
5289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TableviewRouteComponent, decorators: [{
5287
5290
  type: Component,
5288
5291
  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" }]
5289
5292
  }], propDecorators: { tableview: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableview", required: true }] }] } });