@magic-xpa/angular 4.1300.0-dev4130.23 → 4.1300.0-dev4130.234

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/fesm2022/magic-xpa-angular.mjs +421 -203
  2. package/fesm2022/magic-xpa-angular.mjs.map +1 -1
  3. package/package.json +17 -14
  4. package/types/magic-xpa-angular.d.ts +2630 -0
  5. package/index.d.ts +0 -61
  6. package/src/controls.metadata.model.d.ts +0 -78
  7. package/src/interfaces/sub-form-definition.iterface.d.ts +0 -18
  8. package/src/magic.core.module.d.ts +0 -44
  9. package/src/services/ISubformMagicService.d.ts +0 -4
  10. package/src/services/OverlayWindowService.d.ts +0 -49
  11. package/src/services/StylesMapManager.d.ts +0 -8
  12. package/src/services/accessor.magic.service.d.ts +0 -311
  13. package/src/services/commands-collector.magic.service.d.ts +0 -18
  14. package/src/services/component-list.magic.service.d.ts +0 -50
  15. package/src/services/confirmation.components.magic.provider.d.ts +0 -24
  16. package/src/services/engine.magic.service.d.ts +0 -32
  17. package/src/services/exit.magic.service.d.ts +0 -12
  18. package/src/services/magic-color.service.d.ts +0 -25
  19. package/src/services/magic.lazy.loader.service.d.ts +0 -6
  20. package/src/services/magic.providers.d.ts +0 -110
  21. package/src/services/magic.services.d.ts +0 -22
  22. package/src/services/mg-date-adapter.d.ts +0 -38
  23. package/src/services/overlay.conainer.magic.provider.d.ts +0 -7
  24. package/src/services/router-commands.magic.service.d.ts +0 -23
  25. package/src/services/subform.magic.service.d.ts +0 -71
  26. package/src/services/table.magic.service.d.ts +0 -86
  27. package/src/services/task.magics.service.d.ts +0 -405
  28. package/src/services/title.magic.service.d.ts +0 -20
  29. package/src/ui/GuiInteractiveExecutor.d.ts +0 -25
  30. package/src/ui/components/base-magic-alert.component.d.ts +0 -26
  31. package/src/ui/components/base-magic-confirm.component.d.ts +0 -28
  32. package/src/ui/components/magic-alert.component.d.ts +0 -9
  33. package/src/ui/components/magic-confirmation-box.component.d.ts +0 -9
  34. package/src/ui/directives/NonMagicControlDirective.d.ts +0 -67
  35. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +0 -15
  36. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +0 -34
  37. package/src/ui/directives/magic/combobox.magic.directive.d.ts +0 -19
  38. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +0 -13
  39. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +0 -36
  40. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +0 -13
  41. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +0 -15
  42. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +0 -21
  43. package/src/ui/directives/magic/row.magic.directive.d.ts +0 -32
  44. package/src/ui/directives/magic-focus.directive.d.ts +0 -12
  45. package/src/ui/directives/magic.directive.d.ts +0 -127
  46. package/src/ui/directives/magicViewContainerRef.directive.d.ts +0 -11
  47. package/src/ui/directives/mgformat.magic.directive.d.ts +0 -82
  48. package/src/ui/directives/range-validator.magic.directive.d.ts +0 -33
  49. package/src/ui/magic-confirmationBox.d.ts +0 -25
  50. package/src/ui/magic-modal/base-magic-overlay-container.d.ts +0 -14
  51. package/src/ui/magic-modal/magic-modal-form.d.ts +0 -8
  52. package/src/ui/magic-modal/magic-modal-interface.d.ts +0 -45
  53. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +0 -50
  54. package/src/ui/magic-modal/magic-overlay-container.d.ts +0 -117
  55. package/src/ui/magic-root.component.d.ts +0 -85
  56. package/src/ui/mgerror.magic.component.d.ts +0 -39
  57. package/src/ui/pipes/date.magic.pipe.d.ts +0 -23
  58. package/src/ui/pipes/time.magic.pipe.d.ts +0 -14
  59. package/src/ui/pipes/time24.magic.pipe.d.ts +0 -10
  60. package/src/ui/router-container.magic.component.d.ts +0 -50
  61. package/src/ui/subform.magic.component.d.ts +0 -37
  62. package/src/ui/task-base.magic.component.d.ts +0 -112
  63. package/src/ui/utils.d.ts +0 -12
@@ -1,28 +1,29 @@
1
1
  import { isNullOrUndefined, NString, List, isUndefined, StringBuilder, RefParam } from '@magic-xpa/mscorelib';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, Component, Input, Output, Directive, EventEmitter, HostListener, ViewChild, InjectionToken, Inject, Optional, Pipe, forwardRef, NgModule } from '@angular/core';
3
+ import { Injectable, createNgModule, ChangeDetectionStrategy, Component, Input, Output, Directive, EventEmitter, HostListener, ViewChild, InjectionToken, Inject, Optional, Pipe, forwardRef, NgModule } from '@angular/core';
4
4
  import * as i1 from '@angular/common';
5
5
  import { DatePipe, CommonModule, formatDate } from '@angular/common';
6
6
  import * as i2 from '@angular/router';
7
7
  import { NavigationEnd, RouterModule } from '@angular/router';
8
8
  import { FormGroup, FormControl, Validators, NG_VALIDATORS, NG_VALUE_ACCESSOR, CheckboxControlValueAccessor, DefaultValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
- import * as i3 from 'ng-dynamic-component';
9
+ import * as i2$3 from 'ng-dynamic-component';
10
10
  import { DynamicModule } from 'ng-dynamic-component';
11
11
  import { InteractiveCommandType, HtmlProperties, OverlayType, Styles, GuiConstants, CommandType, PIC, GuiEnvironment, Events, Modifiers } from '@magic-xpa/gui';
12
12
  import { MagicBridge, getGuiEventObj, CookieService, Environment, LastFocusedManager } from '@magic-xpa/engine';
13
13
  import { MagicProperties, Logger, StrUtil, StorageAttribute, PICInterface, MsgInterface, BindingLevel, StorageAttributeType, MgControlType } from '@magic-xpa/utils';
14
14
  import { filter, map, debounceTime, take } from 'rxjs/operators';
15
- import { Subject, EMPTY, fromEvent } from 'rxjs';
15
+ import { Subject, EMPTY, fromEvent, Observable } from 'rxjs';
16
16
  import { __decorate, __metadata } from 'tslib';
17
17
  import * as i2$1 from '@angular/cdk/drag-drop';
18
18
  import { DragDropModule, CdkDragHandle, CdkDrag } from '@angular/cdk/drag-drop';
19
19
  import * as i1$1 from '@angular/platform-browser';
20
20
  import * as i1$2 from '@angular/common/http';
21
- import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
21
+ import { provideHttpClient, withXhr, withInterceptorsFromDi } from '@angular/common/http';
22
22
  import { maskitoTimeOptionsGenerator } from '@maskito/kit';
23
23
  import * as i2$2 from '@angular/cdk/platform';
24
- import { MaskitoModule } from '@maskito/angular';
24
+ import { MaskitoDirective } from '@maskito/angular';
25
25
  import { NativeDateAdapter, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
26
+ import { io } from 'socket.io-client';
26
27
 
27
28
  /**
28
29
  * @ignore
@@ -460,7 +461,8 @@ class CommandsCollectorMagicService {
460
461
  commands.forEach(command => { this.commands.Remove(command); });
461
462
  return commands;
462
463
  }
463
- /** @nocollapse */ static ɵfac = function CommandsCollectorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommandsCollectorMagicService)(i0.ɵɵinject(EngineMagicService)); };
464
+ /** @nocollapse */ static ɵfac = function CommandsCollectorMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
465
+ return new (__ngFactoryType__ || CommandsCollectorMagicService)(i0.ɵɵinject(EngineMagicService)); };
464
466
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: CommandsCollectorMagicService, factory: CommandsCollectorMagicService.ɵfac, providedIn: 'root' });
465
467
  }
466
468
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommandsCollectorMagicService, [{
@@ -531,13 +533,12 @@ class SubformMagicService {
531
533
  componentListMagicService;
532
534
  loader;
533
535
  injector;
534
- compiler;
535
536
  subformsDict /*:{ [x: string]: SubformDefinition }*/ = {};
536
537
  routesDict = {}; // dictionary of router outlet to router path
537
538
  currentRouteDefinition = null;
538
539
  static currentCallerMgSubformServiceRef = null;
539
540
  static routerContainers = new Array();
540
- constructor(task, activatedRoute, componentList, pendingCommandsCollector, router, routerCommandsMagicService, componentListMagicService, loader, injector, compiler) {
541
+ constructor(task, activatedRoute, componentList, pendingCommandsCollector, router, routerCommandsMagicService, componentListMagicService, loader, injector) {
541
542
  this.task = task;
542
543
  this.activatedRoute = activatedRoute;
543
544
  this.componentList = componentList;
@@ -547,7 +548,6 @@ class SubformMagicService {
547
548
  this.componentListMagicService = componentListMagicService;
548
549
  this.loader = loader;
549
550
  this.injector = injector;
550
- this.compiler = compiler;
551
551
  }
552
552
  /**
553
553
  * Finds and returns the component according to the subform name
@@ -608,8 +608,7 @@ class SubformMagicService {
608
608
  // extract name of module(XX) from 'MagicXXModule'
609
609
  const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
610
610
  this.loader.Load(moduleName).then(m => {
611
- const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
612
- moduleRef = compiled.ngModuleFactory.create(this.injector);
611
+ moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
613
612
  this.subformsDict[subformControlName] = {
614
613
  formName,
615
614
  parameters: { taskIdParam: taskId, taskDescription: taskDescription }
@@ -749,12 +748,13 @@ class SubformMagicService {
749
748
  }
750
749
  return currentActiveRoute;
751
750
  }
752
- /** @nocollapse */ static ɵfac = function SubformMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(i2.ActivatedRoute), i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(CommandsCollectorMagicService), i0.ɵɵinject(i2.Router), i0.ɵɵinject(RouterCommandsMagicService), i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(MagicLazyLoaderService), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.Compiler)); };
751
+ /** @nocollapse */ static ɵfac = function SubformMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
752
+ return new (__ngFactoryType__ || SubformMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(i2.ActivatedRoute), i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(CommandsCollectorMagicService), i0.ɵɵinject(i2.Router), i0.ɵɵinject(RouterCommandsMagicService), i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(MagicLazyLoaderService), i0.ɵɵinject(i0.Injector)); };
753
753
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SubformMagicService, factory: SubformMagicService.ɵfac });
754
754
  }
755
755
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicService, [{
756
756
  type: Injectable
757
- }], () => [{ type: TaskMagicService }, { type: i2.ActivatedRoute }, { type: ComponentListMagicService }, { type: CommandsCollectorMagicService }, { type: i2.Router }, { type: RouterCommandsMagicService }, { type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.Compiler }], null); })();
757
+ }], () => [{ type: TaskMagicService }, { type: i2.ActivatedRoute }, { type: ComponentListMagicService }, { type: CommandsCollectorMagicService }, { type: i2.Router }, { type: RouterCommandsMagicService }, { type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }], null); })();
758
758
 
759
759
  /**
760
760
  * Mock component, implements routing by connecting the requested URL with the appropriate Magic task
@@ -872,8 +872,9 @@ class RouterContainerMagicComponent {
872
872
  getRouterPath() {
873
873
  return this.routePath;
874
874
  }
875
- /** @nocollapse */ static ɵfac = function RouterContainerMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RouterContainerMagicComponent)(i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(EngineMagicService), i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(CommandsCollectorMagicService), i0.ɵɵdirectiveInject(RouterCommandsMagicService)); };
876
- /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: RouterContainerMagicComponent, selectors: [["magic-route-outlet"]], standalone: false, decls: 0, vars: 0, template: function RouterContainerMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
875
+ /** @nocollapse */ static ɵfac = function RouterContainerMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
876
+ return new (__ngFactoryType__ || RouterContainerMagicComponent)(i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(EngineMagicService), i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(CommandsCollectorMagicService), i0.ɵɵdirectiveInject(RouterCommandsMagicService)); };
877
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: RouterContainerMagicComponent, selectors: [["magic-route-outlet"]], standalone: false, decls: 0, vars: 0, template: function RouterContainerMagicComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
877
878
  }
