@magic-xpa/angular 4.1100.0-dev4110.25 → 4.1100.0-dev4110.250

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/{esm2020 → esm2022}/index.mjs +59 -59
  2. package/{esm2020 → esm2022}/magic-xpa-angular.mjs +1 -1
  3. package/esm2022/src/controls.metadata.model.mjs +183 -0
  4. package/{esm2020 → esm2022}/src/interfaces/sub-form-definition.iterface.mjs +1 -1
  5. package/{esm2020 → esm2022}/src/magic.core.module.mjs +159 -160
  6. package/{esm2020 → esm2022}/src/services/ISubformMagicService.mjs +1 -1
  7. package/esm2022/src/services/OverlayWindowService.mjs +244 -0
  8. package/esm2022/src/services/StylesMapManager.mjs +28 -0
  9. package/esm2022/src/services/accessor.magic.service.mjs +358 -0
  10. package/esm2022/src/services/commands-collector.magic.service.mjs +47 -0
  11. package/esm2022/src/services/component-list.magic.service.mjs +45 -0
  12. package/{esm2020 → esm2022}/src/services/confirmation.components.magic.provider.mjs +21 -21
  13. package/esm2022/src/services/engine.magic.service.mjs +80 -0
  14. package/{esm2020 → esm2022}/src/services/exit.magic.service.mjs +13 -13
  15. package/esm2022/src/services/magic-color.service.mjs +101 -0
  16. package/{esm2020 → esm2022}/src/services/magic.lazy.loader.service.mjs +16 -16
  17. package/{esm2020 → esm2022}/src/services/magic.providers.mjs +24 -24
  18. package/esm2022/src/services/magic.services.mjs +36 -0
  19. package/esm2022/src/services/mg-date-adapter.mjs +108 -0
  20. package/{esm2020 → esm2022}/src/services/overlay.conainer.magic.provider.mjs +14 -14
  21. package/esm2022/src/services/router-commands.magic.service.mjs +31 -0
  22. package/esm2022/src/services/subform.magic.service.mjs +194 -0
  23. package/esm2022/src/services/table.magic.service.mjs +81 -0
  24. package/esm2022/src/services/task.magics.service.mjs +637 -0
  25. package/esm2022/src/services/title.magic.service.mjs +19 -0
  26. package/esm2022/src/ui/GuiInteractiveExecutor.mjs +109 -0
  27. package/esm2022/src/ui/components/base-magic-alert.component.mjs +24 -0
  28. package/esm2022/src/ui/components/base-magic-confirm.component.mjs +24 -0
  29. package/esm2022/src/ui/components/magic-alert.component.mjs +36 -0
  30. package/esm2022/src/ui/components/magic-confirmation-box.component.mjs +42 -0
  31. package/esm2022/src/ui/directives/NonMagicControlDirective.mjs +58 -0
  32. package/esm2022/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +29 -0
  33. package/esm2022/src/ui/directives/magic/checkbox.magic.directive.mjs +29 -0
  34. package/esm2022/src/ui/directives/magic/combobox.magic.directive.mjs +37 -0
  35. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +27 -0
  36. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +85 -0
  37. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +32 -0
  38. package/esm2022/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +28 -0
  39. package/esm2022/src/ui/directives/magic/nocontrol.magic.directive.mjs +193 -0
  40. package/esm2022/src/ui/directives/magic/row.magic.directive.mjs +62 -0
  41. package/esm2022/src/ui/directives/magic-focus.directive.mjs +20 -0
  42. package/esm2022/src/ui/directives/magic.directive.mjs +229 -0
  43. package/esm2022/src/ui/directives/magicViewContainerRef.directive.mjs +20 -0
  44. package/esm2022/src/ui/directives/mgformat.magic.directive.mjs +579 -0
  45. package/esm2022/src/ui/directives/range-validator.magic.directive.mjs +60 -0
  46. package/{esm2020 → esm2022}/src/ui/magic-confirmationBox.mjs +42 -42
  47. package/{esm2020 → esm2022}/src/ui/magic-modal/base-magic-overlay-container.mjs +22 -22
  48. package/esm2022/src/ui/magic-modal/magic-modal-form.mjs +6 -0
  49. package/{esm2020 → esm2022}/src/ui/magic-modal/magic-modal-interface.mjs +1 -1
  50. package/esm2022/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +124 -0
  51. package/esm2022/src/ui/magic-modal/magic-overlay-container.mjs +162 -0
  52. package/esm2022/src/ui/magic-root.component.mjs +236 -0
  53. package/esm2022/src/ui/mgerror.magic.component.mjs +125 -0
  54. package/esm2022/src/ui/pipes/date.magic.pipe.mjs +106 -0
  55. package/esm2022/src/ui/pipes/time.magic.pipe.mjs +52 -0
  56. package/esm2022/src/ui/pipes/time24.magic.pipe.mjs +35 -0
  57. package/esm2022/src/ui/router-container.magic.component.mjs +115 -0
  58. package/{esm2020 → esm2022}/src/ui/subform.magic.component.mjs +50 -46
  59. package/esm2022/src/ui/task-base.magic.component.mjs +91 -0
  60. package/esm2022/src/ui/utils.mjs +54 -0
  61. package/{fesm2020 → fesm2022}/magic-xpa-angular.mjs +4827 -4444
  62. package/fesm2022/magic-xpa-angular.mjs.map +1 -0
  63. package/index.d.ts +58 -58
  64. package/package.json +10 -16
  65. package/src/controls.metadata.model.d.ts +62 -62
  66. package/src/interfaces/sub-form-definition.iterface.d.ts +12 -12
  67. package/src/magic.core.module.d.ts +41 -41
  68. package/src/services/ISubformMagicService.d.ts +4 -4
  69. package/src/services/OverlayWindowService.d.ts +30 -25
  70. package/src/services/StylesMapManager.d.ts +5 -5
  71. package/src/services/accessor.magic.service.d.ts +69 -69
  72. package/src/services/commands-collector.magic.service.d.ts +15 -15
  73. package/src/services/component-list.magic.service.d.ts +23 -23
  74. package/src/services/confirmation.components.magic.provider.d.ts +8 -8
  75. package/src/services/engine.magic.service.d.ts +27 -27
  76. package/src/services/exit.magic.service.d.ts +6 -6
  77. package/src/services/magic-color.service.d.ts +19 -19
  78. package/src/services/magic.lazy.loader.service.d.ts +6 -6
  79. package/src/services/magic.providers.d.ts +107 -107
  80. package/src/services/magic.services.d.ts +16 -16
  81. package/src/services/mg-date-adapter.d.ts +38 -40
  82. package/src/services/overlay.conainer.magic.provider.d.ts +7 -7
  83. package/src/services/router-commands.magic.service.d.ts +17 -17
  84. package/src/services/subform.magic.service.d.ts +43 -43
  85. package/src/services/table.magic.service.d.ts +30 -30
  86. package/src/services/task.magics.service.d.ts +100 -100
  87. package/src/services/title.magic.service.d.ts +9 -9
  88. package/src/ui/GuiInteractiveExecutor.d.ts +22 -21
  89. package/src/ui/components/base-magic-alert.component.d.ts +10 -10
  90. package/src/ui/components/base-magic-confirm.component.d.ts +10 -10
  91. package/src/ui/components/magic-alert.component.d.ts +6 -6
  92. package/src/ui/components/magic-confirmation-box.component.d.ts +6 -6
  93. package/src/ui/directives/NonMagicControlDirective.d.ts +26 -26
  94. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +9 -9
  95. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +9 -9
  96. package/src/ui/directives/magic/combobox.magic.directive.d.ts +10 -10
  97. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +7 -7
  98. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +23 -17
  99. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +7 -7
  100. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +9 -9
  101. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +18 -18
  102. package/src/ui/directives/magic/row.magic.directive.d.ts +17 -17
  103. package/src/ui/directives/magic-focus.directive.d.ts +9 -9
  104. package/src/ui/directives/magic.directive.d.ts +44 -44
  105. package/src/ui/directives/magicViewContainerRef.directive.d.ts +8 -8
  106. package/src/ui/directives/mgformat.magic.directive.d.ts +38 -31
  107. package/src/ui/directives/range-validator.magic.directive.d.ts +17 -17
  108. package/src/ui/magic-confirmationBox.d.ts +6 -6
  109. package/src/ui/magic-modal/base-magic-overlay-container.d.ts +5 -5
  110. package/src/ui/magic-modal/magic-modal-form.d.ts +5 -5
  111. package/src/ui/magic-modal/magic-modal-interface.d.ts +10 -10
  112. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +30 -31
  113. package/src/ui/magic-modal/magic-overlay-container.d.ts +24 -25
  114. package/src/ui/magic-root.component.d.ts +43 -40
  115. package/src/ui/mgerror.magic.component.d.ts +20 -20
  116. package/src/ui/pipes/date.magic.pipe.d.ts +17 -17
  117. package/src/ui/pipes/time.magic.pipe.d.ts +11 -11
  118. package/src/ui/pipes/time24.magic.pipe.d.ts +10 -10
  119. package/src/ui/router-container.magic.component.d.ts +29 -30
  120. package/src/ui/subform.magic.component.d.ts +16 -16
  121. package/src/ui/task-base.magic.component.d.ts +34 -34
  122. package/src/ui/utils.d.ts +9 -9
  123. package/esm2020/src/controls.metadata.model.mjs +0 -180
  124. package/esm2020/src/services/OverlayWindowService.mjs +0 -208
  125. package/esm2020/src/services/StylesMapManager.mjs +0 -28
  126. package/esm2020/src/services/accessor.magic.service.mjs +0 -356
  127. package/esm2020/src/services/commands-collector.magic.service.mjs +0 -46
  128. package/esm2020/src/services/component-list.magic.service.mjs +0 -46
  129. package/esm2020/src/services/engine.magic.service.mjs +0 -82
  130. package/esm2020/src/services/magic-color.service.mjs +0 -99
  131. package/esm2020/src/services/magic.services.mjs +0 -31
  132. package/esm2020/src/services/mg-date-adapter.mjs +0 -109
  133. package/esm2020/src/services/router-commands.magic.service.mjs +0 -28
  134. package/esm2020/src/services/subform.magic.service.mjs +0 -184
  135. package/esm2020/src/services/table.magic.service.mjs +0 -77
  136. package/esm2020/src/services/task.magics.service.mjs +0 -624
  137. package/esm2020/src/services/title.magic.service.mjs +0 -18
  138. package/esm2020/src/ui/GuiInteractiveExecutor.mjs +0 -98
  139. package/esm2020/src/ui/components/base-magic-alert.component.mjs +0 -23
  140. package/esm2020/src/ui/components/base-magic-confirm.component.mjs +0 -23
  141. package/esm2020/src/ui/components/magic-alert.component.mjs +0 -35
  142. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +0 -41
  143. package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +0 -49
  144. package/esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +0 -28
  145. package/esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs +0 -28
  146. package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +0 -36
  147. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +0 -27
  148. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +0 -52
  149. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +0 -32
  150. package/esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +0 -27
  151. package/esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs +0 -193
  152. package/esm2020/src/ui/directives/magic/row.magic.directive.mjs +0 -58
  153. package/esm2020/src/ui/directives/magic-focus.directive.mjs +0 -19
  154. package/esm2020/src/ui/directives/magic.directive.mjs +0 -215
  155. package/esm2020/src/ui/directives/magicViewContainerRef.directive.mjs +0 -19
  156. package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +0 -408
  157. package/esm2020/src/ui/directives/range-validator.magic.directive.mjs +0 -58
  158. package/esm2020/src/ui/magic-modal/magic-modal-form.mjs +0 -8
  159. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +0 -121
  160. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +0 -159
  161. package/esm2020/src/ui/magic-root.component.mjs +0 -203
  162. package/esm2020/src/ui/mgerror.magic.component.mjs +0 -119
  163. package/esm2020/src/ui/pipes/date.magic.pipe.mjs +0 -105
  164. package/esm2020/src/ui/pipes/time.magic.pipe.mjs +0 -51
  165. package/esm2020/src/ui/pipes/time24.magic.pipe.mjs +0 -34
  166. package/esm2020/src/ui/router-container.magic.component.mjs +0 -108
  167. package/esm2020/src/ui/task-base.magic.component.mjs +0 -86
  168. package/esm2020/src/ui/utils.mjs +0 -54
  169. package/fesm2015/magic-xpa-angular.mjs +0 -4832
  170. package/fesm2015/magic-xpa-angular.mjs.map +0 -1
  171. package/fesm2020/magic-xpa-angular.mjs.map +0 -1
