@magic-xpa/angular 4.1300.0-dev4130.26 → 4.1300.0-dev4130.261

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 +427 -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,59 @@ 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
+ if (!(obj instanceof MagicModalProperties)) {
1408
+ const componentName = this.componentRef?.instance?.constructor?.name || 'Unknown';
1409
+ throw new Error(`Overlay component '${componentName}' cannot be opened. ` +
1410
+ `Ensure that the component contains a 'magicModalProperties' property of type MagicModalProperties. ` +
1411
+ `Example: magicModalProperties: MagicModalProperties = new MagicModalProperties("formName", true, 0, 0, "300px", "300px", true, true, true, true);`);
1412
+ }
1413
+ return obj;
1414
+ }
1345
1415
  /** @nocollapse */ static ɵfac = function MagicOverlayContainer_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainer)(); };
1346
1416
  /** @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);
1417
+ i0.ɵɵviewQuery(_c0$3, 5)(_c1$1, 5);
1349
1418
  } if (rf & 2) {
1350
1419
  let _t;
1351
1420
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerElementRef = _t.first);
1352
1421
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.foregroundElementRef = _t.first);
1353
1422
  } }, 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();
1423
+ i0.ɵɵlistener("mousemove", function MagicOverlayContainer_mousemove_HostBindingHandler($event) { return ctx.onResize($event); }, i0.ɵɵresolveWindow)("mouseup", function MagicOverlayContainer_mouseup_HostBindingHandler() { return ctx.onResizeEnd(); }, i0.ɵɵresolveWindow);
1424
+ } }, 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
1425
  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);
1426
+ i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { return ctx.OnBackgroundClick(); });
1427
+ i0.ɵɵconditionalCreate(2, MagicOverlayContainer_Conditional_2_Template, 2, 0, "button", 5);
1360
1428
  i0.ɵɵelementEnd();
1361
1429
  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);
1430
+ i0.ɵɵconditionalCreate(5, MagicOverlayContainer_Conditional_5_Template, 1, 0, "span", 7);
1431
+ i0.ɵɵconditionalCreate(6, MagicOverlayContainer_Conditional_6_Template, 1, 0, "span", 8);
1432
+ i0.ɵɵconditionalCreate(7, MagicOverlayContainer_Conditional_7_Template, 1, 0, "span", 9);
1433
+ i0.ɵɵconditionalCreate(8, MagicOverlayContainer_Conditional_8_Template, 1, 0, "span", 10);
1434
+ i0.ɵɵconditionalCreate(9, MagicOverlayContainer_Conditional_9_Template, 5, 3, "div", 11);
1363
1435
  i0.ɵɵelementStart(10, "div", 12);
1364
1436
  i0.ɵɵelement(11, "div", 13, 1);
1365
1437
  i0.ɵɵelementEnd()()();
1366
1438
  } if (rf & 2) {
1367
1439
  i0.ɵɵadvance(2);
1368
- i0.ɵɵproperty("ngIf", !ctx.getShowTitleBar());
1440
+ i0.ɵɵconditional(!ctx.getShowTitleBar() ? 2 : -1);
1369
1441
  i0.ɵɵadvance();
1370
1442
  i0.ɵɵproperty("ngStyle", ctx.getStyle())("cdkDragDisabled", !ctx.IsMovable());
1371
1443
  i0.ɵɵadvance(2);
1372
- i0.ɵɵproperty("ngIf", ctx.IsResizable() && !ctx.isRtl);
1444
+ i0.ɵɵconditional(ctx.IsResizable() && !ctx.isRtl ? 5 : -1);
1373
1445
  i0.ɵɵadvance();
1374
- i0.ɵɵproperty("ngIf", ctx.IsResizable() && ctx.isRtl);
1446
+ i0.ɵɵconditional(ctx.IsResizable() && ctx.isRtl ? 6 : -1);
1375
1447
  i0.ɵɵadvance();
1376
- i0.ɵɵproperty("ngIf", ctx.IsResizable());
1448
+ i0.ɵɵconditional(ctx.IsResizable() ? 7 : -1);
1377
1449
  i0.ɵɵadvance();
1378
- i0.ɵɵproperty("ngIf", ctx.IsResizable());
1450
+ i0.ɵɵconditional(ctx.IsResizable() ? 8 : -1);
1379
1451
  i0.ɵɵadvance();
1380
- i0.ɵɵproperty("ngIf", ctx.getShowTitleBar());
1452
+ i0.ɵɵconditional(ctx.getShowTitleBar() ? 9 : -1);
1381
1453
  i0.ɵɵadvance();
1382
1454
  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%}"] });
1455
+ } }, 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
1456
  }
1385
1457
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
1386
1458
  type: Component,
@@ -1388,20 +1460,32 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1388
1460
  <div class="boundary-line">
1389
1461
 
1390
1462
  <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>
1463
+ @if (!getShowTitleBar()) {
1464
+ <button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white">X</button>
1465
+ }
1392
1466
  </div>
1393
1467
 
1394
1468
  <div #modalForeground class="modal-foreground" [ngStyle]="getStyle()" cdkDragBoundary=".boundary-line" cdkDrag [cdkDragDisabled]="!IsMovable()">
1395
1469
 
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>
1470
+ @if (IsResizable() && !isRtl) {
1471
+ <span class="dragHandle right" (mousedown)="onResizeStart($event, 'right')"></span>
1472
+ }
1473
+ @if (IsResizable() && isRtl) {
1474
+ <span class="dragHandle left" (mousedown)="onResizeStart($event, 'left')"></span>
1475
+ }
1476
+ @if (IsResizable()) {
1477
+ <span class="dragHandle corner" (mousedown)="onResizeStart($event, 'corner')"></span>
1478
+ }
1479
+ @if (IsResizable()) {
1480
+ <span class="dragHandle bottom" (mousedown)="onResizeStart($event, 'bottom')"></span>
1481
+ }
1400
1482
 
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>
1483
+ @if (getShowTitleBar()) {
1484
+ <div #modalheader class="modal-header" cdkDragHandle [class.movable]="IsMovable()">
1485
+ {{getText()}}
1486
+ <button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
1487
+ </div>
1488
+ }
1405
1489
 
1406
1490
  <div [ngStyle]="getClientAreaStyles()">
1407
1491
  <div #modalbody magicViewContainerRef>
@@ -1409,7 +1493,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1409
1493
  </div>
1410
1494
  </div>
1411
1495
  </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"] }]
1496
+ `, 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
1497
  }], () => [], { headerElementRef: [{
1414
1498
  type: ViewChild,
1415
1499
  args: ['modalheader', { static: false }]
@@ -1429,7 +1513,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
1429
1513
  type: HostListener,
1430
1514
  args: ['window:mouseup']
1431
1515
  }] }); })();
1432
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber: 52 }); })();
1516
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber: 67 }); })();
1433
1517
 
1434
1518
  /**
1435
1519
  * Service managing overlay windows
@@ -1472,11 +1556,11 @@ class BaseMagicConfirmComponent {
1472
1556
  this.onClose.emit(result);
1473
1557
  }
1474
1558
  /** @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 });
1559
+ /** @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
1560
  }
1477
1561
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicConfirmComponent, [{
1478
1562
  type: Component,
1479
- args: [{ selector: 'mg-base-confirm', template: '', standalone: false }]
1563
+ args: [{ selector: 'mg-base-confirm', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
1480
1564
  }], null, { title: [{
1481
1565
  type: Input
1482
1566
  }], message: [{
@@ -1484,7 +1568,7 @@ class BaseMagicConfirmComponent {
1484
1568
  }], onClose: [{
1485
1569
  type: Output
1486
1570
  }] }); })();
1487
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 13 }); })();
1571
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 14 }); })();
1488
1572
 
1489
1573
  /**
1490
1574
  * This is a base class for the magic alert components
@@ -1510,11 +1594,11 @@ class BaseMagicAlertComponent {
1510
1594
  this.onClose.emit();
1511
1595
  }
1512
1596
  /** @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 });
1597
+ /** @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
1598
  }
1515
1599
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicAlertComponent, [{
1516
1600
  type: Component,
1517
- args: [{ selector: 'mg-base-alert', template: '', standalone: false }]
1601
+ args: [{ selector: 'mg-base-alert', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
1518
1602
  }], null, { title: [{
1519
1603
  type: Input
1520
1604
  }], message: [{
@@ -1522,7 +1606,7 @@ class BaseMagicAlertComponent {
1522
1606
  }], onClose: [{
1523
1607
  type: Output
1524
1608
  }] }); })();
1525
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 14 }); })();
1609
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 15 }); })();
1526
1610
 
1527
1611
  /**
1528
1612
  * Directive for setting focus on element
@@ -1535,7 +1619,8 @@ class MagicFocusDirective {
1535
1619
  ngAfterViewInit() {
1536
1620
  this.hostElement.nativeElement.focus();
1537
1621
  }
1538
- /** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
1622
+ /** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
1623
+ return new (__ngFactoryType__ || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
1539
1624
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicFocusDirective, selectors: [["", "magicFocus", ""]], standalone: false });
1540
1625
  }
1541
1626
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicFocusDirective, [{
@@ -1552,7 +1637,6 @@ class MagicOverlayContainerWrapper {
1552
1637
  magicLazyModuleLoader;
1553
1638
  injector;
1554
1639
  changeDetectorRef;
1555
- compiler;
1556
1640
  /**
1557
1641
  *
1558
1642
  */