878
879
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouterContainerMagicComponent, [{
879
880
  type: Component,
@@ -881,10 +882,11 @@ class RouterContainerMagicComponent {
881
882
  selector: 'magic-route-outlet',
882
883
  template: `
883
884
  `,
885
+ changeDetection: ChangeDetectionStrategy.Eager,
884
886
  standalone: false
885
887
  }]
886
888
  }], () => [{ type: i2.ActivatedRoute }, { type: i2.Router }, { type: EngineMagicService }, { type: TaskMagicService }, { type: i0.ViewContainerRef }, { type: ComponentListMagicService }, { type: CommandsCollectorMagicService }, { type: RouterCommandsMagicService }], null); })();
887
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src/ui/router-container.magic.component.ts", lineNumber: 23 }); })();
889
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src/ui/router-container.magic.component.ts", lineNumber: 24 }); })();
888
890
 
889
891
  /**
890
892
  * @ignore
@@ -1003,6 +1005,61 @@ class GuiInteractiveExecutor {
1003
1005
  }
1004
1006
  }
1005
1007
 
1008
+ class MagicModalProperties {
1009
+ formName = "overlay";
1010
+ showTitleBar = true;
1011
+ x = 0;
1012
+ y = 0;
1013
+ width = "300px";
1014
+ height = "300px";
1015
+ isCenteredToWindow = true;
1016
+ shouldCloseOnBackgroundClick = true;
1017
+ isResizable = true;
1018
+ isMovable = true;
1019
+ constructor(formName, showTitleBar, x, y, width, height, isCenteredToWindow, shouldCloseOnBackgroundClick, isResizable, isMovable) {
1020
+ this.formName = formName;
1021
+ this.showTitleBar = showTitleBar;
1022
+ this.x = x;
1023
+ this.y = y;
1024
+ this.width = width;
1025
+ this.height = height;
1026
+ this.isCenteredToWindow = isCenteredToWindow;
1027
+ this.shouldCloseOnBackgroundClick = shouldCloseOnBackgroundClick;
1028
+ this.isResizable = isResizable;
1029
+ this.isMovable = isMovable;
1030
+ }
1031
+ X() {
1032
+ return this.x;
1033
+ }
1034
+ Y() {
1035
+ return this.y;
1036
+ }
1037
+ Width() {
1038
+ return this.width;
1039
+ }
1040
+ Height() {
1041
+ return this.height;
1042
+ }
1043
+ IsCenteredToWindow() {
1044
+ return this.isCenteredToWindow;
1045
+ }
1046
+ FormName() {
1047
+ return this.formName;
1048
+ }
1049
+ ShowTitleBar() {
1050
+ return this.showTitleBar;
1051
+ }
1052
+ ShouldCloseOnBackgroundClick() {
1053
+ return this.shouldCloseOnBackgroundClick;
1054
+ }
1055
+ IsResizable() {
1056
+ return this.isResizable;
1057
+ }
1058
+ IsMovable() {
1059
+ return this.isMovable;
1060
+ }
1061
+ }
1062
+
1006
1063
  let BaseMagicOverlayContainer = class BaseMagicOverlayContainer {
1007
1064
  };
1008
1065
  __decorate([
@@ -1033,7 +1090,8 @@ class MagicViewContainerRef {
1033
1090
  let comp = (this.vcRef._hostLView).find(v => v != null && !isNullOrUndefined(v.setViewContainerRef));
1034
1091
  comp.setViewContainerRef(vcRef);
1035
1092
  }
1036
- /** @nocollapse */ static ɵfac = function MagicViewContainerRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicViewContainerRef)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
1093
+ /** @nocollapse */ static ɵfac = function MagicViewContainerRef_Factory(__ngFactoryType__) { /* @ts-ignore */
1094
+ return new (__ngFactoryType__ || MagicViewContainerRef)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
1037
1095
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicViewContainerRef, selectors: [["", "magicViewContainerRef", ""]], standalone: false });
1038
1096
  }
1039
1097
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicViewContainerRef, [{
@@ -1046,50 +1104,50 @@ class MagicViewContainerRef {
1046
1104
 
1047
1105
  const _c0$3 = ["modalheader"];
1048
1106
  const _c1$1 = ["modalForeground"];
1049
- function MagicOverlayContainer_button_2_Template(rf, ctx) { if (rf & 1) {
1050
- const _r2 = i0.ɵɵgetCurrentView();
1107
+ function MagicOverlayContainer_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1108
+ const _r1 = i0.ɵɵgetCurrentView();
1051
1109
  i0.ɵɵelementStart(0, "button", 14);
1052
- i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnClose()); });
1110
+ i0.ɵɵlistener("click", function MagicOverlayContainer_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
1053
1111
  i0.ɵɵtext(1, "X");
1054
1112
  i0.ɵɵelementEnd();
1055
1113
  } }
1056
- function MagicOverlayContainer_span_5_Template(rf, ctx) { if (rf & 1) {
1057
- const _r4 = i0.ɵɵgetCurrentView();
1114
+ function MagicOverlayContainer_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1115
+ const _r3 = i0.ɵɵgetCurrentView();
1058
1116
  i0.ɵɵelementStart(0, "span", 15);
1059
- i0.ɵɵlistener("mousedown", function MagicOverlayContainer_span_5_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeStart($event, "right")); });
1117
+ i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_5_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResizeStart($event, "right")); });
1060
1118
  i0.ɵɵelementEnd();
1061
1119
  } }
1062
- function MagicOverlayContainer_span_6_Template(rf, ctx) { if (rf & 1) {
1063
- const _r5 = i0.ɵɵgetCurrentView();
1120
+ function MagicOverlayContainer_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1121
+ const _r4 = i0.ɵɵgetCurrentView();
1064
1122
  i0.ɵɵelementStart(0, "span", 16);
1065
- i0.ɵɵlistener("mousedown", function MagicOverlayContainer_span_6_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeStart($event, "left")); });
1123
+ i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_6_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResizeStart($event, "left")); });
1066
1124
  i0.ɵɵelementEnd();
1067
1125
  } }
1068
- function MagicOverlayContainer_span_7_Template(rf, ctx) { if (rf & 1) {
1069
- const _r6 = i0.ɵɵgetCurrentView();
1126
+ function MagicOverlayContainer_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1127
+ const _r5 = i0.ɵɵgetCurrentView();
1070
1128
  i0.ɵɵelementStart(0, "span", 17);
1071
- i0.ɵɵlistener("mousedown", function MagicOverlayContainer_span_7_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeStart($event, "corner")); });
1129
+ i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_7_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResizeStart($event, "corner")); });
1072
1130
  i0.ɵɵelementEnd();
1073
1131
  } }
1074
- function MagicOverlayContainer_span_8_Template(rf, ctx) { if (rf & 1) {
1075
- const _r7 = i0.ɵɵgetCurrentView();
1132
+ function MagicOverlayContainer_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1133
+ const _r6 = i0.ɵɵgetCurrentView();
1076
1134
  i0.ɵɵelementStart(0, "span", 18);
1077
- i0.ɵɵlistener("mousedown", function MagicOverlayContainer_span_8_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeStart($event, "bottom")); });
1135
+ i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_8_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResizeStart($event, "bottom")); });
1078
1136
  i0.ɵɵelementEnd();
1079
1137
  } }
1080
- function MagicOverlayContainer_div_9_Template(rf, ctx) { if (rf & 1) {
1081
- const _r8 = i0.ɵɵgetCurrentView();
1138
+ function MagicOverlayContainer_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1139
+ const _r7 = i0.ɵɵgetCurrentView();
1082
1140
  i0.ɵɵelementStart(0, "div", 19, 2);
1083
1141
  i0.ɵɵtext(2);
1084
1142
  i0.ɵɵelementStart(3, "button", 20);
1085
- i0.ɵɵlistener("click", function MagicOverlayContainer_div_9_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnClose()); });
1143
+ i0.ɵɵlistener("click", function MagicOverlayContainer_Conditional_9_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
1086
1144
  i0.ɵɵtext(4, "X");
1087
1145
  i0.ɵɵelementEnd()();
1088
1146
  } if (rf & 2) {
1089
- const ctx_r2 = i0.ɵɵnextContext();
1090
- i0.ɵɵclassProp("movable", ctx_r2.IsMovable());
1147
+ const ctx_r1 = i0.ɵɵnextContext();
1148
+ i0.ɵɵclassProp("movable", ctx_r1.IsMovable());
1091
1149
  i0.ɵɵadvance(2);
1092
- i0.ɵɵtextInterpolate1(" ", ctx_r2.getText(), " ");
1150
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getText(), " ");
1093
1151
  } }
1094
1152
  /**
1095
1153
  * Creates a modal window for Magic modal window components
@@ -1142,7 +1200,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1142
1200
  ngOnInit() {
1143
1201
  this.componentRef = this.modalbodyViewContainerRef.createComponent(this.ModalComp);
1144
1202
  Object.assign(this.componentRef.instance, this.ModalCompParameters);
1145
- let comp = this.componentRef.instance;
1203
+ let comp = this.getOverlayProps();
1146
1204
  this.isCenteredToWindow = comp.IsCenteredToWindow();
1147
1205
  }
1148
1206
  ngAfterViewInit() {
@@ -1161,7 +1219,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1161
1219
  */