@@ -0,0 +1,236 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, Optional, TemplateRef, ViewChild } from '@angular/core';
2
+ import { CommandType } from '@magic-xpa/gui';
3
+ import { Title } from '@angular/platform-browser';
4
+ import { EngineMagicService } from '../services/engine.magic.service';
5
+ import { ComponentListMagicService } from '../services/component-list.magic.service';
6
+ import { GuiInteractiveExecutor } from './GuiInteractiveExecutor';
7
+ import { filter } from 'rxjs/operators';
8
+ import { ExitMagicService } from '../services/exit.magic.service';
9
+ import { OverlayWindowService } from '../services/OverlayWindowService';
10
+ import { CommandsCollectorMagicService } from '../services/commands-collector.magic.service';
11
+ import { HttpClient } from '@angular/common/http';
12
+ import { ActivatedRoute, NavigationEnd, Router } from "@angular/router";
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "../services/engine.magic.service";
15
+ import * as i2 from "../services/component-list.magic.service";
16
+ import * as i3 from "@angular/platform-browser";
17
+ import * as i4 from "../services/OverlayWindowService";
18
+ import * as i5 from "@angular/common/http";
19
+ import * as i6 from "../services/commands-collector.magic.service";
20
+ import * as i7 from "@angular/router";
21
+ import * as i8 from "../services/exit.magic.service";
22
+ import * as i9 from "@angular/common";
23
+ import * as i10 from "ng-dynamic-component";
24
+ import * as i11 from "./directives/magicViewContainerRef.directive";
25
+ const _c0 = ["magicRoot"];
26
+ function MagicShellComponent_ndc_dynamic_2_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "ndc-dynamic", 6);
28
+ } if (rf & 2) {
29
+ const ctx_r0 = i0.ɵɵnextContext();
30
+ i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.RootComponent)("ndcDynamicInputs", ctx_r0.RootComponentParameters);
31
+ } }
32
+ function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelementStart(0, "div", 7);
34
+ i0.ɵɵelementContainer(1, 8);
35
+ i0.ɵɵelementEnd();
36
+ } if (rf & 2) {
37
+ const ctx_r0 = i0.ɵɵnextContext();
38
+ const defaultSpinner_r2 = i0.ɵɵreference(7);
39
+ i0.ɵɵadvance();
40
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.SpinnerTemplate ? ctx_r0.SpinnerTemplate : defaultSpinner_r2);
41
+ } }
42
+ function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelement(0, "div", 9);
44
+ } }
45
+ export class MagicShellComponent {
46
+ engineMagicService;
47
+ componentList;
48
+ changeDetectorRef;
49
+ titleService;
50
+ overlayWindowService;
51
+ httpClient;
52
+ pendingCommandsCollector;
53
+ route;
54
+ router;
55
+ exitMagicService;
56
+ RootComponent = null;
57
+ RootComponentParameters;
58
+ overlayWindowsContainerViewRef;
59
+ rootMagicElementRef;
60
+ SpinnerTemplate;
61
+ showSpinner;
62
+ magicEngineTerminated = false;
63
+ constructor(engineMagicService, componentList, changeDetectorRef, titleService, overlayWindowService, httpClient, pendingCommandsCollector, route, router, exitMagicService) {
64
+ this.engineMagicService = engineMagicService;
65
+ this.componentList = componentList;
66
+ this.changeDetectorRef = changeDetectorRef;
67
+ this.titleService = titleService;
68
+ this.overlayWindowService = overlayWindowService;
69
+ this.httpClient = httpClient;
70
+ this.pendingCommandsCollector = pendingCommandsCollector;
71
+ this.route = route;
72
+ this.router = router;
73
+ this.exitMagicService = exitMagicService;
74
+ this.initialize();
75
+ this.setTitle();
76
+ }
77
+ onBeforeUnload(event) {
78
+ if (this.engineMagicService.TransCacheExists()) {
79
+ event.returnValue = 'Are you sure?';
80
+ return 'Are you sure?';
81
+ }
82
+ else {
83
+ this.engineMagicService.TerminateContextUsingFetchAPI();
84
+ this.magicEngineTerminated = true;
85
+ }
86
+ }
87
+ onUnload(event) {
88
+ if (!this.magicEngineTerminated)
89
+ this.engineMagicService.TerminateContextUsingFetchAPI();
90
+ }
91
+ ngAfterViewInit() {
92
+ this.overlayWindowService.init(this.overlayWindowsContainerViewRef, this.rootMagicElementRef.nativeElement, this.changeDetectorRef);
93
+ let subscription = this.router.events
94
+ .pipe(filter(e => e instanceof NavigationEnd))
95
+ .subscribe(e => {
96
+ if (this.router.navigated) {
97
+ const queryParams = this.route.snapshot.queryParams;
98
+ const queryParamsMap = new Map();
99
+ for (const key in queryParams) {
100
+ if (queryParams.hasOwnProperty(key)) {
101
+ queryParamsMap.set(key, queryParams[key].toString());
102
+ }
103
+ }
104
+ this.engineMagicService.startMagicEngine(this.httpClient, queryParamsMap);
105
+ subscription.unsubscribe();
106
+ }
107
+ });
108
+ }
109
+ setViewContainerRef(vcRef) {
110
+ this.overlayWindowsContainerViewRef = vcRef;
111
+ }
112
+ initialize() {
113
+ this.registerUICommands();
114
+ }
115
+ setTitle() {
116
+ const newTitle = this.componentList.title;
117
+ this.titleService.setTitle(newTitle);
118
+ }
119
+ setComponent(formName, taskId, taskDescription, isModal) {
120
+ this.pendingCommandsCollector.startCollecting();
121
+ if (isModal) {
122
+ this.overlayWindowService.open(formName, taskId, taskDescription);
123
+ }
124
+ else {
125
+ this.RootComponent = this.componentList.getComponent(formName);
126
+ this.RootComponentParameters = { taskIdParam: taskId, taskDescription: taskDescription };
127
+ }
128
+ this.changeDetectorRef.detectChanges();
129
+ }
130
+ registerUICommands() {
131
+ this.engineMagicService.refreshDom.pipe(filter(command => command.TaskTag === '0'))
132
+ .subscribe(command => {
133
+ this.executeCommand(command);
134
+ });
135
+ this.engineMagicService
136
+ .interactiveCommands.pipe(filter(command => command.TaskTag === '0'))
137
+ .subscribe(command => {
138
+ GuiInteractiveExecutor.executeInteractiveCommand(null, command, this.overlayWindowService);
139
+ });
140
+ }
141
+ executeCommand(command) {
142
+ switch (command.CommandType) {
143
+ case CommandType.OPEN_FORM:
144
+ this.setComponent(command.str, command.stringList[0], command.stringList[1], command.Bool1);
145
+ break;
146
+ case CommandType.SET_IS_LOGGED_IN:
147
+ this.engineMagicService.setIsLoggedIn(command.Bool1);
148
+ break;
149
+ case CommandType.CLOSE_FORM:
150
+ if (this.RootComponent != null && command.str === this.RootComponentParameters.taskIdParam) {
151
+ this.RootComponent = null;
152
+ this.RootComponentParameters = {};
153
+ this.changeDetectorRef.detectChanges();
154
+ }
155
+ else {
156
+ this.overlayWindowService.close(command.str);
157
+ this.changeDetectorRef.detectChanges();
158
+ }
159
+ break;
160
+ case CommandType.RELOAD_PAGE:
161
+ window.location.reload();
162
+ break;
163
+ case CommandType.SHOW_SPINNER:
164
+ if (this.showSpinner != command.Bool1) {
165
+ this.showSpinner = command.Bool1;
166
+ this.changeDetectorRef.detectChanges();
167
+ }
168
+ break;
169
+ case CommandType.EXIT_MAGIC:
170
+ if (this.exitMagicService)
171
+ this.exitMagicService.exitMagic();
172
+ break;
173
+ case CommandType.SHOW_HTML_ERROR:
174
+ window.document.write(command.str);
175
+ break;
176
+ }
177
+ }
178
+ static ɵfac = function MagicShellComponent_Factory(t) { return new (t || MagicShellComponent)(i0.ɵɵdirectiveInject(i1.EngineMagicService), i0.ɵɵdirectiveInject(i2.ComponentListMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.Title), i0.ɵɵdirectiveInject(i4.OverlayWindowService), i0.ɵɵdirectiveInject(i5.HttpClient), i0.ɵɵdirectiveInject(i6.CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i7.ActivatedRoute), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.ExitMagicService, 8)); };
179
+ static ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent, selectors: [["magic-root"]], viewQuery: function MagicShellComponent_Query(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵviewQuery(_c0, 7);
181
+ } if (rf & 2) {
182
+ let _t;
183
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootMagicElementRef = _t.first);
184
+ } }, hostBindings: function MagicShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, false, i0.ɵɵresolveWindow)("unload", function MagicShellComponent_unload_HostBindingHandler($event) { return ctx.onUnload($event); }, false, i0.ɵɵresolveWindow);
186
+ } }, inputs: { SpinnerTemplate: "SpinnerTemplate" }, features: [i0.ɵɵProvidersFeature([])], decls: 8, vars: 2, consts: [["magicRoot", ""], ["overlayWindowsContainer", ""], ["defaultSpinner", ""], [3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], ["magicViewContainerRef", ""], ["class", "spinner-background", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"], [1, "spinner-background"], [3, "ngTemplateOutlet"], [1, "mgSpinnerClass"]], template: function MagicShellComponent_Template(rf, ctx) { if (rf & 1) {
187
+ i0.ɵɵelementStart(0, "div", null, 0);
188
+ i0.ɵɵtemplate(2, MagicShellComponent_ndc_dynamic_2_Template, 1, 2, "ndc-dynamic", 3);
189
+ i0.ɵɵelement(3, "div", 4, 1);
190
+ i0.ɵɵelementEnd();
191
+ i0.ɵɵtemplate(5, MagicShellComponent_div_5_Template, 2, 1, "div", 5)(6, MagicShellComponent_ng_template_6_Template, 1, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
192
+ } if (rf & 2) {
193
+ i0.ɵɵadvance(2);
194
+ i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
195
+ i0.ɵɵadvance(3);
196
+ i0.ɵɵproperty("ngIf", ctx.showSpinner);
197
+ } }, dependencies: [i9.NgIf, i9.NgTemplateOutlet, i10.DynamicComponent, i10.DynamicIoDirective, i11.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)}}"] });
198
+ }
199
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
200
+ type: Component,
201
+ args: [{ selector: 'magic-root', providers: [], template: `
202
+ <div #magicRoot>
203
+ <ndc-dynamic
204
+ *ngIf = "RootComponent !== null"
205
+ [ndcDynamicComponent]="RootComponent"
206
+ [ndcDynamicInputs] ="RootComponentParameters">
207
+ </ndc-dynamic>
208
+
209
+ <div #overlayWindowsContainer magicViewContainerRef>
210
+ </div>
211
+ </div>
212
+
213
+ <div class="spinner-background" *ngIf="showSpinner">
214
+ <ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
215
+ </div>
216
+
217
+ <ng-template #defaultSpinner>
218
+ <div class="mgSpinnerClass"></div>
219
+ </ng-template>
220
+ `, 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"] }]
221
+ }], () => [{ type: i1.EngineMagicService }, { type: i2.ComponentListMagicService }, { type: i0.ChangeDetectorRef }, { type: i3.Title }, { type: i4.OverlayWindowService }, { type: i5.HttpClient }, { type: i6.CommandsCollectorMagicService }, { type: i7.ActivatedRoute }, { type: i7.Router }, { type: i8.ExitMagicService, decorators: [{
222
+ type: Optional
223
+ }] }], { rootMagicElementRef: [{
224
+ type: ViewChild,
225
+ args: ['magicRoot', { static: true }]
226
+ }], SpinnerTemplate: [{
227
+ type: Input
228
+ }], onBeforeUnload: [{
229
+ type: HostListener,
230
+ args: ['window:beforeunload', ['$event']]
231
+ }], onUnload: [{
232
+ type: HostListener,
233
+ args: ['window:unload', ['$event']]
234
+ }] }); })();
235
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MagicShellComponent, { className: "MagicShellComponent", filePath: "src\\ui\\magic-root.component.ts", lineNumber: 85 }); })();
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1yb290LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQVloRSxpQ0FJYzs7O0lBRFosQUFEQSwwREFBcUMsb0RBQ1U7OztJQU9uRCw4QkFBb0Q7SUFDbEQsMkJBQW1HO0lBQ3JHLGlCQUFNOzs7O0lBRFUsY0FBcUU7SUFBckUsc0dBQXFF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RSxZQUFZLGFBQ1gsRUFFVixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUOztzQkFxRVksUUFBUTtxQkF6QnFCLG1CQUFtQjtrQkFBNUQsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBRS9CLGVBQWU7a0JBQXZCLEtBQUs7WUFrQ04sY0FBYztrQkFEYixZQUFZO21CQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO1lBaUIvQyxRQUFRO2tCQURQLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztrRkEvRDlCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWFuZFR5cGUsIEd1aUNvbW1hbmQgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEVuZ2luZU1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VuZ2luZS5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBvbmVudC1saXN0Lm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yIH0gZnJvbSAnLi9HdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeGl0TWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXhpdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZlcmxheVdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9PdmVybGF5V2luZG93U2VydmljZSc7XHJcbmltcG9ydCB7IElNYWdpY1ZpZXdDb250YWluZXJSZWYgfSBmcm9tICcuLi8uLic7XHJcbmltcG9ydCB7IENvbW1hbmRzQ29sbGVjdG9yTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBSb290IE1hZ2ljIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYWdpYy1yb290JyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgLy8gRXhpdE1hZ2ljU2VydmljZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI21hZ2ljUm9vdD5cclxuICAgICAgPG5kYy1keW5hbWljXHJcbiAgICAgICAgKm5nSWYgPSBcIlJvb3RDb21wb25lbnQgIT09IG51bGxcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIlJvb3RDb21wb25lbnRcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljSW5wdXRzXSAgID1cIlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzXCI+XHJcbiAgICAgIDwvbmRjLWR5bmFtaWM+XHJcblxyXG4gICAgICA8ZGl2ICNvdmVybGF5V2luZG93c0NvbnRhaW5lciBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYmFja2dyb3VuZFwiICpuZ0lmPVwic2hvd1NwaW5uZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJTcGlubmVyVGVtcGxhdGUgPyBTcGlubmVyVGVtcGxhdGU6ZGVmYXVsdFNwaW5uZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNwaW5uZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZ1NwaW5uZXJDbGFzc1wiPjwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5tZ1NwaW5uZXJDbGFzcyB7XHJcbiAgICAgIGJvcmRlcjogMTBweCBzb2xpZCAjY2NjY2NjOyAvKiBMaWdodCBncmV5ICovXHJcbiAgICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgYmxhY2s7IC8qIEJsdWUgKi9cclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICB9XHJcbiAgICAuc3Bpbm5lci1iYWNrZ3JvdW5kIHtcclxuICAgICAgLyogYmFja2dyb3VuZCBmaXhlZCBhY3Jvc3Mgd2hvbGUgc2NyZWVuICovXHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcbiAgICBAa2V5ZnJhbWVzIHNwaW4ge1xyXG4gICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcclxuICAvKipcclxuICAgKiBSb290IGNvbXBvbmVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHdpbmRvd1xyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnQgOiBDb21wb25lbnQgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIHBhcmFtZXRlcnMgZm9yIHRoZSBSb290IENvbXBvbmVudFxyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnRQYXJhbWV0ZXJzIDogYW55O1xyXG5cclxuICBvdmVybGF5V2luZG93c0NvbnRhaW5lclZpZXdSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21hZ2ljUm9vdCcsIHsgc3RhdGljOiB0cnVlIH0pIHJvb3RNYWdpY0VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIFNwaW5uZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgc2hvd1NwaW5uZXI6IGJvb2xlYW47XHJcbiAgbWFnaWNFbmdpbmVUZXJtaW5hdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hZ2ljIE1hZ2ljJ3Mgc2VydmljZVxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRMaXN0IE1hZ2ljIGNvbXBvbmVudCBsaXN0XHJcbiAgICogQHBhcmFtIGNoYW5nZURldGVjdG9yUmVmIENoYW5nZXMgZGV0ZWN0b3JcclxuICAgKiBAcGFyYW0gdGl0bGVTZXJ2aWNlIFRpdGxlIHNldHRpbmcgc2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBuYXRpdmUgaHR0cENsaWVudCBpbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBleGl0TWFnaWNTZXJ2aWNlIE1hZ2ljIGV4aXQgc2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbmdpbmVNYWdpY1NlcnZpY2U6IEVuZ2luZU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29tcG9uZW50TGlzdDpDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFRpdGxlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheVdpbmRvd1NlcnZpY2U6IE92ZXJsYXlXaW5kb3dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvcjogQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSAgcHVibGljIGV4aXRNYWdpY1NlcnZpY2U6IEV4aXRNYWdpY1NlcnZpY2UpIHtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIHRoaXMuc2V0VGl0bGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJlZm9yZS11bmxvYWQgZXZlbnQgbGlzdGVuZXJcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcclxuICBvbkJlZm9yZVVubG9hZChldmVudCkge1xyXG4gICAgaWYodGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVHJhbnNDYWNoZUV4aXN0cygpKVxyXG4gICAge1xyXG4gICAgICAvLyBTaG93IHRoZSBjb25maXJtYXRpb24gYm94IGJlZm9yZSB1bmxvYWRpbmcgdGhlIGJyb3dzZXJcclxuICAgICAgZXZlbnQucmV0dXJuVmFsdWUgPSAnQXJlIHlvdSBzdXJlPyc7XHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlPyc7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgIC8vIHRlcm1pbmF0ZSB0aGUgbWFnaWMgc2VydmVyIGNvbnRleHQgdXNpbmcgZmV0Y2ggQVBJIHdpdGgga2VlcC1hbGl2ZVxyXG4gICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5UZXJtaW5hdGVDb250ZXh0VXNpbmdGZXRjaEFQSSgpO1xyXG4gICAgICB0aGlzLm1hZ2ljRW5naW5lVGVybWluYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dW5sb2FkJywgWyckZXZlbnQnXSlcclxuICBvblVubG9hZChldmVudCkge1xyXG4gICAgLy8gQ2hyb21lIHByb3ZpZGVzIGFuIG9wcG9ydHVuaXR5IHRvIHRlcm1pbmF0ZSB0aGUgY29udGV4dCBhZnRlciB1c2VyIGFwcHJvdmVzIHRoZSBicm93c2VyIHVubG9hZCBhbGVydFxyXG4gICAgaWYoIXRoaXMubWFnaWNFbmdpbmVUZXJtaW5hdGVkKVxyXG4gICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5UZXJtaW5hdGVDb250ZXh0VXNpbmdGZXRjaEFQSSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5vdmVybGF5V2luZG93U2VydmljZS5pbml0KHRoaXMub3ZlcmxheVdpbmRvd3NDb250YWluZXJWaWV3UmVmLCB0aGlzLnJvb3RNYWdpY0VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgbGV0IHN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMucm91dGVyLm5hdmlnYXRlZCkge1xyXG4gICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xyXG4gICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG5cclxuICAgICAgICAgIC8vIEl0ZXJhdGUgb3ZlciB0aGUgcXVlcnlQYXJhbXMgb2JqZWN0IGFuZCBwb3B1bGF0ZSB0aGUgTWFwXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBxdWVyeVBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAocXVlcnlQYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zTWFwLnNldChrZXksIHF1ZXJ5UGFyYW1zW2tleV0udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5zdGFydE1hZ2ljRW5naW5lKHRoaXMuaHR0cENsaWVudCwgcXVlcnlQYXJhbXNNYXApO1xyXG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFZpZXdDb250YWluZXJSZWYodmNSZWY6IFZpZXdDb250YWluZXJSZWYpe1xyXG4gICAgdGhpcy5vdmVybGF5V2luZG93c0NvbnRhaW5lclZpZXdSZWYgPSB2Y1JlZjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemF0aW9uIG9mIE1hZ2ljIG1lY2hhbmlzbXNcclxuICAgKi9cclxuICBpbml0aWFsaXplKCkge1xyXG4gICAgdGhpcy5yZWdpc3RlclVJQ29tbWFuZHMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgdGl0bGVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VGl0bGUoICkge1xyXG4gICAgY29uc3QgbmV3VGl0bGU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50TGlzdC50aXRsZTtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKCBuZXdUaXRsZSApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBjb21wb25lbnQgYWNjb3JkaW5nIHRvIHJlcXVlc3RlZCBmb3JtXHJcbiAgICogQHBhcmFtIGZvcm1OYW1lIE5hbWUgb2YgdGhlIGZvcm0gdG8gb3BlblxyXG4gICAqIEBwYXJhbSB0YXNrSWQgSWQgb2Ygb3BlbmluZyB0YXNrXHJcbiAgICogQHBhcmFtIHRhc2tEZXNjcmlwdGlvbiBUT0RPXHJcbiAgICogQHBhcmFtIGlzTW9kYWwgd2hldGhlciBtb2RhbCB3aW5kb3cgaXMgYmVpbmcgb3BlbmVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRDb21wb25lbnQoZm9ybU5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcsIHRhc2tEZXNjcmlwdGlvbjogc3RyaW5nLCBpc01vZGFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnBlbmRpbmdDb21tYW5kc0NvbGxlY3Rvci5zdGFydENvbGxlY3RpbmcoKTtcclxuXHJcbiAgICBpZihpc01vZGFsKSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2Uub3Blbihmb3JtTmFtZSwgdGFza0lkLCB0YXNrRGVzY3JpcHRpb24pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuUm9vdENvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50TGlzdC5nZXRDb21wb25lbnQoZm9ybU5hbWUpO1xyXG4gICAgICB0aGlzLlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzID0geyB0YXNrSWRQYXJhbTogdGFza0lkLCB0YXNrRGVzY3JpcHRpb246IHRhc2tEZXNjcmlwdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJVSUNvbW1hbmRzKCkge1xyXG4gICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UucmVmcmVzaERvbS5waXBlKFxyXG4gICAgICBmaWx0ZXIoY29tbWFuZCA9PiBjb21tYW5kLlRhc2tUYWcgPT09ICcwJykpXHJcbiAgICAgIC5zdWJzY3JpYmUoY29tbWFuZCA9PiB7XHJcbiAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZChjb21tYW5kKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZVxyXG4gICAgICAuaW50ZXJhY3RpdmVDb21tYW5kcy5waXBlKFxyXG4gICAgICBmaWx0ZXIoY29tbWFuZCA9PiBjb21tYW5kLlRhc2tUYWcgPT09ICcwJykpXHJcbiAgICAgIC5zdWJzY3JpYmUoY29tbWFuZCA9PiB7XHJcbiAgICAgICAgR3VpSW50ZXJhY3RpdmVFeGVjdXRvci5leGVjdXRlSW50ZXJhY3RpdmVDb21tYW5kKG51bGwsIGNvbW1hbmQsIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2UpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGUgY29tbWFuZHMgcmVjZWl2ZWQgZnJvbSB0aGUgTWFnaWMgV2ViQ2xpZW50IGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICovXHJcbiAgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZDogR3VpQ29tbWFuZCk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChjb21tYW5kLkNvbW1hbmRUeXBlKSB7XHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuT1BFTl9GT1JNOlxyXG4gICAgICAgICAgdGhpcy5zZXRDb21wb25lbnQoY29tbWFuZC5zdHIsIGNvbW1hbmQuc3RyaW5nTGlzdFswXSwgY29tbWFuZC5zdHJpbmdMaXN0WzFdLCBjb21tYW5kLkJvb2wxKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TRVRfSVNfTE9HR0VEX0lOOlxyXG4gICAgICAgIHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlLnNldElzTG9nZ2VkSW4oY29tbWFuZC5Cb29sMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLkNMT1NFX0ZPUk06XHJcbiAgICAgICAgaWYgKHRoaXMuUm9vdENvbXBvbmVudCAhPSBudWxsICYmIGNvbW1hbmQuc3RyID09PSB0aGlzLlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzLnRhc2tJZFBhcmFtKSB7XHJcbiAgICAgICAgICB0aGlzLlJvb3RDb21wb25lbnQgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5Sb290Q29tcG9uZW50UGFyYW1ldGVycyA9IHt9O1xyXG5cclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHsgLy8gQ2xvc2UgbW9kYWwgd2luZG93XHJcbiAgICAgICAgICB0aGlzLm92ZXJsYXlXaW5kb3dTZXJ2aWNlLmNsb3NlKGNvbW1hbmQuc3RyKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuUkVMT0FEX1BBR0U6XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TSE9XX1NQSU5ORVI6XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd1NwaW5uZXIgIT0gY29tbWFuZC5Cb29sMSkge1xyXG4gICAgICAgICAgdGhpcy5zaG93U3Bpbm5lciA9IGNvbW1hbmQuQm9vbDE7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLkVYSVRfTUFHSUM6XHJcbiAgICAgICAgaWYgKHRoaXMuZXhpdE1hZ2ljU2VydmljZSlcclxuICAgICAgICAgIHRoaXMuZXhpdE1hZ2ljU2VydmljZS5leGl0TWFnaWMoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0hPV19IVE1MX0VSUk9SOlxyXG4gICAgICAgIHdpbmRvdy5kb2N1bWVudC53cml0ZShjb21tYW5kLnN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from "@angular/core";
2
+ import { AccessorMagicService } from "../services/accessor.magic.service";
3
+ import { TaskMagicService } from "../services/task.magics.service";
4
+ import { isUndefined } from "@magic-xpa/mscorelib";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/task.magics.service";
7
+ import * as i2 from "../services/accessor.magic.service";
8
+ import * as i3 from "@angular/common";
9
+ const _c0 = ["customContent"];
10
+ const _c1 = ["*"];
11
+ function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "span");
13
+ i0.ɵɵtext(1);
14
+ i0.ɵɵelementEnd();
15
+ } if (rf & 2) {
16
+ const ctx_r0 = i0.ɵɵnextContext(2);
17
+ i0.ɵɵadvance();
18
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.mgService.getErrMsg(ctx_r0.id, ctx_r0.rowId), " ");
19
+ } }
20
+ function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "div")(1, "div", null, 0);
22
+ i0.ɵɵprojection(3);
23
+ i0.ɵɵelementEnd();
24
+ i0.ɵɵtemplate(4, ErrorMagicComponent_div_0_span_4_Template, 2, 1, "span", 1);
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const ctx_r0 = i0.ɵɵnextContext();
28
+ i0.ɵɵadvance(4);
29
+ i0.ɵɵproperty("ngIf", ctx_r0.defaultDisplay);
30
+ } }
31
+ export class ErrorMagicComponent {
32
+ _task;
33
+ mgService;
34
+ changeDetectorRef;
35
+ id;
36
+ rowId;
37
+ set magic(val) {
38
+ this.id = val;
39
+ }
40
+ ;
41
+ set rowId1(val) {
42
+ this.rowId = val;
43
+ }
44
+ ;
45
+ defaultDisplay = true;
46
+ set CustomContent(innerComponent) {
47
+ this.defaultDisplay = innerComponent == undefined || this.isEmpty(innerComponent.nativeElement);
48
+ this.changeDetectorRef.detectChanges();
49
+ }
50
+ ;
51
+ constructor(_task, mgService, changeDetectorRef) {
52
+ this._task = _task;
53
+ this.mgService = mgService;
54
+ this.changeDetectorRef = changeDetectorRef;
55
+ this.rowId = "0";
56
+ }
57
+ isEmpty(element) {
58
+ const nodes = element.childNodes;
59
+ for (let i = 0; i < nodes.length; i++) {
60
+ const node = nodes.item(i);
61
+ if (node.nodeType !== 8 && nodes.item(i).textContent.trim().length !== 0) {
62
+ return false;
63
+ }
64
+ }
65
+ return true;
66
+ }
67
+ HasErrors(id) {
68
+ if (!isUndefined(id)) {
69
+ let control = this._task.getFormControl(this.rowId, id);
70
+ if (control !== null) {
71
+ if (control.dirty && (control.hasError('pattern') || control.hasError('required') ||
72
+ control.hasError('rangevalidator') || control.hasError('maxlength') || control.hasError('max')))
73
+ return true;
74
+ if (control.touched && control.hasError('required'))
75
+ return true;
76
+ if (this._task.Records.list[this.rowId] && this._task.Records.list[this.rowId].getControlMetadata(id)) {
77
+ let controlMetadata = this._task.Records.list[this.rowId].getControlMetadata(id);
78
+ for (let customValidator of controlMetadata.customValidators.keys()) {
79
+ if (control.hasError(customValidator))
80
+ return true;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ static ɵfac = function ErrorMagicComponent_Factory(t) { return new (t || ErrorMagicComponent)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i2.AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
88
+ static ɵcmp = i0.ɵɵdefineComponent({ type: ErrorMagicComponent, selectors: [["mgError"]], viewQuery: function ErrorMagicComponent_Query(rf, ctx) { if (rf & 1) {
89
+ i0.ɵɵviewQuery(_c0, 5);
90
+ } if (rf & 2) {
91
+ let _t;
92
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CustomContent = _t.first);
93
+ } }, inputs: { magic: "magic", rowId1: [i0.ɵɵInputFlags.None, "rowId", "rowId1"] }, ngContentSelectors: _c1, decls: 1, vars: 1, consts: [["customContent", ""], [4, "ngIf"]], template: function ErrorMagicComponent_Template(rf, ctx) { if (rf & 1) {
94
+ i0.ɵɵprojectionDef();
95
+ i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 1);
96
+ } if (rf & 2) {
97
+ i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
98
+ } }, dependencies: [i3.NgIf], encapsulation: 2 });
99
+ }
100
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
101
+ type: Component,
102
+ args: [{
103
+ selector: 'mgError',
104
+ template: `<div *ngIf="HasErrors(id)">
105
+ <div #customContent>
106
+ <ng-content></ng-content>
107
+ </div>
108
+ <span *ngIf="defaultDisplay">
109
+ {{mgService.getErrMsg(id, rowId)}}
110
+ </span>
111
+ </div>
112
+ `
113
+ }]
114
+ }], () => [{ type: i1.TaskMagicService }, { type: i2.AccessorMagicService }, { type: i0.ChangeDetectorRef }], { magic: [{
115
+ type: Input,
116
+ args: ['magic']
117
+ }], rowId1: [{
118
+ type: Input,
119
+ args: ['rowId']
120
+ }], CustomContent: [{
121
+ type: ViewChild,
122
+ args: ['customContent', { static: false }]
123
+ }] }); })();
124
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorMagicComponent, { className: "ErrorMagicComponent", filePath: "src\\ui\\mgerror.magic.component.ts", lineNumber: 22 }); })();
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdlcnJvci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tZ2Vycm9yLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7SUFXOUMsNEJBQTZCO0lBQzVCLFlBQ0Y7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLG9GQUNGOzs7SUFMQSxBQURZLDJCQUEyQixtQkFDbkI7SUFDbEIsa0JBQXlCO0lBQzNCLGlCQUFNO0lBQ0wsNEVBQTZCO0lBRzlCLGlCQUFNOzs7SUFIRSxlQUFvQjtJQUFwQiw0Q0FBb0I7O0FBT2hDLE1BQU0sT0FBTyxtQkFBbUI7SUE2QlI7SUFBZ0M7SUFBMkM7SUF6QmpHLEVBQUUsQ0FBUztJQUNYLEtBQUssQ0FBUztJQUlkLElBQW9CLEtBQUssQ0FBQyxHQUFHO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBb0IsTUFBTSxDQUFDLEdBQUc7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUFBLENBQUM7SUFHRixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRXRCLElBQW1ELGFBQWEsQ0FBQyxjQUEwQjtRQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFD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LEVBQUs7Ozs7Ozs7O0NBUWQ7YUFBQztvSEFZb0IsS0FBSztrQkFBeEIsS0FBSzttQkFBQyxPQUFPO1lBSU0sTUFBTTtrQkFBekIsS0FBSzttQkFBQyxPQUFPO1lBT3FDLGFBQWE7a0JBQS9ELFNBQVM7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7a0ZBcEJsQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY2Nlc3Nvck1hZ2ljU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBNYWdpYyBzdWJmb3JtXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21nRXJyb3InLFxyXG4gIHRlbXBsYXRlOiAgICBgPGRpdiAqbmdJZj1cIkhhc0Vycm9ycyhpZClcIj5cclxuICAgIDxkaXYgI2N1c3RvbUNvbnRlbnQ+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgIDxzcGFuICpuZ0lmPVwiZGVmYXVsdERpc3BsYXlcIj5cclxuICAgICAge3ttZ1NlcnZpY2UuZ2V0RXJyTXNnKGlkLCByb3dJZCl9fSBcclxuICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRXJyb3JNYWdpY0NvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcm93SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgQElucHV0KCdtYWdpYycpIHNldCBtYWdpYyh2YWwpIHtcclxuICAgIHRoaXMuaWQgPSB2YWw7XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCdyb3dJZCcpIHNldCByb3dJZDEodmFsKSB7XHJcbiAgICB0aGlzLnJvd0lkID0gdmFsO1xyXG4gIH07XHJcblxyXG4gIC8vIGlmIHRydWUgLSBkaXNwbGF5IHN0YW5kYXJkIG1hZ2ljIGVycm9yIG1lc3NhZ2UsIGlmIGZhbHNlIC0gY3VzdG9tZXIgaGFzIHByb3ZpZGVzIGhpcyBvd24gY29udGVudCBhbmQgd2UnbGwgdXNlIGl0XHJcbiAgZGVmYXVsdERpc3BsYXkgPSB0cnVlO1xyXG5cclxuICBAVmlld0NoaWxkKCdjdXN0b21Db250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNldCBDdXN0b21Db250ZW50KGlubmVyQ29tcG9uZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmRlZmF1bHREaXNwbGF5ID0gaW5uZXJDb21wb25lbnQgPT0gdW5kZWZpbmVkIHx8IHRoaXMuaXNFbXB0eShpbm5lckNvbXBvbmVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrOiBUYXNrTWFnaWNTZXJ2aWNlLCBwdWJsaWMgbWdTZXJ2aWNlOiBBY2Nlc3Nvck1hZ2ljU2VydmljZSwgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiApIHtcclxuICAgIHRoaXMucm93SWQgPSBcIjBcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgaHRtbCBlbGVtZW50IGhhcyBubyBjaGlsZHJlblxyXG4gICAqIEBwYXJhbSBlbGVtZW50XHJcbiAgICovXHJcbiAgaXNFbXB0eShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZXMgPSBlbGVtZW50LmNoaWxkTm9kZXM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBub2Rlcy5pdGVtKGkpO1xyXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gOCAmJiBub2Rlcy5pdGVtKGkpLnRleHRDb250ZW50LnRyaW0oKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEhhc0Vycm9ycyhpZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGlkKSkge1xyXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5yb3dJZCwgaWQpO1xyXG4gICAgICBpZiAoY29udHJvbCAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChjb250cm9sLmRpcnR5ICYmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykgfHwgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSB8fFxyXG4gICAgICAgICAgY29udHJvbC5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSB8fCBjb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSB8fCBjb250cm9sLmhhc0Vycm9yKCdtYXgnKSkpXHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpXHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0gJiYgdGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0uZ2V0Q29udHJvbE1ldGFkYXRhKGlkKSl7XHJcbiAgICAgICAgICBsZXQgY29udHJvbE1ldGFkYXRhID0gdGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0uZ2V0Q29udHJvbE1ldGFkYXRhKGlkKTtcclxuICAgICAgICAgIGZvciAobGV0IGN1c3RvbVZhbGlkYXRvciBvZiBjb250cm9sTWV0YWRhdGEuY3VzdG9tVmFsaWRhdG9ycy5rZXlzKCkpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoY3VzdG9tVmFsaWRhdG9yKSlcclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -0,0 +1,106 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DatePipe } from '@angular/common';
3
+ import { TaskMagicService } from '../../services/task.magics.service';
4
+ import { StringBuilder, isNullOrUndefined } from "@magic-xpa/mscorelib";
5
+ import { PICInterface } from "@magic-xpa/utils";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/task.magics.service";
8
+ export class Constants {
9
+ static DATE_FMT = 'dd/MMM/yyyy';
10
+ }
11
+ export class DateMagicPipe extends DatePipe {
12
+ _task;
13
+ constructor(_task) {
14
+ super('en-US');
15
+ this._task = _task;
16
+ }
17
+ transform(value, controlId) {
18
+ let mask = this._task.GetControlPictureMask(controlId).getMask();
19
+ let formatStr = null;
20
+ let mgDateFormatter = new MgDateFormatter();
21
+ if (!isNullOrUndefined(value) && mask !== null) {
22
+ formatStr = mgDateFormatter.ConvertMgDateFormatToAngular(mask);
23
+ if (formatStr != null && this._task.isTableControl(controlId)) {
24
+ if (this._task.mgInputDateFormat == null)
25
+ this._task.mgInputDateFormat = formatStr;
26
+ else
27
+ formatStr = this._task.mgInputDateFormat;
28
+ }
29
+ return super.transform(value, formatStr);
30
+ }
31
+ else
32
+ value = "";
33
+ return value;
34
+ }
35
+ static ɵfac = function DateMagicPipe_Factory(t) { return new (t || DateMagicPipe)(i0.ɵɵdirectiveInject(i1.TaskMagicService, 16)); };
36
+ static ɵpipe = i0.ɵɵdefinePipe({ name: "magicDate", type: DateMagicPipe, pure: true });
37
+ }
38
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateMagicPipe, [{
39
+ type: Pipe,
40
+ args: [{
41
+ name: 'magicDate'
42
+ }]
43
+ }], () => [{ type: i1.TaskMagicService }], null); })();
44
+ export class MgDateFormatter {
45
+ ConvertMgDateFormatToAngular(mgDateMask) {
46
+ let formatStr = new StringBuilder();
47
+ if (mgDateMask !== null) {
48
+ for (let i = 0; i < mgDateMask.length;) {
49
+ switch (mgDateMask.charCodeAt(i)) {
50
+ case PICInterface.PIC_YYYY:
51
+ formatStr.Append('yyyy');
52
+ i += 4;
53
+ break;
54
+ case PICInterface.PIC_MMD:
55
+ formatStr.Append('MM');
56
+ i += 2;
57
+ break;
58
+ case PICInterface.PIC_YY:
59
+ formatStr.Append('yy');
60
+ i += 2;
61
+ break;
62
+ case PICInterface.PIC_MMM:
63
+ {
64
+ let cnt = 0;
65
+ for (; i < mgDateMask.length; i++)
66
+ if (mgDateMask.charCodeAt(i) == PICInterface.PIC_MMM)
67
+ cnt++;
68
+ else
69
+ break;
70
+ if (cnt == 3)
71
+ formatStr.Append('MMM');
72
+ if (cnt > 3)
73
+ formatStr.Append('MMMM');
74
+ }
75
+ break;
76
+ case PICInterface.PIC_DD:
77
+ formatStr.Append('dd');
78
+ i += 2;
79
+ break;
80
+ case PICInterface.PIC_WWW:
81
+ {
82
+ let cnt = 0;
83
+ for (; i < mgDateMask.length; i++)
84
+ if (mgDateMask.charCodeAt(i) == PICInterface.PIC_WWW)
85
+ cnt++;
86
+ else
87
+ break;
88
+ if (cnt == 3)
89
+ formatStr.Append('EEE');
90
+ if (cnt > 3)
91
+ formatStr.Append('EEEE');
92
+ }
93
+ break;
94
+ default:
95
+ formatStr.Append(mgDateMask.charAt(i));
96
+ i++;
97
+ break;
98
+ }
99
+ }
100
+ return formatStr.ToString();
101
+ }
102
+ else
103
+ return "dd-mm-yyyy";
104
+ }
105
+ }
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5tYWdpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvcGlwZXMvZGF0ZS5tYWdpYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUE7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFBOzs7QUFNN0MsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFVLFFBQVEsR0FBRyxhQUFhLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQUVuQjtJQUF0QixZQUFzQixLQUF1QjtRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUczQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEtBQVUsRUFBRSxTQUFpQjtRQUVyQyxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFFLElBQUksU0FBUyxHQUFXLElBQUksQ0FBQztRQUM3QixJQUFJLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBRSxJQUFJLENBQUMsQ0FBQztZQUVoRSxJQUFJLFNBQVMsSUFB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QUMsTUFBTSxDQUFDLENBQUM7d0JBQzNCLENBQUM7d0JBRUQsTUFBTTtvQkFFUjt3QkFDRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsQ0FBQyxFQUFFLENBQUM7d0JBQ0osTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7O1lBRUMsT0FBTyxZQUFZLENBQUM7SUFFeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7U3RyaW5nQnVpbGRlciwgaXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiXHJcbmltcG9ydCB7UElDSW50ZXJmYWNlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiXHJcblxyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb25zdGFudHMge1xyXG4gIHN0YXRpYyByZWFkb25seSBEQVRFX0ZNVCA9ICdkZC9NTU0veXl5eSc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ21hZ2ljRGF0ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVNYWdpY1BpcGUgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCdlbi1VUycpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGNvbnRyb2xJZDogc3RyaW5nKTogYW55IHtcclxuXHJcbiAgICBsZXQgbWFzazogc3RyaW5nID0gdGhpcy5fdGFzay5HZXRDb250cm9sUGljdHVyZU1hc2sgKGNvbnRyb2xJZCkuZ2V0TWFzaygpO1xyXG4gICAgbGV0IGZvcm1hdFN0cjogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBtZ0RhdGVGb3JtYXR0ZXIgPSBuZXcgTWdEYXRlRm9ybWF0dGVyKCk7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSAmJiBtYXNrICE9PSBudWxsKSB7XHJcbiAgICAgIGZvcm1hdFN0ciA9IG1nRGF0ZUZvcm1hdHRlci5Db252ZXJ0TWdEYXRlRm9ybWF0VG9Bbmd1bGFyIChtYXNrKTtcclxuICAgICAgLy8gSWYgY29udHJvbCBpcyBsYWJlbCBjb250cm9sIG9mIHRhYmxlLCBkdWUgdG8gcXVlcnkgbW9kZSwgdGhlbiBzYXZlIHRoZSBmb3JtYXQgaGVyZS5cclxuICAgICAgaWYgKGZvcm1hdFN0ciAhPSBudWxsICYmIHRoaXMuX3Rhc2suaXNUYWJsZUNvbnRyb2woY29udHJvbElkKSkge1xyXG4gICAgICAgIGlmICh0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IG51bGwpXHJcbiAgICAgICAgICB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID0gZm9ybWF0U3RyO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGZvcm1hdFN0ciA9IHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0U3RyKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdmFsdWUgPSBcIlwiO1xyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCAgY2xhc3MgTWdEYXRlRm9ybWF0dGVyIHtcclxuXHJcbiAgQ29udmVydE1nRGF0ZUZvcm1hdFRvQW5ndWxhcihtZ0RhdGVNYXNrOiBzdHJpbmcpIDogc3RyaW5nXHJcbiAge1xyXG4gICAgbGV0IGZvcm1hdFN0cjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyICgpO1xyXG5cclxuICAgIGlmIChtZ0RhdGVNYXNrICE9PSBudWxsKSB7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBtZ0RhdGVNYXNrLmxlbmd0aDspIHtcclxuICAgICAgICBzd2l0Y2ggKG1nRGF0ZU1hc2suY2hhckNvZGVBdChpKSkge1xyXG4gICAgICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX1lZWVk6XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQoJ3l5eXknKTtcclxuICAgICAgICAgICAgaSArPSA0O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19NTUQ6XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQoJ01NJyk7XHJcbiAgICAgICAgICAgIGkgKz0gMjtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFBJQ0ludGVyZmFjZS5QSUNfWVk6XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQoJ3l5Jyk7XHJcbiAgICAgICAgICAgIGkgKz0gMjtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFBJQ0ludGVyZmFjZS5QSUNfTU1NOlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgY250ID0gMDtcclxuICAgICAgICAgICAgZm9yICAoO2kgPCBtZ0RhdGVNYXNrLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgIGlmIChtZ0RhdGVNYXNrLmNoYXJDb2RlQXQoaSkgPT0gUElDSW50ZXJmYWNlLlBJQ19NTU0pXHJcbiAgICAgICAgICAgICAgICBjbnQrKztcclxuICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGlmIChjbnQgPT0gMylcclxuICAgICAgICAgICAgICBmb3JtYXRTdHIuQXBwZW5kKCdNTU0nKTtcclxuICAgICAgICAgICAgaWYgKGNudCA+IDMpXHJcbiAgICAgICAgICAgICAgZm9ybWF0U3RyLkFwcGVuZCgnTU1NTScpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFBJQ0ludGVyZmFjZS5QSUNfREQ6XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQoJ2RkJyk7XHJcbiAgICAgICAgICAgIGkgKz0gMjtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19XV1c6IHtcclxuICAgICAgICAgICAgbGV0IGNudCA9IDA7XHJcbiAgICAgICAgICAgIGZvciAgKDtpIDwgbWdEYXRlTWFzay5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICBpZiAobWdEYXRlTWFzay5jaGFyQ29kZUF0KGkpID09IFBJQ0ludGVyZmFjZS5QSUNfV1dXKVxyXG4gICAgICAgICAgICAgICAgY250Kys7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBpZiAoY250ID09IDMpXHJcbiAgICAgICAgICAgICAgZm9ybWF0U3RyLkFwcGVuZCgnRUVFJyk7XHJcbiAgICAgICAgICAgIGlmIChjbnQgPiAzKVxyXG4gICAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQoJ0VFRUUnKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgZm9ybWF0U3RyLkFwcGVuZChtZ0RhdGVNYXNrLmNoYXJBdChpKSk7XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmb3JtYXRTdHIuVG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIFwiZGQtbW0teXl5eVwiOyAvLyByZXR1cm4gZGVmYXVsdCBmb3JtYXQuXHJcblxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DatePipe } from '@angular/common';
3
+ import { TaskMagicService } from '../../services/task.magics.service';
4
+ import { StringBuilder } from "@magic-xpa/mscorelib";
5
+ import { PICInterface } from "@magic-xpa/utils";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/task.magics.service";
8
+ export class TimeMagicPipe extends DatePipe {
9
+ _task;
10
+ constructor(_task) {
11
+ super('en-US');
12
+ this._task = _task;
13
+ }
14
+ transform(value, controlId) {
15
+ let mask = this._task.GetControlPictureMask(controlId).getMask();
16
+ let formatStr = new StringBuilder();
17
+ if (typeof value !== "undefined" && mask !== null) {
18
+ for (let i = 0; i < mask.length;) {
19
+ switch (mask.charCodeAt(i)) {
20
+ case PICInterface.PIC_HH:
21
+ formatStr.Append('hh');
22
+ i += 2;
23
+ break;
24
+ case PICInterface.PIC_MMT:
25
+ formatStr.Append('mm');
26
+ i += 2;
27
+ break;
28
+ case PICInterface.PIC_SS:
29
+ formatStr.Append('ss');
30
+ i += 2;
31
+ break;
32
+ default:
33
+ formatStr.Append(mask.charAt(i));
34
+ i++;
35
+ break;
36
+ }
37
+ }
38
+ formatStr.Append(' a');
39
+ return super.transform(value, formatStr.ToString());
40
+ }
41
+ return value;
42
+ }
43
+ static ɵfac = function TimeMagicPipe_Factory(t) { return new (t || TimeMagicPipe)(i0.ɵɵdirectiveInject(i1.TaskMagicService, 16)); };
44
+ static ɵpipe = i0.ɵɵdefinePipe({ name: "magicTime", type: TimeMagicPipe, pure: true });
45
+ }
46
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeMagicPipe, [{
47
+ type: Pipe,
48
+ args: [{
49
+ name: 'magicTime'
50
+ }]
51
+ }], () => [{ type: i1.TaskMagicService }], null); })();
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5tYWdpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvcGlwZXMvdGltZS5tYWdpYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUE7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFBOzs7QUFRN0MsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBRW5CO0lBQXRCLFlBQXNCLEtBQXVCO1FBQzNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFVBQUssR0FBTCxLQUFLLENBQWtCO0lBRTdDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWlCO1FBQ3JDLElBQUksSUFBSSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUUsSUFBSSxTQUFTLEdBQWtCLElBQUksYUFBYSxFQUFHLENBQUM7UUFFcEQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3pDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMzQixLQUFLLFlBQVksQ0FBQyxNQUFNO3dCQUN0QixTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN2QixDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNQLE1BQU07b0JBQ1IsS0FBSyxZQUFZLENBQUMsT0FBTzt3QkFDdkIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdkIsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDUCxNQUFNO29CQUNSLEtBQUssWUFBWSxDQUFDLE1BQU07d0JBQ3RCLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3ZCLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ1AsTUFBTTtvQkFDUjt3QkFDRSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDakMsQ0FBQyxFQUFFLENBQUM7d0JBQ0osTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztZQUVELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VFQXBDVSxhQUFhOzhEQUFiLGFBQWE7O2lGQUFiLGFBQWE7Y0FIekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxXQUFXO2FBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7U3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCJcclxuaW1wb3J0IHtQSUNJbnRlcmZhY2V9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCJcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ21hZ2ljVGltZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVNYWdpY1BpcGUgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCdlbi1VUycpO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGNvbnRyb2xJZDogc3RyaW5nKTogYW55IHtcclxuICAgIGxldCBtYXNrOiBzdHJpbmcgPSB0aGlzLl90YXNrLkdldENvbnRyb2xQaWN0dXJlTWFzayAoY29udHJvbElkKS5nZXRNYXNrKCk7XHJcbiAgICBsZXQgZm9ybWF0U3RyOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIgKCk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBtYXNrICE9PSBudWxsKSB7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBtYXNrLmxlbmd0aDspIHtcclxuICAgICAgICBzd2l0Y2ggKG1hc2suY2hhckNvZGVBdChpKSkge1xyXG4gICAgICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX0hIOlxyXG4gICAgICAgICAgICBmb3JtYXRTdHIuQXBwZW5kKCdoaCcpO1xyXG4gICAgICAgICAgICBpICs9IDI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX01NVDpcclxuICAgICAgICAgICAgZm9ybWF0U3RyLkFwcGVuZCgnbW0nKTtcclxuICAgICAgICAgICAgaSArPSAyO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19TUzpcclxuICAgICAgICAgICAgZm9ybWF0U3RyLkFwcGVuZCgnc3MnKTtcclxuICAgICAgICAgICAgaSArPSAyO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ci5BcHBlbmQobWFzay5jaGFyQXQoaSkpO1xyXG4gICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZm9ybWF0U3RyLkFwcGVuZCgnIGEnKTtcclxuICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0U3RyLlRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { TaskMagicService } from "../../services/task.magics.service";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/task.magics.service";
5
+ export class Time24MagicPipe {
6
+ _task;
7
+ constructor(_task) {
8
+ this._task = _task;
9
+ }
10
+ transform(value, controlId) {
11
+ let mask = this._task.GetControlPictureMask(controlId).getMask();
12
+ if (typeof value !== "undefined" && mask !== null) {
13
+ const date = new Date(value);
14
+ const hours = date.getHours().toString().padStart(2, '0');
15
+ const minutes = date.getMinutes().toString().padStart(2, '0');
16
+ const seconds = date.getSeconds().toString().padStart(2, '0');
17
+ if (mask.length == 5) {
18
+ return `${hours}:${minutes}`;
19
+ }
20
+ else if (mask.length > 5) {
21
+ return `${hours}:${minutes}:${seconds}`;
22
+ }
23
+ }
24
+ return value;
25
+ }
26
+ static ɵfac = function Time24MagicPipe_Factory(t) { return new (t || Time24MagicPipe)(i0.ɵɵdirectiveInject(i1.TaskMagicService, 16)); };
27
+ static ɵpipe = i0.ɵɵdefinePipe({ name: "magicTime24", type: Time24MagicPipe, pure: true });
28
+ }
29
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Time24MagicPipe, [{
30
+ type: Pipe,
31
+ args: [{
32
+ name: 'magicTime24'
33
+ }]
34
+ }], () => [{ type: i1.TaskMagicService }], null); })();
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZTI0Lm1hZ2ljLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9waXBlcy90aW1lMjQubWFnaWMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBS3BFLE1BQU0sT0FBTyxlQUFlO0lBRUo7SUFBdEIsWUFBc0IsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7SUFFN0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsU0FBaUI7UUFDckMsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUxRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFFbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFOUQsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQyxDQUFDO2dCQUNuQixPQUFPLEdBQUcsS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQy9CLENBQUM7aUJBQUssSUFBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQyxDQUFDO2dCQUN4QixPQUFPLEdBQUcsS0FBSyxJQUFJLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt5RUF2QlUsZUFBZTtnRUFBZixlQUFlOztpRkFBZixlQUFlO2NBSDNCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsYUFBYTthQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdtYWdpY1RpbWUyNCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWUyNE1hZ2ljUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgY29udHJvbElkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IG1hc2s6IHN0cmluZyA9IHRoaXMuX3Rhc2suR2V0Q29udHJvbFBpY3R1cmVNYXNrIChjb250cm9sSWQpLmdldE1hc2soKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYmIG1hc2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0U2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuXHJcbiAgICAgIGlmKG1hc2subGVuZ3RoID09IDUpe1xyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzfWA7XHJcbiAgICAgIH1lbHNlIGlmKG1hc2subGVuZ3RoID4gNSl7XHJcbiAgICAgICAgcmV0dXJuIGAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc31gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==