@@ -1581,12 +1665,11 @@ class MagicOverlayContainerWrapper {
1581
1665
  *
1582
1666
  * @param componentFactoryResolver
1583
1667
  */
1584
- constructor(componentListMagicService, magicLazyModuleLoader, injector, changeDetectorRef, compiler) {
1668
+ constructor(componentListMagicService, magicLazyModuleLoader, injector, changeDetectorRef) {
1585
1669
  this.componentListMagicService = componentListMagicService;
1586
1670
  this.magicLazyModuleLoader = magicLazyModuleLoader;
1587
1671
  this.injector = injector;
1588
1672
  this.changeDetectorRef = changeDetectorRef;
1589
- this.compiler = compiler;
1590
1673
  }
1591
1674
  /**
1592
1675
  *
@@ -1601,8 +1684,7 @@ class MagicOverlayContainerWrapper {
1601
1684
  // extract name of module(XX) from 'MagicXXModule'
1602
1685
  const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
1603
1686
  this.magicLazyModuleLoader.Load(moduleName).then(m => {
1604
- const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
1605
- moduleRef = compiled.ngModuleFactory.create(this.injector);
1687
+ moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
1606
1688
  this.loadComponent(moduleRef);
1607
1689
  });
1608
1690
  }
@@ -1637,7 +1719,8 @@ class MagicOverlayContainerWrapper {
1637
1719
  DetectChanges() {
1638
1720
  this.changeDetectorRef.detectChanges();
1639
1721
  }
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)); };
1722
+ /** @nocollapse */ static ɵfac = function MagicOverlayContainerWrapper_Factory(__ngFactoryType__) { /* @ts-ignore */
1723
+ return new (__ngFactoryType__ || MagicOverlayContainerWrapper)(i0.ɵɵdirectiveInject(ComponentListMagicService), i0.ɵɵdirectiveInject(MagicLazyLoaderService), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
1641
1724
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicOverlayContainerWrapper, selectors: [["app-magic-overlay-container-wrapper"]], viewQuery: function MagicOverlayContainerWrapper_Query(rf, ctx) { if (rf & 1) {
1642
1725
  i0.ɵɵviewQuery(_c0$2, 7);
1643
1726
  } if (rf & 2) {
@@ -1651,7 +1734,7 @@ class MagicOverlayContainerWrapper {
1651
1734
  i0.ɵɵelementEnd();
1652
1735
  i0.ɵɵelement(6, "div", 5);
1653
1736
  i0.ɵɵelementEnd();
1654
- } }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
1737
+ } }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"], changeDetection: 1 });
1655
1738
  }
1656
1739
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
1657
1740
  type: Component,
@@ -1664,8 +1747,8 @@ class MagicOverlayContainerWrapper {
1664
1747
  </div>
1665
1748
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
1666
1749
  </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: [{
1750
+ `, changeDetection: ChangeDetectionStrategy.Eager, standalone: false, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
1751
+ }], () => [{ type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }], { Component: [{
1669
1752
  type: Input
1670
1753
  }], Parameters: [{
1671
1754
  type: Input
@@ -1677,7 +1760,7 @@ class MagicOverlayContainerWrapper {
1677
1760
  type: ViewChild,
1678
1761
  args: ['overlayContainerWrapper', { static: true }]
1679
1762
  }] }); })();
1680
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainerWrapper, { className: "MagicOverlayContainerWrapper", filePath: "src/ui/magic-modal/magic-overlay-container-wrapper.ts", lineNumber: 46 }); })();
1763
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainerWrapper, { className: "MagicOverlayContainerWrapper", filePath: "src/ui/magic-modal/magic-overlay-container-wrapper.ts", lineNumber: 48 }); })();
1681
1764
 
1682
1765
  /***
1683
1766
  * This is sample component for the alert message
@@ -1697,7 +1780,7 @@ class MagicAlertComponent extends BaseMagicAlertComponent {
1697
1780
  i0.ɵɵelementEnd()()();
1698
1781
  } if (rf & 2) {
1699
1782
  i0.ɵɵadvance(3);
1700
- i0.ɵɵtextInterpolate1(" ", ctx.title, "");
1783
+ i0.ɵɵtextInterpolate1(" ", ctx.title);
1701
1784
  i0.ɵɵadvance(2);
1702
1785
  i0.ɵɵtextInterpolate1("", ctx.message, " ");
1703
1786
  } }, 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 +1819,7 @@ class MagicConfirmationBoxComponent extends BaseMagicConfirmComponent {
1736
1819
  i0.ɵɵelementEnd()()();
1737
1820
  } if (rf & 2) {
1738
1821
  i0.ɵɵadvance(3);
1739
- i0.ɵɵtextInterpolate1(" ", ctx.title, "");
1822
+ i0.ɵɵtextInterpolate1(" ", ctx.title);
1740
1823
  i0.ɵɵadvance();
1741
1824
  i0.ɵɵtextInterpolate1(" ", ctx.message, " ");
1742
1825
  } }, 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 +1950,13 @@ class OverlayWindowService {
1867
1950
  engineMagicService;
1868
1951
  magicLazyModuleLoader;
1869
1952
  injector;
1870
- compiler;
1871
1953
  overlayContainerMagicProvider;
1872
1954
  confirmationComponentsMagicProvider;
1873
- constructor(componentList, engineMagicService, magicLazyModuleLoader, injector, compiler, overlayContainerMagicProvider, confirmationComponentsMagicProvider) {
1955
+ constructor(componentList, engineMagicService, magicLazyModuleLoader, injector, overlayContainerMagicProvider, confirmationComponentsMagicProvider) {
1874
1956
  this.componentList = componentList;
1875
1957
  this.engineMagicService = engineMagicService;
1876
1958
  this.magicLazyModuleLoader = magicLazyModuleLoader;
1877
1959
  this.injector = injector;
1878
- this.compiler = compiler;
1879
1960
  this.overlayContainerMagicProvider = overlayContainerMagicProvider;
1880
1961
  this.confirmationComponentsMagicProvider = confirmationComponentsMagicProvider;
1881
1962
  }
@@ -1898,8 +1979,7 @@ class OverlayWindowService {
1898
1979
  // extract name of module(XX) from 'MagicXXModule'
1899
1980
  const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
1900
1981
  this.magicLazyModuleLoader.Load(moduleName).then(m => {
1901
- const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
1902
- moduleRef = compiled.ngModuleFactory.create(this.injector);
1982
+ moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
1903
1983
  this.open(formName, taskId, taskDescription);
1904
1984
  this.finishConfirmation(Styles.MSGBOX_BUTTON_OK, true);
1905
1985
  });
@@ -1986,7 +2066,8 @@ class OverlayWindowService {
1986
2066
  componentRef.instance.DetectChanges();
1987
2067
  return componentRef;
1988
2068
  }
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)); };
2069
+ /** @nocollapse */ static ɵfac = function OverlayWindowService_Factory(__ngFactoryType__) { /* @ts-ignore */
2070
+ return new (__ngFactoryType__ || OverlayWindowService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(MagicLazyLoaderService), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(OverlayContainerMagicProvider), i0.ɵɵinject(ConfirmationComponentsMagicProvider)); };
1990
2071
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OverlayWindowService, factory: OverlayWindowService.ɵfac, providedIn: 'root' });
1991
2072
  }
1992
2073
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverlayWindowService, [{
@@ -1994,7 +2075,7 @@ class OverlayWindowService {
1994
2075
  args: [{
1995
2076
  providedIn: 'root'
1996
2077
  }]
1997
- }], () => [{ type: ComponentListMagicService }, { type: EngineMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.Compiler }, { type: OverlayContainerMagicProvider }, { type: ConfirmationComponentsMagicProvider }], null); })();
2078
+ }], () => [{ type: ComponentListMagicService }, { type: EngineMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: OverlayContainerMagicProvider }, { type: ConfirmationComponentsMagicProvider }], null); })();
1998
2079
  class OverlayWindowFocusManager {
1999
2080
  rootMagicElement = null;
2000
2081
  openDialogList = new Array(0);
@@ -2981,12 +3062,13 @@ class TaskMagicService {
2981
3062
  }
2982
3063
  /**
2983
3064
  * Handle the Radio button "change" event
2984
- * @param event The event received from the UI
2985
3065
  * @param idx Id of the control raising the event
3066
+ * @param rowId Id of the row containing the control (defaults to '0' for non-table controls)
2986
3067
  */
2987
- mgOnRadioSelectionChanged(idx) {
2988
- let result = this.getFormControl('0', idx);
2989
- let guiEvent = getGuiEventObj('selectionchanged', idx, 0);
3068
+ mgOnRadioSelectionChanged(idx, rowId = '0') {
3069
+ // Fetch the Form Control for the specific table row (or row '0' for non-table child controls)
3070
+ let result = this.getFormControl(rowId, idx);
3071
+ let guiEvent = getGuiEventObj('selectionchanged', idx, +rowId);
2990
3072
  if (typeof result.value !== 'number')
2991
3073
  guiEvent.Value = result.value.index;
2992
3074
  else
@@ -3061,7 +3143,8 @@ class TaskMagicService {
3061
3143
  }
3062
3144
  }
3063
3145
  }
3064
- /** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskMagicService)(i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(OverlayWindowService)); };
3146
+ /** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3147
+ return new (__ngFactoryType__ || TaskMagicService)(i0.ɵɵinject(EngineMagicService), i0.ɵɵinject(OverlayWindowService)); };
3065
3148
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TaskMagicService, factory: TaskMagicService.ɵfac });
3066
3149
  }
3067
3150
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskMagicService, [{
@@ -3193,7 +3276,8 @@ class TableMagicService {
3193
3276
  topIndex--;
3194
3277
  return topIndex;
3195
3278
  }
3196
- /** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableMagicService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(TaskMagicService)); };
3279
+ /** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3280
+ return new (__ngFactoryType__ || TableMagicService)(i0.ɵɵinject(ComponentListMagicService), i0.ɵɵinject(TaskMagicService)); };
3197
3281
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TableMagicService, factory: TableMagicService.ɵfac });
3198
3282
  }
3199
3283
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableMagicService, [{
@@ -3219,7 +3303,8 @@ class TitleMagicService {
3219
3303
  setTitle(newTitle) {
3220
3304
  this.titleService.setTitle(newTitle);
3221
3305
  }
3222
- /** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TitleMagicService)(i0.ɵɵinject(i1$1.Title)); };
3306
+ /** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
3307
+ return new (__ngFactoryType__ || TitleMagicService)(i0.ɵɵinject(i1$1.Title)); };
3223
3308
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TitleMagicService, factory: TitleMagicService.ɵfac });
3224
3309
  }
3225
3310
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TitleMagicService, [{
@@ -3320,7 +3405,8 @@ class MagicColorService {
3320
3405
  }
3321
3406
  return '';
3322
3407
  }
3323
- /** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicColorService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(COLOR_FILE_NAME)); };
3408
+ /** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { /* @ts-ignore */
3409
+ return new (__ngFactoryType__ || MagicColorService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(COLOR_FILE_NAME)); };
3324
3410
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicColorService, factory: MagicColorService.ɵfac, providedIn: 'root' });
3325
3411
  }
3326
3412
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicColorService, [{
@@ -3960,7 +4046,8 @@ class AccessorMagicService {
3960
4046
  getColor(colorNumber, colorType) {
3961
4047
  return this.magicColor.getColor(colorNumber, colorType);
3962
4048
  }
3963
- /** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessorMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MagicColorService)); };
4049
+ /** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { /* @ts-ignore */
4050
+ return new (__ngFactoryType__ || AccessorMagicService)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MagicColorService)); };
3964
4051
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: AccessorMagicService, factory: AccessorMagicService.ɵfac });
3965
4052
  }
3966
4053
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessorMagicService, [{
@@ -3990,7 +4077,8 @@ class MagicServices {
3990
4077
  task.mgTitleService = titleService;
3991
4078
  task.mgAccessorService = mgAccessorService;
3992
4079
  }
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)); };
4080
+ /** @nocollapse */ static ɵfac = function MagicServices_Factory(__ngFactoryType__) { /* @ts-ignore */
4081
+ return new (__ngFactoryType__ || MagicServices)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(SubformMagicService), i0.ɵɵinject(TableMagicService), i0.ɵɵinject(TitleMagicService), i0.ɵɵinject(AccessorMagicService)); };
3994
4082
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicServices, factory: MagicServices.ɵfac });
3995
4083
  }
3996
4084
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicServices, [{
@@ -4146,8 +4234,9 @@ class TaskBaseMagicComponent {
4146
4234
  ngOnDestroy() {
4147
4235
  this.task.dispose();
4148
4236
  }
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 });
4237
+ /** @nocollapse */ static ɵfac = function TaskBaseMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
4238
+ return new (__ngFactoryType__ || TaskBaseMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MagicServices)); };
4239
+ /** @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
4240
  }
4152
4241
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskBaseMagicComponent, [{
4153
4242
  type: Component,
@@ -4155,6 +4244,7 @@ class TaskBaseMagicComponent {
4155
4244
  selector: 'task-magic',
4156
4245
  providers: [TaskMagicService, SubformMagicService, TableMagicService],
4157
4246
  template: '',
4247
+ changeDetection: ChangeDetectionStrategy.Eager,
4158
4248
  standalone: false
4159
4249
  }]
4160
4250
  }], () => [{ type: i0.ChangeDetectorRef }, { type: MagicServices }], { taskIdParam: [{
@@ -4162,7 +4252,7 @@ class TaskBaseMagicComponent {
4162
4252
  }], taskDescription: [{
4163
4253
  type: Input
4164
4254
  }] }); })();
4165
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber: 21 }); })();
4255
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber: 22 }); })();
4166
4256
 
4167
4257
  /**
4168
4258
  * @ignore
@@ -4222,7 +4312,8 @@ class RowMagicDirective {
4222
4312
  event.cancelBubble = true;
4223
4313
  }
4224
4314
  }
4225
- /** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
4315
+ /** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4316
+ return new (__ngFactoryType__ || RowMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
4226
4317
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RowMagicDirective, selectors: [["", "magicRow", ""]], hostBindings: function RowMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
4227
4318
  i0.ɵɵlistener("click", function RowMagicDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
4228
4319
  } }, inputs: { rowId: [0, "magicRow", "rowId"] }, standalone: false });
@@ -4539,7 +4630,8 @@ class MagicDirective {
4539
4630
  ngOnDestroy() {
4540
4631
  this.subscribeRefreshDom.unsubscribe();
4541
4632
  }
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)); };
4633
+ /** @nocollapse */ static ɵfac = function MagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4634
+ 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
4635
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", pollTime: "pollTime", rowId: "rowId" }, standalone: false });
4544
4636
  }
4545
4637
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
@@ -4737,7 +4829,8 @@ class NoControlMagicDirective extends MagicDirective {
4737
4829
  break;
4738
4830
  }
4739
4831
  }
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)); };
4832
+ /** @nocollapse */ static ɵfac = function NoControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
4833
+ 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
4834
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NoControlMagicDirective, selectors: [["", "magicnc", ""]], inputs: { magic: [0, "magicnc", "magic"] }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature] });
4742
4835
  }
4743
4836
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoControlMagicDirective, [{
@@ -4787,7 +4880,8 @@ class DateMagicPipe extends DatePipe {
4787
4880
  value = "";
4788
4881
  return value;
4789
4882
  }
4790
- /** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
4883
+ /** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
4884
+ return new (__ngFactoryType__ || DateMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
4791
4885
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicDate", type: DateMagicPipe, pure: true, standalone: false });
4792
4886
  }
4793
4887
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateMagicPipe, [{
@@ -5467,7 +5561,8 @@ class MgformatMagicDirective {
5467
5561
  return true;
5468
5562
  return false;
5469
5563
  }
5470
- /** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgformatMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
5564
+ /** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
5565
+ return new (__ngFactoryType__ || MgformatMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
5471
5566
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MgformatMagicDirective, selectors: [["", "mgFormat", ""]], hostBindings: function MgformatMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
5472
5567
  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
5568
  } }, standalone: false });
@@ -5533,7 +5628,8 @@ class TimeMagicPipe extends DatePipe {
5533
5628
  }
5534
5629
  return value;
5535
5630
  }
5536
- /** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
5631
+ /** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
5632
+ return new (__ngFactoryType__ || TimeMagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
5537
5633
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime", type: TimeMagicPipe, pure: true, standalone: false });
5538
5634
  }
5539
5635
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeMagicPipe, [{
@@ -5592,7 +5688,8 @@ class RangeValidatorMagicDirective {
5592
5688
  const formGroup = c.parent.controls;
5593
5689
  return Object.keys(formGroup).find(name => c === formGroup[name]) || null;
5594
5690
  }
5595
- /** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RangeValidatorMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
5691
+ /** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
5692
+ return new (__ngFactoryType__ || RangeValidatorMagicDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
5596
5693
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RangeValidatorMagicDirective, selectors: [["", "rangevalidator", ""]], standalone: false, features: [i0.ɵɵProvidersFeature([
5597
5694
  {
5598
5695
  provide: NG_VALIDATORS,
@@ -5616,8 +5713,8 @@ class RangeValidatorMagicDirective {
5616
5713
  }]
5617
5714
  }], () => [{ type: TaskMagicService }, { type: i0.ViewContainerRef }], null); })();
5618
5715
 
5619
- function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
5620
- i0.ɵɵelement(0, "ndc-dynamic", 1);
5716
+ function SubformMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5717
+ i0.ɵɵelement(0, "ndc-dynamic", 0);
5621
5718
  } if (rf & 2) {
5622
5719
  const ctx_r0 = i0.ɵɵnextContext();
5623
5720
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
@@ -5662,35 +5759,38 @@ class SubformMagicComponent {
5662
5759
  get Parameters() {
5663
5760
  return this.mgSub.mgGetParameters(this.id);
5664
5761
  }
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);
5762
+ /** @nocollapse */ static ɵfac = function SubformMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
5763
+ return new (__ngFactoryType__ || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(SubformMagicService)); };
5764
+ /** @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) {
5765
+ i0.ɵɵconditionalCreate(0, SubformMagicComponent_Conditional_0_Template, 1, 2, "ndc-dynamic", 0);
5668
5766
  } if (rf & 2) {
5669
- i0.ɵɵproperty("ngIf", ctx.Component);
5670
- } }, dependencies: [i1.NgIf, i3.DynamicIoDirective, i3.DynamicComponent], encapsulation: 2 });
5767
+ i0.ɵɵconditional(ctx.Component ? 0 : -1);
5768
+ } }, dependencies: [i2$3.DynamicIoDirective, i2$3.DynamicComponent], encapsulation: 2, changeDetection: 1 });
5671
5769
  }
5672
5770
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
5673
5771
  type: Component,
5674
5772
  args: [{
5675
5773
  selector: 'magic-subform',
5676
- template: `
5677
- <ndc-dynamic
5678
- *ngIf="Component"
5679
- [ndcDynamicComponent]="Component"
5680
- [ndcDynamicInputs]="Parameters">
5681
- </ndc-dynamic>
5682
- `,
5774
+ template: `
5775
+ @if (Component) {
5776
+ <ndc-dynamic
5777
+ [ndcDynamicComponent]="Component"
5778
+ [ndcDynamicInputs]="Parameters">
5779
+ </ndc-dynamic>
5780
+ }
5781
+ `,
5782
+ changeDetection: ChangeDetectionStrategy.Eager,
5683
5783
  standalone: false
5684
5784
  }]
5685
5785
  }], () => [{ type: i0.ViewContainerRef }, { type: SubformMagicService }], { magic: [{
5686
5786
  type: Input,
5687
5787
  args: ['magic']
5688
5788
  }] }); })();
5689
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber: 22 }); })();
5789
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber: 24 }); })();
5690
5790
 
5691
5791
  const _c0$1 = ["customContent"];
5692
5792
  const _c1 = ["*"];
5693
- function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
5793
+ function ErrorMagicComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
5694
5794
  i0.ɵɵelementStart(0, "span");
5695
5795
  i0.ɵɵtext(1);
5696
5796
  i0.ɵɵelementEnd();
@@ -5699,16 +5799,16 @@ function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
5699
5799
  i0.ɵɵadvance();
5700
5800
  i0.ɵɵtextInterpolate1(" ", ctx_r0.mgService.getErrMsg(ctx_r0.id, ctx_r0.rowId), " ");
5701
5801
  } }
5702
- function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
5802
+ function ErrorMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5703
5803
  i0.ɵɵelementStart(0, "div")(1, "div", null, 0);
5704
5804
  i0.ɵɵprojection(3);
5705
5805
  i0.ɵɵelementEnd();
5706
- i0.ɵɵtemplate(4, ErrorMagicComponent_div_0_span_4_Template, 2, 1, "span", 1);
5806
+ i0.ɵɵconditionalCreate(4, ErrorMagicComponent_Conditional_0_Conditional_4_Template, 2, 1, "span");
5707
5807
  i0.ɵɵelementEnd();
5708
5808
  } if (rf & 2) {
5709
5809
  const ctx_r0 = i0.ɵɵnextContext();
5710
5810
  i0.ɵɵadvance(4);
5711
- i0.ɵɵproperty("ngIf", ctx_r0.defaultDisplay);
5811
+ i0.ɵɵconditional(ctx_r0.defaultDisplay ? 4 : -1);
5712
5812
  } }
5713
5813
  /**
5714
5814
  * Represents a Magic subform
@@ -5786,32 +5886,38 @@ class ErrorMagicComponent {
5786
5886
  }
5787
5887
  return false;
5788
5888
  }
5789
- /** @nocollapse */ static ɵfac = function ErrorMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ErrorMagicComponent)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5889
+ /** @nocollapse */ static ɵfac = function ErrorMagicComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
5890
+ return new (__ngFactoryType__ || ErrorMagicComponent)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5790
5891
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ErrorMagicComponent, selectors: [["mgError"]], viewQuery: function ErrorMagicComponent_Query(rf, ctx) { if (rf & 1) {
5791
5892
  i0.ɵɵviewQuery(_c0$1, 5);
5792
5893
  } if (rf & 2) {
5793
5894
  let _t;
5794
5895
  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) {
5896
+ } }, 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
5897
  i0.ɵɵprojectionDef();
5797
- i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 1);
5898
+ i0.ɵɵconditionalCreate(0, ErrorMagicComponent_Conditional_0_Template, 5, 1, "div");
5798
5899
  } if (rf & 2) {
5799
- i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
5800
- } }, dependencies: [i1.NgIf], encapsulation: 2 });
5900
+ i0.ɵɵconditional(ctx.HasErrors(ctx.id) ? 0 : -1);
5901
+ } }, encapsulation: 2, changeDetection: 1 });
5801
5902
  }
5802
5903
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
5803
5904
  type: Component,
5804
5905
  args: [{
5805
5906
  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>
5907
+ template: `@if (HasErrors(id)) {
5908
+ <div>
5909
+ <div #customContent>
5910
+ <ng-content></ng-content>
5911
+ </div>
5912
+ @if (defaultDisplay) {
5913
+ <span>
5914
+ {{mgService.getErrMsg(id, rowId)}}
5915
+ </span>
5916
+ }
5917
+ </div>
5918
+ }
5814
5919
  `,
5920
+ changeDetection: ChangeDetectionStrategy.Eager,
5815
5921
  standalone: false
5816
5922
  }]
5817
5923
  }], () => [{ type: TaskMagicService }, { type: AccessorMagicService }, { type: i0.ChangeDetectorRef }], { magic: [{
@@ -5824,7 +5930,7 @@ class ErrorMagicComponent {
5824
5930
  type: ViewChild,
5825
5931
  args: ['customContent', { static: false }]
5826
5932
  }] }); })();
5827
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 24 }); })();
5933
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 29 }); })();
5828
5934
 
5829
5935
  /**
5830
5936
  * Directive for checkboxes, to handle the 'change' event
@@ -5911,7 +6017,8 @@ class CheckboxMagicDirective {
5911
6017
  if (this.subscribeRefreshDom !== null)
5912
6018
  this.subscribeRefreshDom.unsubscribe();
5913
6019
  }
5914
- /** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TaskMagicService)); };
6020
+ /** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6021
+ return new (__ngFactoryType__ || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TaskMagicService)); };
5915
6022
  /** @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
6023
  i0.ɵɵlistener("change", function CheckboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
5917
6024
  } }, inputs: { threeState: "threeState" }, standalone: false });
@@ -5959,7 +6066,8 @@ class ComboboxMagicDirective {
5959
6066
  onComboboxItemsListChanged() {
5960
6067
  this.magicDirective.task.refreshView();
5961
6068
  }
5962
- /** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6069
+ /** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6070
+ return new (__ngFactoryType__ || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
5963
6071
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: ComboboxMagicDirective, selectors: [["select", "magic", "", 3, "multiple", ""]], hostBindings: function ComboboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
5964
6072
  i0.ɵɵlistener("change", function ComboboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
5965
6073
  } }, standalone: false });
@@ -5993,15 +6101,15 @@ class ExitMagicService {
5993
6101
  }], null, null); })();
5994
6102
 
5995
6103
  const _c0 = ["magicRoot"];
5996
- function MagicShellComponent_ndc_dynamic_2_Template(rf, ctx) { if (rf & 1) {
5997
- i0.ɵɵelement(0, "ndc-dynamic", 6);
6104
+ function MagicShellComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6105
+ i0.ɵɵelement(0, "ndc-dynamic", 3);
5998
6106
  } if (rf & 2) {
5999
6107
  const ctx_r0 = i0.ɵɵnextContext();
6000
6108
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.RootComponent)("ndcDynamicInputs", ctx_r0.RootComponentParameters);
6001
6109
  } }
6002
- function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
6003
- i0.ɵɵelementStart(0, "div", 7);
6004
- i0.ɵɵelementContainer(1, 8);
6110
+ function MagicShellComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
6111
+ i0.ɵɵelementStart(0, "div", 5);
6112
+ i0.ɵɵelementContainer(1, 6);
6005
6113
  i0.ɵɵelementEnd();
6006
6114
  } if (rf & 2) {
6007
6115
  const ctx_r0 = i0.ɵɵnextContext();
@@ -6010,7 +6118,7 @@ function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
6010
6118
  i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.SpinnerTemplate ? ctx_r0.SpinnerTemplate : defaultSpinner_r2);
6011
6119
  } }
6012
6120
  function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
6013
- i0.ɵɵelement(0, "div", 9);
6121
+ i0.ɵɵelement(0, "div", 7);
6014
6122
  } }
6015
6123
  /**
6016
6124
  * Root Magic component
@@ -6198,53 +6306,58 @@ class MagicShellComponent {
6198
6306
  break;
6199
6307
  }
6200
6308
  }
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)); };
6309
+ /** @nocollapse */ static ɵfac = function MagicShellComponent_Factory(__ngFactoryType__) { /* @ts-ignore */
6310
+ 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
6311
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicShellComponent, selectors: [["magic-root"]], viewQuery: function MagicShellComponent_Query(rf, ctx) { if (rf & 1) {
6203
6312
  i0.ɵɵviewQuery(_c0, 7);
6204
6313
  } if (rf & 2) {
6205
6314
  let _t;
6206
6315
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootMagicElementRef = _t.first);
6207
6316
  } }, 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);
6317
+ 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
6318
  } }, inputs: { SpinnerTemplate: "SpinnerTemplate" }, standalone: false, features: [i0.ɵɵProvidersFeature([
6210
6319
  // 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) {
6320
+ ])], 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
6321
  i0.ɵɵelementStart(0, "div", null, 0);
6213
- i0.ɵɵtemplate(2, MagicShellComponent_ndc_dynamic_2_Template, 1, 2, "ndc-dynamic", 3);
6322
+ i0.ɵɵconditionalCreate(2, MagicShellComponent_Conditional_2_Template, 1, 2, "ndc-dynamic", 3);
6214
6323
  i0.ɵɵelement(3, "div", 4, 1);
6215
6324
  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);
6325
+ i0.ɵɵconditionalCreate(5, MagicShellComponent_Conditional_5_Template, 2, 1, "div", 5);
6326
+ i0.ɵɵtemplate(6, MagicShellComponent_ng_template_6_Template, 1, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
6217
6327
  } if (rf & 2) {
6218
6328
  i0.ɵɵadvance(2);
6219
- i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
6329
+ i0.ɵɵconditional(ctx.RootComponent !== null ? 2 : -1);
6220
6330
  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)}}"] });
6331
+ i0.ɵɵconditional(ctx.showSpinner ? 5 : -1);
6332
+ } }, 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
6333
  }
6224
6334
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
6225
6335
  type: Component,
6226
6336
  args: [{ selector: 'magic-root', providers: [
6227
6337
  // 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"] }]
6338
+ ], template: `
6339
+ <div #magicRoot>
6340
+ @if (RootComponent !== null) {
6341
+ <ndc-dynamic
6342
+ [ndcDynamicComponent]="RootComponent"
6343
+ [ndcDynamicInputs] ="RootComponentParameters">
6344
+ </ndc-dynamic>
6345
+ }
6346
+
6347
+ <div #overlayWindowsContainer magicViewContainerRef>
6348
+ </div>
6349
+ </div>
6350
+
6351
+ @if (showSpinner) {
6352
+ <div class="spinner-background">
6353
+ <ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
6354
+ </div>
6355
+ }
6356
+
6357
+ <ng-template #defaultSpinner>
6358
+ <div class="mgSpinnerClass"></div>
6359
+ </ng-template>
6360
+ `, 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
6361
  }], () => [{ 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
6362
  type: Optional
6250
6363
  }] }], { rootMagicElementRef: [{
@@ -6259,7 +6372,7 @@ class MagicShellComponent {
6259
6372
  type: HostListener,
6260
6373
  args: ['window:unload', ['$event']]
6261
6374
  }] }); })();
6262
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber: 86 }); })();
6375
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber: 92 }); })();
6263
6376
 
6264
6377
  /**
6265
6378
  * @ignore
@@ -6286,7 +6399,7 @@ class MagicCheckboxControlValueAccessor extends CheckboxControlValueAccessor {
6286
6399
  input[type=checkbox][magic]:not([formControl]),
6287
6400
  input[type=checkbox][magic]:not([ngModel])
6288
6401
  `,
6289
- host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },
6402
+ host: { '(change)': 'onChange($any($event.target).checked)', '(blur)': 'onTouched()' },
6290
6403
  providers: [CHECKBOX_VALUE_ACCESSOR],
6291
6404
  standalone: false
6292
6405
  }]
@@ -6317,10 +6430,10 @@ class MagicDefaultValueAccessor extends DefaultValueAccessor {
6317
6430
  textarea[magic]:not([formControlName]):not([noFormControl]):not([no-form-control])
6318
6431
  `,
6319
6432
  host: {
6320
- '(input)': '$any(this)._handleInput($event.target.value)',
6433
+ '(input)': '$any(this)._handleInput($any($event.target).value)',
6321
6434
  '(blur)': 'onTouched()',
6322
6435
  '(compositionstart)': '$any(this)._compositionStart()',
6323
- '(compositionend)': '$any(this)._compositionEnd($event.target.value)'
6436
+ '(compositionend)': '$any(this)._compositionEnd($any($event.target).value)'
6324
6437
  },
6325
6438
  providers: [MAGIC_DEFAULT_VALUE_ACCESSOR],
6326
6439
  exportAs: 'magic',
@@ -6342,7 +6455,8 @@ class CheckboxNoFormControlMagicDirective {
6342
6455
  onChange($event) {
6343
6456
  this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
6344
6457
  }
6345
- /** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6458
+ /** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6459
+ return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6346
6460
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CheckboxNoFormControlMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", "noFormControl", ""]], hostBindings: function CheckboxNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
6347
6461
  i0.ɵɵlistener("change", function CheckboxNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
6348
6462
  } }, standalone: false });
@@ -6374,7 +6488,8 @@ class InputNoFormControlMagicDirective {
6374
6488
  onChange($event) {
6375
6489
  this.magicDirective.task.setInputTextValue(this.magicDirective.id, this.magicDirective.rowId, event.srcElement.value);
6376
6490
  }
6377
- /** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6491
+ /** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6492
+ return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
6378
6493
  /** @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
6494
  i0.ɵɵlistener("change", function InputNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
6380
6495
  } }, standalone: false });
@@ -6459,7 +6574,8 @@ class DateValueAccessor {
6459
6574
  setDisabledState(isDisabled) {
6460
6575
  this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled);
6461
6576
  }
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)); };
6577
+ /** @nocollapse */ static ɵfac = function DateValueAccessor_Factory(__ngFactoryType__) { /* @ts-ignore */
6578
+ return new (__ngFactoryType__ || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
6463
6579
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DateValueAccessor, selectors: [["", "dateInput", ""]], hostBindings: function DateValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
6464
6580
  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
6581
  } }, standalone: false, features: [i0.ɵɵProvidersFeature([DATE_VALUE_ACCESSOR])] });
@@ -6564,7 +6680,8 @@ class NonMagicControlDirective {
6564
6680
  ngOnInit() {
6565
6681
  this.regEvents();
6566
6682
  }
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)); };
6683
+ /** @nocollapse */ static ɵfac = function NonMagicControlDirective_Factory(__ngFactoryType__) { /* @ts-ignore */
6684
+ return new (__ngFactoryType__ || NonMagicControlDirective)(i0.ɵɵdirectiveInject(TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
6568
6685
  /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NonMagicControlDirective, selectors: [["", "NonMagicControl", ""]], inputs: { magic: [0, "NonMagicControl", "magic"] }, standalone: false });
6569
6686
  }
6570
6687
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NonMagicControlDirective, [{
@@ -6599,7 +6716,8 @@ class Time24MagicPipe {
6599
6716
  }
6600
6717
  return value;
6601
6718
  }
6602
- /** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Time24MagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
6719
+ /** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { /* @ts-ignore */
6720
+ return new (__ngFactoryType__ || Time24MagicPipe)(i0.ɵɵdirectiveInject(TaskMagicService, 16)); };
6603
6721
  /** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime24", type: Time24MagicPipe, pure: true, standalone: false });
6604
6722
  }
6605
6723
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Time24MagicPipe, [{
@@ -6650,27 +6768,28 @@ const decs = [
6650
6768
  class MagicModule {
6651
6769
  /** @nocollapse */ static ɵfac = function MagicModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicModule)(); };
6652
6770
  /** @nocollapse */ static ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: MagicModule });
6653
- /** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
6771
+ /** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())], imports: [CommonModule,
6654
6772
  FormsModule,
6655
6773
  ReactiveFormsModule,
6656
6774
  RouterModule,
6657
6775
  DynamicModule,
6658
- DragDropModule, MaskitoModule] });
6776
+ DragDropModule] });
6659
6777
  }
6660
6778
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicModule, [{
6661
6779
  type: NgModule,
6662
6780
  args: [{
6663
6781
  declarations: [...decs],
6664
- exports: [...decs, MaskitoModule],
6782
+ exports: [...decs, MaskitoDirective],
6665
6783
  imports: [CommonModule,
6666
6784
  FormsModule,
6667
6785
  ReactiveFormsModule,
6668
6786
  RouterModule,
6669
6787
  DynamicModule,
6788
+ MaskitoDirective,
6670
6789
  CdkDragHandle,
6671
6790
  CdkDrag,
6672
6791
  DragDropModule],
6673
- providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())]
6792
+ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())]
6674
6793
  }]
6675
6794
  }], null, null); })();
6676
6795
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MagicModule, { declarations: [MagicDirective,
@@ -6706,6 +6825,7 @@ class MagicModule {
6706
6825
  ReactiveFormsModule,
6707
6826
  RouterModule,
6708
6827
  DynamicModule,
6828
+ MaskitoDirective,
6709
6829
  CdkDragHandle,
6710
6830
  CdkDrag,
6711
6831
  DragDropModule], exports: [MagicDirective,
@@ -6736,7 +6856,7 @@ class MagicModule {
6736
6856
  NonMagicControlDirective,
6737
6857
  MagicFocusDirective,
6738
6858
  MagicViewContainerRef,
6739
- Time24MagicPipe, MaskitoModule] }); })();
6859
+ Time24MagicPipe, MaskitoDirective] }); })();
6740
6860
 
6741
6861
  const MG_FORMATS = {
6742
6862
  parse: { dateInput: { month: 'short', year: 'numeric', day: 'numeric' } },
@@ -6752,7 +6872,7 @@ class MgDateAdapter extends NativeDateAdapter {
6752
6872
  localeId;
6753
6873
  mgdtfmt = null;
6754
6874
  constructor(task, localeId) {
6755
- super(localeId);
6875
+ super();
6756
6876
  this.task = task;
6757
6877
  this.localeId = localeId;
6758
6878
  this.setLocale(localeId);
@@ -6830,7 +6950,8 @@ class MgDateAdapter extends NativeDateAdapter {
6830
6950
  return date.toDateString();
6831
6951
  }
6832
6952
  }
6833
- /** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgDateAdapter)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MAT_DATE_LOCALE)); };
6953
+ /** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { /* @ts-ignore */
6954
+ return new (__ngFactoryType__ || MgDateAdapter)(i0.ɵɵinject(TaskMagicService), i0.ɵɵinject(MAT_DATE_LOCALE)); };
6834
6955
  /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MgDateAdapter, factory: MgDateAdapter.ɵfac });
6835
6956
  }
6836
6957
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgDateAdapter, [{
@@ -6860,6 +6981,109 @@ const magicProviders = [
6860
6981
  TableMagicService
6861
6982
  ];
6862
6983
 
6984
+ class SubscriberService {
6985
+ static instance;
6986
+ socket;
6987
+ constructor() {
6988
+ // Connect to the Socket.IO server with subscriber role
6989
+ this.socket = io('http://localhost:3000', {
6990
+ query: {
6991
+ role: 'subscriber',
6992
+ token: 'abc123' // Default token for testing; replace with actual authentication
6993
+ }
6994
+ });
6995
+ // Handle connection
6996
+ this.socket.on('connect', () => {
6997
+ console.log('Connected to server as subscriber:', this.socket.id);
6998
+ });
6999
+ // Handle disconnection
7000
+ this.socket.on('disconnect', () => {
7001
+ console.log('Disconnected from server');
7002
+ });
7003
+ // Handle subscription confirmation
7004
+ this.socket.on('subscribed', (data) => {
7005
+ console.log('Subscribed to topic:', data.topic, data.message);
7006
+ });
7007
+ // Handle unsubscription confirmation
7008
+ this.socket.on('unsubscribed', (data) => {
7009
+ console.log('Unsubscribed from topic:', data.topic, data.message);
7010
+ });
7011
+ // Handle errors
7012
+ this.socket.on('error', (error) => {
7013
+ console.error('Socket error:', error.message);
7014
+ });
7015
+ this.socket.on('message', (error) => {
7016
+ console.error('Message from xpa:', error.message);
7017
+ });
7018
+ }
7019
+ /**
7020
+ * Subscribe to a specific topic
7021
+ * @param topic The topic to subscribe to
7022
+ */
7023
+ subscribe(topic) {
7024
+ this.socket.emit('subscribe', topic);
7025
+ }
7026
+ /**
7027
+ * Unsubscribe from a specific topic
7028
+ * @param topic The topic to unsubscribe from
7029
+ */
7030
+ unsubscribe(topic) {
7031
+ this.socket.emit('unsubscribe', topic);
7032
+ }
7033
+ /**
7034
+ * Get an Observable for incoming messages
7035
+ * @returns Observable that emits message data
7036
+ */
7037
+ onMessage() {
7038
+ return new Observable(observer => {
7039
+ this.socket.on('message', (data) => {
7040
+ observer.next(data);
7041
+ });
7042
+ });
7043
+ }
7044
+ /**
7045
+ * Get current subscriptions (for debugging)
7046
+ */
7047
+ getSubscriptions() {
7048
+ this.socket.emit('getSubscriptions');
7049
+ }
7050
+ /**
7051
+ * Listen for subscriptions data
7052
+ * @returns Observable that emits subscriptions list
7053
+ */
7054
+ onSubscriptionsData() {
7055
+ return new Observable(observer => {
7056
+ this.socket.on('subscriptionsData', (data) => {
7057
+ observer.next(data);
7058
+ });
7059
+ });
7060
+ }
7061
+ /**
7062
+ * Get the singleton instance of SubscriberService
7063
+ * @returns {SubscriberService} The singleton instance
7064
+ */
7065
+ static getInstance() {
7066
+ if (!SubscriberService.instance) {
7067
+ SubscriberService.instance = new SubscriberService();
7068
+ }
7069
+ return SubscriberService.instance;
7070
+ }
7071
+ /**
7072
+ * Disconnect from the server
7073
+ */
7074
+ disconnect() {
7075
+ this.socket.disconnect();
7076
+ }
7077
+ /** @nocollapse */ static ɵfac = function SubscriberService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubscriberService)(); };
7078
+ /** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SubscriberService, factory: SubscriberService.ɵfac, providedIn: 'root' });
7079
+ }
7080
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubscriberService, [{
7081
+ type: Injectable,
7082
+ args: [{
7083
+ providedIn: 'root'
7084
+ }]
7085
+ }], () => [], null); })();
7086
+
6863
7087
  /**
6864
7088
  * @ignore
6865
7089
  */
@@ -6945,5 +7169,5 @@ class ModalFormDefinition {
6945
7169
  * Generated bundle index. Do not edit.
6946
7170
  */
6947
7171
 
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 };
7172
+ 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
7173
  //# sourceMappingURL=magic-xpa-angular.mjs.map