1162
1220
  getText() {
1163
1221
  if (this.componentRef !== null) {
1164
- let comp = this.componentRef.instance;
1222
+ let comp = this.getOverlayProps();
1165
1223
  return comp.FormName();
1166
1224
  }
1167
1225
  else
@@ -1180,7 +1238,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1180
1238
  getStyle() {
1181
1239
  let styles = {};
1182
1240
  if (this.componentRef != undefined) {
1183
- let comp = this.componentRef.instance;
1241
+ let comp = this.getOverlayProps();
1184
1242
  styles['width'] = comp.Width();
1185
1243
  styles['height'] = comp.Height();
1186
1244
  if (this.isCenteredToWindow) {
@@ -1217,7 +1275,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1217
1275
  */
1218
1276
  getShowTitleBar() {
1219
1277
  if (this.componentRef != undefined) {
1220
- let comp = this.componentRef.instance;
1278
+ let comp = this.getOverlayProps();
1221
1279
  return comp.ShowTitleBar();
1222
1280
  }
1223
1281
  }
@@ -1231,7 +1289,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1231
1289
  * Handles click in the background window
1232
1290
  */
1233
1291
  OnBackgroundClick() {
1234
- let comp = this.componentRef.instance;
1292
+ let comp = this.getOverlayProps();
1235
1293
  if (comp.ShouldCloseOnBackgroundClick())
1236
1294
  this.OnClose();
1237
1295
  }
@@ -1240,7 +1298,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1240
1298
  * @returns {boolean} True if the overlay is resizable, false otherwise.
1241
1299
  */
1242
1300
  IsResizable() {
1243
- let comp = this.componentRef.instance;
1301
+ let comp = this.getOverlayProps();
1244
1302
  return comp.IsResizable();
1245
1303
  }
1246
1304
  /**
@@ -1248,7 +1306,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1248
1306
  * @returns {boolean} True if the overlay is movable, false otherwise.
1249
1307
  */
1250
1308
  IsMovable() {
1251
- let comp = this.componentRef.instance;
1309
+ let comp = this.getOverlayProps();
1252
1310
  return comp.IsMovable();
1253
1311
  }
1254
1312
  /**
@@ -1342,45 +1400,53 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1342
1400
  this.resizing = false;
1343
1401
  this.resizeDirection = null;
1344
1402
  }
1403
+ getOverlayProps() {
1404
+ let obj = this.componentRef.instance;
1405
+ if (obj && obj.magicModalProperties instanceof MagicModalProperties)
1406
+ obj = obj.magicModalProperties;
1407
+ return obj;
1408
+ }
1345
1409
  /** @nocollapse */ static ɵfac = function MagicOverlayContainer_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainer)(); };
1346
1410
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicOverlayContainer, selectors: [["app-magic-overlay-container"]], viewQuery: function MagicOverlayContainer_Query(rf, ctx) { if (rf & 1) {
1347
- i0.ɵɵviewQuery(_c0$3, 5);
1348
- i0.ɵɵviewQuery(_c1$1, 5);
1411
+ i0.ɵɵviewQuery(_c0$3, 5)(_c1$1, 5);
1349
1412
  } if (rf & 2) {
1350
1413
  let _t;
1351
1414
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerElementRef = _t.first);
1352
1415
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.foregroundElementRef = _t.first);
1353
1416
  } }, hostBindings: function MagicOverlayContainer_HostBindings(rf, ctx) { if (rf & 1) {
1354
- i0.ɵɵlistener("mousemove", function MagicOverlayContainer_mousemove_HostBindingHandler($event) { return ctx.onResize($event); }, false, i0.ɵɵresolveWindow)("mouseup", function MagicOverlayContainer_mouseup_HostBindingHandler() { return ctx.onResizeEnd(); }, false, i0.ɵɵresolveWindow);
1355
- } }, inputs: { ModalComp: "ModalComp", ModalCompParameters: "ModalCompParameters" }, outputs: { onClose: "onClose" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 9, consts: [["modalForeground", ""], ["modalbody", ""], ["modalheader", ""], [1, "boundary-line"], [1, "modal-background", 3, "click"], ["tabindex", "-1", "style", "float:right; border: none; background-color: transparent; outline: none; color: white", 3, "click", 4, "ngIf"], ["cdkDragBoundary", ".boundary-line", "cdkDrag", "", 1, "modal-foreground", 3, "ngStyle", "cdkDragDisabled"], ["class", "dragHandle right", 3, "mousedown", 4, "ngIf"], ["class", "dragHandle left", 3, "mousedown", 4, "ngIf"], ["class", "dragHandle corner", 3, "mousedown", 4, "ngIf"], ["class", "dragHandle bottom", 3, "mousedown", 4, "ngIf"], ["class", "modal-header", "cdkDragHandle", "", 3, "movable", 4, "ngIf"], [3, "ngStyle"], ["magicViewContainerRef", ""], ["tabindex", "-1", 2, "float", "right", "border", "none", "background-color", "transparent", "outline", "none", "color", "white", 3, "click"], [1, "dragHandle", "right", 3, "mousedown"], [1, "dragHandle", "left", 3, "mousedown"], [1, "dragHandle", "corner", 3, "mousedown"], [1, "dragHandle", "bottom", 3, "mousedown"], ["cdkDragHandle", "", 1, "modal-header"], ["tabindex", "-1", 2, "float", "right", 3, "click"]], template: function MagicOverlayContainer_Template(rf, ctx) { if (rf & 1) {
1356
- const _r1 = i0.ɵɵgetCurrentView();
1417
+ i0.ɵɵlistener("mousemove", function MagicOverlayContainer_mousemove_HostBindingHandler($event) { return ctx.onResize($event); }, i0.ɵɵresolveWindow)("mouseup", function MagicOverlayContainer_mouseup_HostBindingHandler() { return ctx.onResizeEnd(); }, i0.ɵɵresolveWindow);
1418
+ } }, inputs: { ModalComp: "ModalComp", ModalCompParameters: "ModalCompParameters" }, outputs: { onClose: "onClose" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 9, consts: [["modalForeground", ""], ["modalbody", ""], ["modalheader", ""], [1, "boundary-line"], [1, "modal-background", 3, "click"], ["tabindex", "-1", 2, "float", "right", "border", "none", "background-color", "transparent", "outline", "none", "color", "white"], ["cdkDragBoundary", ".boundary-line", "cdkDrag", "", 1, "modal-foreground", 3, "ngStyle", "cdkDragDisabled"], [1, "dragHandle", "right"], [1, "dragHandle", "left"], [1, "dragHandle", "corner"], [1, "dragHandle", "bottom"], ["cdkDragHandle", "", 1, "modal-header", 3, "movable"], [3, "ngStyle"], ["magicViewContainerRef", ""], ["tabindex", "-1", 2, "float", "right", "border", "none", "background-color", "transparent", "outline", "none", "color", "white", 3, "click"], [1, "dragHandle", "right", 3, "mousedown"], [1, "dragHandle", "left", 3, "mousedown"], [1, "dragHandle", "corner", 3, "mousedown"], [1, "dragHandle", "bottom", 3, "mousedown"], ["cdkDragHandle", "", 1, "modal-header"], ["tabindex", "-1", 2, "float", "right", 3, "click"]], template: function MagicOverlayContainer_Template(rf, ctx) { if (rf & 1) {
1357
1419
  i0.ɵɵelementStart(0, "div", 3)(1, "div", 4);
1358
- i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnBackgroundClick()); });
1359
- i0.ɵɵtemplate(2, MagicOverlayContainer_button_2_Template, 2, 0, "button", 5);
1420
+ i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { return ctx.OnBackgroundClick(); });
1421
+ i0.ɵɵconditionalCreate(2, MagicOverlayContainer_Conditional_2_Template, 2, 0, "button", 5);
1360
1422
  i0.ɵɵelementEnd();
1361
1423
  i0.ɵɵelementStart(3, "div", 6, 0);
1362
- i0.ɵɵtemplate(5, MagicOverlayContainer_span_5_Template, 1, 0, "span", 7)(6, MagicOverlayContainer_span_6_Template, 1, 0, "span", 8)(7, MagicOverlayContainer_span_7_Template, 1, 0, "span", 9)(8, MagicOverlayContainer_span_8_Template, 1, 0, "span", 10)(9, MagicOverlayContainer_div_9_Template, 5, 3, "div", 11);
1424
+ i0.ɵɵconditionalCreate(5, MagicOverlayContainer_Conditional_5_Template, 1, 0, "span", 7);
1425
+ i0.ɵɵconditionalCreate(6, MagicOverlayContainer_Conditional_6_Template, 1, 0, "span", 8);
1426
+ i0.ɵɵconditionalCreate(7, MagicOverlayContainer_Conditional_7_Template, 1, 0, "span", 9);
1427
+ i0.ɵɵconditionalCreate(8, MagicOverlayContainer_Conditional_8_Template, 1, 0, "span", 10);
1428
+ i0.ɵɵconditionalCreate(9, MagicOverlayContainer_Conditional_9_Template, 5, 3, "div", 11);
1363
1429
  i0.ɵɵelementStart(10, "div", 12);
1364
1430
  i0.ɵɵelement(11, "div", 13, 1);
1365
1431
  i0.ɵɵelementEnd()()();
1366
1432
  } if (rf & 2) {
1367
1433
  i0.ɵɵadvance(2);
1368
- i0.ɵɵproperty("ngIf", !ctx.getShowTitleBar());
1434
+ i0.ɵɵconditional(!ctx.getShowTitleBar() ? 2 : -1);
1369
1435
  i0.ɵɵadvance();
1370
1436
  i0.ɵɵproperty("ngStyle", ctx.getStyle())("cdkDragDisabled", !ctx.IsMovable());
1371
1437
  i0.ɵɵadvance(2);
1372
- i0.ɵɵproperty("ngIf", ctx.IsResizable() && !ctx.isRtl);
1438
+ i0.ɵɵconditional(ctx.IsResizable() && !ctx.isRtl ? 5 : -1);
1373
1439
  i0.ɵɵadvance();
1374
- i0.ɵɵproperty("ngIf", ctx.IsResizable() && ctx.isRtl);
1440
+ i0.ɵɵconditional(ctx.IsResizable() && ctx.isRtl ? 6 : -1);
1375
1441
  i0.ɵɵadvance();
1376
- i0.ɵɵproperty("ngIf", ctx.IsResizable());
1442
+ i0.ɵɵconditional(ctx.IsResizable() ? 7 : -1);
1377
1443
  i0.ɵɵadvance();
1378
- i0.ɵɵproperty("ngIf", ctx.IsResizable());
1444
+ i0.ɵɵconditional(ctx.IsResizable() ? 8 : -1);
1379
1445
  i0.ɵɵadvance();
1380
- i0.ɵɵproperty("ngIf", ctx.getShowTitleBar());
1446
+ i0.ɵɵconditional(ctx.getShowTitleBar() ? 9 : -1);
1381
1447
  i0.ɵɵadvance();
1382
1448
  i0.ɵɵproperty("ngStyle", ctx.getClientAreaStyles());
1383
- } }, dependencies: [i1.NgIf, i1.NgStyle, i2$1.CdkDragHandle, i2$1.CdkDrag, MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}.modal-header.movable[_ngcontent-%COMP%]:active{cursor:move}.container[_ngcontent-%COMP%]{position:relative}.dragHandle[_ngcontent-%COMP%]{position:absolute}.dragHandle.corner[_ngcontent-%COMP%]{width:10px;right:0;bottom:0;height:10px;cursor:nwse-resize;background:linear-gradient(135deg,rgba(0,0,0,.4) 50%,transparent 50%);position:absolute}[dir=\"rtl\"][_nghost-%COMP%] .dragHandle.corner[_ngcontent-%COMP%], [dir=\"rtl\"] [_nghost-%COMP%] .dragHandle.corner[_ngcontent-%COMP%]{right:auto!important;left:0;cursor:nesw-resize;background:linear-gradient(225deg,rgba(0,0,0,.4) 50%,transparent 50%)}.dragHandle.left[_ngcontent-%COMP%]{width:2px;left:-2px;height:100%;cursor:ew-resize}.dragHandle.right[_ngcontent-%COMP%]{width:2px;right:-2px;height:100%;cursor:ew-resize}.dragHandle.bottom[_ngcontent-%COMP%]{height:2px;bottom:-2px;width:100%;cursor:ns-resize}.boundary-line[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%}"] });
1449
+ } }, dependencies: [i1.NgStyle, i2$1.CdkDragHandle, i2$1.CdkDrag, MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}.modal-header.movable[_ngcontent-%COMP%]:active{cursor:move}.container[_ngcontent-%COMP%]{position:relative}.dragHandle[_ngcontent-%COMP%]{position:absolute}.dragHandle.corner[_ngcontent-%COMP%]{width:10px;right:0;bottom:0;height:10px;cursor:nwse-resize;background:linear-gradient(135deg,rgba(0,0,0,.4) 50%,transparent 50%);position:absolute}[dir=\"rtl\"][_nghost-%COMP%] .dragHandle.corner[_ngcontent-%COMP%], [dir=\"rtl\"] [_nghost-%COMP%] .dragHandle.corner[_ngcontent-%COMP%]{right:auto!important;left:0;cursor:nesw-resize;background:linear-gradient(225deg,rgba(0,0,0,.4) 50%,transparent 50%)}.dragHandle.left[_ngcontent-%COMP%]{width:2px;left:-2px;height:100%;cursor:ew-resize}.dragHandle.right[_ngcontent-%COMP%]{width:2px;right:-2px;height:100%;cursor:ew-resize}.dragHandle.bottom[_ngcontent-%COMP%]{height:2px;bottom:-2px;width:100%;cursor:ns-resize}.boundary-line[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%}"], changeDetection: 1 });
1384
1450
  }
1385
1451
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
1386
1452
  type: Component,
@@ -1388,20 +1454,32 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1388
1454
  <div class="boundary-line">
1389
1455
 
1390
1456
  <div class="modal-background" (click)="OnBackgroundClick()">
1391
- <button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white" *ngIf="!getShowTitleBar()">X</button>
1457
+ @if (!getShowTitleBar()) {
1458
+ <button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white">X</button>
1459
+ }
1392
1460
  </div>
1393
1461
 
1394
1462
  <div #modalForeground class="modal-foreground" [ngStyle]="getStyle()" cdkDragBoundary=".boundary-line" cdkDrag [cdkDragDisabled]="!IsMovable()">
1395
1463
 
1396
- <span *ngIf="IsResizable() && !isRtl" class="dragHandle right" (mousedown)="onResizeStart($event, 'right')"></span>
1397
- <span *ngIf="IsResizable() && isRtl" class="dragHandle left" (mousedown)="onResizeStart($event, 'left')"></span>
1398
- <span *ngIf="IsResizable()" class="dragHandle corner" (mousedown)="onResizeStart($event, 'corner')"></span>
1399
- <span *ngIf="IsResizable()" class="dragHandle bottom" (mousedown)="onResizeStart($event, 'bottom')"></span>
1464
+ @if (IsResizable() && !isRtl) {
1465
+ <span class="dragHandle right" (mousedown)="onResizeStart($event, 'right')"></span>
1466
+ }
1467
+ @if (IsResizable() && isRtl) {
1468
+ <span class="dragHandle left" (mousedown)="onResizeStart($event, 'left')"></span>
1469
+ }
1470
+ @if (IsResizable()) {
1471
+ <span class="dragHandle corner" (mousedown)="onResizeStart($event, 'corner')"></span>
1472
+ }
1473
+ @if (IsResizable()) {
1474
+ <span class="dragHandle bottom" (mousedown)="onResizeStart($event, 'bottom')"></span>
1475
+ }
1400
1476
 
