@magic-xpa/angular 4.1300.0-dev4130.28 → 4.1300.0-dev4130.280
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.
- package/fesm2022/magic-xpa-angular.mjs +735 -600
- package/fesm2022/magic-xpa-angular.mjs.map +1 -1
- package/package.json +14 -11
- package/types/magic-xpa-angular.d.ts +545 -413
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
import { isNullOrUndefined, NString, List, isUndefined, StringBuilder, RefParam } from '@magic-xpa/mscorelib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable,
|
|
3
|
+
import { Injectable, inject, Injector, createNgModule, ViewContainerRef, ChangeDetectionStrategy, Component, Directive, EventEmitter, HostListener, Output, Input, ViewChild, input, output, ElementRef, viewChild, ChangeDetectorRef, InjectionToken, DestroyRef, Renderer2, Pipe, effect, forwardRef, NgModule } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { DatePipe, CommonModule, formatDate } from '@angular/common';
|
|
6
|
-
import
|
|
7
|
-
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
6
|
+
import { ActivatedRoute, Router, NavigationEnd, RouterModule } from '@angular/router';
|
|
8
7
|
import { FormGroup, FormControl, Validators, NG_VALIDATORS, NG_VALUE_ACCESSOR, CheckboxControlValueAccessor, DefaultValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
-
import * as
|
|
8
|
+
import * as i1$1 from 'ng-dynamic-component';
|
|
10
9
|
import { DynamicModule } from 'ng-dynamic-component';
|
|
11
10
|
import { InteractiveCommandType, HtmlProperties, OverlayType, Styles, GuiConstants, CommandType, PIC, GuiEnvironment, Events, Modifiers } from '@magic-xpa/gui';
|
|
12
11
|
import { MagicBridge, getGuiEventObj, CookieService, Environment, LastFocusedManager } from '@magic-xpa/engine';
|
|
12
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
13
|
import { MagicProperties, Logger, StrUtil, StorageAttribute, PICInterface, MsgInterface, BindingLevel, StorageAttributeType, MgControlType } from '@magic-xpa/utils';
|
|
14
|
+
import { Subject, EMPTY, fromEvent, Observable } from 'rxjs';
|
|
14
15
|
import { filter, map, debounceTime, take } from 'rxjs/operators';
|
|
15
|
-
import
|
|
16
|
-
import { __decorate, __metadata } from 'tslib';
|
|
17
|
-
import * as i2$1 from '@angular/cdk/drag-drop';
|
|
16
|
+
import * as i2 from '@angular/cdk/drag-drop';
|
|
18
17
|
import { DragDropModule, CdkDragHandle, CdkDrag } from '@angular/cdk/drag-drop';
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
18
|
+
import { Title } from '@angular/platform-browser';
|
|
19
|
+
import { HttpClient, provideHttpClient, withXhr, withInterceptorsFromDi } from '@angular/common/http';
|
|
22
20
|
import { maskitoTimeOptionsGenerator } from '@maskito/kit';
|
|
23
|
-
import
|
|
24
|
-
import {
|
|
21
|
+
import { Platform } from '@angular/cdk/platform';
|
|
22
|
+
import { MaskitoDirective } from '@maskito/angular';
|
|
25
23
|
import { NativeDateAdapter, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
24
|
+
import { io } from 'socket.io-client';
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* @ignore
|
|
@@ -239,6 +238,63 @@ var HtmlClasses;
|
|
|
239
238
|
HtmlClasses["HintColor"] = "hintcolor";
|
|
240
239
|
})(HtmlClasses || (HtmlClasses = {}));
|
|
241
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Notifies Angular that Magic state changed outside of its knowledge.
|
|
243
|
+
*
|
|
244
|
+
* The WebClient runs zoneless, so Angular no longer re-renders the application
|
|
245
|
+
* after every asynchronous task. Change detection is triggered only by Angular's
|
|
246
|
+
* own APIs - a template event binding, a signal write, `markForCheck()` and so on.
|
|
247
|
+
*
|
|
248
|
+
* Magic drives the UI from sources Angular cannot observe: DOM listeners registered
|
|
249
|
+
* through `Renderer2`, the engine's event loop, and socket callbacks. Every such
|
|
250
|
+
* source calls {@link notify}, and the Magic components refresh themselves in response.
|
|
251
|
+
*
|
|
252
|
+
* Application code can use this service for the same purpose. Call {@link notify}
|
|
253
|
+
* after changing component state from a callback Angular does not control - a
|
|
254
|
+
* `setTimeout`, a `Promise`, a `fetch` response or a third-party widget event:
|
|
255
|
+
*
|
|
256
|
+
* ```ts
|
|
257
|
+
* export class MyForm extends TaskBaseMagicComponent {
|
|
258
|
+
* private readonly magicChangeDetection = inject(MagicChangeDetectionService);
|
|
259
|
+
*
|
|
260
|
+
* override mgOnLoad(): void {
|
|
261
|
+
* setTimeout(() => {
|
|
262
|
+
* this.statusText = 'Ready';
|
|
263
|
+
* this.magicChangeDetection.notify();
|
|
264
|
+
* }, 1000);
|
|
265
|
+
* }
|
|
266
|
+
* }
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* Notifications are coalesced by Angular's scheduler, so calling {@link notify}
|
|
270
|
+
* several times in a row still results in a single refresh.
|
|
271
|
+
*/
|
|
272
|
+
class MagicChangeDetectionService {
|
|
273
|
+
/**
|
|
274
|
+
* @ignore
|
|
275
|
+
*/
|
|
276
|
+
changedSubject = new Subject();
|
|
277
|
+
/**
|
|
278
|
+
* Emits whenever Magic state changed and the views should be refreshed.
|
|
279
|
+
* Subscribers are expected to mark their view for check.
|
|
280
|
+
*/
|
|
281
|
+
changed = this.changedSubject.asObservable();
|
|
282
|
+
/**
|
|
283
|
+
* Notify Angular that state which the templates depend on has changed.
|
|
284
|
+
*/
|
|
285
|
+
notify() {
|
|
286
|
+
this.changedSubject.next();
|
|
287
|
+
}
|
|
288
|
+
/** @nocollapse */ static ɵfac = function MagicChangeDetectionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicChangeDetectionService)(); };
|
|
289
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicChangeDetectionService, factory: MagicChangeDetectionService.ɵfac, providedIn: 'root' });
|
|
290
|
+
}
|
|
291
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicChangeDetectionService, [{
|
|
292
|
+
type: Injectable,
|
|
293
|
+
args: [{
|
|
294
|
+
providedIn: 'root'
|
|
295
|
+
}]
|
|
296
|
+
}], null, null); })();
|
|
297
|
+
|
|
242
298
|
/**
|
|
243
299
|
* @ignore
|
|
244
300
|
*/
|
|
@@ -279,6 +335,9 @@ class EngineMagicService {
|
|
|
279
335
|
//TODO - unregister
|
|
280
336
|
refreshDom = new Subject();
|
|
281
337
|
interactiveCommands = new Subject();
|
|
338
|
+
// Injected as a field rather than a constructor parameter so that the public
|
|
339
|
+
// constructor signature stays unchanged for anyone extending this service.
|
|
340
|
+
magicChangeDetection = inject(MagicChangeDetectionService);
|
|
282
341
|
startMagicEngine(httpClient, args) {
|
|
283
342
|
this.magicBridge.registerExecuteCommandsCallback(data => {
|
|
284
343
|
if (!this.isStub) {
|
|
@@ -294,11 +353,17 @@ class EngineMagicService {
|
|
|
294
353
|
console.log('moving to stub mode');
|
|
295
354
|
this.isStub = true;
|
|
296
355
|
}
|
|
356
|
+
finally {
|
|
357
|
+
// The engine finished a batch of UI commands. Running zoneless, this is the
|
|
358
|
+
// single point where every server-driven change becomes visible to Angular.
|
|
359
|
+
this.magicChangeDetection.notify();
|
|
360
|
+
}
|
|
297
361
|
}
|
|
298
362
|
});
|
|
299
363
|
this.magicBridge.registerInteractiveCallback(data => {
|
|
300
364
|
if (!this.isStub) {
|
|
301
365
|
this.interactiveCommands.next(data);
|
|
366
|
+
this.magicChangeDetection.notify();
|
|
302
367
|
}
|
|
303
368
|
});
|
|
304
369
|
this.magicBridge.Initialize(httpClient, args);
|
|
@@ -309,6 +374,11 @@ class EngineMagicService {
|
|
|
309
374
|
insertEvent(guiEvent) {
|
|
310
375
|
if (!this.isStub)
|
|
311
376
|
this.magicBridge.insertEvent(guiEvent);
|
|
377
|
+
// Every Magic UI event - from the DOM listeners registered by MagicDirective and
|
|
378
|
+
// its subclasses, from the accessor service, and from the overlay service - reaches
|
|
379
|
+
// the engine through here. Renderer2 listeners do not notify Angular's scheduler on
|
|
380
|
+
// their own, so this is where an interaction becomes a change-detection trigger.
|
|
381
|
+
this.magicChangeDetection.notify();
|
|
312
382
|
}
|
|
313
383
|
GetRangedValue(taskId, controlName, value) {
|
|
314
384
|
return this.magicBridge.GetRangedValue(taskId, controlName, value);
|
|
@@ -430,12 +500,11 @@ class ComponentListMagicService {
|
|
|
430
500
|
* @ignore
|
|
431
501
|
*/
|
|
432
502
|
class CommandsCollectorMagicService {
|
|
433
|
-
magic;
|
|
434
503
|
count = 0;
|
|
435
504
|
commands = new List();
|
|
436
505
|
subscription = null;
|
|
437
|
-
|
|
438
|
-
|
|
506
|
+
magic = inject(EngineMagicService);
|
|
507
|
+
constructor() {
|
|
439
508
|
}
|
|
440
509
|
startCollecting() {
|
|
441
510
|
this.count++;
|
|
@@ -460,7 +529,7 @@ class CommandsCollectorMagicService {
|
|
|
460
529
|
commands.forEach(command => { this.commands.Remove(command); });
|
|
461
530
|
return commands;
|
|
462
531
|
}
|
|
463
|
-
/** @nocollapse */ static ɵfac = function CommandsCollectorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommandsCollectorMagicService)(
|
|
532
|
+
/** @nocollapse */ static ɵfac = function CommandsCollectorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommandsCollectorMagicService)(); };
|
|
464
533
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: CommandsCollectorMagicService, factory: CommandsCollectorMagicService.ɵfac, providedIn: 'root' });
|
|
465
534
|
}
|
|
466
535
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommandsCollectorMagicService, [{
|
|
@@ -468,7 +537,7 @@ class CommandsCollectorMagicService {
|
|
|
468
537
|
args: [{
|
|
469
538
|
providedIn: 'root'
|
|
470
539
|
}]
|
|
471
|
-
}], () => [
|
|
540
|
+
}], () => [], null); })();
|
|
472
541
|
|
|
473
542
|
/**
|
|
474
543
|
* @ignore
|
|
@@ -522,32 +591,21 @@ class MagicLazyLoaderService {
|
|
|
522
591
|
* Service for managing subforms and routing
|
|
523
592
|
*/
|
|
524
593
|
class SubformMagicService {
|
|
525
|
-
task;
|
|
526
|
-
activatedRoute;
|
|
527
|
-
componentList;
|
|
528
|
-
pendingCommandsCollector;
|
|
529
|
-
router;
|
|
530
|
-
routerCommandsMagicService;
|
|
531
|
-
componentListMagicService;
|
|
532
|
-
loader;
|
|
533
|
-
injector;
|
|
534
|
-
compiler;
|
|
535
594
|
subformsDict /*:{ [x: string]: SubformDefinition }*/ = {};
|
|
536
595
|
routesDict = {}; // dictionary of router outlet to router path
|
|
537
596
|
currentRouteDefinition = null;
|
|
538
597
|
static currentCallerMgSubformServiceRef = null;
|
|
539
598
|
static routerContainers = new Array();
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
this.compiler = compiler;
|
|
599
|
+
task = inject(TaskMagicService);
|
|
600
|
+
activatedRoute = inject(ActivatedRoute);
|
|
601
|
+
componentList = inject(ComponentListMagicService);
|
|
602
|
+
pendingCommandsCollector = inject(CommandsCollectorMagicService);
|
|
603
|
+
router = inject(Router);
|
|
604
|
+
routerCommandsMagicService = inject(RouterCommandsMagicService);
|
|
605
|
+
componentListMagicService = inject(ComponentListMagicService);
|
|
606
|
+
loader = inject(MagicLazyLoaderService);
|
|
607
|
+
injector = inject(Injector);
|
|
608
|
+
constructor() {
|
|
551
609
|
}
|
|
552
610
|
/**
|
|
553
611
|
* Finds and returns the component according to the subform name
|
|
@@ -608,8 +666,7 @@ class SubformMagicService {
|
|
|
608
666
|
// extract name of module(XX) from 'MagicXXModule'
|
|
609
667
|
const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
|
|
610
668
|
this.loader.Load(moduleName).then(m => {
|
|
611
|
-
|
|
612
|
-
moduleRef = compiled.ngModuleFactory.create(this.injector);
|
|
669
|
+
moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
|
|
613
670
|
this.subformsDict[subformControlName] = {
|
|
614
671
|
formName,
|
|
615
672
|
parameters: { taskIdParam: taskId, taskDescription: taskDescription }
|
|
@@ -749,25 +806,17 @@ class SubformMagicService {
|
|
|
749
806
|
}
|
|
750
807
|
return currentActiveRoute;
|
|
751
808
|
}
|
|
752
|
-
/** @nocollapse */ static ɵfac = function SubformMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicService)(
|
|
809
|
+
/** @nocollapse */ static ɵfac = function SubformMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicService)(); };
|
|
753
810
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SubformMagicService, factory: SubformMagicService.ɵfac });
|
|
754
811
|
}
|
|
755
812
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicService, [{
|
|
756
813
|
type: Injectable
|
|
757
|
-
}], () => [
|
|
814
|
+
}], () => [], null); })();
|
|
758
815
|
|
|
759
816
|
/**
|
|
760
817
|
* Mock component, implements routing by connecting the requested URL with the appropriate Magic task
|
|
761
818
|
*/
|
|
762
819
|
class RouterContainerMagicComponent {
|
|
763
|
-
activatedRoute;
|
|
764
|
-
router;
|
|
765
|
-
magic;
|
|
766
|
-
containerTaskService;
|
|
767
|
-
viewContainerRef;
|
|
768
|
-
componentList;
|
|
769
|
-
pendingCommandsCollector;
|
|
770
|
-
routerCommandsMagicService;
|
|
771
820
|
componentRef = null;
|
|
772
821
|
parentMgSubformService = null;
|
|
773
822
|
static lastRoute = "/";
|
|
@@ -775,6 +824,14 @@ class RouterContainerMagicComponent {
|
|
|
775
824
|
static get LastRoute() {
|
|
776
825
|
return RouterContainerMagicComponent.lastRoute;
|
|
777
826
|
}
|
|
827
|
+
activatedRoute = inject(ActivatedRoute);
|
|
828
|
+
router = inject(Router);
|
|
829
|
+
magic = inject(EngineMagicService);
|
|
830
|
+
containerTaskService = inject(TaskMagicService);
|
|
831
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
832
|
+
componentList = inject(ComponentListMagicService);
|
|
833
|
+
pendingCommandsCollector = inject(CommandsCollectorMagicService);
|
|
834
|
+
routerCommandsMagicService = inject(RouterCommandsMagicService);
|
|
778
835
|
/**
|
|
779
836
|
*
|
|
780
837
|
* @param changeDetectorRef
|
|
@@ -785,16 +842,7 @@ class RouterContainerMagicComponent {
|
|
|
785
842
|
* @param componentList
|
|
786
843
|
* @param pendingCommandsCollector
|
|
787
844
|
*/
|
|
788
|
-
constructor(
|
|
789
|
-
this.activatedRoute = activatedRoute;
|
|
790
|
-
this.router = router;
|
|
791
|
-
this.magic = magic;
|
|
792
|
-
this.containerTaskService = containerTaskService;
|
|
793
|
-
this.viewContainerRef = viewContainerRef;
|
|
794
|
-
this.componentList = componentList;
|
|
795
|
-
this.pendingCommandsCollector = pendingCommandsCollector;
|
|
796
|
-
this.routerCommandsMagicService = routerCommandsMagicService;
|
|
797
|
-
}
|
|
845
|
+
constructor() { }
|
|
798
846
|
/**
|
|
799
847
|
* Initialization
|
|
800
848
|
*/
|
|
@@ -872,8 +920,8 @@ class RouterContainerMagicComponent {
|
|
|
872
920
|
getRouterPath() {
|
|
873
921
|
return this.routePath;
|
|
874
922
|
}
|
|
875
|
-
/** @nocollapse */ static ɵfac = function RouterContainerMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RouterContainerMagicComponent)(
|
|
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 });
|
|
923
|
+
/** @nocollapse */ static ɵfac = function RouterContainerMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RouterContainerMagicComponent)(); };
|
|
924
|
+
/** @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
925
|
}
|
|
878
926
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouterContainerMagicComponent, [{
|
|
879
927
|
type: Component,
|
|
@@ -881,10 +929,11 @@ class RouterContainerMagicComponent {
|
|
|
881
929
|
selector: 'magic-route-outlet',
|
|
882
930
|
template: `
|
|
883
931
|
`,
|
|
932
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
884
933
|
standalone: false
|
|
885
934
|
}]
|
|
886
|
-
}], () => [
|
|
887
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src/ui/router-container.magic.component.ts", lineNumber:
|
|
935
|
+
}], () => [], null); })();
|
|
936
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src/ui/router-container.magic.component.ts", lineNumber: 24 }); })();
|
|
888
937
|
|
|
889
938
|
/**
|
|
890
939
|
* @ignore
|
|
@@ -1003,37 +1052,81 @@ class GuiInteractiveExecutor {
|
|
|
1003
1052
|
}
|
|
1004
1053
|
}
|
|
1005
1054
|
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1055
|
+
class MagicModalProperties {
|
|
1056
|
+
formName = "overlay";
|
|
1057
|
+
showTitleBar = true;
|
|
1058
|
+
x = 0;
|
|
1059
|
+
y = 0;
|
|
1060
|
+
width = "300px";
|
|
1061
|
+
height = "300px";
|
|
1062
|
+
isCenteredToWindow = true;
|
|
1063
|
+
shouldCloseOnBackgroundClick = true;
|
|
1064
|
+
isResizable = true;
|
|
1065
|
+
isMovable = true;
|
|
1066
|
+
constructor(formName, showTitleBar, x, y, width, height, isCenteredToWindow, shouldCloseOnBackgroundClick, isResizable, isMovable) {
|
|
1067
|
+
this.formName = formName;
|
|
1068
|
+
this.showTitleBar = showTitleBar;
|
|
1069
|
+
this.x = x;
|
|
1070
|
+
this.y = y;
|
|
1071
|
+
this.width = width;
|
|
1072
|
+
this.height = height;
|
|
1073
|
+
this.isCenteredToWindow = isCenteredToWindow;
|
|
1074
|
+
this.shouldCloseOnBackgroundClick = shouldCloseOnBackgroundClick;
|
|
1075
|
+
this.isResizable = isResizable;
|
|
1076
|
+
this.isMovable = isMovable;
|
|
1077
|
+
}
|
|
1078
|
+
X() {
|
|
1079
|
+
return this.x;
|
|
1080
|
+
}
|
|
1081
|
+
Y() {
|
|
1082
|
+
return this.y;
|
|
1083
|
+
}
|
|
1084
|
+
Width() {
|
|
1085
|
+
return this.width;
|
|
1086
|
+
}
|
|
1087
|
+
Height() {
|
|
1088
|
+
return this.height;
|
|
1089
|
+
}
|
|
1090
|
+
IsCenteredToWindow() {
|
|
1091
|
+
return this.isCenteredToWindow;
|
|
1092
|
+
}
|
|
1093
|
+
FormName() {
|
|
1094
|
+
return this.formName;
|
|
1095
|
+
}
|
|
1096
|
+
ShowTitleBar() {
|
|
1097
|
+
return this.showTitleBar;
|
|
1098
|
+
}
|
|
1099
|
+
ShouldCloseOnBackgroundClick() {
|
|
1100
|
+
return this.shouldCloseOnBackgroundClick;
|
|
1101
|
+
}
|
|
1102
|
+
IsResizable() {
|
|
1103
|
+
return this.isResizable;
|
|
1104
|
+
}
|
|
1105
|
+
IsMovable() {
|
|
1106
|
+
return this.isMovable;
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
/**
|
|
1111
|
+
* Abstract base for Magic overlay container components.
|
|
1112
|
+
* Concrete classes must implement these members using Angular signal APIs (input/output).
|
|
1113
|
+
* The class is kept as an abstract class (not an interface) so that instanceof checks
|
|
1114
|
+
* in MagicOverlayContainerWrapper continue to work at runtime.
|
|
1115
|
+
*/
|
|
1116
|
+
class BaseMagicOverlayContainer {
|
|
1117
|
+
}
|
|
1024
1118
|
|
|
1025
1119
|
/**
|
|
1026
1120
|
* Directive for setting ViewContainerRef on element
|
|
1027
1121
|
*/
|
|
1028
1122
|
class MagicViewContainerRef {
|
|
1029
|
-
vcRef;
|
|
1030
|
-
constructor(
|
|
1031
|
-
this.vcRef = vcRef;
|
|
1123
|
+
vcRef = inject(ViewContainerRef);
|
|
1124
|
+
constructor() {
|
|
1032
1125
|
// For angular 10 - find the component from the views
|
|
1033
1126
|
let comp = (this.vcRef._hostLView).find(v => v != null && !isNullOrUndefined(v.setViewContainerRef));
|
|
1034
|
-
comp.setViewContainerRef(vcRef);
|
|
1127
|
+
comp.setViewContainerRef(this.vcRef);
|
|
1035
1128
|
}
|
|
1036
|
-
/** @nocollapse */ static ɵfac = function MagicViewContainerRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicViewContainerRef)(
|
|
1129
|
+
/** @nocollapse */ static ɵfac = function MagicViewContainerRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicViewContainerRef)(); };
|
|
1037
1130
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicViewContainerRef, selectors: [["", "magicViewContainerRef", ""]], standalone: false });
|
|
1038
1131
|
}
|
|
1039
1132
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicViewContainerRef, [{
|
|
@@ -1042,54 +1135,54 @@ class MagicViewContainerRef {
|
|
|
1042
1135
|
selector: '[magicViewContainerRef]',
|
|
1043
1136
|
standalone: false
|
|
1044
1137
|
}]
|
|
1045
|
-
}], () => [
|
|
1138
|
+
}], () => [], null); })();
|
|
1046
1139
|
|
|
1047
1140
|
const _c0$3 = ["modalheader"];
|
|
1048
1141
|
const _c1$1 = ["modalForeground"];
|
|
1049
1142
|
function MagicOverlayContainer_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1050
|
-
const
|
|
1143
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
1051
1144
|
i0.ɵɵelementStart(0, "button", 14);
|
|
1052
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
1145
|
+
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
1146
|
i0.ɵɵtext(1, "X");
|
|
1054
1147
|
i0.ɵɵelementEnd();
|
|
1055
1148
|
} }
|
|
1056
1149
|
function MagicOverlayContainer_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
1057
|
-
const
|
|
1150
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
1058
1151
|
i0.ɵɵelementStart(0, "span", 15);
|
|
1059
|
-
i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_5_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(
|
|
1152
|
+
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
1153
|
i0.ɵɵelementEnd();
|
|
1061
1154
|
} }
|
|
1062
1155
|
function MagicOverlayContainer_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1063
|
-
const
|
|
1156
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
1064
1157
|
i0.ɵɵelementStart(0, "span", 16);
|
|
1065
|
-
i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_6_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(
|
|
1158
|
+
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
1159
|
i0.ɵɵelementEnd();
|
|
1067
1160
|
} }
|
|
1068
1161
|
function MagicOverlayContainer_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1069
|
-
const
|
|
1162
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
1070
1163
|
i0.ɵɵelementStart(0, "span", 17);
|
|
1071
|
-
i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_7_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(
|
|
1164
|
+
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
1165
|
i0.ɵɵelementEnd();
|
|
1073
1166
|
} }
|
|
1074
1167
|
function MagicOverlayContainer_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1075
|
-
const
|
|
1168
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
1076
1169
|
i0.ɵɵelementStart(0, "span", 18);
|
|
1077
|
-
i0.ɵɵlistener("mousedown", function MagicOverlayContainer_Conditional_8_Template_span_mousedown_0_listener($event) { i0.ɵɵrestoreView(
|
|
1170
|
+
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
1171
|
i0.ɵɵelementEnd();
|
|
1079
1172
|
} }
|
|
1080
1173
|
function MagicOverlayContainer_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
1081
|
-
const
|
|
1174
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
1082
1175
|
i0.ɵɵelementStart(0, "div", 19, 2);
|
|
1083
1176
|
i0.ɵɵtext(2);
|
|
1084
1177
|
i0.ɵɵelementStart(3, "button", 20);
|
|
1085
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_Conditional_9_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
1178
|
+
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
1179
|
i0.ɵɵtext(4, "X");
|
|
1087
1180
|
i0.ɵɵelementEnd()();
|
|
1088
1181
|
} if (rf & 2) {
|
|
1089
|
-
const
|
|
1090
|
-
i0.ɵɵclassProp("movable",
|
|
1182
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
1183
|
+
i0.ɵɵclassProp("movable", ctx_r1.IsMovable());
|
|
1091
1184
|
i0.ɵɵadvance(2);
|
|
1092
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
1185
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getText(), " ");
|
|
1093
1186
|
} }
|
|
1094
1187
|
/**
|
|
1095
1188
|
* Creates a modal window for Magic modal window components
|
|
@@ -1142,7 +1235,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1142
1235
|
ngOnInit() {
|
|
1143
1236
|
this.componentRef = this.modalbodyViewContainerRef.createComponent(this.ModalComp);
|
|
1144
1237
|
Object.assign(this.componentRef.instance, this.ModalCompParameters);
|
|
1145
|
-
let comp = this.
|
|
1238
|
+
let comp = this.getOverlayProps();
|
|
1146
1239
|
this.isCenteredToWindow = comp.IsCenteredToWindow();
|
|
1147
1240
|
}
|
|
1148
1241
|
ngAfterViewInit() {
|
|
@@ -1161,7 +1254,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1161
1254
|
*/
|
|
1162
1255
|
getText() {
|
|
1163
1256
|
if (this.componentRef !== null) {
|
|
1164
|
-
let comp = this.
|
|
1257
|
+
let comp = this.getOverlayProps();
|
|
1165
1258
|
return comp.FormName();
|
|
1166
1259
|
}
|
|
1167
1260
|
else
|
|
@@ -1180,7 +1273,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1180
1273
|
getStyle() {
|
|
1181
1274
|
let styles = {};
|
|
1182
1275
|
if (this.componentRef != undefined) {
|
|
1183
|
-
let comp = this.
|
|
1276
|
+
let comp = this.getOverlayProps();
|
|
1184
1277
|
styles['width'] = comp.Width();
|
|
1185
1278
|
styles['height'] = comp.Height();
|
|
1186
1279
|
if (this.isCenteredToWindow) {
|
|
@@ -1217,7 +1310,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1217
1310
|
*/
|
|
1218
1311
|
getShowTitleBar() {
|
|
1219
1312
|
if (this.componentRef != undefined) {
|
|
1220
|
-
let comp = this.
|
|
1313
|
+
let comp = this.getOverlayProps();
|
|
1221
1314
|
return comp.ShowTitleBar();
|
|
1222
1315
|
}
|
|
1223
1316
|
}
|
|
@@ -1231,7 +1324,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1231
1324
|
* Handles click in the background window
|
|
1232
1325
|
*/
|
|
1233
1326
|
OnBackgroundClick() {
|
|
1234
|
-
let comp = this.
|
|
1327
|
+
let comp = this.getOverlayProps();
|
|
1235
1328
|
if (comp.ShouldCloseOnBackgroundClick())
|
|
1236
1329
|
this.OnClose();
|
|
1237
1330
|
}
|
|
@@ -1240,7 +1333,9 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1240
1333
|
* @returns {boolean} True if the overlay is resizable, false otherwise.
|
|
1241
1334
|
*/
|
|
1242
1335
|
IsResizable() {
|
|
1243
|
-
|
|
1336
|
+
if (!this.componentRef)
|
|
1337
|
+
return false;
|
|
1338
|
+
let comp = this.getOverlayProps();
|
|
1244
1339
|
return comp.IsResizable();
|
|
1245
1340
|
}
|
|
1246
1341
|
/**
|
|
@@ -1248,7 +1343,9 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1248
1343
|
* @returns {boolean} True if the overlay is movable, false otherwise.
|
|
1249
1344
|
*/
|
|
1250
1345
|
IsMovable() {
|
|
1251
|
-
|
|
1346
|
+
if (!this.componentRef)
|
|
1347
|
+
return false;
|
|
1348
|
+
let comp = this.getOverlayProps();
|
|
1252
1349
|
return comp.IsMovable();
|
|
1253
1350
|
}
|
|
1254
1351
|
/**
|
|
@@ -1342,6 +1439,18 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1342
1439
|
this.resizing = false;
|
|
1343
1440
|
this.resizeDirection = null;
|
|
1344
1441
|
}
|
|
1442
|
+
getOverlayProps() {
|
|
1443
|
+
let obj = this.componentRef.instance;
|
|
1444
|
+
if (obj && obj.magicModalProperties instanceof MagicModalProperties)
|
|
1445
|
+
obj = obj.magicModalProperties;
|
|
1446
|
+
if (!(obj instanceof MagicModalProperties)) {
|
|
1447
|
+
const componentName = this.componentRef?.instance?.constructor?.name || 'Unknown';
|
|
1448
|
+
throw new Error(`Overlay component '${componentName}' cannot be opened. ` +
|
|
1449
|
+
`Ensure that the component contains a 'magicModalProperties' property of type MagicModalProperties. ` +
|
|
1450
|
+
`Example: magicModalProperties: MagicModalProperties = new MagicModalProperties("formName", true, 0, 0, "300px", "300px", true, true, true, true);`);
|
|
1451
|
+
}
|
|
1452
|
+
return obj;
|
|
1453
|
+
}
|
|
1345
1454
|
/** @nocollapse */ static ɵfac = function MagicOverlayContainer_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainer)(); };
|
|
1346
1455
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicOverlayContainer, selectors: [["app-magic-overlay-container"]], viewQuery: function MagicOverlayContainer_Query(rf, ctx) { if (rf & 1) {
|
|
1347
1456
|
i0.ɵɵviewQuery(_c0$3, 5)(_c1$1, 5);
|
|
@@ -1352,9 +1461,8 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1352
1461
|
} }, hostBindings: function MagicOverlayContainer_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1353
1462
|
i0.ɵɵlistener("mousemove", function MagicOverlayContainer_mousemove_HostBindingHandler($event) { return ctx.onResize($event); }, i0.ɵɵresolveWindow)("mouseup", function MagicOverlayContainer_mouseup_HostBindingHandler() { return ctx.onResizeEnd(); }, i0.ɵɵresolveWindow);
|
|
1354
1463
|
} }, 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) {
|
|
1355
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
1356
1464
|
i0.ɵɵelementStart(0, "div", 3)(1, "div", 4);
|
|
1357
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() {
|
|
1465
|
+
i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { return ctx.OnBackgroundClick(); });
|
|
1358
1466
|
i0.ɵɵconditionalCreate(2, MagicOverlayContainer_Conditional_2_Template, 2, 0, "button", 5);
|
|
1359
1467
|
i0.ɵɵelementEnd();
|
|
1360
1468
|
i0.ɵɵelementStart(3, "div", 6, 0);
|
|
@@ -1383,48 +1491,48 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1383
1491
|
i0.ɵɵconditional(ctx.getShowTitleBar() ? 9 : -1);
|
|
1384
1492
|
i0.ɵɵadvance();
|
|
1385
1493
|
i0.ɵɵproperty("ngStyle", ctx.getClientAreaStyles());
|
|
1386
|
-
} }, dependencies: [i1.NgStyle, i2
|
|
1494
|
+
} }, dependencies: [i1.NgStyle, i2.CdkDragHandle, i2.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 });
|
|
1387
1495
|
}
|
|
1388
1496
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
|
|
1389
1497
|
type: Component,
|
|
1390
|
-
args: [{ selector: 'app-magic-overlay-container', template: `
|
|
1391
|
-
<div class="boundary-line">
|
|
1392
|
-
|
|
1393
|
-
<div class="modal-background" (click)="OnBackgroundClick()">
|
|
1394
|
-
@if (!getShowTitleBar()) {
|
|
1395
|
-
<button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white">X</button>
|
|
1396
|
-
}
|
|
1397
|
-
</div>
|
|
1398
|
-
|
|
1399
|
-
<div #modalForeground class="modal-foreground" [ngStyle]="getStyle()" cdkDragBoundary=".boundary-line" cdkDrag [cdkDragDisabled]="!IsMovable()">
|
|
1400
|
-
|
|
1401
|
-
@if (IsResizable() && !isRtl) {
|
|
1402
|
-
<span class="dragHandle right" (mousedown)="onResizeStart($event, 'right')"></span>
|
|
1403
|
-
}
|
|
1404
|
-
@if (IsResizable() && isRtl) {
|
|
1405
|
-
<span class="dragHandle left" (mousedown)="onResizeStart($event, 'left')"></span>
|
|
1406
|
-
}
|
|
1407
|
-
@if (IsResizable()) {
|
|
1408
|
-
<span class="dragHandle corner" (mousedown)="onResizeStart($event, 'corner')"></span>
|
|
1409
|
-
}
|
|
1410
|
-
@if (IsResizable()) {
|
|
1411
|
-
<span class="dragHandle bottom" (mousedown)="onResizeStart($event, 'bottom')"></span>
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
@if (getShowTitleBar()) {
|
|
1415
|
-
<div #modalheader class="modal-header" cdkDragHandle [class.movable]="IsMovable()">
|
|
1416
|
-
{{getText()}}
|
|
1417
|
-
<button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
|
|
1418
|
-
</div>
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
|
-
<div [ngStyle]="getClientAreaStyles()">
|
|
1422
|
-
<div #modalbody magicViewContainerRef>
|
|
1423
|
-
</div>
|
|
1424
|
-
</div>
|
|
1425
|
-
</div>
|
|
1426
|
-
</div>
|
|
1427
|
-
`, 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"] }]
|
|
1498
|
+
args: [{ selector: 'app-magic-overlay-container', template: `
|
|
1499
|
+
<div class="boundary-line">
|
|
1500
|
+
|
|
1501
|
+
<div class="modal-background" (click)="OnBackgroundClick()">
|
|
1502
|
+
@if (!getShowTitleBar()) {
|
|
1503
|
+
<button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white">X</button>
|
|
1504
|
+
}
|
|
1505
|
+
</div>
|
|
1506
|
+
|
|
1507
|
+
<div #modalForeground class="modal-foreground" [ngStyle]="getStyle()" cdkDragBoundary=".boundary-line" cdkDrag [cdkDragDisabled]="!IsMovable()">
|
|
1508
|
+
|
|
1509
|
+
@if (IsResizable() && !isRtl) {
|
|
1510
|
+
<span class="dragHandle right" (mousedown)="onResizeStart($event, 'right')"></span>
|
|
1511
|
+
}
|
|
1512
|
+
@if (IsResizable() && isRtl) {
|
|
1513
|
+
<span class="dragHandle left" (mousedown)="onResizeStart($event, 'left')"></span>
|
|
1514
|
+
}
|
|
1515
|
+
@if (IsResizable()) {
|
|
1516
|
+
<span class="dragHandle corner" (mousedown)="onResizeStart($event, 'corner')"></span>
|
|
1517
|
+
}
|
|
1518
|
+
@if (IsResizable()) {
|
|
1519
|
+
<span class="dragHandle bottom" (mousedown)="onResizeStart($event, 'bottom')"></span>
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
@if (getShowTitleBar()) {
|
|
1523
|
+
<div #modalheader class="modal-header" cdkDragHandle [class.movable]="IsMovable()">
|
|
1524
|
+
{{getText()}}
|
|
1525
|
+
<button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
|
|
1526
|
+
</div>
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
<div [ngStyle]="getClientAreaStyles()">
|
|
1530
|
+
<div #modalbody magicViewContainerRef>
|
|
1531
|
+
</div>
|
|
1532
|
+
</div>
|
|
1533
|
+
</div>
|
|
1534
|
+
</div>
|
|
1535
|
+
`, 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"] }]
|
|
1428
1536
|
}], () => [], { headerElementRef: [{
|
|
1429
1537
|
type: ViewChild,
|
|
1430
1538
|
args: ['modalheader', { static: false }]
|
|
@@ -1444,7 +1552,7 @@ class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
|
|
1444
1552
|
type: HostListener,
|
|
1445
1553
|
args: ['window:mouseup']
|
|
1446
1554
|
}] }); })();
|
|
1447
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber:
|
|
1555
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainer, { className: "MagicOverlayContainer", filePath: "src/ui/magic-modal/magic-overlay-container.ts", lineNumber: 67 }); })();
|
|
1448
1556
|
|
|
1449
1557
|
/**
|
|
1450
1558
|
* Service managing overlay windows
|
|
@@ -1468,16 +1576,18 @@ class BaseMagicConfirmComponent {
|
|
|
1468
1576
|
/**
|
|
1469
1577
|
* title of the component
|
|
1470
1578
|
*/
|
|
1471
|
-
title
|
|
1579
|
+
title = input(/* @ts-ignore */
|
|
1580
|
+
...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1472
1581
|
/**
|
|
1473
1582
|
* message of the component
|
|
1474
1583
|
*/
|
|
1475
|
-
message
|
|
1584
|
+
message = input(/* @ts-ignore */
|
|
1585
|
+
...(ngDevMode ? [undefined, { debugName: "message" }] : /* istanbul ignore next */ []));
|
|
1476
1586
|
/**
|
|
1477
1587
|
* onClose Event - to be raised when the component is closed
|
|
1478
1588
|
* should pass true when OK is pressed and false when cancel is pressed
|
|
1479
1589
|
*/
|
|
1480
|
-
onClose =
|
|
1590
|
+
onClose = output();
|
|
1481
1591
|
/**
|
|
1482
1592
|
* raises close Event
|
|
1483
1593
|
* @param result true when OK is pressed and false when cancel is pressed
|
|
@@ -1487,19 +1597,13 @@ class BaseMagicConfirmComponent {
|
|
|
1487
1597
|
this.onClose.emit(result);
|
|
1488
1598
|
}
|
|
1489
1599
|
/** @nocollapse */ static ɵfac = function BaseMagicConfirmComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMagicConfirmComponent)(); };
|
|
1490
|
-
/** @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 });
|
|
1600
|
+
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicConfirmComponent, selectors: [["mg-base-confirm"]], inputs: { title: [1, "title"], message: [1, "message"] }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicConfirmComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
|
|
1491
1601
|
}
|
|
1492
1602
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicConfirmComponent, [{
|
|
1493
1603
|
type: Component,
|
|
1494
|
-
args: [{ selector: 'mg-base-confirm', template: '', standalone: false }]
|
|
1495
|
-
}], null, { title: [{
|
|
1496
|
-
|
|
1497
|
-
}], message: [{
|
|
1498
|
-
type: Input
|
|
1499
|
-
}], onClose: [{
|
|
1500
|
-
type: Output
|
|
1501
|
-
}] }); })();
|
|
1502
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 13 }); })();
|
|
1604
|
+
args: [{ selector: 'mg-base-confirm', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
|
|
1605
|
+
}], null, { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }] }); })();
|
|
1606
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicConfirmComponent, { className: "BaseMagicConfirmComponent", filePath: "src/ui/components/base-magic-confirm.component.ts", lineNumber: 14 }); })();
|
|
1503
1607
|
|
|
1504
1608
|
/**
|
|
1505
1609
|
* This is a base class for the magic alert components
|
|
@@ -1508,16 +1612,18 @@ class BaseMagicAlertComponent {
|
|
|
1508
1612
|
/**
|
|
1509
1613
|
* title of the component
|
|
1510
1614
|
*/
|
|
1511
|
-
title
|
|
1615
|
+
title = input(/* @ts-ignore */
|
|
1616
|
+
...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1512
1617
|
/**
|
|
1513
1618
|
* message of the component
|
|
1514
1619
|
*/
|
|
1515
|
-
message
|
|
1620
|
+
message = input(/* @ts-ignore */
|
|
1621
|
+
...(ngDevMode ? [undefined, { debugName: "message" }] : /* istanbul ignore next */ []));
|
|
1516
1622
|
/**
|
|
1517
1623
|
* onClose Event - to be raised when the component is closed
|
|
1518
1624
|
|
|
1519
1625
|
*/
|
|
1520
|
-
onClose =
|
|
1626
|
+
onClose = output();
|
|
1521
1627
|
/**
|
|
1522
1628
|
* close magic alert
|
|
1523
1629
|
*/
|
|
@@ -1525,32 +1631,24 @@ class BaseMagicAlertComponent {
|
|
|
1525
1631
|
this.onClose.emit();
|
|
1526
1632
|
}
|
|
1527
1633
|
/** @nocollapse */ static ɵfac = function BaseMagicAlertComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMagicAlertComponent)(); };
|
|
1528
|
-
/** @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 });
|
|
1634
|
+
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMagicAlertComponent, selectors: [["mg-base-alert"]], inputs: { title: [1, "title"], message: [1, "message"] }, outputs: { onClose: "onClose" }, standalone: false, decls: 0, vars: 0, template: function BaseMagicAlertComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 1 });
|
|
1529
1635
|
}
|
|
1530
1636
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicAlertComponent, [{
|
|
1531
1637
|
type: Component,
|
|
1532
|
-
args: [{ selector: 'mg-base-alert', template: '', standalone: false }]
|
|
1533
|
-
}], null, { title: [{
|
|
1534
|
-
|
|
1535
|
-
}], message: [{
|
|
1536
|
-
type: Input
|
|
1537
|
-
}], onClose: [{
|
|
1538
|
-
type: Output
|
|
1539
|
-
}] }); })();
|
|
1540
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 14 }); })();
|
|
1638
|
+
args: [{ selector: 'mg-base-alert', template: '', changeDetection: ChangeDetectionStrategy.Eager, standalone: false }]
|
|
1639
|
+
}], null, { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }] }); })();
|
|
1640
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMagicAlertComponent, { className: "BaseMagicAlertComponent", filePath: "src/ui/components/base-magic-alert.component.ts", lineNumber: 16 }); })();
|
|
1541
1641
|
|
|
1542
1642
|
/**
|
|
1543
1643
|
* Directive for setting focus on element
|
|
1544
1644
|
*/
|
|
1545
1645
|
class MagicFocusDirective {
|
|
1546
|
-
hostElement;
|
|
1547
|
-
constructor(
|
|
1548
|
-
this.hostElement = hostElement;
|
|
1549
|
-
}
|
|
1646
|
+
hostElement = inject(ElementRef);
|
|
1647
|
+
constructor() { }
|
|
1550
1648
|
ngAfterViewInit() {
|
|
1551
1649
|
this.hostElement.nativeElement.focus();
|
|
1552
1650
|
}
|
|
1553
|
-
/** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicFocusDirective)(
|
|
1651
|
+
/** @nocollapse */ static ɵfac = function MagicFocusDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicFocusDirective)(); };
|
|
1554
1652
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicFocusDirective, selectors: [["", "magicFocus", ""]], standalone: false });
|
|
1555
1653
|
}
|
|
1556
1654
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicFocusDirective, [{
|
|
@@ -1559,30 +1657,29 @@ class MagicFocusDirective {
|
|
|
1559
1657
|
selector: '[magicFocus]',
|
|
1560
1658
|
standalone: false
|
|
1561
1659
|
}]
|
|
1562
|
-
}], () => [
|
|
1660
|
+
}], () => [], null); })();
|
|
1563
1661
|
|
|
1564
1662
|
const _c0$2 = ["overlayContainerWrapper"];
|
|
1565
1663
|
class MagicOverlayContainerWrapper {
|
|
1566
|
-
componentListMagicService;
|
|
1567
|
-
magicLazyModuleLoader;
|
|
1568
|
-
injector;
|
|
1569
|
-
changeDetectorRef;
|
|
1570
|
-
compiler;
|
|
1571
1664
|
/**
|
|
1572
1665
|
*
|
|
1573
1666
|
*/
|
|
1574
|
-
Component = null
|
|
1667
|
+
Component = input(null, /* @ts-ignore */
|
|
1668
|
+
...(ngDevMode ? [{ debugName: "Component" }] : /* istanbul ignore next */ []));
|
|
1575
1669
|
/**
|
|
1576
1670
|
*
|
|
1577
1671
|
*/
|
|
1578
|
-
Parameters = {}
|
|
1579
|
-
|
|
1580
|
-
|
|
1672
|
+
Parameters = input({}, /* @ts-ignore */
|
|
1673
|
+
...(ngDevMode ? [{ debugName: "Parameters" }] : /* istanbul ignore next */ []));
|
|
1674
|
+
OverlayTypeParam = input(/* @ts-ignore */
|
|
1675
|
+
...(ngDevMode ? [undefined, { debugName: "OverlayTypeParam" }] : /* istanbul ignore next */ []));
|
|
1676
|
+
onClose = output();
|
|
1581
1677
|
/**
|
|
1582
1678
|
* HTML to be displayed in the modal window
|
|
1583
1679
|
*/
|
|
1584
1680
|
overlayContentViewContainerRef;
|
|
1585
|
-
overlayContainerWrapperElementRef
|
|
1681
|
+
overlayContainerWrapperElementRef = viewChild.required('overlayContainerWrapper', /* @ts-ignore */
|
|
1682
|
+
...(ngDevMode ? [{ debugName: "overlayContainerWrapperElementRef" }] : /* istanbul ignore next */ []));
|
|
1586
1683
|
/**
|
|
1587
1684
|
* @ignore
|
|
1588
1685
|
* contais data of allowed base components to use
|
|
@@ -1592,32 +1689,26 @@ class MagicOverlayContainerWrapper {
|
|
|
1592
1689
|
[OverlayType.Alert, { comp: BaseMagicAlertComponent, error: 'BaseMagicAlertComponent. Alert ' }],
|
|
1593
1690
|
[OverlayType.ConfirmationBox, { comp: BaseMagicConfirmComponent, error: 'BaseMagicConfirmComponent. Confirmation ' }]
|
|
1594
1691
|
]);
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
constructor(
|
|
1600
|
-
this.componentListMagicService = componentListMagicService;
|
|
1601
|
-
this.magicLazyModuleLoader = magicLazyModuleLoader;
|
|
1602
|
-
this.injector = injector;
|
|
1603
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
1604
|
-
this.compiler = compiler;
|
|
1692
|
+
componentListMagicService = inject(ComponentListMagicService);
|
|
1693
|
+
magicLazyModuleLoader = inject(MagicLazyLoaderService);
|
|
1694
|
+
injector = inject(Injector);
|
|
1695
|
+
changeDetectorRef = inject(ChangeDetectorRef);
|
|
1696
|
+
constructor() {
|
|
1605
1697
|
}
|
|
1606
1698
|
/**
|
|
1607
1699
|
*
|
|
1608
1700
|
*/
|
|
1609
1701
|
ngOnInit() {
|
|
1610
|
-
let moduleRef = this.componentListMagicService.getModuleRef(this.Parameters.MagicFormName);
|
|
1702
|
+
let moduleRef = this.componentListMagicService.getModuleRef(this.Parameters().MagicFormName);
|
|
1611
1703
|
if (moduleRef == null) {
|
|
1612
|
-
let lazyLoadModule = this.componentListMagicService.getLazyLoadModuleData(this.Parameters.MagicFormName);
|
|
1704
|
+
let lazyLoadModule = this.componentListMagicService.getLazyLoadModuleData(this.Parameters().MagicFormName);
|
|
1613
1705
|
if (lazyLoadModule != null) {
|
|
1614
1706
|
const Magic = 'Magic';
|
|
1615
1707
|
const Module = 'Module';
|
|
1616
1708
|
// extract name of module(XX) from 'MagicXXModule'
|
|
1617
1709
|
const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
|
|
1618
1710
|
this.magicLazyModuleLoader.Load(moduleName).then(m => {
|
|
1619
|
-
|
|
1620
|
-
moduleRef = compiled.ngModuleFactory.create(this.injector);
|
|
1711
|
+
moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
|
|
1621
1712
|
this.loadComponent(moduleRef);
|
|
1622
1713
|
});
|
|
1623
1714
|
}
|
|
@@ -1629,11 +1720,18 @@ class MagicOverlayContainerWrapper {
|
|
|
1629
1720
|
this.loadComponent(moduleRef);
|
|
1630
1721
|
}
|
|
1631
1722
|
loadComponent(moduleRef) {
|
|
1632
|
-
this.Parameters.ModalComp = this.componentListMagicService.getComponent(this.Parameters.MagicFormName, !isNullOrUndefined(this.Parameters.MagicFormName));
|
|
1633
|
-
let componentRef = this.overlayContentViewContainerRef.createComponent(this.Component);
|
|
1634
|
-
let allowedBaseComp = MagicOverlayContainerWrapper.allowedBaseComps.get(this.OverlayTypeParam);
|
|
1723
|
+
this.Parameters().ModalComp = this.componentListMagicService.getComponent(this.Parameters().MagicFormName, !isNullOrUndefined(this.Parameters().MagicFormName));
|
|
1724
|
+
let componentRef = this.overlayContentViewContainerRef.createComponent(this.Component());
|
|
1725
|
+
let allowedBaseComp = MagicOverlayContainerWrapper.allowedBaseComps.get(this.OverlayTypeParam());
|
|
1635
1726
|
if (componentRef.instance instanceof allowedBaseComp.comp) {
|
|
1636
|
-
|
|
1727
|
+
if (this.OverlayTypeParam() === OverlayType.Overlay) {
|
|
1728
|
+
componentRef.setInput('ModalComp', this.Parameters().ModalComp);
|
|
1729
|
+
componentRef.setInput('ModalCompParameters', this.Parameters().ModalCompParameters);
|
|
1730
|
+
}
|
|
1731
|
+
else {
|
|
1732
|
+
componentRef.setInput('title', this.Parameters().title);
|
|
1733
|
+
componentRef.setInput('message', this.Parameters().message);
|
|
1734
|
+
}
|
|
1637
1735
|
componentRef.instance.onClose.subscribe((res) => {
|
|
1638
1736
|
this.onClose.emit(res);
|
|
1639
1737
|
});
|
|
@@ -1647,18 +1745,17 @@ class MagicOverlayContainerWrapper {
|
|
|
1647
1745
|
this.overlayContentViewContainerRef = vcRef;
|
|
1648
1746
|
}
|
|
1649
1747
|
GetRootElement() {
|
|
1650
|
-
return this.overlayContainerWrapperElementRef.nativeElement;
|
|
1748
|
+
return this.overlayContainerWrapperElementRef().nativeElement;
|
|
1651
1749
|
}
|
|
1652
1750
|
DetectChanges() {
|
|
1653
1751
|
this.changeDetectorRef.detectChanges();
|
|
1654
1752
|
}
|
|
1655
|
-
/** @nocollapse */ static ɵfac = function MagicOverlayContainerWrapper_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainerWrapper)(
|
|
1753
|
+
/** @nocollapse */ static ɵfac = function MagicOverlayContainerWrapper_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicOverlayContainerWrapper)(); };
|
|
1656
1754
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicOverlayContainerWrapper, selectors: [["app-magic-overlay-container-wrapper"]], viewQuery: function MagicOverlayContainerWrapper_Query(rf, ctx) { if (rf & 1) {
|
|
1657
|
-
i0.ɵɵ
|
|
1755
|
+
i0.ɵɵviewQuerySignal(ctx.overlayContainerWrapperElementRef, _c0$2, 5);
|
|
1658
1756
|
} if (rf & 2) {
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
} }, inputs: { Component: "Component", Parameters: "Parameters", OverlayTypeParam: "OverlayTypeParam" }, outputs: { onClose: "onClose" }, standalone: false, decls: 7, vars: 0, consts: [["overlayContainerWrapper", ""], ["overlayContent", ""], ["tabIndex", "0", "magicFocus", "", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"], [1, "overlay-container-wrapper-background"], ["magicViewContainerRef", ""], ["tabIndex", "0", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"]], template: function MagicOverlayContainerWrapper_Template(rf, ctx) { if (rf & 1) {
|
|
1757
|
+
i0.ɵɵqueryAdvance();
|
|
1758
|
+
} }, inputs: { Component: [1, "Component"], Parameters: [1, "Parameters"], OverlayTypeParam: [1, "OverlayTypeParam"] }, outputs: { onClose: "onClose" }, standalone: false, decls: 7, vars: 0, consts: [["overlayContainerWrapper", ""], ["overlayContent", ""], ["tabIndex", "0", "magicFocus", "", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"], [1, "overlay-container-wrapper-background"], ["magicViewContainerRef", ""], ["tabIndex", "0", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"]], template: function MagicOverlayContainerWrapper_Template(rf, ctx) { if (rf & 1) {
|
|
1662
1759
|
i0.ɵɵelementStart(0, "div");
|
|
1663
1760
|
i0.ɵɵelement(1, "div", 2);
|
|
1664
1761
|
i0.ɵɵelementStart(2, "div", 3, 0);
|
|
@@ -1666,7 +1763,7 @@ class MagicOverlayContainerWrapper {
|
|
|
1666
1763
|
i0.ɵɵelementEnd();
|
|
1667
1764
|
i0.ɵɵelement(6, "div", 5);
|
|
1668
1765
|
i0.ɵɵelementEnd();
|
|
1669
|
-
} }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
|
|
1766
|
+
} }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"], changeDetection: 1 });
|
|
1670
1767
|
}
|
|
1671
1768
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
|
|
1672
1769
|
type: Component,
|
|
@@ -1679,19 +1776,8 @@ class MagicOverlayContainerWrapper {
|
|
|
1679
1776
|
</div>
|
|
1680
1777
|
<div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
|
|
1681
1778
|
</div>
|
|
1682
|
-
`, standalone: false, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
|
|
1683
|
-
}], () => [{ type:
|
|
1684
|
-
type: Input
|
|
1685
|
-
}], Parameters: [{
|
|
1686
|
-
type: Input
|
|
1687
|
-
}], OverlayTypeParam: [{
|
|
1688
|
-
type: Input
|
|
1689
|
-
}], onClose: [{
|
|
1690
|
-
type: Output
|
|
1691
|
-
}], overlayContainerWrapperElementRef: [{
|
|
1692
|
-
type: ViewChild,
|
|
1693
|
-
args: ['overlayContainerWrapper', { static: true }]
|
|
1694
|
-
}] }); })();
|
|
1779
|
+
`, changeDetection: ChangeDetectionStrategy.Eager, standalone: false, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
|
|
1780
|
+
}], () => [], { Component: [{ type: i0.Input, args: [{ isSignal: true, alias: "Component", required: false }] }], Parameters: [{ type: i0.Input, args: [{ isSignal: true, alias: "Parameters", required: false }] }], OverlayTypeParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "OverlayTypeParam", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }], overlayContainerWrapperElementRef: [{ type: i0.ViewChild, args: ['overlayContainerWrapper', { isSignal: true }] }] }); })();
|
|
1695
1781
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicOverlayContainerWrapper, { className: "MagicOverlayContainerWrapper", filePath: "src/ui/magic-modal/magic-overlay-container-wrapper.ts", lineNumber: 46 }); })();
|
|
1696
1782
|
|
|
1697
1783
|
/***
|
|
@@ -1712,17 +1798,17 @@ class MagicAlertComponent extends BaseMagicAlertComponent {
|
|
|
1712
1798
|
i0.ɵɵelementEnd()()();
|
|
1713
1799
|
} if (rf & 2) {
|
|
1714
1800
|
i0.ɵɵadvance(3);
|
|
1715
|
-
i0.ɵɵtextInterpolate1(" ", ctx.title);
|
|
1801
|
+
i0.ɵɵtextInterpolate1(" ", ctx.title());
|
|
1716
1802
|
i0.ɵɵadvance(2);
|
|
1717
|
-
i0.ɵɵtextInterpolate1("", ctx.message, " ");
|
|
1803
|
+
i0.ɵɵtextInterpolate1("", ctx.message(), " ");
|
|
1718
1804
|
} }, 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}"] });
|
|
1719
1805
|
}
|
|
1720
1806
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicAlertComponent, [{
|
|
1721
1807
|
type: Component,
|
|
1722
1808
|
args: [{ selector: 'sample-magic-alert-component', template: `<div>
|
|
1723
1809
|
<div class="mg-message-background">
|
|
1724
|
-
<h2> {{title}}</h2>
|
|
1725
|
-
<p>{{message}} </p>
|
|
1810
|
+
<h2> {{title()}}</h2>
|
|
1811
|
+
<p>{{message()}} </p>
|
|
1726
1812
|
|
|
1727
1813
|
<button (click)="OnClose()">OK</button>
|
|
1728
1814
|
</div>
|
|
@@ -1751,17 +1837,17 @@ class MagicConfirmationBoxComponent extends BaseMagicConfirmComponent {
|
|
|
1751
1837
|
i0.ɵɵelementEnd()()();
|
|
1752
1838
|
} if (rf & 2) {
|
|
1753
1839
|
i0.ɵɵadvance(3);
|
|
1754
|
-
i0.ɵɵtextInterpolate1(" ", ctx.title);
|
|
1840
|
+
i0.ɵɵtextInterpolate1(" ", ctx.title());
|
|
1755
1841
|
i0.ɵɵadvance();
|
|
1756
|
-
i0.ɵɵtextInterpolate1(" ", ctx.message, " ");
|
|
1842
|
+
i0.ɵɵtextInterpolate1(" ", ctx.message(), " ");
|
|
1757
1843
|
} }, 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}"] });
|
|
1758
1844
|
}
|
|
1759
1845
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicConfirmationBoxComponent, [{
|
|
1760
1846
|
type: Component,
|
|
1761
1847
|
args: [{ selector: 'sample-magic-confirmation-box', template: `<div>
|
|
1762
1848
|
<div class="mg-message-background">
|
|
1763
|
-
<h2> {{title}}</h2>
|
|
1764
|
-
{{message}}
|
|
1849
|
+
<h2> {{title()}}</h2>
|
|
1850
|
+
{{message()}}
|
|
1765
1851
|
<br>
|
|
1766
1852
|
<br>
|
|
1767
1853
|
|
|
@@ -1878,21 +1964,13 @@ class confirmationBox {
|
|
|
1878
1964
|
* Service managing overlay windows
|
|
1879
1965
|
*/
|
|
1880
1966
|
class OverlayWindowService {
|
|
1881
|
-
componentList;
|
|
1882
|
-
engineMagicService;
|
|
1883
|
-
magicLazyModuleLoader;
|
|
1884
|
-
injector;
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
constructor(componentList, engineMagicService, magicLazyModuleLoader, injector, compiler, overlayContainerMagicProvider, confirmationComponentsMagicProvider) {
|
|
1889
|
-
this.componentList = componentList;
|
|
1890
|
-
this.engineMagicService = engineMagicService;
|
|
1891
|
-
this.magicLazyModuleLoader = magicLazyModuleLoader;
|
|
1892
|
-
this.injector = injector;
|
|
1893
|
-
this.compiler = compiler;
|
|
1894
|
-
this.overlayContainerMagicProvider = overlayContainerMagicProvider;
|
|
1895
|
-
this.confirmationComponentsMagicProvider = confirmationComponentsMagicProvider;
|
|
1967
|
+
componentList = inject(ComponentListMagicService);
|
|
1968
|
+
engineMagicService = inject(EngineMagicService);
|
|
1969
|
+
magicLazyModuleLoader = inject(MagicLazyLoaderService);
|
|
1970
|
+
injector = inject(Injector);
|
|
1971
|
+
overlayContainerMagicProvider = inject(OverlayContainerMagicProvider);
|
|
1972
|
+
confirmationComponentsMagicProvider = inject(ConfirmationComponentsMagicProvider);
|
|
1973
|
+
constructor() {
|
|
1896
1974
|
}
|
|
1897
1975
|
// The view reference of container of overlay window
|
|
1898
1976
|
overlayWindowsContainerViewRef;
|
|
@@ -1913,8 +1991,7 @@ class OverlayWindowService {
|
|
|
1913
1991
|
// extract name of module(XX) from 'MagicXXModule'
|
|
1914
1992
|
const moduleName = lazyLoadModule.moduleName.slice(Magic.length, -Module.length);
|
|
1915
1993
|
this.magicLazyModuleLoader.Load(moduleName).then(m => {
|
|
1916
|
-
|
|
1917
|
-
moduleRef = compiled.ngModuleFactory.create(this.injector);
|
|
1994
|
+
moduleRef = createNgModule(m[lazyLoadModule.moduleName], this.injector);
|
|
1918
1995
|
this.open(formName, taskId, taskDescription);
|
|
1919
1996
|
this.finishConfirmation(Styles.MSGBOX_BUTTON_OK, true);
|
|
1920
1997
|
});
|
|
@@ -1995,13 +2072,15 @@ class OverlayWindowService {
|
|
|
1995
2072
|
// Create the UI component of modal window
|
|
1996
2073
|
let viewCRef = this.overlayWindowsContainerViewRef;
|
|
1997
2074
|
componentRef = viewCRef.createComponent(MagicOverlayContainerWrapper);
|
|
1998
|
-
// Set
|
|
1999
|
-
|
|
2075
|
+
// Set signal inputs via setInput() — direct property assignment would overwrite the signal functions
|
|
2076
|
+
componentRef.setInput('Component', magicModalContainerParameters.Component);
|
|
2077
|
+
componentRef.setInput('Parameters', magicModalContainerParameters.Parameters);
|
|
2078
|
+
componentRef.setInput('OverlayTypeParam', magicModalContainerParameters.OverlayTypeParam);
|
|
2000
2079
|
this.overlayWindowFocusManager.pushDialog(componentRef.instance.GetRootElement());
|
|
2001
2080
|
componentRef.instance.DetectChanges();
|
|
2002
2081
|
return componentRef;
|
|
2003
2082
|
}
|
|
2004
|
-
/** @nocollapse */ static ɵfac = function OverlayWindowService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayWindowService)(
|
|
2083
|
+
/** @nocollapse */ static ɵfac = function OverlayWindowService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayWindowService)(); };
|
|
2005
2084
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OverlayWindowService, factory: OverlayWindowService.ɵfac, providedIn: 'root' });
|
|
2006
2085
|
}
|
|
2007
2086
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverlayWindowService, [{
|
|
@@ -2009,7 +2088,7 @@ class OverlayWindowService {
|
|
|
2009
2088
|
args: [{
|
|
2010
2089
|
providedIn: 'root'
|
|
2011
2090
|
}]
|
|
2012
|
-
}], () => [
|
|
2091
|
+
}], () => [], null); })();
|
|
2013
2092
|
class OverlayWindowFocusManager {
|
|
2014
2093
|
rootMagicElement = null;
|
|
2015
2094
|
openDialogList = new Array(0);
|
|
@@ -2134,8 +2213,6 @@ class DialogInfo {
|
|
|
2134
2213
|
* Main service to connect the UI with the Magic WebCLient
|
|
2135
2214
|
*/
|
|
2136
2215
|
class TaskMagicService {
|
|
2137
|
-
magic;
|
|
2138
|
-
overlayWindowService;
|
|
2139
2216
|
/**
|
|
2140
2217
|
* Service to provide table-related functionalities
|
|
2141
2218
|
*/
|
|
@@ -2207,13 +2284,9 @@ class TaskMagicService {
|
|
|
2207
2284
|
* @ignore
|
|
2208
2285
|
*/
|
|
2209
2286
|
oldPageSize = 0;
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
*/
|
|
2214
|
-
constructor(magic, overlayWindowService) {
|
|
2215
|
-
this.magic = magic;
|
|
2216
|
-
this.overlayWindowService = overlayWindowService;
|
|
2287
|
+
magic = inject(EngineMagicService);
|
|
2288
|
+
overlayWindowService = inject(OverlayWindowService);
|
|
2289
|
+
constructor() {
|
|
2217
2290
|
this.Records.setGuiTopIndex(0);
|
|
2218
2291
|
this.mgInputDateFormat = null;
|
|
2219
2292
|
}
|
|
@@ -2996,12 +3069,13 @@ class TaskMagicService {
|
|
|
2996
3069
|
}
|
|
2997
3070
|
/**
|
|
2998
3071
|
* Handle the Radio button "change" event
|
|
2999
|
-
* @param event The event received from the UI
|
|
3000
3072
|
* @param idx Id of the control raising the event
|
|
3073
|
+
* @param rowId Id of the row containing the control (defaults to '0' for non-table controls)
|
|
3001
3074
|
*/
|
|
3002
|
-
mgOnRadioSelectionChanged(idx) {
|
|
3003
|
-
|
|
3004
|
-
let
|
|
3075
|
+
mgOnRadioSelectionChanged(idx, rowId = '0') {
|
|
3076
|
+
// Fetch the Form Control for the specific table row (or row '0' for non-table child controls)
|
|
3077
|
+
let result = this.getFormControl(rowId, idx);
|
|
3078
|
+
let guiEvent = getGuiEventObj('selectionchanged', idx, +rowId);
|
|
3005
3079
|
if (typeof result.value !== 'number')
|
|
3006
3080
|
guiEvent.Value = result.value.index;
|
|
3007
3081
|
else
|
|
@@ -3076,29 +3150,22 @@ class TaskMagicService {
|
|
|
3076
3150
|
}
|
|
3077
3151
|
}
|
|
3078
3152
|
}
|
|
3079
|
-
/** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskMagicService)(
|
|
3153
|
+
/** @nocollapse */ static ɵfac = function TaskMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskMagicService)(); };
|
|
3080
3154
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TaskMagicService, factory: TaskMagicService.ɵfac });
|
|
3081
3155
|
}
|
|
3082
3156
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskMagicService, [{
|
|
3083
3157
|
type: Injectable
|
|
3084
|
-
}], () => [
|
|
3158
|
+
}], () => [], null); })();
|
|
3085
3159
|
|
|
3086
3160
|
/**
|
|
3087
3161
|
* Implements various table-related functionalities
|
|
3088
3162
|
*/
|
|
3089
3163
|
class TableMagicService {
|
|
3090
|
-
componentList;
|
|
3091
|
-
task;
|
|
3092
3164
|
selectedItem;
|
|
3093
3165
|
chunkSize;
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
* @param task Magic task service
|
|
3098
|
-
*/
|
|
3099
|
-
constructor(componentList, task) {
|
|
3100
|
-
this.componentList = componentList;
|
|
3101
|
-
this.task = task;
|
|
3166
|
+
componentList = inject(ComponentListMagicService);
|
|
3167
|
+
task = inject(TaskMagicService);
|
|
3168
|
+
constructor() {
|
|
3102
3169
|
}
|
|
3103
3170
|
shouldOpenFieldTextEditor = true;
|
|
3104
3171
|
/**
|
|
@@ -3208,24 +3275,19 @@ class TableMagicService {
|
|
|
3208
3275
|
topIndex--;
|
|
3209
3276
|
return topIndex;
|
|
3210
3277
|
}
|
|
3211
|
-
/** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableMagicService)(
|
|
3278
|
+
/** @nocollapse */ static ɵfac = function TableMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableMagicService)(); };
|
|
3212
3279
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TableMagicService, factory: TableMagicService.ɵfac });
|
|
3213
3280
|
}
|
|
3214
3281
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableMagicService, [{
|
|
3215
3282
|
type: Injectable
|
|
3216
|
-
}], () => [
|
|
3283
|
+
}], () => [], null); })();
|
|
3217
3284
|
|
|
3218
3285
|
/**
|
|
3219
3286
|
* Enables changing the browser title using Magic expression (SetTitle)
|
|
3220
3287
|
*/
|
|
3221
3288
|
class TitleMagicService {
|
|
3222
|
-
titleService;
|
|
3223
|
-
|
|
3224
|
-
*
|
|
3225
|
-
* @param titleService Angular's title-changing class
|
|
3226
|
-
*/
|
|
3227
|
-
constructor(titleService) {
|
|
3228
|
-
this.titleService = titleService;
|
|
3289
|
+
titleService = inject(Title);
|
|
3290
|
+
constructor() {
|
|
3229
3291
|
}
|
|
3230
3292
|
/**
|
|
3231
3293
|
* Set the new title of the window
|
|
@@ -3234,12 +3296,12 @@ class TitleMagicService {
|
|
|
3234
3296
|
setTitle(newTitle) {
|
|
3235
3297
|
this.titleService.setTitle(newTitle);
|
|
3236
3298
|
}
|
|
3237
|
-
/** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TitleMagicService)(
|
|
3299
|
+
/** @nocollapse */ static ɵfac = function TitleMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TitleMagicService)(); };
|
|
3238
3300
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TitleMagicService, factory: TitleMagicService.ɵfac });
|
|
3239
3301
|
}
|
|
3240
3302
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TitleMagicService, [{
|
|
3241
3303
|
type: Injectable
|
|
3242
|
-
}], () => [
|
|
3304
|
+
}], () => [], null); })();
|
|
3243
3305
|
|
|
3244
3306
|
let COLOR_FILE_NAME = new InjectionToken('colorFile', {
|
|
3245
3307
|
providedIn: 'root',
|
|
@@ -3252,7 +3314,6 @@ const SYSTEM_BG = 4;
|
|
|
3252
3314
|
const SYSTEM_FG_AND_SYSTEM_BG = 6;
|
|
3253
3315
|
const TRANSPERENT_BG = 1;
|
|
3254
3316
|
class MagicColorService {
|
|
3255
|
-
http;
|
|
3256
3317
|
colorFileName = 'clr_rnt.eng';
|
|
3257
3318
|
getColorFilePath() {
|
|
3258
3319
|
return 'assets/' + this.colorFileName;
|
|
@@ -3260,10 +3321,11 @@ class MagicColorService {
|
|
|
3260
3321
|
colorsData;
|
|
3261
3322
|
fileNotFound = false;
|
|
3262
3323
|
// public static FILE_NAME;
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3324
|
+
http = inject(HttpClient);
|
|
3325
|
+
colorFile1 = inject(COLOR_FILE_NAME);
|
|
3326
|
+
constructor() {
|
|
3327
|
+
if (this.colorFile1)
|
|
3328
|
+
this.colorFileName = this.colorFile1;
|
|
3267
3329
|
else
|
|
3268
3330
|
this.colorFileName = 'clr_rnt.eng';
|
|
3269
3331
|
}
|
|
@@ -3335,7 +3397,7 @@ class MagicColorService {
|
|
|
3335
3397
|
}
|
|
3336
3398
|
return '';
|
|
3337
3399
|
}
|
|
3338
|
-
/** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicColorService)(
|
|
3400
|
+
/** @nocollapse */ static ɵfac = function MagicColorService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicColorService)(); };
|
|
3339
3401
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicColorService, factory: MagicColorService.ɵfac, providedIn: 'root' });
|
|
3340
3402
|
}
|
|
3341
3403
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicColorService, [{
|
|
@@ -3343,26 +3405,21 @@ class MagicColorService {
|
|
|
3343
3405
|
args: [{
|
|
3344
3406
|
providedIn: 'root'
|
|
3345
3407
|
}]
|
|
3346
|
-
}], () => [
|
|
3347
|
-
type: Inject,
|
|
3348
|
-
args: [COLOR_FILE_NAME]
|
|
3349
|
-
}] }], null); })();
|
|
3408
|
+
}], () => [], null); })();
|
|
3350
3409
|
|
|
3351
3410
|
/**
|
|
3352
3411
|
* Provides the UI with values calculated by the Magic WebClient
|
|
3353
3412
|
*/
|
|
3354
3413
|
class AccessorMagicService {
|
|
3355
|
-
task;
|
|
3356
|
-
magicColor;
|
|
3357
3414
|
Logger = null;
|
|
3358
3415
|
hhmm = maskitoTimeOptionsGenerator({ mode: 'HH:MM' });
|
|
3359
3416
|
hhmmss = maskitoTimeOptionsGenerator({ mode: 'HH:MM:SS' });
|
|
3417
|
+
task = inject(TaskMagicService);
|
|
3418
|
+
magicColor = inject(MagicColorService);
|
|
3360
3419
|
/**
|
|
3361
3420
|
* @ignore
|
|
3362
3421
|
*/
|
|
3363
|
-
constructor(
|
|
3364
|
-
this.task = task;
|
|
3365
|
-
this.magicColor = magicColor;
|
|
3422
|
+
constructor() {
|
|
3366
3423
|
this.Logger = Logger.Instance;
|
|
3367
3424
|
}
|
|
3368
3425
|
UploadFileToServer(fileContent, serverFileName) {
|
|
@@ -3463,6 +3520,19 @@ class AccessorMagicService {
|
|
|
3463
3520
|
let vis = this.getProperty(controlId, HtmlProperties.Visible, rowId);
|
|
3464
3521
|
return vis ? 'visible' : 'hidden';
|
|
3465
3522
|
}
|
|
3523
|
+
/**
|
|
3524
|
+
* Returns whether a control is visible or not
|
|
3525
|
+
* @param controlId Id of control
|
|
3526
|
+
* @param rowId Id of row, if applicable
|
|
3527
|
+
* @returns true if the control is visible, false otherwise
|
|
3528
|
+
*/
|
|
3529
|
+
// mgIsVisible
|
|
3530
|
+
isVisible(controlId, rowId) {
|
|
3531
|
+
// The value is not always a boolean: getProperty() returns '' if the control has not sent its
|
|
3532
|
+
// Visible property yet, and undefined if the row does not exist. Comparing with === true turns
|
|
3533
|
+
// both into false. getVisible() behaves the same way - for those values it returns 'hidden'.
|
|
3534
|
+
return this.getProperty(controlId, HtmlProperties.Visible, rowId) === true;
|
|
3535
|
+
}
|
|
3466
3536
|
/**
|
|
3467
3537
|
* Returns alpha mask of a control
|
|
3468
3538
|
* @param controlId Id of control
|
|
@@ -3975,49 +4045,42 @@ class AccessorMagicService {
|
|
|
3975
4045
|
getColor(colorNumber, colorType) {
|
|
3976
4046
|
return this.magicColor.getColor(colorNumber, colorType);
|
|
3977
4047
|
}
|
|
3978
|
-
/** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessorMagicService)(
|
|
4048
|
+
/** @nocollapse */ static ɵfac = function AccessorMagicService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessorMagicService)(); };
|
|
3979
4049
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: AccessorMagicService, factory: AccessorMagicService.ɵfac });
|
|
3980
4050
|
}
|
|
3981
4051
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessorMagicService, [{
|
|
3982
4052
|
type: Injectable
|
|
3983
|
-
}], () => [
|
|
4053
|
+
}], () => [], null); })();
|
|
3984
4054
|
|
|
3985
4055
|
/**
|
|
3986
4056
|
* Central place for adding the Magic services
|
|
3987
4057
|
*/
|
|
3988
4058
|
class MagicServices {
|
|
3989
|
-
task;
|
|
3990
|
-
subformService;
|
|
3991
|
-
tableService;
|
|
3992
|
-
titleService;
|
|
3993
|
-
mgAccessorService;
|
|
4059
|
+
task = inject(TaskMagicService);
|
|
4060
|
+
subformService = inject(SubformMagicService);
|
|
4061
|
+
tableService = inject(TableMagicService);
|
|
4062
|
+
titleService = inject(TitleMagicService);
|
|
4063
|
+
mgAccessorService = inject(AccessorMagicService);
|
|
3994
4064
|
/**
|
|
3995
4065
|
* @ignore
|
|
3996
4066
|
*/
|
|
3997
|
-
constructor(
|
|
3998
|
-
this.task =
|
|
3999
|
-
this.
|
|
4000
|
-
this.
|
|
4001
|
-
this.
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
task.mgSubformService = subformService;
|
|
4005
|
-
task.mgTitleService = titleService;
|
|
4006
|
-
task.mgAccessorService = mgAccessorService;
|
|
4007
|
-
}
|
|
4008
|
-
/** @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)); };
|
|
4067
|
+
constructor() {
|
|
4068
|
+
this.task.tableService = this.tableService;
|
|
4069
|
+
this.task.mgSubformService = this.subformService;
|
|
4070
|
+
this.task.mgTitleService = this.titleService;
|
|
4071
|
+
this.task.mgAccessorService = this.mgAccessorService;
|
|
4072
|
+
}
|
|
4073
|
+
/** @nocollapse */ static ɵfac = function MagicServices_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicServices)(); };
|
|
4009
4074
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MagicServices, factory: MagicServices.ɵfac });
|
|
4010
4075
|
}
|
|
4011
4076
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicServices, [{
|
|
4012
4077
|
type: Injectable
|
|
4013
|
-
}], () => [
|
|
4078
|
+
}], () => [], null); })();
|
|
4014
4079
|
|
|
4015
4080
|
/**
|
|
4016
4081
|
* Base component representing a Magic task
|
|
4017
4082
|
*/
|
|
4018
4083
|
class TaskBaseMagicComponent {
|
|
4019
|
-
ref;
|
|
4020
|
-
magicServices;
|
|
4021
4084
|
/**
|
|
4022
4085
|
* Id of task, used for initializing the task service
|
|
4023
4086
|
*/
|
|
@@ -4030,15 +4093,24 @@ class TaskBaseMagicComponent {
|
|
|
4030
4093
|
* @ignore
|
|
4031
4094
|
*/
|
|
4032
4095
|
magicProperties = MagicProperties;
|
|
4096
|
+
/**
|
|
4097
|
+
* @ignore
|
|
4098
|
+
* Injected as fields rather than constructor parameters, so that the constructor
|
|
4099
|
+
* signature of this base class - which every generated component inherits - is unchanged.
|
|
4100
|
+
*/
|
|
4101
|
+
magicChangeDetection = inject(MagicChangeDetectionService);
|
|
4102
|
+
/**
|
|
4103
|
+
* @ignore
|
|
4104
|
+
*/
|
|
4105
|
+
destroyRef = inject(DestroyRef);
|
|
4106
|
+
ref = inject(ChangeDetectorRef);
|
|
4107
|
+
magicServices = inject(MagicServices);
|
|
4033
4108
|
/**
|
|
4034
4109
|
*
|
|
4035
4110
|
* @param ref changes-detector object
|
|
4036
4111
|
* @param magicServices Access point for all Magic services
|
|
4037
4112
|
*/
|
|
4038
|
-
constructor(
|
|
4039
|
-
this.ref = ref;
|
|
4040
|
-
this.magicServices = magicServices;
|
|
4041
|
-
}
|
|
4113
|
+
constructor() { }
|
|
4042
4114
|
/**
|
|
4043
4115
|
* Returns the Magic task service
|
|
4044
4116
|
* @returns
|
|
@@ -4088,6 +4160,14 @@ class TaskBaseMagicComponent {
|
|
|
4088
4160
|
this.task.detectChanges.pipe().subscribe(c => {
|
|
4089
4161
|
this.ref.detectChanges();
|
|
4090
4162
|
});
|
|
4163
|
+
// Running zoneless, nothing refreshes this view unless Angular is told to.
|
|
4164
|
+
// MagicChangeDetectionService is application-scoped and never completes, so this
|
|
4165
|
+
// subscription must be tied to the component's lifetime.
|
|
4166
|
+
this.magicChangeDetection.changed
|
|
4167
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4168
|
+
.subscribe(() => {
|
|
4169
|
+
this.ref.markForCheck();
|
|
4170
|
+
});
|
|
4091
4171
|
this.task.initTask(this.taskIdParam, this.taskDescription);
|
|
4092
4172
|
this.createFormControlsAccessor(this.screenFormGroup);
|
|
4093
4173
|
this.setInputDateFormat();
|
|
@@ -4161,8 +4241,8 @@ class TaskBaseMagicComponent {
|
|
|
4161
4241
|
ngOnDestroy() {
|
|
4162
4242
|
this.task.dispose();
|
|
4163
4243
|
}
|
|
4164
|
-
/** @nocollapse */ static ɵfac = function TaskBaseMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskBaseMagicComponent)(
|
|
4165
|
-
/** @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 });
|
|
4244
|
+
/** @nocollapse */ static ɵfac = function TaskBaseMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskBaseMagicComponent)(); };
|
|
4245
|
+
/** @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 });
|
|
4166
4246
|
}
|
|
4167
4247
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskBaseMagicComponent, [{
|
|
4168
4248
|
type: Component,
|
|
@@ -4170,21 +4250,20 @@ class TaskBaseMagicComponent {
|
|
|
4170
4250
|
selector: 'task-magic',
|
|
4171
4251
|
providers: [TaskMagicService, SubformMagicService, TableMagicService],
|
|
4172
4252
|
template: '',
|
|
4253
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
4173
4254
|
standalone: false
|
|
4174
4255
|
}]
|
|
4175
|
-
}], () => [
|
|
4256
|
+
}], () => [], { taskIdParam: [{
|
|
4176
4257
|
type: Input
|
|
4177
4258
|
}], taskDescription: [{
|
|
4178
4259
|
type: Input
|
|
4179
4260
|
}] }); })();
|
|
4180
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber:
|
|
4261
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src/ui/task-base.magic.component.ts", lineNumber: 24 }); })();
|
|
4181
4262
|
|
|
4182
4263
|
/**
|
|
4183
4264
|
* @ignore
|
|
4184
4265
|
*/
|
|
4185
4266
|
class RowMagicDirective {
|
|
4186
|
-
_task;
|
|
4187
|
-
element;
|
|
4188
4267
|
rowId;
|
|
4189
4268
|
/**
|
|
4190
4269
|
* The HTML element connected to this directive
|
|
@@ -4194,9 +4273,9 @@ class RowMagicDirective {
|
|
|
4194
4273
|
* @ignore
|
|
4195
4274
|
*/
|
|
4196
4275
|
rowChangedSubscriber = null;
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4276
|
+
_task = inject(TaskMagicService);
|
|
4277
|
+
element = inject(ElementRef);
|
|
4278
|
+
constructor() {
|
|
4200
4279
|
this.htmlElement = this.element.nativeElement;
|
|
4201
4280
|
}
|
|
4202
4281
|
/**
|
|
@@ -4237,7 +4316,7 @@ class RowMagicDirective {
|
|
|
4237
4316
|
event.cancelBubble = true;
|
|
4238
4317
|
}
|
|
4239
4318
|
}
|
|
4240
|
-
/** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowMagicDirective)(
|
|
4319
|
+
/** @nocollapse */ static ɵfac = function RowMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowMagicDirective)(); };
|
|
4241
4320
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RowMagicDirective, selectors: [["", "magicRow", ""]], hostBindings: function RowMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
4242
4321
|
i0.ɵɵlistener("click", function RowMagicDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
|
|
4243
4322
|
} }, inputs: { rowId: [0, "magicRow", "rowId"] }, standalone: false });
|
|
@@ -4248,7 +4327,7 @@ class RowMagicDirective {
|
|
|
4248
4327
|
selector: '[magicRow]',
|
|
4249
4328
|
standalone: false
|
|
4250
4329
|
}]
|
|
4251
|
-
}], () => [
|
|
4330
|
+
}], () => [], { rowId: [{
|
|
4252
4331
|
type: Input,
|
|
4253
4332
|
args: ['magicRow']
|
|
4254
4333
|
}], onClick: [{
|
|
@@ -4260,12 +4339,6 @@ class RowMagicDirective {
|
|
|
4260
4339
|
* Connects HTML elements to the Magic Web Client engine
|
|
4261
4340
|
*/
|
|
4262
4341
|
class MagicDirective {
|
|
4263
|
-
_task;
|
|
4264
|
-
element;
|
|
4265
|
-
renderer;
|
|
4266
|
-
vcRef;
|
|
4267
|
-
platform;
|
|
4268
|
-
magicRow;
|
|
4269
4342
|
set magic(val) {
|
|
4270
4343
|
this.id = val;
|
|
4271
4344
|
this.selector = "magic";
|
|
@@ -4329,21 +4402,15 @@ class MagicDirective {
|
|
|
4329
4402
|
* @param platform
|
|
4330
4403
|
* @param magicRow
|
|
4331
4404
|
*/
|
|
4332
|
-
constructor(
|
|
4333
|
-
this._task = _task;
|
|
4334
|
-
this.element = element;
|
|
4335
|
-
this.renderer = renderer;
|
|
4336
|
-
this.vcRef = vcRef;
|
|
4337
|
-
this.platform = platform;
|
|
4338
|
-
this.magicRow = magicRow;
|
|
4405
|
+
constructor() {
|
|
4339
4406
|
this.htmlElement = this.element.nativeElement;
|
|
4340
4407
|
//let c = (<any>this.vcRef)._view;
|
|
4341
4408
|
//while (!(c instanceof TaskBaseMagicComponent)) {
|
|
4342
4409
|
// c = c.component;
|
|
4343
4410
|
//}
|
|
4344
4411
|
//this.component = c;
|
|
4345
|
-
if (!(typeof magicRow === "undefined" || magicRow === null))
|
|
4346
|
-
this.rowId = magicRow.rowId;
|
|
4412
|
+
if (!(typeof this.magicRow === "undefined" || this.magicRow === null))
|
|
4413
|
+
this.rowId = this.magicRow.rowId;
|
|
4347
4414
|
}
|
|
4348
4415
|
/**
|
|
4349
4416
|
* Get the task service
|
|
@@ -4352,6 +4419,12 @@ class MagicDirective {
|
|
|
4352
4419
|
get task() {
|
|
4353
4420
|
return this._task;
|
|
4354
4421
|
}
|
|
4422
|
+
_task = inject(TaskMagicService);
|
|
4423
|
+
element = inject(ElementRef);
|
|
4424
|
+
renderer = inject(Renderer2);
|
|
4425
|
+
vcRef = inject(ViewContainerRef);
|
|
4426
|
+
platform = inject(Platform);
|
|
4427
|
+
magicRow = inject(RowMagicDirective, { optional: true });
|
|
4355
4428
|
/**
|
|
4356
4429
|
* Register to the events this element may need to handle
|
|
4357
4430
|
*/
|
|
@@ -4554,7 +4627,7 @@ class MagicDirective {
|
|
|
4554
4627
|
ngOnDestroy() {
|
|
4555
4628
|
this.subscribeRefreshDom.unsubscribe();
|
|
4556
4629
|
}
|
|
4557
|
-
/** @nocollapse */ static ɵfac = function MagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicDirective)(
|
|
4630
|
+
/** @nocollapse */ static ɵfac = function MagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicDirective)(); };
|
|
4558
4631
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", pollTime: "pollTime", rowId: "rowId" }, standalone: false });
|
|
4559
4632
|
}
|
|
4560
4633
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
|
|
@@ -4563,9 +4636,7 @@ class MagicDirective {
|
|
|
4563
4636
|
selector: "[magic]",
|
|
4564
4637
|
standalone: false
|
|
4565
4638
|
}]
|
|
4566
|
-
}], () => [
|
|
4567
|
-
type: Optional
|
|
4568
|
-
}] }], { magic: [{
|
|
4639
|
+
}], () => [], { magic: [{
|
|
4569
4640
|
type: Input,
|
|
4570
4641
|
args: ["magic"]
|
|
4571
4642
|
}], eventsOnly: [{
|
|
@@ -4583,9 +4654,15 @@ class MagicDirective {
|
|
|
4583
4654
|
class NoControlMagicDirective extends MagicDirective {
|
|
4584
4655
|
set magic(val) { this.id = val; this.selector = 'magicnc'; }
|
|
4585
4656
|
;
|
|
4586
|
-
constructor(
|
|
4587
|
-
super(
|
|
4657
|
+
constructor() {
|
|
4658
|
+
super();
|
|
4588
4659
|
}
|
|
4660
|
+
_task = inject(TaskMagicService);
|
|
4661
|
+
element = inject(ElementRef);
|
|
4662
|
+
renderer = inject(Renderer2);
|
|
4663
|
+
vcRef = inject(ViewContainerRef);
|
|
4664
|
+
platform = inject(Platform);
|
|
4665
|
+
magicRow = inject(RowMagicDirective, { optional: true });
|
|
4589
4666
|
regEvents() {
|
|
4590
4667
|
super.regEvents();
|
|
4591
4668
|
if (this.htmlElement instanceof HTMLSelectElement) {
|
|
@@ -4752,7 +4829,7 @@ class NoControlMagicDirective extends MagicDirective {
|
|
|
4752
4829
|
break;
|
|
4753
4830
|
}
|
|
4754
4831
|
}
|
|
4755
|
-
/** @nocollapse */ static ɵfac = function NoControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NoControlMagicDirective)(
|
|
4832
|
+
/** @nocollapse */ static ɵfac = function NoControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NoControlMagicDirective)(); };
|
|
4756
4833
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NoControlMagicDirective, selectors: [["", "magicnc", ""]], inputs: { magic: [0, "magicnc", "magic"] }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature] });
|
|
4757
4834
|
}
|
|
4758
4835
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoControlMagicDirective, [{
|
|
@@ -4761,9 +4838,7 @@ class NoControlMagicDirective extends MagicDirective {
|
|
|
4761
4838
|
selector: '[magicnc]',
|
|
4762
4839
|
standalone: false
|
|
4763
4840
|
}]
|
|
4764
|
-
}], () => [
|
|
4765
|
-
type: Optional
|
|
4766
|
-
}] }], { magic: [{
|
|
4841
|
+
}], () => [], { magic: [{
|
|
4767
4842
|
type: Input,
|
|
4768
4843
|
args: ['magicnc']
|
|
4769
4844
|
}] }); })();
|
|
@@ -4778,10 +4853,9 @@ class Constants {
|
|
|
4778
4853
|
* @ignore
|
|
4779
4854
|
*/
|
|
4780
4855
|
class DateMagicPipe extends DatePipe {
|
|
4781
|
-
_task;
|
|
4782
|
-
constructor(
|
|
4856
|
+
_task = inject(TaskMagicService);
|
|
4857
|
+
constructor() {
|
|
4783
4858
|
super('en-US');
|
|
4784
|
-
this._task = _task;
|
|
4785
4859
|
}
|
|
4786
4860
|
transform(value, controlId) {
|
|
4787
4861
|
let mask = this._task.GetControlPictureMask(controlId).getMask();
|
|
@@ -4802,7 +4876,7 @@ class DateMagicPipe extends DatePipe {
|
|
|
4802
4876
|
value = "";
|
|
4803
4877
|
return value;
|
|
4804
4878
|
}
|
|
4805
|
-
/** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateMagicPipe)(
|
|
4879
|
+
/** @nocollapse */ static ɵfac = function DateMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateMagicPipe)(); };
|
|
4806
4880
|
/** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicDate", type: DateMagicPipe, pure: true, standalone: false });
|
|
4807
4881
|
}
|
|
4808
4882
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateMagicPipe, [{
|
|
@@ -4811,7 +4885,7 @@ class DateMagicPipe extends DatePipe {
|
|
|
4811
4885
|
name: 'magicDate',
|
|
4812
4886
|
standalone: false
|
|
4813
4887
|
}]
|
|
4814
|
-
}], () => [
|
|
4888
|
+
}], () => [], null); })();
|
|
4815
4889
|
class MgDateFormatter {
|
|
4816
4890
|
ConvertMgDateFormatToAngular(mgDateMask) {
|
|
4817
4891
|
let formatStr = new StringBuilder();
|
|
@@ -4879,16 +4953,13 @@ class MgDateFormatter {
|
|
|
4879
4953
|
* Perform Magic validation on input controls which hold alphanumeric strings
|
|
4880
4954
|
*/
|
|
4881
4955
|
class MgformatMagicDirective {
|
|
4882
|
-
magicDir;
|
|
4883
|
-
_task;
|
|
4884
4956
|
datePasteFlag = false;
|
|
4957
|
+
magicDir = inject(MagicDirective);
|
|
4958
|
+
_task = inject(TaskMagicService);
|
|
4885
4959
|
/**
|
|
4886
4960
|
* @ignore
|
|
4887
4961
|
*/
|
|
4888
|
-
constructor(
|
|
4889
|
-
this.magicDir = magicDir;
|
|
4890
|
-
this._task = _task;
|
|
4891
|
-
}
|
|
4962
|
+
constructor() { }
|
|
4892
4963
|
ngAfterViewInit() {
|
|
4893
4964
|
let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
|
|
4894
4965
|
if (control != null && this._task.mgInputDateFormat == null) {
|
|
@@ -5482,7 +5553,7 @@ class MgformatMagicDirective {
|
|
|
5482
5553
|
return true;
|
|
5483
5554
|
return false;
|
|
5484
5555
|
}
|
|
5485
|
-
/** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgformatMagicDirective)(
|
|
5556
|
+
/** @nocollapse */ static ɵfac = function MgformatMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgformatMagicDirective)(); };
|
|
5486
5557
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MgformatMagicDirective, selectors: [["", "mgFormat", ""]], hostBindings: function MgformatMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
5487
5558
|
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); });
|
|
5488
5559
|
} }, standalone: false });
|
|
@@ -5493,7 +5564,7 @@ class MgformatMagicDirective {
|
|
|
5493
5564
|
selector: '[mgFormat]',
|
|
5494
5565
|
standalone: false
|
|
5495
5566
|
}]
|
|
5496
|
-
}], () => [
|
|
5567
|
+
}], () => [], { onFocusEvent: [{
|
|
5497
5568
|
type: HostListener,
|
|
5498
5569
|
args: ['focus', ['$event']]
|
|
5499
5570
|
}], onPaste: [{
|
|
@@ -5514,10 +5585,9 @@ class MgformatMagicDirective {
|
|
|
5514
5585
|
* @ignore
|
|
5515
5586
|
*/
|
|
5516
5587
|
class TimeMagicPipe extends DatePipe {
|
|
5517
|
-
_task;
|
|
5518
|
-
constructor(
|
|
5588
|
+
_task = inject(TaskMagicService);
|
|
5589
|
+
constructor() {
|
|
5519
5590
|
super('en-US');
|
|
5520
|
-
this._task = _task;
|
|
5521
5591
|
}
|
|
5522
5592
|
transform(value, controlId) {
|
|
5523
5593
|
let mask = this._task.GetControlPictureMask(controlId).getMask();
|
|
@@ -5548,7 +5618,7 @@ class TimeMagicPipe extends DatePipe {
|
|
|
5548
5618
|
}
|
|
5549
5619
|
return value;
|
|
5550
5620
|
}
|
|
5551
|
-
/** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeMagicPipe)(
|
|
5621
|
+
/** @nocollapse */ static ɵfac = function TimeMagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeMagicPipe)(); };
|
|
5552
5622
|
/** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime", type: TimeMagicPipe, pure: true, standalone: false });
|
|
5553
5623
|
}
|
|
5554
5624
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeMagicPipe, [{
|
|
@@ -5557,22 +5627,20 @@ class TimeMagicPipe extends DatePipe {
|
|
|
5557
5627
|
name: 'magicTime',
|
|
5558
5628
|
standalone: false
|
|
5559
5629
|
}]
|
|
5560
|
-
}], () => [
|
|
5630
|
+
}], () => [], null); })();
|
|
5561
5631
|
|
|
5562
5632
|
/**
|
|
5563
5633
|
* Validates the field range.
|
|
5564
5634
|
*/
|
|
5565
5635
|
class RangeValidatorMagicDirective {
|
|
5566
|
-
_task;
|
|
5567
|
-
vcRef;
|
|
5636
|
+
_task = inject(TaskMagicService);
|
|
5637
|
+
vcRef = inject(ViewContainerRef);
|
|
5568
5638
|
/**
|
|
5569
5639
|
*
|
|
5570
5640
|
* @param _task The task service
|
|
5571
5641
|
* @param vcRef
|
|
5572
5642
|
*/
|
|
5573
|
-
constructor(
|
|
5574
|
-
this._task = _task;
|
|
5575
|
-
this.vcRef = vcRef;
|
|
5643
|
+
constructor() {
|
|
5576
5644
|
}
|
|
5577
5645
|
/**
|
|
5578
5646
|
* Validation method
|
|
@@ -5607,7 +5675,7 @@ class RangeValidatorMagicDirective {
|
|
|
5607
5675
|
const formGroup = c.parent.controls;
|
|
5608
5676
|
return Object.keys(formGroup).find(name => c === formGroup[name]) || null;
|
|
5609
5677
|
}
|
|
5610
|
-
/** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RangeValidatorMagicDirective)(
|
|
5678
|
+
/** @nocollapse */ static ɵfac = function RangeValidatorMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RangeValidatorMagicDirective)(); };
|
|
5611
5679
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: RangeValidatorMagicDirective, selectors: [["", "rangevalidator", ""]], standalone: false, features: [i0.ɵɵProvidersFeature([
|
|
5612
5680
|
{
|
|
5613
5681
|
provide: NG_VALIDATORS,
|
|
@@ -5629,7 +5697,7 @@ class RangeValidatorMagicDirective {
|
|
|
5629
5697
|
],
|
|
5630
5698
|
standalone: false
|
|
5631
5699
|
}]
|
|
5632
|
-
}], () => [
|
|
5700
|
+
}], () => [], null); })();
|
|
5633
5701
|
|
|
5634
5702
|
function SubformMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
5635
5703
|
i0.ɵɵelement(0, "ndc-dynamic", 0);
|
|
@@ -5641,8 +5709,6 @@ function SubformMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
5641
5709
|
* Represents a Magic subform
|
|
5642
5710
|
*/
|
|
5643
5711
|
class SubformMagicComponent {
|
|
5644
|
-
vcRef;
|
|
5645
|
-
mgSub;
|
|
5646
5712
|
/**
|
|
5647
5713
|
* @ignore
|
|
5648
5714
|
*/
|
|
@@ -5659,12 +5725,12 @@ class SubformMagicComponent {
|
|
|
5659
5725
|
/**
|
|
5660
5726
|
* @ignore
|
|
5661
5727
|
*/
|
|
5662
|
-
constructor(
|
|
5663
|
-
this.vcRef = vcRef;
|
|
5664
|
-
this.mgSub = mgSub;
|
|
5728
|
+
constructor() {
|
|
5665
5729
|
// For angular 13 - find the component from _hostLView
|
|
5666
5730
|
this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
|
|
5667
5731
|
}
|
|
5732
|
+
vcRef = inject(ViewContainerRef);
|
|
5733
|
+
mgSub = inject(SubformMagicService);
|
|
5668
5734
|
/**
|
|
5669
5735
|
* @ignore
|
|
5670
5736
|
*/
|
|
@@ -5677,32 +5743,33 @@ class SubformMagicComponent {
|
|
|
5677
5743
|
get Parameters() {
|
|
5678
5744
|
return this.mgSub.mgGetParameters(this.id);
|
|
5679
5745
|
}
|
|
5680
|
-
/** @nocollapse */ static ɵfac = function SubformMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicComponent)(
|
|
5746
|
+
/** @nocollapse */ static ɵfac = function SubformMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubformMagicComponent)(); };
|
|
5681
5747
|
/** @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) {
|
|
5682
5748
|
i0.ɵɵconditionalCreate(0, SubformMagicComponent_Conditional_0_Template, 1, 2, "ndc-dynamic", 0);
|
|
5683
5749
|
} if (rf & 2) {
|
|
5684
5750
|
i0.ɵɵconditional(ctx.Component ? 0 : -1);
|
|
5685
|
-
} }, dependencies: [
|
|
5751
|
+
} }, dependencies: [i1$1.DynamicIoDirective, i1$1.DynamicComponent], encapsulation: 2, changeDetection: 1 });
|
|
5686
5752
|
}
|
|
5687
5753
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
|
|
5688
5754
|
type: Component,
|
|
5689
5755
|
args: [{
|
|
5690
5756
|
selector: 'magic-subform',
|
|
5691
|
-
template: `
|
|
5692
|
-
@if (Component) {
|
|
5693
|
-
<ndc-dynamic
|
|
5694
|
-
[ndcDynamicComponent]="Component"
|
|
5695
|
-
[ndcDynamicInputs]="Parameters">
|
|
5696
|
-
</ndc-dynamic>
|
|
5697
|
-
}
|
|
5757
|
+
template: `
|
|
5758
|
+
@if (Component) {
|
|
5759
|
+
<ndc-dynamic
|
|
5760
|
+
[ndcDynamicComponent]="Component"
|
|
5761
|
+
[ndcDynamicInputs]="Parameters">
|
|
5762
|
+
</ndc-dynamic>
|
|
5763
|
+
}
|
|
5698
5764
|
`,
|
|
5765
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
5699
5766
|
standalone: false
|
|
5700
5767
|
}]
|
|
5701
|
-
}], () => [
|
|
5768
|
+
}], () => [], { magic: [{
|
|
5702
5769
|
type: Input,
|
|
5703
5770
|
args: ['magic']
|
|
5704
5771
|
}] }); })();
|
|
5705
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber:
|
|
5772
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src/ui/subform.magic.component.ts", lineNumber: 24 }); })();
|
|
5706
5773
|
|
|
5707
5774
|
const _c0$1 = ["customContent"];
|
|
5708
5775
|
const _c1 = ["*"];
|
|
@@ -5730,9 +5797,6 @@ function ErrorMagicComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
5730
5797
|
* Represents a Magic subform
|
|
5731
5798
|
*/
|
|
5732
5799
|
class ErrorMagicComponent {
|
|
5733
|
-
_task;
|
|
5734
|
-
mgService;
|
|
5735
|
-
changeDetectorRef;
|
|
5736
5800
|
/**
|
|
5737
5801
|
* @ignore
|
|
5738
5802
|
*/
|
|
@@ -5751,19 +5815,19 @@ class ErrorMagicComponent {
|
|
|
5751
5815
|
;
|
|
5752
5816
|
// if true - display standard magic error message, if false - customer has provides his own content and we'll use it
|
|
5753
5817
|
defaultDisplay = true;
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
this.changeDetectorRef.detectChanges();
|
|
5757
|
-
}
|
|
5758
|
-
;
|
|
5818
|
+
customContentRef = viewChild('customContent', /* @ts-ignore */
|
|
5819
|
+
...(ngDevMode ? [{ debugName: "customContentRef" }] : /* istanbul ignore next */ []));
|
|
5759
5820
|
/**
|
|
5760
5821
|
* @ignore
|
|
5761
5822
|
*/
|
|
5762
|
-
constructor(
|
|
5763
|
-
this._task = _task;
|
|
5764
|
-
this.mgService = mgService;
|
|
5765
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
5823
|
+
constructor() {
|
|
5766
5824
|
this.rowId = "0";
|
|
5825
|
+
// Reactively update defaultDisplay whenever customContent changes in the DOM
|
|
5826
|
+
effect(() => {
|
|
5827
|
+
const innerComponent = this.customContentRef();
|
|
5828
|
+
this.defaultDisplay = innerComponent == undefined || this.isEmpty(innerComponent.nativeElement);
|
|
5829
|
+
this.changeDetectorRef.detectChanges();
|
|
5830
|
+
});
|
|
5767
5831
|
}
|
|
5768
5832
|
/**
|
|
5769
5833
|
* returns true if the html element has no children
|
|
@@ -5802,73 +5866,68 @@ class ErrorMagicComponent {
|
|
|
5802
5866
|
}
|
|
5803
5867
|
return false;
|
|
5804
5868
|
}
|
|
5805
|
-
|
|
5869
|
+
_task = inject(TaskMagicService);
|
|
5870
|
+
mgService = inject(AccessorMagicService);
|
|
5871
|
+
changeDetectorRef = inject(ChangeDetectorRef);
|
|
5872
|
+
/** @nocollapse */ static ɵfac = function ErrorMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ErrorMagicComponent)(); };
|
|
5806
5873
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ErrorMagicComponent, selectors: [["mgError"]], viewQuery: function ErrorMagicComponent_Query(rf, ctx) { if (rf & 1) {
|
|
5807
|
-
i0.ɵɵ
|
|
5874
|
+
i0.ɵɵviewQuerySignal(ctx.customContentRef, _c0$1, 5);
|
|
5808
5875
|
} if (rf & 2) {
|
|
5809
|
-
|
|
5810
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CustomContent = _t.first);
|
|
5876
|
+
i0.ɵɵqueryAdvance();
|
|
5811
5877
|
} }, 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) {
|
|
5812
5878
|
i0.ɵɵprojectionDef();
|
|
5813
5879
|
i0.ɵɵconditionalCreate(0, ErrorMagicComponent_Conditional_0_Template, 5, 1, "div");
|
|
5814
5880
|
} if (rf & 2) {
|
|
5815
5881
|
i0.ɵɵconditional(ctx.HasErrors(ctx.id) ? 0 : -1);
|
|
5816
|
-
} }, encapsulation: 2 });
|
|
5882
|
+
} }, encapsulation: 2, changeDetection: 1 });
|
|
5817
5883
|
}
|
|
5818
5884
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
|
|
5819
5885
|
type: Component,
|
|
5820
5886
|
args: [{
|
|
5821
5887
|
selector: 'mgError',
|
|
5822
|
-
template: `@if (HasErrors(id)) {
|
|
5823
|
-
<div>
|
|
5824
|
-
<div #customContent>
|
|
5825
|
-
<ng-content></ng-content>
|
|
5826
|
-
</div>
|
|
5827
|
-
@if (defaultDisplay) {
|
|
5828
|
-
<span>
|
|
5829
|
-
{{mgService.getErrMsg(id, rowId)}}
|
|
5830
|
-
</span>
|
|
5831
|
-
}
|
|
5832
|
-
</div>
|
|
5833
|
-
}
|
|
5888
|
+
template: `@if (HasErrors(id)) {
|
|
5889
|
+
<div>
|
|
5890
|
+
<div #customContent>
|
|
5891
|
+
<ng-content></ng-content>
|
|
5892
|
+
</div>
|
|
5893
|
+
@if (defaultDisplay) {
|
|
5894
|
+
<span>
|
|
5895
|
+
{{mgService.getErrMsg(id, rowId)}}
|
|
5896
|
+
</span>
|
|
5897
|
+
}
|
|
5898
|
+
</div>
|
|
5899
|
+
}
|
|
5834
5900
|
`,
|
|
5901
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
5835
5902
|
standalone: false
|
|
5836
5903
|
}]
|
|
5837
|
-
}], () => [
|
|
5904
|
+
}], () => [], { magic: [{
|
|
5838
5905
|
type: Input,
|
|
5839
5906
|
args: ['magic']
|
|
5840
5907
|
}], rowId1: [{
|
|
5841
5908
|
type: Input,
|
|
5842
5909
|
args: ['rowId']
|
|
5843
|
-
}],
|
|
5844
|
-
|
|
5845
|
-
args: ['customContent', { static: false }]
|
|
5846
|
-
}] }); })();
|
|
5847
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 28 }); })();
|
|
5910
|
+
}], customContentRef: [{ type: i0.ViewChild, args: ['customContent', { isSignal: true }] }] }); })();
|
|
5911
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src/ui/mgerror.magic.component.ts", lineNumber: 29 }); })();
|
|
5848
5912
|
|
|
5849
5913
|
/**
|
|
5850
5914
|
* Directive for checkboxes, to handle the 'change' event
|
|
5851
5915
|
*/
|
|
5852
5916
|
class CheckboxMagicDirective {
|
|
5853
|
-
|
|
5854
|
-
|
|
5855
|
-
task;
|
|
5856
|
-
threeState = false;
|
|
5917
|
+
threeState = input(false, /* @ts-ignore */
|
|
5918
|
+
...(ngDevMode ? [{ debugName: "threeState" }] : /* istanbul ignore next */ []));
|
|
5857
5919
|
subscribeRefreshDom = null;
|
|
5858
5920
|
isIndeterminate = false;
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
|
|
5862
|
-
constructor(
|
|
5863
|
-
this.magicDirective = magicDirective;
|
|
5864
|
-
this.el = el;
|
|
5865
|
-
this.task = task;
|
|
5921
|
+
magicDirective = inject(MagicDirective);
|
|
5922
|
+
el = inject(ElementRef);
|
|
5923
|
+
task = inject(TaskMagicService);
|
|
5924
|
+
constructor() {
|
|
5866
5925
|
}
|
|
5867
5926
|
/**
|
|
5868
5927
|
* Handles the Checkbox 'change' event - pass it to the Magic engine
|
|
5869
5928
|
*/
|
|
5870
5929
|
onChange($event) {
|
|
5871
|
-
if (this.threeState) {
|
|
5930
|
+
if (this.threeState()) {
|
|
5872
5931
|
this.handleThreeState();
|
|
5873
5932
|
}
|
|
5874
5933
|
else {
|
|
@@ -5876,7 +5935,7 @@ class CheckboxMagicDirective {
|
|
|
5876
5935
|
}
|
|
5877
5936
|
}
|
|
5878
5937
|
ngOnInit() {
|
|
5879
|
-
if (this.threeState) {
|
|
5938
|
+
if (this.threeState()) {
|
|
5880
5939
|
let guiEvent = getGuiEventObj("setAsThreeState", this.magicDirective.id, +this.magicDirective.rowId);
|
|
5881
5940
|
this.task.insertEvent(guiEvent);
|
|
5882
5941
|
this.el.nativeElement.indeterminate = this.isIndeterminate = this.task.getProperty(this.magicDirective.id, HtmlProperties.CheckBoxIndeterminate, this.magicDirective.rowId);
|
|
@@ -5931,10 +5990,10 @@ class CheckboxMagicDirective {
|
|
|
5931
5990
|
if (this.subscribeRefreshDom !== null)
|
|
5932
5991
|
this.subscribeRefreshDom.unsubscribe();
|
|
5933
5992
|
}
|
|
5934
|
-
/** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxMagicDirective)(
|
|
5993
|
+
/** @nocollapse */ static ɵfac = function CheckboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxMagicDirective)(); };
|
|
5935
5994
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CheckboxMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", 3, "noFormControl", ""]], hostBindings: function CheckboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
5936
5995
|
i0.ɵɵlistener("change", function CheckboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
5937
|
-
} }, inputs: { threeState: "threeState" }, standalone: false });
|
|
5996
|
+
} }, inputs: { threeState: [1, "threeState"] }, standalone: false });
|
|
5938
5997
|
}
|
|
5939
5998
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxMagicDirective, [{
|
|
5940
5999
|
type: Directive,
|
|
@@ -5944,9 +6003,7 @@ class CheckboxMagicDirective {
|
|
|
5944
6003
|
`,
|
|
5945
6004
|
standalone: false
|
|
5946
6005
|
}]
|
|
5947
|
-
}], () => [{
|
|
5948
|
-
type: Input
|
|
5949
|
-
}], onChange: [{
|
|
6006
|
+
}], () => [], { threeState: [{ type: i0.Input, args: [{ isSignal: true, alias: "threeState", required: false }] }], onChange: [{
|
|
5950
6007
|
type: HostListener,
|
|
5951
6008
|
args: ['change', ['$event']]
|
|
5952
6009
|
}] }); })();
|
|
@@ -5955,9 +6012,8 @@ class CheckboxMagicDirective {
|
|
|
5955
6012
|
* Directive for comboboxes, to handle the 'change' event
|
|
5956
6013
|
*/
|
|
5957
6014
|
class ComboboxMagicDirective {
|
|
5958
|
-
magicDirective;
|
|
5959
|
-
constructor(
|
|
5960
|
-
this.magicDirective = magicDirective;
|
|
6015
|
+
magicDirective = inject(MagicDirective);
|
|
6016
|
+
constructor() {
|
|
5961
6017
|
// subcribe to refreshDom. This is a special case for native select HTML control.
|
|
5962
6018
|
// to refresh the selected property. Else by default, HTML element doesn't get refreshed as per
|
|
5963
6019
|
// selected value and 1st element remains selected.
|
|
@@ -5979,7 +6035,7 @@ class ComboboxMagicDirective {
|
|
|
5979
6035
|
onComboboxItemsListChanged() {
|
|
5980
6036
|
this.magicDirective.task.refreshView();
|
|
5981
6037
|
}
|
|
5982
|
-
/** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ComboboxMagicDirective)(
|
|
6038
|
+
/** @nocollapse */ static ɵfac = function ComboboxMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ComboboxMagicDirective)(); };
|
|
5983
6039
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: ComboboxMagicDirective, selectors: [["select", "magic", "", 3, "multiple", ""]], hostBindings: function ComboboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
5984
6040
|
i0.ɵɵlistener("change", function ComboboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
5985
6041
|
} }, standalone: false });
|
|
@@ -5990,7 +6046,7 @@ class ComboboxMagicDirective {
|
|
|
5990
6046
|
selector: `select[magic]:not([multiple])`,
|
|
5991
6047
|
standalone: false
|
|
5992
6048
|
}]
|
|
5993
|
-
}], () => [
|
|
6049
|
+
}], () => [], { onChange: [{
|
|
5994
6050
|
type: HostListener,
|
|
5995
6051
|
args: ['change', ['$event']]
|
|
5996
6052
|
}] }); })();
|
|
@@ -6027,7 +6083,7 @@ function MagicShellComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
|
6027
6083
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
6028
6084
|
const defaultSpinner_r2 = i0.ɵɵreference(7);
|
|
6029
6085
|
i0.ɵɵadvance();
|
|
6030
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.SpinnerTemplate ? ctx_r0.SpinnerTemplate : defaultSpinner_r2);
|
|
6086
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.SpinnerTemplate() ? ctx_r0.SpinnerTemplate() : defaultSpinner_r2);
|
|
6031
6087
|
} }
|
|
6032
6088
|
function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
6033
6089
|
i0.ɵɵelement(0, "div", 7);
|
|
@@ -6036,16 +6092,6 @@ function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
6036
6092
|
* Root Magic component
|
|
6037
6093
|
*/
|
|
6038
6094
|
class MagicShellComponent {
|
|
6039
|
-
engineMagicService;
|
|
6040
|
-
componentList;
|
|
6041
|
-
changeDetectorRef;
|
|
6042
|
-
titleService;
|
|
6043
|
-
overlayWindowService;
|
|
6044
|
-
httpClient;
|
|
6045
|
-
pendingCommandsCollector;
|
|
6046
|
-
route;
|
|
6047
|
-
router;
|
|
6048
|
-
exitMagicService;
|
|
6049
6095
|
/**
|
|
6050
6096
|
* Root component to be displayed in the window
|
|
6051
6097
|
*/
|
|
@@ -6055,10 +6101,22 @@ class MagicShellComponent {
|
|
|
6055
6101
|
*/
|
|
6056
6102
|
RootComponentParameters;
|
|
6057
6103
|
overlayWindowsContainerViewRef;
|
|
6058
|
-
rootMagicElementRef
|
|
6059
|
-
|
|
6104
|
+
rootMagicElementRef = viewChild.required('magicRoot', /* @ts-ignore */
|
|
6105
|
+
...(ngDevMode ? [{ debugName: "rootMagicElementRef" }] : /* istanbul ignore next */ []));
|
|
6106
|
+
SpinnerTemplate = input(/* @ts-ignore */
|
|
6107
|
+
...(ngDevMode ? [undefined, { debugName: "SpinnerTemplate" }] : /* istanbul ignore next */ []));
|
|
6060
6108
|
showSpinner;
|
|
6061
6109
|
magicEngineTerminated = false;
|
|
6110
|
+
engineMagicService = inject(EngineMagicService);
|
|
6111
|
+
componentList = inject(ComponentListMagicService);
|
|
6112
|
+
changeDetectorRef = inject(ChangeDetectorRef);
|
|
6113
|
+
titleService = inject(Title);
|
|
6114
|
+
overlayWindowService = inject(OverlayWindowService);
|
|
6115
|
+
httpClient = inject(HttpClient);
|
|
6116
|
+
pendingCommandsCollector = inject(CommandsCollectorMagicService);
|
|
6117
|
+
route = inject(ActivatedRoute);
|
|
6118
|
+
router = inject(Router);
|
|
6119
|
+
exitMagicService = inject(ExitMagicService, { optional: true });
|
|
6062
6120
|
/**
|
|
6063
6121
|
*
|
|
6064
6122
|
* @param magic Magic's service
|
|
@@ -6068,17 +6126,7 @@ class MagicShellComponent {
|
|
|
6068
6126
|
* @param httpClient The native httpClient instance
|
|
6069
6127
|
* @param exitMagicService Magic exit service
|
|
6070
6128
|
*/
|
|
6071
|
-
constructor(
|
|
6072
|
-
this.engineMagicService = engineMagicService;
|
|
6073
|
-
this.componentList = componentList;
|
|
6074
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
6075
|
-
this.titleService = titleService;
|
|
6076
|
-
this.overlayWindowService = overlayWindowService;
|
|
6077
|
-
this.httpClient = httpClient;
|
|
6078
|
-
this.pendingCommandsCollector = pendingCommandsCollector;
|
|
6079
|
-
this.route = route;
|
|
6080
|
-
this.router = router;
|
|
6081
|
-
this.exitMagicService = exitMagicService;
|
|
6129
|
+
constructor() {
|
|
6082
6130
|
this.initialize();
|
|
6083
6131
|
this.setTitle();
|
|
6084
6132
|
}
|
|
@@ -6098,13 +6146,20 @@ class MagicShellComponent {
|
|
|
6098
6146
|
this.magicEngineTerminated = true;
|
|
6099
6147
|
}
|
|
6100
6148
|
}
|
|
6101
|
-
|
|
6149
|
+
/**
|
|
6150
|
+
* Page-hide event listener, used in place of 'unload'.
|
|
6151
|
+
* Chrome blocks 'unload' by permissions policy ("unload is not allowed in this document"),
|
|
6152
|
+
* so an unload handler is never even registered. 'pagehide' is fired at an earlier step of
|
|
6153
|
+
* the same unloading sequence, so it covers every case 'unload' did.
|
|
6154
|
+
*/
|
|
6155
|
+
onPageHide() {
|
|
6102
6156
|
// Chrome provides an opportunity to terminate the context after user approves the browser unload alert
|
|
6103
|
-
if (!this.magicEngineTerminated)
|
|
6157
|
+
if (!this.magicEngineTerminated) {
|
|
6104
6158
|
this.engineMagicService.TerminateContextUsingFetchAPI();
|
|
6159
|
+
}
|
|
6105
6160
|
}
|
|
6106
6161
|
ngAfterViewInit() {
|
|
6107
|
-
this.overlayWindowService.init(this.overlayWindowsContainerViewRef, this.rootMagicElementRef.nativeElement, this.changeDetectorRef);
|
|
6162
|
+
this.overlayWindowService.init(this.overlayWindowsContainerViewRef, this.rootMagicElementRef().nativeElement, this.changeDetectorRef);
|
|
6108
6163
|
// Helper function to start the engine
|
|
6109
6164
|
const startEngine = () => {
|
|
6110
6165
|
const queryParams = this.route.snapshot.queryParams;
|
|
@@ -6218,15 +6273,14 @@ class MagicShellComponent {
|
|
|
6218
6273
|
break;
|
|
6219
6274
|
}
|
|
6220
6275
|
}
|
|
6221
|
-
/** @nocollapse */ static ɵfac = function MagicShellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicShellComponent)(
|
|
6276
|
+
/** @nocollapse */ static ɵfac = function MagicShellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicShellComponent)(); };
|
|
6222
6277
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MagicShellComponent, selectors: [["magic-root"]], viewQuery: function MagicShellComponent_Query(rf, ctx) { if (rf & 1) {
|
|
6223
|
-
i0.ɵɵ
|
|
6278
|
+
i0.ɵɵviewQuerySignal(ctx.rootMagicElementRef, _c0, 5);
|
|
6224
6279
|
} if (rf & 2) {
|
|
6225
|
-
|
|
6226
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootMagicElementRef = _t.first);
|
|
6280
|
+
i0.ɵɵqueryAdvance();
|
|
6227
6281
|
} }, hostBindings: function MagicShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
6228
|
-
i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, i0.ɵɵresolveWindow)("
|
|
6229
|
-
} }, inputs: { SpinnerTemplate: "SpinnerTemplate" }, standalone: false, features: [i0.ɵɵProvidersFeature([
|
|
6282
|
+
i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, i0.ɵɵresolveWindow)("pagehide", function MagicShellComponent_pagehide_HostBindingHandler() { return ctx.onPageHide(); }, i0.ɵɵresolveWindow);
|
|
6283
|
+
} }, inputs: { SpinnerTemplate: [1, "SpinnerTemplate"] }, standalone: false, features: [i0.ɵɵProvidersFeature([
|
|
6230
6284
|
// ExitMagicService
|
|
6231
6285
|
])], 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) {
|
|
6232
6286
|
i0.ɵɵelementStart(0, "div", null, 0);
|
|
@@ -6240,50 +6294,43 @@ class MagicShellComponent {
|
|
|
6240
6294
|
i0.ɵɵconditional(ctx.RootComponent !== null ? 2 : -1);
|
|
6241
6295
|
i0.ɵɵadvance(3);
|
|
6242
6296
|
i0.ɵɵconditional(ctx.showSpinner ? 5 : -1);
|
|
6243
|
-
} }, dependencies: [i1.NgTemplateOutlet,
|
|
6297
|
+
} }, dependencies: [i1.NgTemplateOutlet, i1$1.DynamicIoDirective, i1$1.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 });
|
|
6244
6298
|
}
|
|
6245
6299
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
|
|
6246
6300
|
type: Component,
|
|
6247
6301
|
args: [{ selector: 'magic-root', providers: [
|
|
6248
6302
|
// ExitMagicService
|
|
6249
|
-
], template: `
|
|
6250
|
-
<div #magicRoot>
|
|
6251
|
-
@if (RootComponent !== null) {
|
|
6252
|
-
<ndc-dynamic
|
|
6253
|
-
[ndcDynamicComponent]="RootComponent"
|
|
6254
|
-
[ndcDynamicInputs] ="RootComponentParameters">
|
|
6255
|
-
</ndc-dynamic>
|
|
6256
|
-
}
|
|
6257
|
-
|
|
6258
|
-
<div #overlayWindowsContainer magicViewContainerRef>
|
|
6259
|
-
</div>
|
|
6260
|
-
</div>
|
|
6261
|
-
|
|
6262
|
-
@if (showSpinner) {
|
|
6263
|
-
<div class="spinner-background">
|
|
6264
|
-
<ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
|
|
6265
|
-
</div>
|
|
6266
|
-
}
|
|
6267
|
-
|
|
6268
|
-
<ng-template #defaultSpinner>
|
|
6269
|
-
<div class="mgSpinnerClass"></div>
|
|
6270
|
-
</ng-template>
|
|
6271
|
-
`, 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"] }]
|
|
6272
|
-
}], () => [
|
|
6273
|
-
type: Optional
|
|
6274
|
-
}] }], { rootMagicElementRef: [{
|
|
6275
|
-
type: ViewChild,
|
|
6276
|
-
args: ['magicRoot', { static: true }]
|
|
6277
|
-
}], SpinnerTemplate: [{
|
|
6278
|
-
type: Input
|
|
6279
|
-
}], onBeforeUnload: [{
|
|
6303
|
+
], template: `
|
|
6304
|
+
<div #magicRoot>
|
|
6305
|
+
@if (RootComponent !== null) {
|
|
6306
|
+
<ndc-dynamic
|
|
6307
|
+
[ndcDynamicComponent]="RootComponent"
|
|
6308
|
+
[ndcDynamicInputs] ="RootComponentParameters">
|
|
6309
|
+
</ndc-dynamic>
|
|
6310
|
+
}
|
|
6311
|
+
|
|
6312
|
+
<div #overlayWindowsContainer magicViewContainerRef>
|
|
6313
|
+
</div>
|
|
6314
|
+
</div>
|
|
6315
|
+
|
|
6316
|
+
@if (showSpinner) {
|
|
6317
|
+
<div class="spinner-background">
|
|
6318
|
+
<ng-container [ngTemplateOutlet]="SpinnerTemplate() ? SpinnerTemplate():defaultSpinner"></ng-container>
|
|
6319
|
+
</div>
|
|
6320
|
+
}
|
|
6321
|
+
|
|
6322
|
+
<ng-template #defaultSpinner>
|
|
6323
|
+
<div class="mgSpinnerClass"></div>
|
|
6324
|
+
</ng-template>
|
|
6325
|
+
`, 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"] }]
|
|
6326
|
+
}], () => [], { rootMagicElementRef: [{ type: i0.ViewChild, args: ['magicRoot', { isSignal: true }] }], SpinnerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "SpinnerTemplate", required: false }] }], onBeforeUnload: [{
|
|
6280
6327
|
type: HostListener,
|
|
6281
6328
|
args: ['window:beforeunload', ['$event']]
|
|
6282
|
-
}],
|
|
6329
|
+
}], onPageHide: [{
|
|
6283
6330
|
type: HostListener,
|
|
6284
|
-
args: ['window:
|
|
6331
|
+
args: ['window:pagehide']
|
|
6285
6332
|
}] }); })();
|
|
6286
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber:
|
|
6333
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src/ui/magic-root.component.ts", lineNumber: 90 }); })();
|
|
6287
6334
|
|
|
6288
6335
|
/**
|
|
6289
6336
|
* @ignore
|
|
@@ -6310,7 +6357,7 @@ class MagicCheckboxControlValueAccessor extends CheckboxControlValueAccessor {
|
|
|
6310
6357
|
input[type=checkbox][magic]:not([formControl]),
|
|
6311
6358
|
input[type=checkbox][magic]:not([ngModel])
|
|
6312
6359
|
`,
|
|
6313
|
-
host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },
|
|
6360
|
+
host: { '(change)': 'onChange($any($event.target).checked)', '(blur)': 'onTouched()' },
|
|
6314
6361
|
providers: [CHECKBOX_VALUE_ACCESSOR],
|
|
6315
6362
|
standalone: false
|
|
6316
6363
|
}]
|
|
@@ -6341,10 +6388,10 @@ class MagicDefaultValueAccessor extends DefaultValueAccessor {
|
|
|
6341
6388
|
textarea[magic]:not([formControlName]):not([noFormControl]):not([no-form-control])
|
|
6342
6389
|
`,
|
|
6343
6390
|
host: {
|
|
6344
|
-
'(input)': '$any(this)._handleInput($event.target.value)',
|
|
6391
|
+
'(input)': '$any(this)._handleInput($any($event.target).value)',
|
|
6345
6392
|
'(blur)': 'onTouched()',
|
|
6346
6393
|
'(compositionstart)': '$any(this)._compositionStart()',
|
|
6347
|
-
'(compositionend)': '$any(this)._compositionEnd($event.target.value)'
|
|
6394
|
+
'(compositionend)': '$any(this)._compositionEnd($any($event.target).value)'
|
|
6348
6395
|
},
|
|
6349
6396
|
providers: [MAGIC_DEFAULT_VALUE_ACCESSOR],
|
|
6350
6397
|
exportAs: 'magic',
|
|
@@ -6356,9 +6403,8 @@ class MagicDefaultValueAccessor extends DefaultValueAccessor {
|
|
|
6356
6403
|
* Directive for checkboxes which should not have a form control
|
|
6357
6404
|
*/
|
|
6358
6405
|
class CheckboxNoFormControlMagicDirective {
|
|
6359
|
-
magicDirective;
|
|
6360
|
-
constructor(
|
|
6361
|
-
this.magicDirective = magicDirective;
|
|
6406
|
+
magicDirective = inject(MagicDirective);
|
|
6407
|
+
constructor() {
|
|
6362
6408
|
}
|
|
6363
6409
|
/**
|
|
6364
6410
|
* Handle the 'Checkbox' change event - pass it to the Magic engine
|
|
@@ -6366,7 +6412,7 @@ class CheckboxNoFormControlMagicDirective {
|
|
|
6366
6412
|
onChange($event) {
|
|
6367
6413
|
this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
|
|
6368
6414
|
}
|
|
6369
|
-
/** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(
|
|
6415
|
+
/** @nocollapse */ static ɵfac = function CheckboxNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxNoFormControlMagicDirective)(); };
|
|
6370
6416
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CheckboxNoFormControlMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", "noFormControl", ""]], hostBindings: function CheckboxNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
6371
6417
|
i0.ɵɵlistener("change", function CheckboxNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
6372
6418
|
} }, standalone: false });
|
|
@@ -6379,7 +6425,7 @@ class CheckboxNoFormControlMagicDirective {
|
|
|
6379
6425
|
`,
|
|
6380
6426
|
standalone: false
|
|
6381
6427
|
}]
|
|
6382
|
-
}], () => [
|
|
6428
|
+
}], () => [], { onChange: [{
|
|
6383
6429
|
type: HostListener,
|
|
6384
6430
|
args: ['change', ['$event']]
|
|
6385
6431
|
}] }); })();
|
|
@@ -6388,9 +6434,8 @@ class CheckboxNoFormControlMagicDirective {
|
|
|
6388
6434
|
* Directive for non-checkbox input controls which do not have a form control
|
|
6389
6435
|
*/
|
|
6390
6436
|
class InputNoFormControlMagicDirective {
|
|
6391
|
-
magicDirective;
|
|
6392
|
-
constructor(
|
|
6393
|
-
this.magicDirective = magicDirective;
|
|
6437
|
+
magicDirective = inject(MagicDirective);
|
|
6438
|
+
constructor() {
|
|
6394
6439
|
}
|
|
6395
6440
|
/**
|
|
6396
6441
|
* Handles the 'change' event - pass it to the Magic engine
|
|
@@ -6398,7 +6443,7 @@ class InputNoFormControlMagicDirective {
|
|
|
6398
6443
|
onChange($event) {
|
|
6399
6444
|
this.magicDirective.task.setInputTextValue(this.magicDirective.id, this.magicDirective.rowId, event.srcElement.value);
|
|
6400
6445
|
}
|
|
6401
|
-
/** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(
|
|
6446
|
+
/** @nocollapse */ static ɵfac = function InputNoFormControlMagicDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNoFormControlMagicDirective)(); };
|
|
6402
6447
|
/** @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) {
|
|
6403
6448
|
i0.ɵɵlistener("change", function InputNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
6404
6449
|
} }, standalone: false });
|
|
@@ -6410,7 +6455,7 @@ class InputNoFormControlMagicDirective {
|
|
|
6410
6455
|
textarea[magic]:([noFormControl]):not([type=checkbox])`,
|
|
6411
6456
|
standalone: false
|
|
6412
6457
|
}]
|
|
6413
|
-
}], () => [
|
|
6458
|
+
}], () => [], { onChange: [{
|
|
6414
6459
|
type: HostListener,
|
|
6415
6460
|
args: ['change', ['$event']]
|
|
6416
6461
|
}] }); })();
|
|
@@ -6429,10 +6474,6 @@ const DATE_VALUE_ACCESSOR = {
|
|
|
6429
6474
|
* `<input type="date" formControlName="birthday" dateInput>`
|
|
6430
6475
|
*/
|
|
6431
6476
|
class DateValueAccessor {
|
|
6432
|
-
renderer;
|
|
6433
|
-
elementRef;
|
|
6434
|
-
magicDir;
|
|
6435
|
-
_task;
|
|
6436
6477
|
onChange = (_) => { };
|
|
6437
6478
|
onTouched = () => { };
|
|
6438
6479
|
onBlurEvent(event) {
|
|
@@ -6440,12 +6481,11 @@ class DateValueAccessor {
|
|
|
6440
6481
|
let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
|
|
6441
6482
|
this.formatDateWithCentury(event.target.value, century, control);
|
|
6442
6483
|
}
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
}
|
|
6484
|
+
renderer = inject(Renderer2);
|
|
6485
|
+
elementRef = inject(ElementRef);
|
|
6486
|
+
magicDir = inject(MagicDirective);
|
|
6487
|
+
_task = inject(TaskMagicService);
|
|
6488
|
+
constructor() { }
|
|
6449
6489
|
/** Format year, if user enters 2 digits instead of 4 digits as per the century given in Magic.ini file */
|
|
6450
6490
|
formatDateWithCentury(userInput, century, control) {
|
|
6451
6491
|
const separator = userInput.includes('/') ? '/' : "-";
|
|
@@ -6483,7 +6523,7 @@ class DateValueAccessor {
|
|
|
6483
6523
|
setDisabledState(isDisabled) {
|
|
6484
6524
|
this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled);
|
|
6485
6525
|
}
|
|
6486
|
-
/** @nocollapse */ static ɵfac = function DateValueAccessor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateValueAccessor)(
|
|
6526
|
+
/** @nocollapse */ static ɵfac = function DateValueAccessor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DateValueAccessor)(); };
|
|
6487
6527
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DateValueAccessor, selectors: [["", "dateInput", ""]], hostBindings: function DateValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
|
|
6488
6528
|
i0.ɵɵlistener("input", function DateValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.valueAsDate); })("blur", function DateValueAccessor_blur_HostBindingHandler($event) { return ctx.onBlurEvent($event); });
|
|
6489
6529
|
} }, standalone: false, features: [i0.ɵɵProvidersFeature([DATE_VALUE_ACCESSOR])] });
|
|
@@ -6495,7 +6535,7 @@ class DateValueAccessor {
|
|
|
6495
6535
|
providers: [DATE_VALUE_ACCESSOR],
|
|
6496
6536
|
standalone: false
|
|
6497
6537
|
}]
|
|
6498
|
-
}], () => [
|
|
6538
|
+
}], () => [], { onChange: [{
|
|
6499
6539
|
type: HostListener,
|
|
6500
6540
|
args: ["input", ["$event.target.valueAsDate"]]
|
|
6501
6541
|
}], onTouched: [{
|
|
@@ -6510,10 +6550,6 @@ class DateValueAccessor {
|
|
|
6510
6550
|
* Responsible for connecting HTML elements to the Magic WebClient engine showing it is not Magic Control but a Dummy control which is used to notify only receeive focus event for now
|
|
6511
6551
|
*/
|
|
6512
6552
|
class NonMagicControlDirective {
|
|
6513
|
-
_task;
|
|
6514
|
-
element;
|
|
6515
|
-
renderer;
|
|
6516
|
-
vcRef;
|
|
6517
6553
|
set magic(val) {
|
|
6518
6554
|
this.id = val;
|
|
6519
6555
|
this.selector = 'NonMagicControl';
|
|
@@ -6551,13 +6587,13 @@ class NonMagicControlDirective {
|
|
|
6551
6587
|
* @param renderer Renderer for the element
|
|
6552
6588
|
* @param vcRef
|
|
6553
6589
|
*/
|
|
6554
|
-
constructor(
|
|
6555
|
-
this._task = _task;
|
|
6556
|
-
this.element = element;
|
|
6557
|
-
this.renderer = renderer;
|
|
6558
|
-
this.vcRef = vcRef;
|
|
6590
|
+
constructor() {
|
|
6559
6591
|
this.htmlElement = this.element.nativeElement;
|
|
6560
6592
|
}
|
|
6593
|
+
_task = inject(TaskMagicService);
|
|
6594
|
+
element = inject(ElementRef);
|
|
6595
|
+
renderer = inject(Renderer2);
|
|
6596
|
+
vcRef = inject(ViewContainerRef);
|
|
6561
6597
|
/**
|
|
6562
6598
|
* Get the task service
|
|
6563
6599
|
* @returns
|
|
@@ -6588,7 +6624,7 @@ class NonMagicControlDirective {
|
|
|
6588
6624
|
ngOnInit() {
|
|
6589
6625
|
this.regEvents();
|
|
6590
6626
|
}
|
|
6591
|
-
/** @nocollapse */ static ɵfac = function NonMagicControlDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NonMagicControlDirective)(
|
|
6627
|
+
/** @nocollapse */ static ɵfac = function NonMagicControlDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NonMagicControlDirective)(); };
|
|
6592
6628
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: NonMagicControlDirective, selectors: [["", "NonMagicControl", ""]], inputs: { magic: [0, "NonMagicControl", "magic"] }, standalone: false });
|
|
6593
6629
|
}
|
|
6594
6630
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NonMagicControlDirective, [{
|
|
@@ -6597,15 +6633,14 @@ class NonMagicControlDirective {
|
|
|
6597
6633
|
selector: '[NonMagicControl]',
|
|
6598
6634
|
standalone: false
|
|
6599
6635
|
}]
|
|
6600
|
-
}], () => [
|
|
6636
|
+
}], () => [], { magic: [{
|
|
6601
6637
|
type: Input,
|
|
6602
6638
|
args: ['NonMagicControl']
|
|
6603
6639
|
}] }); })();
|
|
6604
6640
|
|
|
6605
6641
|
class Time24MagicPipe {
|
|
6606
|
-
_task;
|
|
6607
|
-
constructor(
|
|
6608
|
-
this._task = _task;
|
|
6642
|
+
_task = inject(TaskMagicService);
|
|
6643
|
+
constructor() {
|
|
6609
6644
|
}
|
|
6610
6645
|
transform(value, controlId) {
|
|
6611
6646
|
let mask = this._task.GetControlPictureMask(controlId).getMask();
|
|
@@ -6623,7 +6658,7 @@ class Time24MagicPipe {
|
|
|
6623
6658
|
}
|
|
6624
6659
|
return value;
|
|
6625
6660
|
}
|
|
6626
|
-
/** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Time24MagicPipe)(
|
|
6661
|
+
/** @nocollapse */ static ɵfac = function Time24MagicPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Time24MagicPipe)(); };
|
|
6627
6662
|
/** @nocollapse */ static ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "magicTime24", type: Time24MagicPipe, pure: true, standalone: false });
|
|
6628
6663
|
}
|
|
6629
6664
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Time24MagicPipe, [{
|
|
@@ -6632,7 +6667,7 @@ class Time24MagicPipe {
|
|
|
6632
6667
|
name: 'magicTime24',
|
|
6633
6668
|
standalone: false
|
|
6634
6669
|
}]
|
|
6635
|
-
}], () => [
|
|
6670
|
+
}], () => [], null); })();
|
|
6636
6671
|
|
|
6637
6672
|
/**
|
|
6638
6673
|
* @ignore
|
|
@@ -6674,27 +6709,28 @@ const decs = [
|
|
|
6674
6709
|
class MagicModule {
|
|
6675
6710
|
/** @nocollapse */ static ɵfac = function MagicModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MagicModule)(); };
|
|
6676
6711
|
/** @nocollapse */ static ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: MagicModule });
|
|
6677
|
-
/** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
|
|
6712
|
+
/** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())], imports: [CommonModule,
|
|
6678
6713
|
FormsModule,
|
|
6679
6714
|
ReactiveFormsModule,
|
|
6680
6715
|
RouterModule,
|
|
6681
6716
|
DynamicModule,
|
|
6682
|
-
DragDropModule
|
|
6717
|
+
DragDropModule] });
|
|
6683
6718
|
}
|
|
6684
6719
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicModule, [{
|
|
6685
6720
|
type: NgModule,
|
|
6686
6721
|
args: [{
|
|
6687
6722
|
declarations: [...decs],
|
|
6688
|
-
exports: [...decs,
|
|
6723
|
+
exports: [...decs, MaskitoDirective],
|
|
6689
6724
|
imports: [CommonModule,
|
|
6690
6725
|
FormsModule,
|
|
6691
6726
|
ReactiveFormsModule,
|
|
6692
6727
|
RouterModule,
|
|
6693
6728
|
DynamicModule,
|
|
6729
|
+
MaskitoDirective,
|
|
6694
6730
|
CdkDragHandle,
|
|
6695
6731
|
CdkDrag,
|
|
6696
6732
|
DragDropModule],
|
|
6697
|
-
providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withInterceptorsFromDi())]
|
|
6733
|
+
providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider, provideHttpClient(withXhr(), withInterceptorsFromDi())]
|
|
6698
6734
|
}]
|
|
6699
6735
|
}], null, null); })();
|
|
6700
6736
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MagicModule, { declarations: [MagicDirective,
|
|
@@ -6730,6 +6766,7 @@ class MagicModule {
|
|
|
6730
6766
|
ReactiveFormsModule,
|
|
6731
6767
|
RouterModule,
|
|
6732
6768
|
DynamicModule,
|
|
6769
|
+
MaskitoDirective,
|
|
6733
6770
|
CdkDragHandle,
|
|
6734
6771
|
CdkDrag,
|
|
6735
6772
|
DragDropModule], exports: [MagicDirective,
|
|
@@ -6760,7 +6797,7 @@ class MagicModule {
|
|
|
6760
6797
|
NonMagicControlDirective,
|
|
6761
6798
|
MagicFocusDirective,
|
|
6762
6799
|
MagicViewContainerRef,
|
|
6763
|
-
Time24MagicPipe,
|
|
6800
|
+
Time24MagicPipe, MaskitoDirective] }); })();
|
|
6764
6801
|
|
|
6765
6802
|
const MG_FORMATS = {
|
|
6766
6803
|
parse: { dateInput: { month: 'short', year: 'numeric', day: 'numeric' } },
|
|
@@ -6772,14 +6809,12 @@ const MG_FORMATS = {
|
|
|
6772
6809
|
}
|
|
6773
6810
|
};
|
|
6774
6811
|
class MgDateAdapter extends NativeDateAdapter {
|
|
6775
|
-
task;
|
|
6776
|
-
localeId;
|
|
6777
6812
|
mgdtfmt = null;
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
this.setLocale(localeId);
|
|
6813
|
+
task = inject(TaskMagicService);
|
|
6814
|
+
localeId = inject(MAT_DATE_LOCALE);
|
|
6815
|
+
constructor() {
|
|
6816
|
+
super();
|
|
6817
|
+
this.setLocale(this.localeId);
|
|
6783
6818
|
}
|
|
6784
6819
|
parse(value) {
|
|
6785
6820
|
let valueStr = value;
|
|
@@ -6854,15 +6889,12 @@ class MgDateAdapter extends NativeDateAdapter {
|
|
|
6854
6889
|
return date.toDateString();
|
|
6855
6890
|
}
|
|
6856
6891
|
}
|
|
6857
|
-
/** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgDateAdapter)(
|
|
6892
|
+
/** @nocollapse */ static ɵfac = function MgDateAdapter_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgDateAdapter)(); };
|
|
6858
6893
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MgDateAdapter, factory: MgDateAdapter.ɵfac });
|
|
6859
6894
|
}
|
|
6860
6895
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgDateAdapter, [{
|
|
6861
6896
|
type: Injectable
|
|
6862
|
-
}], () => [
|
|
6863
|
-
type: Inject,
|
|
6864
|
-
args: [MAT_DATE_LOCALE]
|
|
6865
|
-
}] }], null); })();
|
|
6897
|
+
}], () => [], null); })();
|
|
6866
6898
|
|
|
6867
6899
|
const matDateProviders = [
|
|
6868
6900
|
{ provide: DateAdapter, useClass: MgDateAdapter },
|
|
@@ -6884,6 +6916,109 @@ const magicProviders = [
|
|
|
6884
6916
|
TableMagicService
|
|
6885
6917
|
];
|
|
6886
6918
|
|
|
6919
|
+
class SubscriberService {
|
|
6920
|
+
static instance;
|
|
6921
|
+
socket;
|
|
6922
|
+
constructor() {
|
|
6923
|
+
// Connect to the Socket.IO server with subscriber role
|
|
6924
|
+
this.socket = io('http://localhost:3000', {
|
|
6925
|
+
query: {
|
|
6926
|
+
role: 'subscriber',
|
|
6927
|
+
token: 'abc123' // Default token for testing; replace with actual authentication
|
|
6928
|
+
}
|
|
6929
|
+
});
|
|
6930
|
+
// Handle connection
|
|
6931
|
+
this.socket.on('connect', () => {
|
|
6932
|
+
console.log('Connected to server as subscriber:', this.socket.id);
|
|
6933
|
+
});
|
|
6934
|
+
// Handle disconnection
|
|
6935
|
+
this.socket.on('disconnect', () => {
|
|
6936
|
+
console.log('Disconnected from server');
|
|
6937
|
+
});
|
|
6938
|
+
// Handle subscription confirmation
|
|
6939
|
+
this.socket.on('subscribed', (data) => {
|
|
6940
|
+
console.log('Subscribed to topic:', data.topic, data.message);
|
|
6941
|
+
});
|
|
6942
|
+
// Handle unsubscription confirmation
|
|
6943
|
+
this.socket.on('unsubscribed', (data) => {
|
|
6944
|
+
console.log('Unsubscribed from topic:', data.topic, data.message);
|
|
6945
|
+
});
|
|
6946
|
+
// Handle errors
|
|
6947
|
+
this.socket.on('error', (error) => {
|
|
6948
|
+
console.error('Socket error:', error.message);
|
|
6949
|
+
});
|
|
6950
|
+
this.socket.on('message', (error) => {
|
|
6951
|
+
console.error('Message from xpa:', error.message);
|
|
6952
|
+
});
|
|
6953
|
+
}
|
|
6954
|
+
/**
|
|
6955
|
+
* Subscribe to a specific topic
|
|
6956
|
+
* @param topic The topic to subscribe to
|
|
6957
|
+
*/
|
|
6958
|
+
subscribe(topic) {
|
|
6959
|
+
this.socket.emit('subscribe', topic);
|
|
6960
|
+
}
|
|
6961
|
+
/**
|
|
6962
|
+
* Unsubscribe from a specific topic
|
|
6963
|
+
* @param topic The topic to unsubscribe from
|
|
6964
|
+
*/
|
|
6965
|
+
unsubscribe(topic) {
|
|
6966
|
+
this.socket.emit('unsubscribe', topic);
|
|
6967
|
+
}
|
|
6968
|
+
/**
|
|
6969
|
+
* Get an Observable for incoming messages
|
|
6970
|
+
* @returns Observable that emits message data
|
|
6971
|
+
*/
|
|
6972
|
+
onMessage() {
|
|
6973
|
+
return new Observable(observer => {
|
|
6974
|
+
this.socket.on('message', (data) => {
|
|
6975
|
+
observer.next(data);
|
|
6976
|
+
});
|
|
6977
|
+
});
|
|
6978
|
+
}
|
|
6979
|
+
/**
|
|
6980
|
+
* Get current subscriptions (for debugging)
|
|
6981
|
+
*/
|
|
6982
|
+
getSubscriptions() {
|
|
6983
|
+
this.socket.emit('getSubscriptions');
|
|
6984
|
+
}
|
|
6985
|
+
/**
|
|
6986
|
+
* Listen for subscriptions data
|
|
6987
|
+
* @returns Observable that emits subscriptions list
|
|
6988
|
+
*/
|
|
6989
|
+
onSubscriptionsData() {
|
|
6990
|
+
return new Observable(observer => {
|
|
6991
|
+
this.socket.on('subscriptionsData', (data) => {
|
|
6992
|
+
observer.next(data);
|
|
6993
|
+
});
|
|
6994
|
+
});
|
|
6995
|
+
}
|
|
6996
|
+
/**
|
|
6997
|
+
* Get the singleton instance of SubscriberService
|
|
6998
|
+
* @returns {SubscriberService} The singleton instance
|
|
6999
|
+
*/
|
|
7000
|
+
static getInstance() {
|
|
7001
|
+
if (!SubscriberService.instance) {
|
|
7002
|
+
SubscriberService.instance = new SubscriberService();
|
|
7003
|
+
}
|
|
7004
|
+
return SubscriberService.instance;
|
|
7005
|
+
}
|
|
7006
|
+
/**
|
|
7007
|
+
* Disconnect from the server
|
|
7008
|
+
*/
|
|
7009
|
+
disconnect() {
|
|
7010
|
+
this.socket.disconnect();
|
|
7011
|
+
}
|
|
7012
|
+
/** @nocollapse */ static ɵfac = function SubscriberService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubscriberService)(); };
|
|
7013
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SubscriberService, factory: SubscriberService.ɵfac, providedIn: 'root' });
|
|
7014
|
+
}
|
|
7015
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubscriberService, [{
|
|
7016
|
+
type: Injectable,
|
|
7017
|
+
args: [{
|
|
7018
|
+
providedIn: 'root'
|
|
7019
|
+
}]
|
|
7020
|
+
}], () => [], null); })();
|
|
7021
|
+
|
|
6887
7022
|
/**
|
|
6888
7023
|
* @ignore
|
|
6889
7024
|
*/
|
|
@@ -6969,5 +7104,5 @@ class ModalFormDefinition {
|
|
|
6969
7104
|
* Generated bundle index. Do not edit.
|
|
6970
7105
|
*/
|
|
6971
7106
|
|
|
6972
|
-
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 };
|
|
7107
|
+
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, MagicChangeDetectionService, 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 };
|
|
6973
7108
|
//# sourceMappingURL=magic-xpa-angular.mjs.map
|