1401
- <div #modalheader class="modal-header" *ngIf="getShowTitleBar()" cdkDragHandle [class.movable]="IsMovable()">
1402
- {{getText()}}
1403
- <button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
1404
- </div>
1477
+ @if (getShowTitleBar()) {
1478
+ <div #modalheader class="modal-header" cdkDragHandle [class.movable]="IsMovable()">
1479
+ {{getText()}}
1480
+ <button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
1481
+ </div>
1482
+ }
1405
1483
 
1406
1484
  <div [ngStyle]="getClientAreaStyles()">
1407
1485
  <div #modalbody magicViewContainerRef>
@@ -1409,7 +1487,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1409
1487
  </div>
1410
1488
  </div>
1411
1489
  </div>
1412
- `, standalone: false, styles: [".modal-foreground{position:fixed;inset:0;background-color:#fff}.modal-background{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header{background-color:beige;border-bottom:2px solid red}.modal-header.movable:active{cursor:move}.container{position:relative}.dragHandle{position:absolute}.dragHandle.corner{width:10px;right:0;bottom:0;height:10px;cursor:nwse-resize;background:linear-gradient(135deg,rgba(0,0,0,.4) 50%,transparent 50%);position:absolute}:host-context([dir=\"rtl\"]) .dragHandle.corner{right:auto!important;left:0;cursor:nesw-resize;background:linear-gradient(225deg,rgba(0,0,0,.4) 50%,transparent 50%)}.dragHandle.left{width:2px;left:-2px;height:100%;cursor:ew-resize}.dragHandle.right{width:2px;right:-2px;height:100%;cursor:ew-resize}.dragHandle.bottom{height:2px;bottom:-2px;width:100%;cursor:ns-resize}.boundary-line{width:100%;height:100%;max-width:100%}\n"] }]
1490
+ `, changeDetection: ChangeDetectionStrategy.Eager, standalone: false, styles: [".modal-foreground{position:fixed;inset:0;background-color:#fff}.modal-background{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header{background-color:beige;border-bottom:2px solid red}.modal-header.movable:active{cursor:move}.container{position:relative}.dragHandle{position:absolute}.dragHandle.corner{width:10px;right:0;bottom:0;height:10px;cursor:nwse-resize;background:linear-gradient(135deg,rgba(0,0,0,.4) 50%,transparent 50%);position:absolute}:host-context([dir=\"rtl\"]) .dragHandle.corner{right:auto!important;left:0;cursor:nesw-resize;background:linear-gradient(225deg,rgba(0,0,0,.4) 50%,transparent 50%)}.dragHandle.left{width:2px;left:-2px;height:100%;cursor:ew-resize}.dragHandle.right{width:2px;right:-2px;height:100%;cursor:ew-resize}.dragHandle.bottom{height:2px;bottom:-2px;width:100%;cursor:ns-resize}.boundary-line{width:100%;height:100%;max-width:100%}\n"] }]
1413
1491
  }], () => [], { headerElementRef: [{
1414
1492
  type: ViewChild,
1415
1493
  args: ['modalheader', { static: false }]
@@ -1429,7 +1507,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1429
1507
  type: HostListener,
1430
1508
  args: ['window:mouseup']
1431
1509
  }] }); })();
1432
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber: 52 }); })();
1510
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber: 67 }); })();
1433
1511
 
1434
1512
  /**
1435
1513
  * Service managing overlay windows
@@ -1472,11 +1550,11 @@ class BaseMagicConfirmComponent {
1472
1550
  this.onClose.emit(result);
1473
1551
  }
1474
1552
  /** @nocollapse */ static ɵfac = function BaseMagicConfirmComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMagicConfirmComponent)(); };
1475
- /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicConfirmComponent, selectors: [["mg-base-confirm"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicConfirmComponent_Template(rf, ctx) { }, encapsulation: 2 });
1553
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicConfirmComponent, selectors: [["mg-base-confirm"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicConfirmComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
1476
1554
  }
1477
1555
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicConfirmComponent, [{
1478
1556
  type: Component,
1479
- args: [{ selector: 'mg-base-confirm', template: '', standalone: false }]
1557
+ args: [{ selector: 'mg-base-confirm', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
1480
1558
  }], null, { title: [{
1481
1559
  type: Input
1482
1560
  }], message: [{
@@ -1484,7 +1562,7 @@ class BaseMagicConfirmComponent {
1484
1562
  }], onClose: [{
1485
1563
  type: Output
1486
1564
  }] }); })();
1487
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 13 }); })();
1565
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 14 }); })();
1488
1566
 
1489
1567
  /**
1490
1568
  * This is a base class for the magic alert components
@@ -1510,11 +1588,11 @@ class BaseMagicAlertComponent {
1510
1588
  this.onClose.emit();
1511
1589
  }
1512
1590
  /** @nocollapse */ static ɵfac = function BaseMagicAlertComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMagicAlertComponent)(); };
1513
- /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicAlertComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicAlertComponent_Template(rf, ctx) { }, encapsulation: 2 });
1591
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicAlertComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicAlertComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
1514
1592
  }
1515
1593
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicAlertComponent, [{
1516
1594
  type: Component,
1517
- args: [{ selector: 'mg-base-alert', template: '', standalone: false }]
1595
+ args: [{ selector: 'mg-base-alert', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
1518
1596
  }], null, { title: [{
1519
1597
  type: Input
1520
1598
  }], message: [{
@@ -1522,7 +1600,7 @@ class BaseMagicAlertComponent {
1522
1600
  }], onClose: [{
1523
1601
  type: Output
1524
1602
  }] }); })();
1525
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 14 }); })();
1603
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 15 }); })();
1526
1604
 
1527
1605
  /**
1528
1606
  * Directive for setting focus on element
@@ -1535,7 +1613,8 @@ class MagicFocusDirective {
1535
1613
  ngAfterViewInit() {
1536
1614
  this.hostElement.nativeElement.focus();
1537
1615
  }
1538
- /** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
1616
+ /** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
1617
+ return new (__ngFactoryType__ || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
1539
1618
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicFocusDirective, selectors: [["", "magicFocus", ""]], standalone: false });
1540
1619
  }
1541
1620
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicFocusDirective, [{
@@ -1552,7 +1631,6 @@ class MagicOverlayContainerWrapper {
1552
1631
  magicLazyModuleLoader;
1553
1632
  injector;
1554
1633
  changeDetectorRef;
1555
- compiler;
1556
1634
  /**
1557
1635
  *
1558
1636
  */
@@ -1581,12 +1659,11 @@ class MagicOverlayContainerWrapper {
1581
1659
  *
1582
1660
  * @param componentFactoryResolver
1583
1661
  */
1584
- constructor(componentListMagicService, magicLazyModuleLoader, injector, changeDetectorRef, compiler) {
1662
+ constructor(componentListMagicService, magicLazyModuleLoader, injector, changeDetectorRef) {
1585
1663
  this.componentListMagicService = componentListMagicService;
1586
1664
  this.magicLazyModuleLoader = magicLazyModuleLoader;
1587
1665
  this.injector = injector;
1588
1666
  this.changeDetectorRef = changeDetectorRef;
1589
- this.compiler = compiler;
1590
1667
  }
1591
1668
  /**
1592
1669
  *
@@ -1601,8 +1678,7 @@ class MagicOverlayContainerWrapper {
1601
1678
  // extract name of module(XX) from 'MagicXXModule'
1602
1679
  const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
1603
1680
  this.magicLazyModuleLoader.Load(moduleName).then(m => {
1604
- const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
1605
- moduleRef = compiled.ngModuleFactory.create(this.injector);
1681
+ moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
1606
1682
  this.loadComponent(moduleRef);
1607
1683
  });
1608
1684
  }
@@ -1637,7 +1713,8 @@ class MagicOverlayContainerWrapper {
1637
1713
  DetectChanges() {
1638
1714
  this.changeDetectorRef.detectChanges();
1639
1715
  }
1640
- /** @nocollapse */ static ɵfac = function MagicOverlayContainerWrapper_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainerWrapper)(i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(MagicLazyLoaderService), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Compiler)); };
1716
+ /** @nocollapse */ static ɵfac = function MagicOverlayContainerWrapper_Factory(__ngFactoryType__) { /* @ts-ignore */
1717
+ return new (__ngFactoryType__ || MagicOverlayContainerWrapper)(i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(MagicLazyLoaderService), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
1641
1718
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicOverlayContainerWrapper, selectors: [["app-magic-overlay-container-wrapper"]], viewQuery: function MagicOverlayContainerWrapper_Query(rf, ctx) { if (rf & 1) {
1642
1719
  i0.ɵɵviewQuery(_c0$2, 7);
1643
1720
  } if (rf & 2) {
@@ -1651,7 +1728,7 @@ class MagicOverlayContainerWrapper {
1651
1728
  i0.ɵɵelementEnd();
1652
1729
  i0.ɵɵelement(6, "div", 5);
1653
1730
  i0.ɵɵelementEnd();
1654
- } }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
1731
+ } }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"], changeDetection: 1 });
1655
1732
  }
1656
1733
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
1657
1734
  type: Component,
@@ -1664,8 +1741,8 @@ class MagicOverlayContainerWrapper {
1664
1741
  </div>
1665
1742
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
1666
1743
  </div>
1667
- `, standalone: false, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
1668
- }], () => [{ type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i0.Compiler }], { Component: [{
1744
+ `, changeDetection: ChangeDetectionStrategy.Eager, standalone: false, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
1745
+ }], () => [{ type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }], { Component: [{
1669
1746
  type: Input
1670
1747
  }], Parameters: [{
1671
1748
  type: Input
@@ -1677,7 +1754,7 @@ class MagicOverlayContainerWrapper {
1677
1754
  type: ViewChild,
1678
1755
  args: ['overlayContainerWrapper', { static: true }]
1679
1756
  }] }); })();
1680
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainerWrapper, { className: "MagicOverlayContainerWrapper", filePath: "src/ui/magic-modal/magic-overlay-container-wrapper.ts", lineNumber: 46 }); })();
1757
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainerWrapper, { className: "MagicOverlayContainerWrapper", filePath: "src/ui/magic-modal/magic-overlay-container-wrapper.ts", lineNumber: 48 }); })();
1681
1758
 
1682
1759
  /***
1683
1760
  * This is sample component for the alert message
@@ -1697,7 +1774,7 @@ class MagicAlertComponent extends BaseMagicAlertComponent {
1697
1774
  i0.ɵɵelementEnd()()();
1698
1775
  } if (rf & 2) {
1699
1776
  i0.ɵɵadvance(3);
1700
- i0.ɵɵtextInterpolate1(" ", ctx.title, "");
1777
+ i0.ɵɵtextInterpolate1(" ", ctx.title);
1701
1778
  i0.ɵɵadvance(2);
1702
1779
  i0.ɵɵtextInterpolate1("", ctx.message, " ");
1703
1780
  } }, styles: [".mg-message-background[_ngcontent-%COMP%]{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button[_ngcontent-%COMP%]{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;-webkit-border-radius:4px;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}"] });
@@ -1736,7 +1813,7 @@ class MagicConfirmationBoxComponent extends BaseMagicConfirmComponent {
1736
1813
  i0.ɵɵelementEnd()()();
1737
1814
  } if (rf & 2) {
1738
1815
  i0.ɵɵadvance(3);
1739
- i0.ɵɵtextInterpolate1(" ", ctx.title, "");
1816
+ i0.ɵɵtextInterpolate1(" ", ctx.title);
1740
1817
  i0.ɵɵadvance();
1741
1818
  i0.ɵɵtextInterpolate1(" ", ctx.message, " ");
1742
1819
  } }, styles: [".mg-message-background[_ngcontent-%COMP%]{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button[_ngcontent-%COMP%]{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;-webkit-border-radius:4px;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}button.cancel[_ngcontent-%COMP%]{background-color:#c1c1c1}"] });
@@ -1867,15 +1944,13 @@ class OverlayWindowService {
1867
1944
  engineMagicService;
1868
1945
  magicLazyModuleLoader;
1869
1946
  injector;
1870
- compiler;
1871
1947
  overlayContainerMagicProvider;
1872
1948
  confirmationComponentsMagicProvider;
1873
- constructor(componentList, engineMagicService, magicLazyModuleLoader, injector, compiler, overlayContainerMagicProvider, confirmationComponentsMagicProvider) {
1949
+ constructor(componentList, engineMagicService, magicLazyModuleLoader, injector, overlayContainerMagicProvider, confirmationComponentsMagicProvider) {
1874
1950
  this.componentList = componentList;
1875
1951
  this.engineMagicService = engineMagicService;
1876
1952
  this.magicLazyModuleLoader = magicLazyModuleLoader;
1877
1953
  this.injector = injector;
1878
- this.compiler = compiler;
1879
1954
  this.overlayContainerMagicProvider = overlayContainerMagicProvider;
1880
1955
  this.confirmationComponentsMagicProvider = confirmationComponentsMagicProvider;
1881
1956
  }
@@ -1898,8 +1973,7 @@ class OverlayWindowService {
1898
1973
  // extract name of module(XX) from 'MagicXXModule'
1899
1974
  const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
1900
1975
  this.magicLazyModuleLoader.Load(moduleName).then(m => {
1901
- const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
1902
- moduleRef = compiled.ngModuleFactory.create(this.injector);
1976
+ moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
1903
1977
  this.open(formName, taskId, taskDescription);
1904
1978
  this.finishConfirmation(Styles.MSGBOX_BUTTON_OK, true);
1905
1979
  });
@@ -1986,7 +2060,8 @@ class OverlayWindowService {
1986
2060
  componentRef.instance.DetectChanges();
1987
2061
  return componentRef;
1988
2062
  }
1989
- /** @nocollapse */ static ɵfac = function OverlayWindowService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayWindowService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(MagicLazyLoaderService), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.Compiler), i0.ɵɵinject(OverlayContainerMagicProvider), i0.ɵɵinject(ConfirmationComponentsMagicProvider)); };
2063
+ /** @nocollapse */ static ɵfac = function OverlayWindowService_Factory(__ngFactoryType__) { /* @ts-ignore */
2064
+ return new (__ngFactoryType__ || OverlayWindowService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(MagicLazyLoaderService), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(OverlayContainerMagicProvider), i0.ɵɵinject(ConfirmationComponentsMagicProvider)); };
1990
2065
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OverlayWindowService, factory: OverlayWindowService.ɵfac, providedIn: 'root' });
1991
2066
  }
1992
2067
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverlayWindowService, [{
@@ -1994,7 +2069,7 @@ class OverlayWindowService {
1994
2069
  args: [{
1995
2070
  providedIn: 'root'
1996
2071
  }]
1997
- }], () => [{ type: ComponentListMagicService }, { type: EngineMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.Compiler }, { type: OverlayContainerMagicProvider }, { type: ConfirmationComponentsMagicProvider }], null); })();
2072
+ }], () => [{ type: ComponentListMagicService }, { type: EngineMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: OverlayContainerMagicProvider }, { type: ConfirmationComponentsMagicProvider }], null); })();
1998
2073
  class OverlayWindowFocusManager {
1999
2074
  rootMagicElement = null;
2000
2075
  openDialogList = new Array(0);
@@ -2981,12 +3056,13 @@ class TaskMagicService {
2981
3056
  }
2982
3057
  /**
2983
3058
  * Handle the Radio button "change" event
2984
- * @param event The event received from the UI
2985
3059
  * @param idx Id of the control raising the event
3060
+ * @param rowId Id of the row containing the control (defaults to '0' for non-table controls)
2986
3061
  */
2987
- mgOnRadioSelectionChanged(idx) {
2988
- let result = this.getFormControl('0', idx);
2989
- let guiEvent = getGuiEventObj('selectionchanged', idx, 0);
3062
+ mgOnRadioSelectionChanged(idx, rowId = '0') {
3063
+ // Fetch the Form Control for the specific table row (or row '0' for non-table child controls)
3064
+ let result = this.getFormControl(rowId, idx);
3065
+ let guiEvent = getGuiEventObj('selectionchanged', idx, +rowId);
2990
3066
  if (typeof result.value !== 'number')
2991
3067
  guiEvent.Value = result.value.index;
2992
3068
  else
@@ -3061,7 +3137,8 @@ class TaskMagicService {
3061
3137
  }
3062
3138
  }
3063
3139
  }
3064
- /** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskMagicService)(i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(OverlayWindowService)); };
3140
+ /** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3141
+ return new (__ngFactoryType__ || TaskMagicService)(i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(OverlayWindowService)); };
3065
3142
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TaskMagicService, factory: TaskMagicService.ɵfac });
3066
3143
  }
3067
3144
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskMagicService, [{
@@ -3193,7 +3270,8 @@ class TableMagicService {
3193
3270
  topIndex--;
3194
3271
  return topIndex;
3195
3272
  }
3196
- /** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableMagicService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(TaskMagicService)); };
3273
+ /** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3274
+ return new (__ngFactoryType__ || TableMagicService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(TaskMagicService)); };
3197
3275
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TableMagicService, factory: TableMagicService.ɵfac });
3198
3276
  }
3199
3277
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableMagicService, [{
@@ -3219,7 +3297,8 @@ class TitleMagicService {
3219
3297
  setTitle(newTitle) {
3220
3298
  this.titleService.setTitle(newTitle);
3221
3299
  }
3222
- /** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TitleMagicService)(i0.ɵɵinject(i1$1.Title)); };
3300
+ /** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3301
+ return new (__ngFactoryType__ || TitleMagicService)(i0.ɵɵinject(i1$1.Title)); };
3223
3302
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TitleMagicService, factory: TitleMagicService.ɵfac });
3224
3303
  }
3225
3304
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TitleMagicService, [{
@@ -3320,7 +3399,8 @@ class MagicColorService {
3320
3399
  }
3321
3400
  return '';
3322
3401
  }
3323
- /** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicColorService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(COLOR_FILE_NAME)); };
3402
+ /** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { /* @ts-ignore */
3403
+ return new (__ngFactoryType__ || MagicColorService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(COLOR_FILE_NAME)); };
3324
3404
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicColorService, factory: MagicColorService.ɵfac, providedIn: 'root' });
3325
3405
  }
3326
3406
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicColorService, [{
@@ -3960,7 +4040,8 @@ class AccessorMagicService {
3960
4040
  getColor(colorNumber, colorType) {
3961
4041
  return this.magicColor.getColor(colorNumber, colorType);
3962
4042
  }
3963
- /** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessorMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MagicColorService)); };
4043
+ /** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
4044
+ return new (__ngFactoryType__ || AccessorMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MagicColorService)); };
3964
4045
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: AccessorMagicService, factory: AccessorMagicService.ɵfac });
3965
4046
  }
3966
4047
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessorMagicService, [{
@@ -3990,7 +4071,8 @@ class MagicServices {
3990
4071
  task.mgTitleService = titleService;
3991
4072
  task.mgAccessorService = mgAccessorService;
3992
4073
  }
3993
- /** @nocollapse */ static ɵfac = function MagicServices_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicServices)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(SubformMagicService), i0.ɵɵinject(TableMagicService), i0.ɵɵinject(TitleMagicService), i0.ɵɵinject(AccessorMagicService)); };
4074
+ /** @nocollapse */ static ɵfac = function MagicServices_Factory(__ngFactoryType__) { /* @ts-ignore */
4075
+ return new (__ngFactoryType__ || MagicServices)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(SubformMagicService), i0.ɵɵinject(TableMagicService), i0.ɵɵinject(TitleMagicService), i0.ɵɵinject(AccessorMagicService)); };
3994
4076
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicServices, factory: MagicServices.ɵfac });
3995
4077
  }
3996
4078
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicServices, [{
@@ -4146,8 +4228,9 @@ class TaskBaseMagicComponent {
4146
4228
  ngOnDestroy() {
4147
4229
  this.task.dispose();
4148
4230
  }
4149
- /** @nocollapse */ static ɵfac = function TaskBaseMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskBaseMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MagicServices)); };
4150
- /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TaskBaseMagicComponent, selectors: [["task-magic"]], inputs: { taskIdParam: "taskIdParam", taskDescription: "taskDescription" }, standalone: false, features: [i0.ɵɵProvidersFeature([TaskMagicService, SubformMagicService, TableMagicService])], decls: 0, vars: 0, template: function TaskBaseMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
4231
+ /** @nocollapse */ static ɵfac = function TaskBaseMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
4232
+ return new (__ngFactoryType__ || TaskBaseMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MagicServices)); };
4233
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TaskBaseMagicComponent, selectors: [["task-magic"]], inputs: { taskIdParam: "taskIdParam", taskDescription: "taskDescription" }, standalone: false, features: [i0.ɵɵProvidersFeature([TaskMagicService, SubformMagicService, TableMagicService])], decls: 0, vars: 0, template: function TaskBaseMagicComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
4151
4234
  }
4152
4235
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskBaseMagicComponent, [{
4153
4236
  type: Component,
@@ -4155,6 +4238,7 @@ class TaskBaseMagicComponent {
4155
4238
  selector: 'task-magic',
4156
4239
  providers: [TaskMagicService, SubformMagicService, TableMagicService],
4157
4240
  template: '',
4241
+ changeDetection: ChangeDetectionStrategy.Eager,
4158
4242
  standalone: false
4159
4243
  }]
4160
4244
  }], () => [{ type: i0.ChangeDetectorRef }, { type: MagicServices }], { taskIdParam: [{
@@ -4162,7 +4246,7 @@ class TaskBaseMagicComponent {
4162
4246
  }], taskDescription: [{
4163
4247
  type: Input
4164
4248
  }] }); })();
4165
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber: 21 }); })();
4249
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber: 22 }); })();
4166
4250
 
4167
4251
  /**
4168
4252
  * @ignore
@@ -4222,7 +4306,8 @@ class RowMagicDirective {
4222
4306
  event.cancelBubble = true;
4223
4307
  }
4224
4308
  }
4225
- /** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
4309
+ /** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4310
+ return new (__ngFactoryType__ || RowMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
4226
4311
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RowMagicDirective, selectors: [["", "magicRow", ""]], hostBindings: function RowMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
4227
4312
  i0.ɵɵlistener("click", function RowMagicDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
4228
4313
  } }, inputs: { rowId: [0, "magicRow", "rowId"] }, standalone: false });
@@ -4539,7 +4624,8 @@ class MagicDirective {
4539
4624
  ngOnDestroy() {
4540
4625
  this.subscribeRefreshDom.unsubscribe();
4541
4626
  }
4542
- /** @nocollapse */ static ɵfac = function MagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$2.Platform), i0.ɵɵdirectiveInject(RowMagicDirective, 8)); };
4627
+ /** @nocollapse */ static ɵfac = function MagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4628
+ return new (__ngFactoryType__ || MagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$2.Platform), i0.ɵɵdirectiveInject(RowMagicDirective, 8)); };
4543
4629
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", pollTime: "pollTime", rowId: "rowId" }, standalone: false });
4544
4630
  }
4545
4631
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
@@ -4737,7 +4823,8 @@ class NoControlMagicDirective extends MagicDirective {
4737
4823
  break;
4738
4824
  }
4739
4825
  }
4740
- /** @nocollapse */ static ɵfac = function NoControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NoControlMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$2.Platform), i0.ɵɵdirectiveInject(RowMagicDirective, 8)); };
4826
+ /** @nocollapse */ static ɵfac = function NoControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4827
+ return new (__ngFactoryType__ || NoControlMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$2.Platform), i0.ɵɵdirectiveInject(RowMagicDirective, 8)); };
4741
4828
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NoControlMagicDirective, selectors: [["", "magicnc", ""]], inputs: { magic: [0, "magicnc", "magic"] }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature] });
4742
4829
  }
4743
4830
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoControlMagicDirective, [{
@@ -4787,7 +4874,8 @@ class DateMagicPipe extends DatePipe {
4787
4874
  value = "";
4788
4875
  return value;
4789
4876
  }
4790
- /** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
4877
+ /** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
4878
+ return new (__ngFactoryType__ || DateMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
4791
4879
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicDate", type: DateMagicPipe, pure: true, standalone: false });
4792
4880
  }
4793
4881
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateMagicPipe, [{
@@ -5467,7 +5555,8 @@ class MgformatMagicDirective {
5467
5555
  return true;
5468
5556
  return false;
5469
5557
  }
5470
- /** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgformatMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
5558
+ /** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
5559
+ return new (__ngFactoryType__ || MgformatMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
5471
5560
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MgformatMagicDirective, selectors: [["", "mgFormat", ""]], hostBindings: function MgformatMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
5472
5561
  i0.ɵɵlistener("focus", function MgformatMagicDirective_focus_HostBindingHandler($event) { return ctx.onFocusEvent($event); })("paste", function MgformatMagicDirective_paste_HostBindingHandler($event) { return ctx.onPaste($event); })("input", function MgformatMagicDirective_input_HostBindingHandler($event) { return ctx.onInputEvent($event); })("change", function MgformatMagicDirective_change_HostBindingHandler($event) { return ctx.onChangeEvent($event); })("blur", function MgformatMagicDirective_blur_HostBindingHandler($event) { return ctx.onBlurEvent($event); });
5473
5562
  } }, standalone: false });
@@ -5533,7 +5622,8 @@ class TimeMagicPipe extends DatePipe {
5533
5622
  }
5534
5623
  return value;
5535
5624
  }
5536
- /** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
5625
+ /** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
5626
+ return new (__ngFactoryType__ || TimeMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
5537
5627
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime", type: TimeMagicPipe, pure: true, standalone: false });
5538
5628
  }
5539
5629
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeMagicPipe, [{
@@ -5592,7 +5682,8 @@ class RangeValidatorMagicDirective {
5592
5682
  const formGroup = c.parent.controls;
5593
5683
  return Object.keys(formGroup).find(name => c === formGroup[name]) || null;
5594
5684
  }
5595
- /** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RangeValidatorMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
5685
+ /** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
5686
+ return new (__ngFactoryType__ || RangeValidatorMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
5596
5687
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RangeValidatorMagicDirective, selectors: [["", "rangevalidator", ""]], standalone: false, features: [i0.ɵɵProvidersFeature([
5597
5688
  {
5598
5689
  provide: NG_VALIDATORS,
@@ -5616,8 +5707,8 @@ class RangeValidatorMagicDirective {
5616
5707
  }]
5617
5708
  }], () => [{ type: TaskMagicService }, { type: i0.ViewContainerRef }], null); })();
5618
5709
 
5619
- function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
5620
- i0.ɵɵelement(0, "ndc-dynamic", 1);
5710
+ function SubformMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5711
+ i0.ɵɵelement(0, "ndc-dynamic", 0);
5621
5712
  } if (rf & 2) {
5622
5713
  const ctx_r0 = i0.ɵɵnextContext();
5623
5714
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
@@ -5662,35 +5753,38 @@ class SubformMagicComponent {
5662
5753
  get Parameters() {
5663
5754
  return this.mgSub.mgGetParameters(this.id);
5664
5755
  }
5665
- /** @nocollapse */ static ɵfac = function SubformMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(SubformMagicService)); };
5666
- /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SubformMagicComponent, selectors: [["magic-subform"]], inputs: { magic: "magic" }, standalone: false, decls: 1, vars: 1, consts: [[3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"]], template: function SubformMagicComponent_Template(rf, ctx) { if (rf & 1) {
5667
- i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
5756
+ /** @nocollapse */ static ɵfac = function SubformMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
5757
+ return new (__ngFactoryType__ || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(SubformMagicService)); };
5758
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SubformMagicComponent, selectors: [["magic-subform"]], inputs: { magic: "magic" }, standalone: false, decls: 1, vars: 1, consts: [[3, "ndcDynamicComponent", "ndcDynamicInputs"]], template: function SubformMagicComponent_Template(rf, ctx) { if (rf & 1) {
5759
+ i0.ɵɵconditionalCreate(0, SubformMagicComponent_Conditional_0_Template, 1, 2, "ndc-dynamic", 0);
5668
5760
  } if (rf & 2) {
5669
- i0.ɵɵproperty("ngIf", ctx.Component);
5670
- } }, dependencies: [i1.NgIf, i3.DynamicIoDirective, i3.DynamicComponent], encapsulation: 2 });
5761
+ i0.ɵɵconditional(ctx.Component ? 0 : -1);
5762
+ } }, dependencies: [i2$3.DynamicIoDirective, i2$3.DynamicComponent], encapsulation: 2, changeDetection: 1 });
5671
5763
  }
5672
5764
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
5673
5765
  type: Component,
5674
5766
  args: [{
5675
5767
  selector: 'magic-subform',
5676
- template: `
5677
- <ndc-dynamic
5678
- *ngIf="Component"
5679
- [ndcDynamicComponent]="Component"
5680
- [ndcDynamicInputs]="Parameters">
5681
- </ndc-dynamic>
5682
- `,
5768
+ template: `
5769
+ @if (Component) {
5770
+ <ndc-dynamic
5771
+ [ndcDynamicComponent]="Component"
5772
+ [ndcDynamicInputs]="Parameters">
5773
+ </ndc-dynamic>
5774
+ }
5775
+ `,
5776
+ changeDetection: ChangeDetectionStrategy.Eager,
5683
5777
  standalone: false
5684
5778
  }]
5685
5779
  }], () => [{ type: i0.ViewContainerRef }, { type: SubformMagicService }], { magic: [{
5686
5780
  type: Input,
5687
5781
  args: ['magic']
5688
5782
  }] }); })();
5689
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber: 22 }); })();
5783
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber: 24 }); })();
5690
5784
 
5691
5785
  const _c0$1 = ["customContent"];
5692
5786
  const _c1 = ["*"];
5693
- function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
5787
+ function ErrorMagicComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
5694
5788
  i0.ɵɵelementStart(0, "span");
5695
5789
  i0.ɵɵtext(1);
5696
5790
  i0.ɵɵelementEnd();
@@ -5699,16 +5793,16 @@ function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
5699
5793
  i0.ɵɵadvance();
5700
5794
  i0.ɵɵtextInterpolate1(" ", ctx_r0.mgService.getErrMsg(ctx_r0.id, ctx_r0.rowId), " ");
5701
5795
  } }
5702
- function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
5796
+ function ErrorMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5703
5797
  i0.ɵɵelementStart(0, "div")(1, "div", null, 0);
5704
5798
  i0.ɵɵprojection(3);
5705
5799
  i0.ɵɵelementEnd();
5706
- i0.ɵɵtemplate(4, ErrorMagicComponent_div_0_span_4_Template, 2, 1, "span", 1);
5800
+ i0.ɵɵconditionalCreate(4, ErrorMagicComponent_Conditional_0_Conditional_4_Template, 2, 1, "span");
5707
5801
  i0.ɵɵelementEnd();
5708
5802
  } if (rf & 2) {
5709
5803
  const ctx_r0 = i0.ɵɵnextContext();
5710
5804
  i0.ɵɵadvance(4);
5711
- i0.ɵɵproperty("ngIf", ctx_r0.defaultDisplay);
5805
+ i0.ɵɵconditional(ctx_r0.defaultDisplay ? 4 : -1);
5712
5806
  } }
5713
5807
  /**
5714
5808
  * Represents a Magic subform
@@ -5786,32 +5880,38 @@ class ErrorMagicComponent {
5786
5880
  }
5787
5881
  return false;
5788
5882
  }
5789
- /** @nocollapse */ static ɵfac = function ErrorMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ErrorMagicComponent)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5883
+ /** @nocollapse */ static ɵfac = function ErrorMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
5884
+ return new (__ngFactoryType__ || ErrorMagicComponent)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5790
5885
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ErrorMagicComponent, selectors: [["mgError"]], viewQuery: function ErrorMagicComponent_Query(rf, ctx) { if (rf & 1) {
5791
5886
  i0.ɵɵviewQuery(_c0$1, 5);
5792
5887
  } if (rf & 2) {
5793
5888
  let _t;
5794
5889
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CustomContent = _t.first);
5795
- } }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"] }, standalone: false, ngContentSelectors: _c1, decls: 1, vars: 1, consts: [["customContent", ""], [4, "ngIf"]], template: function ErrorMagicComponent_Template(rf, ctx) { if (rf & 1) {
5890
+ } }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"] }, standalone: false, ngContentSelectors: _c1, decls: 1, vars: 1, consts: [["customContent", ""]], template: function ErrorMagicComponent_Template(rf, ctx) { if (rf & 1) {
5796
5891
  i0.ɵɵprojectionDef();
5797
- i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 1);
5892
+ i0.ɵɵconditionalCreate(0, ErrorMagicComponent_Conditional_0_Template, 5, 1, "div");
5798
5893
  } if (rf & 2) {
5799
- i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
5800
- } }, dependencies: [i1.NgIf], encapsulation: 2 });
5894
+ i0.ɵɵconditional(ctx.HasErrors(ctx.id) ? 0 : -1);
5895
+ } }, encapsulation: 2, changeDetection: 1 });
5801
5896
  }
5802
5897
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
5803
5898
  type: Component,
5804
5899
  args: [{
5805
5900
  selector: 'mgError',
5806
- template: `<div *ngIf="HasErrors(id)">
5807
- <div #customContent>
5808
- <ng-content></ng-content>
5809
- </div>
5810
- <span *ngIf="defaultDisplay">
5811
- {{mgService.getErrMsg(id, rowId)}}
5812
- </span>
5813
- </div>
5901
+ template: `@if (HasErrors(id)) {
5902
+ <div>
5903
+ <div #customContent>
5904
+ <ng-content></ng-content>
5905
+ </div>
5906
+ @if (defaultDisplay) {
5907
+ <span>
5908
+ {{mgService.getErrMsg(id, rowId)}}
5909
+ </span>
5910
+ }
5911
+ </div>
5912
+ }
5814
5913
  `,
5914
+ changeDetection: ChangeDetectionStrategy.Eager,
5815
5915
  standalone: false
5816
5916
  }]
5817
5917
  }], () => [{ type: TaskMagicService }, { type: AccessorMagicService }, { type: i0.ChangeDetectorRef }], { magic: [{
@@ -5824,7 +5924,7 @@ class ErrorMagicComponent {
5824
5924
  type: ViewChild,
5825
5925
  args: ['customContent', { static: false }]
5826
5926
  }] }); })();
5827
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 24 }); })();
5927
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 29 }); })();
5828
5928
 
5829
5929
  /**
5830
5930
  * Directive for checkboxes, to handle the 'change' event
@@ -5911,7 +6011,8 @@ class CheckboxMagicDirective {
5911
6011
  if (this.subscribeRefreshDom !== null)
5912
6012
  this.subscribeRefreshDom.unsubscribe();
5913
6013
  }
5914
- /** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TaskMagicService)); };
6014
+ /** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6015
+ return new (__ngFactoryType__ || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TaskMagicService)); };
5915
6016
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CheckboxMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", 3, "noFormControl", ""]], hostBindings: function CheckboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
5916
6017
  i0.ɵɵlistener("change", function CheckboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
5917
6018
  } }, inputs: { threeState: "threeState" }, standalone: false });
@@ -5959,7 +6060,8 @@ class ComboboxMagicDirective {
5959
6060
  onComboboxItemsListChanged() {
5960
6061
  this.magicDirective.task.refreshView();
5961
6062
  }
5962
- /** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6063
+ /** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6064
+ return new (__ngFactoryType__ || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
5963
6065
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: ComboboxMagicDirective, selectors: [["select", "magic", "", 3, "multiple", ""]], hostBindings: function ComboboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
5964
6066
  i0.ɵɵlistener("change", function ComboboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
5965
6067
  } }, standalone: false });
@@ -5993,15 +6095,15 @@ class ExitMagicService {
5993
6095
  }], null, null); })();
5994
6096
 
5995
6097
  const _c0 = ["magicRoot"];
5996
- function MagicShellComponent_ndc_dynamic_2_Template(rf, ctx) { if (rf & 1) {
5997
- i0.ɵɵelement(0, "ndc-dynamic", 6);
6098
+ function MagicShellComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6099
+ i0.ɵɵelement(0, "ndc-dynamic", 3);
5998
6100
  } if (rf & 2) {
5999
6101
  const ctx_r0 = i0.ɵɵnextContext();
6000
6102
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.RootComponent)("ndcDynamicInputs", ctx_r0.RootComponentParameters);
6001
6103
  } }
6002
- function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
6003
- i0.ɵɵelementStart(0, "div", 7);
6004
- i0.ɵɵelementContainer(1, 8);
6104
+ function MagicShellComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
6105
+ i0.ɵɵelementStart(0, "div", 5);
6106
+ i0.ɵɵelementContainer(1, 6);
6005
6107
  i0.ɵɵelementEnd();
6006
6108
  } if (rf & 2) {
6007
6109
  const ctx_r0 = i0.ɵɵnextContext();
@@ -6010,7 +6112,7 @@ function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
6010
6112
  i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.SpinnerTemplate ? ctx_r0.SpinnerTemplate : defaultSpinner_r2);
6011
6113
  } }
6012
6114
  function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
6013
- i0.ɵɵelement(0, "div", 9);
6115
+ i0.ɵɵelement(0, "div", 7);
6014
6116
  } }
6015
6117
  /**
6016
6118
  * Root Magic component
@@ -6198,53 +6300,58 @@ class MagicShellComponent {
6198
6300
  break;
6199
6301
  }
6200
6302
  }
6201
- /** @nocollapse */ static ɵfac = function MagicShellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicShellComponent)(i0.ɵɵdirectiveInject(EngineMagicService), i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.Title), i0.ɵɵdirectiveInject(OverlayWindowService), i0.ɵɵdirectiveInject(i1$2.HttpClient), i0.ɵɵdirectiveInject(CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(ExitMagicService, 8)); };
6303
+ /** @nocollapse */ static ɵfac = function MagicShellComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
6304
+ return new (__ngFactoryType__ || MagicShellComponent)(i0.ɵɵdirectiveInject(EngineMagicService), i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.Title), i0.ɵɵdirectiveInject(OverlayWindowService), i0.ɵɵdirectiveInject(i1$2.HttpClient), i0.ɵɵdirectiveInject(CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(ExitMagicService, 8)); };
6202
6305
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicShellComponent, selectors: [["magic-root"]], viewQuery: function MagicShellComponent_Query(rf, ctx) { if (rf & 1) {
6203
6306
  i0.ɵɵviewQuery(_c0, 7);
6204
6307
  } if (rf & 2) {
6205
6308
  let _t;
6206
6309
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootMagicElementRef = _t.first);
6207
6310
  } }, hostBindings: function MagicShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
6208
- i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, false, i0.ɵɵresolveWindow)("unload", function MagicShellComponent_unload_HostBindingHandler($event) { return ctx.onUnload($event); }, false, i0.ɵɵresolveWindow);
6311
+ i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, i0.ɵɵresolveWindow)("unload", function MagicShellComponent_unload_HostBindingHandler($event) { return ctx.onUnload($event); }, i0.ɵɵresolveWindow);
6209
6312
  } }, inputs: { SpinnerTemplate: "SpinnerTemplate" }, standalone: false, features: [i0.ɵɵProvidersFeature([
6210
6313
  // ExitMagicService
6211
- ])], decls: 8, vars: 2, consts: [["magicRoot", ""], ["overlayWindowsContainer", ""], ["defaultSpinner", ""], [3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], ["magicViewContainerRef", ""], ["class", "spinner-background", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"], [1, "spinner-background"], [3, "ngTemplateOutlet"], [1, "mgSpinnerClass"]], template: function MagicShellComponent_Template(rf, ctx) { if (rf & 1) {
6314
+ ])], decls: 8, vars: 2, consts: [["magicRoot", ""], ["overlayWindowsContainer", ""], ["defaultSpinner", ""], [3, "ndcDynamicComponent", "ndcDynamicInputs"], ["magicViewContainerRef", ""], [1, "spinner-background"], [3, "ngTemplateOutlet"], [1, "mgSpinnerClass"]], template: function MagicShellComponent_Template(rf, ctx) { if (rf & 1) {
6212
6315
  i0.ɵɵelementStart(0, "div", null, 0);
6213
- i0.ɵɵtemplate(2, MagicShellComponent_ndc_dynamic_2_Template, 1, 2, "ndc-dynamic", 3);
6316
+ i0.ɵɵconditionalCreate(2, MagicShellComponent_Conditional_2_Template, 1, 2, "ndc-dynamic", 3);
6214
6317
  i0.ɵɵelement(3, "div", 4, 1);
6215
6318
  i0.ɵɵelementEnd();
6216
- i0.ɵɵtemplate(5, MagicShellComponent_div_5_Template, 2, 1, "div", 5)(6, MagicShellComponent_ng_template_6_Template, 1, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
6319
+ i0.ɵɵconditionalCreate(5, MagicShellComponent_Conditional_5_Template, 2, 1, "div", 5);
6320
+ i0.ɵɵtemplate(6, MagicShellComponent_ng_template_6_Template, 1, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
6217
6321
  } if (rf & 2) {
6218
6322
  i0.ɵɵadvance(2);
6219
- i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
6323
+ i0.ɵɵconditional(ctx.RootComponent !== null ? 2 : -1);
6220
6324
  i0.ɵɵadvance(3);
6221
- i0.ɵɵproperty("ngIf", ctx.showSpinner);
6222
- } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i3.DynamicIoDirective, i3.DynamicComponent, MagicViewContainerRef], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:_ngcontent-%COMP%_spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
6325
+ i0.ɵɵconditional(ctx.showSpinner ? 5 : -1);
6326
+ } }, dependencies: [i1.NgTemplateOutlet, i2$3.DynamicIoDirective, i2$3.DynamicComponent, MagicViewContainerRef], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:_ngcontent-%COMP%_spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 1 });
6223
6327
  }
6224
6328
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
6225
6329
  type: Component,
6226
6330
  args: [{ selector: 'magic-root', providers: [
6227
6331
  // ExitMagicService
6228
- ], template: `
6229
- <div #magicRoot>
6230
- <ndc-dynamic
6231
- *ngIf = "RootComponent !== null"
6232
- [ndcDynamicComponent]="RootComponent"
6233
- [ndcDynamicInputs] ="RootComponentParameters">
6234
- </ndc-dynamic>
6235
-
6236
- <div #overlayWindowsContainer magicViewContainerRef>
6237
- </div>
6238
- </div>
6239
-
6240
- <div class="spinner-background" *ngIf="showSpinner">
6241
- <ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
6242
- </div>
6243
-
6244
- <ng-template #defaultSpinner>
6245
- <div class="mgSpinnerClass"></div>
6246
- </ng-template>
6247
- `, standalone: false, styles: [".mgSpinnerClass{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
6332
+ ], template: `
6333
+ <div #magicRoot>
6334
+ @if (RootComponent !== null) {
6335
+ <ndc-dynamic
6336
+ [ndcDynamicComponent]="RootComponent"
6337
+ [ndcDynamicInputs] ="RootComponentParameters">
6338
+ </ndc-dynamic>
6339
+ }
6340
+
6341
+ <div #overlayWindowsContainer magicViewContainerRef>
6342
+ </div>
6343
+ </div>
6344
+
6345
+ @if (showSpinner) {
6346
+ <div class="spinner-background">
6347
+ <ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
6348
+ </div>
6349
+ }
6350
+
6351
+ <ng-template #defaultSpinner>
6352
+ <div class="mgSpinnerClass"></div>
6353
+ </ng-template>
6354
+ `, changeDetection: ChangeDetectionStrategy.Eager, standalone: false, styles: [".mgSpinnerClass{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
6248
6355
  }], () => [{ type: EngineMagicService }, { type: ComponentListMagicService }, { type: i0.ChangeDetectorRef }, { type: i1$1.Title }, { type: OverlayWindowService }, { type: i1$2.HttpClient }, { type: CommandsCollectorMagicService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: ExitMagicService, decorators: [{
6249
6356
  type: Optional
6250
6357
  }] }], { rootMagicElementRef: [{
@@ -6259,7 +6366,7 @@ class MagicShellComponent {
6259
6366
  type: HostListener,
6260
6367
  args: ['window:unload', ['$event']]
6261
6368
  }] }); })();
6262
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber: 86 }); })();
6369
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber: 92 }); })();
6263
6370
 
6264
6371
  /**
6265
6372
  * @ignore
@@ -6286,7 +6393,7 @@ class MagicCheckboxControlValueAccessor extends CheckboxControlValueAccessor {
6286
6393
  input[type=checkbox][magic]:not([formControl]),
6287
6394
  input[type=checkbox][magic]:not([ngModel])
6288
6395
  `,
6289
- host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },
6396
+ host: { '(change)': 'onChange($any($event.target).checked)', '(blur)': 'onTouched()' },
6290
6397
  providers: [CHECKBOX_VALUE_ACCESSOR],
6291
6398
  standalone: false
6292
6399
  }]
@@ -6317,10 +6424,10 @@ class MagicDefaultValueAccessor extends DefaultValueAccessor {
6317
6424
  textarea[magic]:not([formControlName]):not([noFormControl]):not([no-form-control])
6318
6425
  `,
6319
6426
  host: {
6320
- '(input)': '$any(this)._handleInput($event.target.value)',
6427
+ '(input)': '$any(this)._handleInput($any($event.target).value)',
6321
6428
  '(blur)': 'onTouched()',
6322
6429
  '(compositionstart)': '$any(this)._compositionStart()',
6323
- '(compositionend)': '$any(this)._compositionEnd($event.target.value)'
6430
+ '(compositionend)': '$any(this)._compositionEnd($any($event.target).value)'
6324
6431
  },
6325
6432
  providers: [MAGIC_DEFAULT_VALUE_ACCESSOR],
6326
6433
  exportAs: 'magic',
@@ -6342,7 +6449,8 @@ class CheckboxNoFormControlMagicDirective {
6342
6449
  onChange($event) {
6343
6450
  this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
6344
6451
  }
6345
- /** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6452
+ /** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6453
+ return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6346
6454
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CheckboxNoFormControlMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", "noFormControl", ""]], hostBindings: function CheckboxNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
6347
6455
  i0.ɵɵlistener("change", function CheckboxNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
6348
6456
  } }, standalone: false });
@@ -6374,7 +6482,8 @@ class InputNoFormControlMagicDirective {
6374
6482
  onChange($event) {
6375
6483
  this.magicDirective.task.setInputTextValue(this.magicDirective.id, this.magicDirective.rowId, event.srcElement.value);
6376
6484
  }
6377
- /** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6485
+ /** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6486
+ return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6378
6487
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: InputNoFormControlMagicDirective, selectors: [["input", "magic", "", "noFormControl", "", 3, "type", "checkbox"], ["textarea", "magic", "", "noFormControl", "", 3, "type", "checkbox"]], hostBindings: function InputNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
6379
6488
  i0.ɵɵlistener("change", function InputNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
6380
6489
  } }, standalone: false });
@@ -6459,7 +6568,8 @@ class DateValueAccessor {
6459
6568
  setDisabledState(isDisabled) {
6460
6569
  this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled);
6461
6570
  }
6462
- /** @nocollapse */ static ɵfac = function DateValueAccessor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
6571
+ /** @nocollapse */ static ɵfac = function DateValueAccessor_Factory(__ngFactoryType__) { /* @ts-ignore */
6572
+ return new (__ngFactoryType__ || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
6463
6573
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DateValueAccessor, selectors: [["", "dateInput", ""]], hostBindings: function DateValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
6464
6574
  i0.ɵɵlistener("input", function DateValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.valueAsDate); })("blur", function DateValueAccessor_blur_HostBindingHandler($event) { return ctx.onBlurEvent($event); });
6465
6575
  } }, standalone: false, features: [i0.ɵɵProvidersFeature([DATE_VALUE_ACCESSOR])] });
@@ -6564,7 +6674,8 @@ class NonMagicControlDirective {
6564
6674
  ngOnInit() {
6565
6675
  this.regEvents();
6566
6676
  }
6567
- /** @nocollapse */ static ɵfac = function NonMagicControlDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NonMagicControlDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
6677
+ /** @nocollapse */ static ɵfac = function NonMagicControlDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6678
+ return new (__ngFactoryType__ || NonMagicControlDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
6568
6679
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NonMagicControlDirective, selectors: [["", "NonMagicControl", ""]], inputs: { magic: [0, "NonMagicControl", "magic"] }, standalone: false });
6569
6680
  }
6570
6681
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NonMagicControlDirective, [{
@@ -6599,7 +6710,8 @@ class Time24MagicPipe {
6599
6710
  }
6600
6711
  return value;
6601
6712
  }
6602
- /** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Time24MagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
6713
+ /** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
6714
+ return new (__ngFactoryType__ || Time24MagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
6603
6715
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime24", type: Time24MagicPipe, pure: true, standalone: false });
6604
6716
  }
6605
6717
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Time24MagicPipe, [{
@@ -6650,27 +6762,28 @@ const decs = [
6650
6762
  class MagicModule {
6651
6763
  /** @nocollapse */ static ɵfac = function MagicModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicModule)(); };
6652
6764
  /** @nocollapse */ static ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: MagicModule });
6653
- /** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
6765
+ /** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())], imports: [CommonModule,
6654
6766
  FormsModule,
6655
6767
  ReactiveFormsModule,
6656
6768
  RouterModule,
6657
6769
  DynamicModule,
6658
- DragDropModule, MaskitoModule] });
6770
+ DragDropModule] });
6659
6771
  }
6660
6772
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicModule, [{
6661
6773
  type: NgModule,
6662
6774
  args: [{
6663
6775
  declarations: [...decs],
6664
- exports: [...decs, MaskitoModule],
6776
+ exports: [...decs, MaskitoDirective],
6665
6777
  imports: [CommonModule,
6666
6778
  FormsModule,
6667
6779
  ReactiveFormsModule,
6668
6780
  RouterModule,
6669
6781
  DynamicModule,
6782
+ MaskitoDirective,
6670
6783
  CdkDragHandle,
6671
6784
  CdkDrag,
6672
6785
  DragDropModule],
6673
- providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())]
6786
+ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())]
6674
6787
  }]
6675
6788
  }], null, null); })();
6676
6789
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MagicModule, { declarations: [MagicDirective,
@@ -6706,6 +6819,7 @@ class MagicModule {
6706
6819
  ReactiveFormsModule,
6707
6820
  RouterModule,
6708
6821
  DynamicModule,
6822
+ MaskitoDirective,
6709
6823
  CdkDragHandle,
6710
6824
  CdkDrag,
6711
6825
  DragDropModule], exports: [MagicDirective,
@@ -6736,7 +6850,7 @@ class MagicModule {
6736
6850
  NonMagicControlDirective,
6737
6851
  MagicFocusDirective,
6738
6852
  MagicViewContainerRef,
6739
- Time24MagicPipe, MaskitoModule] }); })();
6853
+ Time24MagicPipe, MaskitoDirective] }); })();
6740
6854
 
6741
6855
  const MG_FORMATS = {
6742
6856
  parse: { dateInput: { month: 'short', year: 'numeric', day: 'numeric' } },
@@ -6752,7 +6866,7 @@ class MgDateAdapter extends NativeDateAdapter {
6752
6866
  localeId;
6753
6867
  mgdtfmt = null;
6754
6868
  constructor(task, localeId) {
6755
- super(localeId);
6869
+ super();
6756
6870
  this.task = task;
6757
6871
  this.localeId = localeId;
6758
6872
  this.setLocale(localeId);
@@ -6830,7 +6944,8 @@ class MgDateAdapter extends NativeDateAdapter {
6830
6944
  return date.toDateString();
6831
6945
  }
6832
6946
  }
6833
- /** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgDateAdapter)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MAT_DATE_LOCALE)); };
6947
+ /** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { /* @ts-ignore */
6948
+ return new (__ngFactoryType__ || MgDateAdapter)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MAT_DATE_LOCALE)); };
6834
6949
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MgDateAdapter, factory: MgDateAdapter.ɵfac });
6835
6950
  }
6836
6951
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgDateAdapter, [{
@@ -6860,6 +6975,109 @@ const magicProviders = [
6860
6975
  TableMagicService
6861
6976
  ];
6862
6977
 
6978
+ class SubscriberService {
6979
+ static instance;
6980
+ socket;
6981
+ constructor() {
6982
+ // Connect to the Socket.IO server with subscriber role
6983
+ this.socket = io('http://localhost:3000', {
6984
+ query: {
6985
+ role: 'subscriber',
6986
+ token: 'abc123' // Default token for testing; replace with actual authentication
6987
+ }
6988
+ });
6989
+ // Handle connection
6990
+ this.socket.on('connect', () => {
6991
+ console.log('Connected to server as subscriber:', this.socket.id);
6992
+ });
6993
+ // Handle disconnection
6994
+ this.socket.on('disconnect', () => {
6995
+ console.log('Disconnected from server');
6996
+ });
6997
+ // Handle subscription confirmation
6998
+ this.socket.on('subscribed', (data) => {
6999
+ console.log('Subscribed to topic:', data.topic, data.message);
7000
+ });
7001
+ // Handle unsubscription confirmation
7002
+ this.socket.on('unsubscribed', (data) => {
7003
+ console.log('Unsubscribed from topic:', data.topic, data.message);
7004
+ });
7005
+ // Handle errors
7006
+ this.socket.on('error', (error) => {
7007
+ console.error('Socket error:', error.message);
7008
+ });
7009
+ this.socket.on('message', (error) => {
7010
+ console.error('Message from xpa:', error.message);
7011
+ });
7012
+ }
7013
+ /**
7014
+ * Subscribe to a specific topic
7015
+ * @param topic The topic to subscribe to
7016
+ */
7017
+ subscribe(topic) {
7018
+ this.socket.emit('subscribe', topic);
7019
+ }
7020
+ /**
7021
+ * Unsubscribe from a specific topic
7022
+ * @param topic The topic to unsubscribe from
7023
+ */
7024
+ unsubscribe(topic) {
7025
+ this.socket.emit('unsubscribe', topic);
7026
+ }
7027
+ /**
7028
+ * Get an Observable for incoming messages
7029
+ * @returns Observable that emits message data
7030
+ */
7031
+ onMessage() {
7032
+ return new Observable(observer => {
7033
+ this.socket.on('message', (data) => {
7034
+ observer.next(data);
7035
+ });
7036
+ });
7037
+ }
7038
+ /**
7039
+ * Get current subscriptions (for debugging)
7040
+ */
7041
+ getSubscriptions() {
7042
+ this.socket.emit('getSubscriptions');
7043
+ }
7044
+ /**
7045
+ * Listen for subscriptions data
7046
+ * @returns Observable that emits subscriptions list
7047
+ */
7048
+ onSubscriptionsData() {
7049
+ return new Observable(observer => {
7050
+ this.socket.on('subscriptionsData', (data) => {
7051
+ observer.next(data);
7052
+ });
7053
+ });
7054
+ }
7055
+ /**
7056
+ * Get the singleton instance of SubscriberService
7057
+ * @returns {SubscriberService} The singleton instance
7058
+ */
7059
+ static getInstance() {
7060
+ if (!SubscriberService.instance) {
7061
+ SubscriberService.instance = new SubscriberService();
7062
+ }
7063
+ return SubscriberService.instance;
7064
+ }
7065
+ /**
7066
+ * Disconnect from the server
7067
+ */
7068
+ disconnect() {
7069
+ this.socket.disconnect();
7070
+ }
7071
+ /** @nocollapse */ static ɵfac = function SubscriberService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubscriberService)(); };
7072
+ /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SubscriberService, factory: SubscriberService.ɵfac, providedIn: 'root' });
7073
+ }
7074
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubscriberService, [{
7075
+ type: Injectable,
7076
+ args: [{
7077
+ providedIn: 'root'
7078
+ }]
7079
+ }], () => [], null); })();
7080
+
6863
7081
  /**
6864
7082
  * @ignore
6865
7083
  */
@@ -6945,5 +7163,5 @@ class ModalFormDefinition {
6945
7163
  * Generated bundle index. Do not edit.
6946
7164
  */
6947
7165
 
6948
- export { AccessorMagicService, BaseMagicAlertComponent, BaseMagicConfirmComponent, BaseMagicOverlayContainer, CHECKBOX_VALUE_ACCESSOR, COLOR_FILE_NAME, CheckboxMagicDirective, CheckboxNoFormControlMagicDirective, ComboboxMagicDirective, CommandsCollectorMagicService, ComponentListMagicService, ConfirmationComponentsMagicProvider, Constants, ControlMetadata, ControlsMetadata, DATE_VALUE_ACCESSOR, DateMagicPipe, DateValueAccessor, EngineMagicService, ErrorMagicComponent, ExitMagicService, GuiInteractiveExecutor, HtmlClasses, InputNoFormControlMagicDirective, MAGIC_BG_COLOR, MAGIC_DEFAULT_VALUE_ACCESSOR, MAGIC_FG_COLOR, MG_FORMATS, MagicAlertComponent, MagicCheckboxControlValueAccessor, MagicColorService, MagicConfirmationBoxComponent, MagicDefaultValueAccessor, MagicDirective, MagicFocusDirective, MagicLazyLoaderService, MagicModule, MagicOverlayContainer, MagicOverlayContainerWrapper, MagicServices, MagicShellComponent, MagicViewContainerRef, MgDateAdapter, MgDateFormatter, MgformatMagicDirective, ModalFormDefinition, NoControlMagicDirective, NonMagicControlDirective, OverlayContainerMagicProvider, OverlayWindowService, RangeValidatorMagicDirective, Records, RouteCommand, RouterCommandsMagicService, RouterContainerMagicComponent, RowMagicDirective, StylesMapManager, SubformMagicComponent, SubformMagicService, TableMagicService, TaskBaseMagicComponent, TaskMagicService, Time24MagicPipe, TimeMagicPipe, TitleMagicService, basicMagicProviders, confirmationBox, magicProviders, matDateProviders, utils };
7166
+ export { AccessorMagicService, BaseMagicAlertComponent, BaseMagicConfirmComponent, BaseMagicOverlayContainer, CHECKBOX_VALUE_ACCESSOR, COLOR_FILE_NAME, CheckboxMagicDirective, CheckboxNoFormControlMagicDirective, ComboboxMagicDirective, CommandsCollectorMagicService, ComponentListMagicService, ConfirmationComponentsMagicProvider, Constants, ControlMetadata, ControlsMetadata, DATE_VALUE_ACCESSOR, DateMagicPipe, DateValueAccessor, EngineMagicService, ErrorMagicComponent, ExitMagicService, GuiInteractiveExecutor, HtmlClasses, InputNoFormControlMagicDirective, MAGIC_BG_COLOR, MAGIC_DEFAULT_VALUE_ACCESSOR, MAGIC_FG_COLOR, MG_FORMATS, MagicAlertComponent, MagicCheckboxControlValueAccessor, MagicColorService, MagicConfirmationBoxComponent, MagicDefaultValueAccessor, MagicDirective, MagicFocusDirective, MagicLazyLoaderService, MagicModalProperties, MagicModule, MagicOverlayContainer, MagicOverlayContainerWrapper, MagicServices, MagicShellComponent, MagicViewContainerRef, MgDateAdapter, MgDateFormatter, MgformatMagicDirective, ModalFormDefinition, NoControlMagicDirective, NonMagicControlDirective, OverlayContainerMagicProvider, OverlayWindowService, RangeValidatorMagicDirective, Records, RouteCommand, RouterCommandsMagicService, RouterContainerMagicComponent, RowMagicDirective, StylesMapManager, SubformMagicComponent, SubformMagicService, SubscriberService, TableMagicService, TaskBaseMagicComponent, TaskMagicService, Time24MagicPipe, TimeMagicPipe, TitleMagicService, basicMagicProviders, confirmationBox, magicProviders, matDateProviders, utils };
6949
7167
  //# sourceMappingURL=magic-xpa-angular.mjs.map