@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,115 @@
1
+ import { Component, ViewContainerRef } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { EngineMagicService } from '../services/engine.magic.service';
4
+ import { getGuiEventObj } from '@magic-xpa/engine';
5
+ import { List } from '@magic-xpa/mscorelib';
6
+ import { StrUtil } from '@magic-xpa/utils';
7
+ import { ComponentListMagicService } from '../services/component-list.magic.service';
8
+ import { SubformMagicService } from '../services/subform.magic.service';
9
+ import { CommandsCollectorMagicService } from '../services/commands-collector.magic.service';
10
+ import { RouterCommandsMagicService } from '../services/router-commands.magic.service';
11
+ import { TaskMagicService } from '../services/task.magics.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ import * as i2 from "../services/engine.magic.service";
15
+ import * as i3 from "../services/task.magics.service";
16
+ import * as i4 from "../services/component-list.magic.service";
17
+ import * as i5 from "../services/commands-collector.magic.service";
18
+ import * as i6 from "../services/router-commands.magic.service";
19
+ export class RouterContainerMagicComponent {
20
+ activatedRoute;
21
+ router;
22
+ magic;
23
+ containerTaskService;
24
+ viewContainerRef;
25
+ componentList;
26
+ pendingCommandsCollector;
27
+ routerCommandsMagicService;
28
+ componentRef = null;
29
+ parentMgSubformService = null;
30
+ static lastRoute = "/";
31
+ static get LastRoute() {
32
+ return RouterContainerMagicComponent.lastRoute;
33
+ }
34
+ constructor(activatedRoute, router, magic, containerTaskService, viewContainerRef, componentList, pendingCommandsCollector, routerCommandsMagicService) {
35
+ this.activatedRoute = activatedRoute;
36
+ this.router = router;
37
+ this.magic = magic;
38
+ this.containerTaskService = containerTaskService;
39
+ this.viewContainerRef = viewContainerRef;
40
+ this.componentList = componentList;
41
+ this.pendingCommandsCollector = pendingCommandsCollector;
42
+ this.routerCommandsMagicService = routerCommandsMagicService;
43
+ }
44
+ ngOnInit() {
45
+ let subformMagicService = SubformMagicService.currentCallerMgSubformServiceRef;
46
+ let currentActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
47
+ RouterContainerMagicComponent.lastRoute = this.router.url;
48
+ if (subformMagicService == null || subformMagicService.currentRouteDefinition === null) {
49
+ this.insertRouteEvent(currentActiveRoute);
50
+ SubformMagicService.routerContainers.push(this);
51
+ }
52
+ else {
53
+ this.initializeComponent();
54
+ }
55
+ }
56
+ insertRouteEvent(currentActiveRoute) {
57
+ let guiEvent = getGuiEventObj('RouterNavigate', null, 0);
58
+ guiEvent.RouterPath = currentActiveRoute.snapshot.routeConfig.path;
59
+ if (currentActiveRoute.snapshot.outlet !== 'primary')
60
+ guiEvent.RouterOutletName = currentActiveRoute.snapshot.outlet;
61
+ let calcRouterPath = currentActiveRoute.routeConfig.path;
62
+ if (calcRouterPath.length > 0) {
63
+ let routerPath = calcRouterPath;
64
+ let tokens = StrUtil.tokenize(routerPath, "/:");
65
+ guiEvent.RouterPath = tokens[0];
66
+ guiEvent.RouterParams = new List();
67
+ for (let i = 1; i < tokens.length; i++) {
68
+ guiEvent.RouterParams.push(currentActiveRoute.snapshot.params[tokens[i]]);
69
+ }
70
+ }
71
+ this.containerTaskService.insertEvent(guiEvent);
72
+ }
73
+ initializeComponent() {
74
+ let subformMagicService = SubformMagicService.currentCallerMgSubformServiceRef;
75
+ if (subformMagicService.currentRouteDefinition !== null) {
76
+ let comp = this.componentList.getComponent(subformMagicService.currentRouteDefinition.formName);
77
+ this.componentRef = this.viewContainerRef.createComponent(comp);
78
+ Object.assign(this.componentRef.instance, subformMagicService.currentRouteDefinition.parameters);
79
+ let myActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
80
+ let routeParams = StrUtil.tokenize(myActiveRoute.snapshot.routeConfig.path, "/:");
81
+ subformMagicService.routesDict[myActiveRoute.snapshot.outlet] = routeParams[0];
82
+ this.parentMgSubformService = subformMagicService;
83
+ subformMagicService.currentRouteDefinition = null;
84
+ SubformMagicService.currentCallerMgSubformServiceRef = null;
85
+ let ignoreParamChange = true;
86
+ myActiveRoute.paramMap.subscribe(params => {
87
+ if (!ignoreParamChange)
88
+ this.insertRouteEvent(myActiveRoute);
89
+ ignoreParamChange = false;
90
+ });
91
+ this.parentMgSubformService.refreshView();
92
+ this.routerCommandsMagicService.ExecuteNextCommand();
93
+ }
94
+ }
95
+ ngOnDestroy() {
96
+ if (this.componentRef != null) {
97
+ this.componentRef.instance.task.close();
98
+ let currentActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
99
+ this.parentMgSubformService.routesDict[currentActiveRoute.outlet] = "";
100
+ RouterContainerMagicComponent.lastRoute = this.router.url;
101
+ }
102
+ }
103
+ static ɵfac = function RouterContainerMagicComponent_Factory(t) { return new (t || RouterContainerMagicComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.EngineMagicService), i0.ɵɵdirectiveInject(i3.TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i4.ComponentListMagicService), i0.ɵɵdirectiveInject(i5.CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i6.RouterCommandsMagicService)); };
104
+ static ɵcmp = i0.ɵɵdefineComponent({ type: RouterContainerMagicComponent, selectors: [["magic-route-outlet"]], decls: 0, vars: 0, template: function RouterContainerMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
105
+ }
106
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouterContainerMagicComponent, [{
107
+ type: Component,
108
+ args: [{
109
+ selector: 'magic-route-outlet',
110
+ template: `
111
+ `
112
+ }]
113
+ }], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.EngineMagicService }, { type: i3.TaskMagicService }, { type: i0.ViewContainerRef }, { type: i4.ComponentListMagicService }, { type: i5.CommandsCollectorMagicService }, { type: i6.RouterCommandsMagicService }], null); })();
114
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src\\ui\\router-container.magic.component.ts", lineNumber: 22 }); })();
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWNvbnRhaW5lci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9yb3V0ZXItY29udGFpbmVyLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBVW5FLE1BQU0sT0FBTyw2QkFBNkI7SUFtQnBCO0lBQ0U7SUFDQTtJQUNGO0lBQ0E7SUFDQTtJQUNFO0lBQ0E7SUF6QmQsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixzQkFBc0IsR0FBd0IsSUFBSSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxTQUFTLEdBQVcsR0FBRyxDQUFDO0lBRXZDLE1BQU0sS0FBSyxTQUFTO1FBQ2xCLE9BQU8sNkJBQTZCLENBQUMs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O1FBR1QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksRUFDN0IsQ0FBQztZQUMwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFbEUsSUFBSSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFdkUsNkJBQTZCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO3VGQTdIVSw2QkFBNkI7K0NBQTdCLDZCQUE2Qjs7aUZBQTdCLDZCQUE2QjtjQUx6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFO0dBQ1Q7YUFDRjs7a0ZBQ1ksNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50IH0gZnJvbSAnLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW5naW5lTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW5naW5lLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50IH0gZnJvbSAnQG1hZ2ljLXhwYS9lbmdpbmUnO1xyXG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBTdHJVdGlsIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQtbGlzdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViZm9ybU1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N1YmZvcm0ubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1hbmRzQ29sbGVjdG9yTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJDb21tYW5kc01hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JvdXRlci1jb21tYW5kcy5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vY2sgY29tcG9uZW50LCBpbXBsZW1lbnRzIHJvdXRpbmcgYnkgY29ubmVjdGluZyB0aGUgcmVxdWVzdGVkIFVSTCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBNYWdpYyB0YXNrXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXJvdXRlLW91dGxldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJDb250YWluZXJNYWdpY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWYgPSBudWxsO1xyXG4gIHByaXZhdGUgcGFyZW50TWdTdWJmb3JtU2VydmljZTogU3ViZm9ybU1hZ2ljU2VydmljZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbGFzdFJvdXRlOiBzdHJpbmcgPSBcIi9cIjtcclxuXHJcbiAgc3RhdGljIGdldCBMYXN0Um91dGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBSb3V0ZXJDb250YWluZXJNYWdpY0NvbXBvbmVudC5sYXN0Um91dGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAqIEBwYXJhbSBhY3RpdmF0ZWRSb3V0ZVxyXG4gICAqIEBwYXJhbSBtYWdpY1xyXG4gICAqIEBwYXJhbSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgKiBAcGFyYW0gdmlld0NvbnRhaW5lclJlZlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRMaXN0XHJcbiAgICogQHBhcmFtIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgbWFnaWM6IEVuZ2luZU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbnRhaW5lclRhc2tTZXJ2aWNlOiBUYXNrTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudExpc3Q6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvcjogQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHJvdXRlckNvbW1hbmRzTWFnaWNTZXJ2aWNlOiBSb3V0ZXJDb21tYW5kc01hZ2ljU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb25cclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBzdWJmb3JtTWFnaWNTZXJ2aWNlOiBTdWJmb3JtTWFnaWNTZXJ2aWNlID0gU3ViZm9ybU1hZ2ljU2VydmljZS5jdXJyZW50Q2FsbGVyTWdTdWJmb3JtU2VydmljZVJlZjtcclxuXHJcbiAgICBsZXQgY3VycmVudEFjdGl2ZVJvdXRlID0gU3ViZm9ybU1hZ2ljU2VydmljZS5nZXRSZWxhdGl2ZVJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICAgIFJvdXRlckNvbnRhaW5lck1hZ2ljQ29tcG9uZW50Lmxhc3RSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICBpZiAoc3ViZm9ybU1hZ2ljU2VydmljZSA9PSBudWxsIHx8IHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmluc2VydFJvdXRlRXZlbnQoY3VycmVudEFjdGl2ZVJvdXRlKTtcclxuXHJcbiAgICAgIFN1YmZvcm1NYWdpY1NlcnZpY2Uucm91dGVyQ29udGFpbmVycy5wdXNoKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnNlcnRSb3V0ZUV2ZW50KGN1cnJlbnRBY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooJ1JvdXRlck5hdmlnYXRlJywgbnVsbCwgMCk7XHJcbiAgICBndWlFdmVudC5Sb3V0ZXJQYXRoID0gY3VycmVudEFjdGl2ZVJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGg7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRBY3RpdmVSb3V0ZS5zbmFwc2hvdC5vdXRsZXQgIT09ICdwcmltYXJ5JylcclxuICAgICAgZ3VpRXZlbnQuUm91dGVyT3V0bGV0TmFtZSA9IGN1cnJlbnRBY3RpdmVSb3V0ZS5zbmFwc2hvdC5vdXRsZXQ7XHJcblxyXG5cclxuICAgIC8vIGlmIHRoaXMgaXMgTG9hZE9uRGVtYW5kTW9kdWxlTWFnaWNDb21wb25lbnQgaXQncyBtZWFuIHRoYXQgdGhpcyBpcyBsb2FkIG9uIGRlbWFuZCBtb2R1bGUgYW5kIHdlXHJcbiAgICAvLyBuZWVkIHRvIHRha2UgdGhlIHBhdGggZm9ybSByb3V0ZUNvbmZpZy5wYXRoXHJcblxyXG4gICAgbGV0IGNhbGNSb3V0ZXJQYXRoOiBzdHJpbmcgPSBjdXJyZW50QWN0aXZlUm91dGUucm91dGVDb25maWcucGF0aDtcclxuICAgIC8vIGFkZCB0aGUgUm91dGVyUGF0aCBvbmx5IGlmIGV4aXN0XHJcbiAgICBpZiAoY2FsY1JvdXRlclBhdGgubGVuZ3RoID4gMClcclxuICAgIHtcclxuICAgICAgbGV0IHJvdXRlclBhdGg6IHN0cmluZyA9IGNhbGNSb3V0ZXJQYXRoO1xyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocm91dGVyUGF0aCwgXCIvOlwiKTtcclxuICAgICAgZ3VpRXZlbnQuUm91dGVyUGF0aCA9IHRva2Vuc1swXTtcclxuXHJcbiAgICAgIGd1aUV2ZW50LlJvdXRlclBhcmFtcyA9IG5ldyBMaXN0KCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgZ3VpRXZlbnQuUm91dGVyUGFyYW1zLnB1c2goY3VycmVudEFjdGl2ZVJvdXRlLnNuYXBzaG90LnBhcmFtc1t0b2tlbnNbaV1dKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udGFpbmVyVGFza1NlcnZpY2UuaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUNvbXBvbmVudCgpIHtcclxuICAgIC8vIHJlLWluaXQgc3ViZm9ybU1hZ2ljU2VydmljZSAgc2luY2UgaXQgbWF5IGNoYW5nZSBhZnRlciBleGVjdXRpbmcgXCJSb3V0ZXJOYXZpZ2F0ZVwiIGV2ZW50LlxyXG4gICAgbGV0IHN1YmZvcm1NYWdpY1NlcnZpY2U6IFN1YmZvcm1NYWdpY1NlcnZpY2UgPSBTdWJmb3JtTWFnaWNTZXJ2aWNlLmN1cnJlbnRDYWxsZXJNZ1N1YmZvcm1TZXJ2aWNlUmVmO1xyXG4gICAgaWYgKHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgY29tcCA9IHRoaXMuY29tcG9uZW50TGlzdC5nZXRDb21wb25lbnQoc3ViZm9ybU1hZ2ljU2VydmljZS5jdXJyZW50Um91dGVEZWZpbml0aW9uLmZvcm1OYW1lKTtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXApO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBzdWJmb3JtTWFnaWNTZXJ2aWNlLmN1cnJlbnRSb3V0ZURlZmluaXRpb24ucGFyYW1ldGVycyk7XHJcblxyXG5cclxuICAgICAgbGV0IG15QWN0aXZlUm91dGUgPSBTdWJmb3JtTWFnaWNTZXJ2aWNlLmdldFJlbGF0aXZlUm91dGUodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XHJcblxyXG4gICAgICBsZXQgcm91dGVQYXJhbXM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShteUFjdGl2ZVJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsIFwiLzpcIik7XHJcbiAgICAgIHN1YmZvcm1NYWdpY1NlcnZpY2Uucm91dGVzRGljdFtteUFjdGl2ZVJvdXRlLnNuYXBzaG90Lm91dGxldF0gPSByb3V0ZVBhcmFtc1swXTtcclxuXHJcbiAgICAgIHRoaXMucGFyZW50TWdTdWJmb3JtU2VydmljZSA9IHN1YmZvcm1NYWdpY1NlcnZpY2U7XHJcbiAgICAgIHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiA9IG51bGw7XHJcbiAgICAgIFN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudENhbGxlck1nU3ViZm9ybVNlcnZpY2VSZWYgPSBudWxsO1xyXG5cclxuICAgICAgLy9XaGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQsIHRoZW4gYWxzbyB3ZSBnZXQgdGhlIG5vdGlmaWNhdGlvbiBmb3IgcGFyYW1NYXAgc3Vic2NyaXB0aW9uLlxyXG4gICAgICAvL0J1dCBpbiB0aGlzIGNhc2UsICB3ZSBkbyBub3QgaGF2ZSB0byByYWlzZSB0aGUgZXZlbnQsIGJlY2F1c2UgbWFnaWMgZW5naW5lIGl0c2VsZiBoYXMgIGluaXRpYXRlZCB0aGUgcm91dGUgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLlxyXG4gICAgICAvL1NvLCBjb250cm9sIGl0IHZpYSBpZ25vcmVQYXJhbUNoYW5nZSBmbGFnLlxyXG4gICAgICBsZXQgaWdub3JlUGFyYW1DaGFuZ2UgPSB0cnVlO1xyXG4gICAgICBteUFjdGl2ZVJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgIGlmICghaWdub3JlUGFyYW1DaGFuZ2UpXHJcbiAgICAgICAgICB0aGlzLmluc2VydFJvdXRlRXZlbnQobXlBY3RpdmVSb3V0ZSk7XHJcbiAgICAgICAgaWdub3JlUGFyYW1DaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnBhcmVudE1nU3ViZm9ybVNlcnZpY2UucmVmcmVzaFZpZXcoKTtcclxuXHJcbiAgICAgIHRoaXMucm91dGVyQ29tbWFuZHNNYWdpY1NlcnZpY2UuRXhlY3V0ZU5leHRDb21tYW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhbnVwXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBUT0RPIFJvdXRpbmc6IENhbGwgY2xvc2UoKSBvbmx5IGlmIHRoZSB0YXNrIGlzIG5vdCBhbHJlYWR5IGNsb3NlZC5cclxuICAgIC8vIFRhc2sgY2FuIGJlIGNsb3NlZCB3aGVuIGEgcm91dGVyIGlzIG92ZXJsYXllZCBieSBhbm90aGVyIHRhc2sgdmlhIGNhbGwgb3BlcmF0aW9uLlxyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IG51bGwpXHJcbiAgICB7XHJcbiAgICAgICg8VGFza0Jhc2VNYWdpY0NvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkudGFzay5jbG9zZSgpO1xyXG5cclxuICAgICAgbGV0IGN1cnJlbnRBY3RpdmVSb3V0ZSA9IFN1YmZvcm1NYWdpY1NlcnZpY2UuZ2V0UmVsYXRpdmVSb3V0ZSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcclxuICAgICAgdGhpcy5wYXJlbnRNZ1N1YmZvcm1TZXJ2aWNlLnJvdXRlc0RpY3RbY3VycmVudEFjdGl2ZVJvdXRlLm91dGxldF0gPSBcIlwiO1xyXG5cclxuICAgICAgUm91dGVyQ29udGFpbmVyTWFnaWNDb21wb25lbnQubGFzdFJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,52 +1,56 @@
1
- import { Component, Input, ViewContainerRef } from "@angular/core";
2
- import { SubformMagicService } from "../services/subform.magic.service";
3
- import { isNullOrUndefined } from '@magic-xpa/mscorelib';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../services/subform.magic.service";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "ng-dynamic-component";
8
- function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
9
- i0.ɵɵelement(0, "ndc-dynamic", 1);
10
- } if (rf & 2) {
11
- const ctx_r0 = i0.ɵɵnextContext();
12
- i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
13
- } }
14
- export class SubformMagicComponent {
15
- set magic(val) { this.id = val; }
16
- ;
17
- constructor(vcRef, mgSub) {
18
- this.vcRef = vcRef;
19
- this.mgSub = mgSub;
20
- this.component = null;
21
- this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
22
- }
23
- get Component() {
24
- return this.mgSub.mgGetComp(this.id);
25
- }
26
- get Parameters() {
27
- return this.mgSub.mgGetParameters(this.id);
28
- }
29
- }
30
- SubformMagicComponent.ɵfac = function SubformMagicComponent_Factory(t) { return new (t || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.SubformMagicService)); };
31
- SubformMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SubformMagicComponent, selectors: [["magic-subform"]], inputs: { magic: "magic" }, decls: 1, vars: 1, consts: [[3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"]], template: function SubformMagicComponent_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
33
- } if (rf & 2) {
34
- i0.ɵɵproperty("ngIf", ctx.Component);
35
- } }, dependencies: [i2.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
36
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
37
- type: Component,
38
- args: [{
39
- selector: 'magic-subform',
1
+ import { Component, Input, ViewContainerRef } from "@angular/core";
2
+ import { SubformMagicService } from "../services/subform.magic.service";
3
+ import { isNullOrUndefined } from '@magic-xpa/mscorelib';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services/subform.magic.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "ng-dynamic-component";
8
+ function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelement(0, "ndc-dynamic", 1);
10
+ } if (rf & 2) {
11
+ const ctx_r0 = i0.ɵɵnextContext();
12
+ i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
13
+ } }
14
+ export class SubformMagicComponent {
15
+ vcRef;
16
+ mgSub;
17
+ id;
18
+ set magic(val) { this.id = val; }
19
+ ;
20
+ component = null;
21
+ constructor(vcRef, mgSub) {
22
+ this.vcRef = vcRef;
23
+ this.mgSub = mgSub;
24
+ this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
25
+ }
26
+ get Component() {
27
+ return this.mgSub.mgGetComp(this.id);
28
+ }
29
+ get Parameters() {
30
+ return this.mgSub.mgGetParameters(this.id);
31
+ }
32
+ static ɵfac = function SubformMagicComponent_Factory(t) { return new (t || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.SubformMagicService)); };
33
+ static ɵcmp = i0.ɵɵdefineComponent({ type: SubformMagicComponent, selectors: [["magic-subform"]], inputs: { magic: "magic" }, decls: 1, vars: 1, consts: [[3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"]], template: function SubformMagicComponent_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
35
+ } if (rf & 2) {
36
+ i0.ɵɵproperty("ngIf", ctx.Component);
37
+ } }, dependencies: [i2.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
38
+ }
39
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'magic-subform',
40
43
  template: `
41
44
  <ndc-dynamic
42
45
  *ngIf="Component"
43
46
  [ndcDynamicComponent]="Component"
44
47
  [ndcDynamicInputs]="Parameters">
45
48
  </ndc-dynamic>
46
- `
47
- }]
48
- }], function () { return [{ type: i0.ViewContainerRef }, { type: i1.SubformMagicService }]; }, { magic: [{
49
- type: Input,
50
- args: ['magic']
51
- }] }); })();
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZm9ybS5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9zdWJmb3JtLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0lBUXJELGlDQUljOzs7SUFGWixzREFBaUMsdUNBQUE7O0FBTXZDLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsSUFBb0IsS0FBSyxDQUFDLEdBQUcsSUFBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBVWpELFlBQW9CLEtBQXVCLEVBQVksS0FBMEI7UUFBN0QsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUxqRixjQUFTLEdBQTJCLElBQUksQ0FBQztRQU92QyxJQUFJLENBQUMsU0FBUyxHQUFLLENBQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFFLENBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFLRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBS0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7MEZBcENVLHFCQUFxQjswREFBckIscUJBQXFCO1FBUjlCLHNGQUljOztRQUhYLG9DQUFlOzt1RkFPVCxxQkFBcUI7Y0FYakMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUs7Ozs7OztDQU1kO2FBQUM7cUdBWW9CLEtBQUs7a0JBQXhCLEtBQUs7bUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUYXNrQmFzZU1hZ2ljQ29tcG9uZW50fSBmcm9tIFwiLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN1YmZvcm1NYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc3ViZm9ybS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBNYWdpYyBzdWJmb3JtXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXN1YmZvcm0nLFxyXG4gIHRlbXBsYXRlOiAgICBgXHJcbiAgICA8bmRjLWR5bmFtaWNcclxuICAgICAgKm5nSWY9XCJDb21wb25lbnRcIiAgXHJcbiAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIkNvbXBvbmVudFwiIFxyXG4gICAgICBbbmRjRHluYW1pY0lucHV0c109XCJQYXJhbWV0ZXJzXCI+XHJcbiAgICA8L25kYy1keW5hbWljPlxyXG5gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3ViZm9ybU1hZ2ljQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgICogQGlnbm9yZVxyXG4gICAgKi9cclxuICBpZCA6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnbWFnaWMnKSBzZXQgbWFnaWModmFsKSB7dGhpcy5pZCA9IHZhbDsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgbWdTdWI6IFN1YmZvcm1NYWdpY1NlcnZpY2UpIHtcclxuICAgIC8vIEZvciBhbmd1bGFyIDEzIC0gZmluZCB0aGUgY29tcG9uZW50IGZyb20gX2hvc3RMVmlld1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSAgICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gIWlzTnVsbE9yVW5kZWZpbmVkKCh2IGFzIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgZ2V0IENvbXBvbmVudCgpOiBDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubWdTdWIubWdHZXRDb21wKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGdldCBQYXJhbWV0ZXJzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZ1N1Yi5tZ0dldFBhcmFtZXRlcnModGhpcy5pZCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
49
+ `
50
+ }]
51
+ }], () => [{ type: i0.ViewContainerRef }, { type: i1.SubformMagicService }], { magic: [{
52
+ type: Input,
53
+ args: ['magic']
54
+ }] }); })();
55
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src\\ui\\subform.magic.component.ts", lineNumber: 20 }); })();
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZm9ybS5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9zdWJmb3JtLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0lBUXJELGlDQUljOzs7SUFEWixBQURBLHNEQUFpQyx1Q0FDRjs7QUFLckMsTUFBTSxPQUFPLHFCQUFxQjtJQW1CWjtJQUFtQztJQWZ2RCxFQUFFLENBQVU7SUFLWixJQUFvQixLQUFLLENBQUMsR0FBRyxJQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFLakQsU0FBUyxHQUEyQixJQUFJLENBQUM7SUFLekMsWUFBb0IsS0FBdUIsRUFBWSxLQUEwQjtRQUE3RCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUFZLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRS9FLElBQUksQ0FBQyxTQUFTLEdBQUssQ0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUUsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUtELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytFQXBDVSxxQkFBcUI7K0NBQXJCLHFCQUFxQjtZQVI5QixzRkFHa0M7O1lBRi9CLG9DQUFlOzs7aUZBT1QscUJBQXFCO2NBWGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFLOzs7Ozs7Q0FNZDthQUFDO21GQVlvQixLQUFLO2tCQUF4QixLQUFLO21CQUFDLE9BQU87O2tGQVRILHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUYXNrQmFzZU1hZ2ljQ29tcG9uZW50fSBmcm9tIFwiLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN1YmZvcm1NYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc3ViZm9ybS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBNYWdpYyBzdWJmb3JtXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXN1YmZvcm0nLFxyXG4gIHRlbXBsYXRlOiAgICBgXHJcbiAgICA8bmRjLWR5bmFtaWNcclxuICAgICAgKm5nSWY9XCJDb21wb25lbnRcIiAgXHJcbiAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIkNvbXBvbmVudFwiIFxyXG4gICAgICBbbmRjRHluYW1pY0lucHV0c109XCJQYXJhbWV0ZXJzXCI+XHJcbiAgICA8L25kYy1keW5hbWljPlxyXG5gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3ViZm9ybU1hZ2ljQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgICogQGlnbm9yZVxyXG4gICAgKi9cclxuICBpZCA6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnbWFnaWMnKSBzZXQgbWFnaWModmFsKSB7dGhpcy5pZCA9IHZhbDsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgbWdTdWI6IFN1YmZvcm1NYWdpY1NlcnZpY2UpIHtcclxuICAgIC8vIEZvciBhbmd1bGFyIDEzIC0gZmluZCB0aGUgY29tcG9uZW50IGZyb20gX2hvc3RMVmlld1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSAgICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gIWlzTnVsbE9yVW5kZWZpbmVkKCh2IGFzIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgZ2V0IENvbXBvbmVudCgpOiBDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubWdTdWIubWdHZXRDb21wKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGdldCBQYXJhbWV0ZXJzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZ1N1Yi5tZ0dldFBhcmFtZXRlcnModGhpcy5pZCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
@@ -0,0 +1,91 @@
1
+ import { ChangeDetectorRef, Component, Input } from '@angular/core';
2
+ import { MagicProperties } from "@magic-xpa/utils";
3
+ import { isNullOrUndefined } from "@magic-xpa/mscorelib";
4
+ import { TaskMagicService } from "../services/task.magics.service";
5
+ import { SubformMagicService } from "../services/subform.magic.service";
6
+ import { TableMagicService } from "../services/table.magic.service";
7
+ import { MagicServices } from "../services/magic.services";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../services/magic.services";
10
+ export class TaskBaseMagicComponent {
11
+ ref;
12
+ magicServices;
13
+ taskIdParam;
14
+ taskDescription;
15
+ magicProperties = MagicProperties;
16
+ constructor(ref, magicServices) {
17
+ this.ref = ref;
18
+ this.magicServices = magicServices;
19
+ }
20
+ get task() {
21
+ return this.magicServices.task;
22
+ }
23
+ get mgSub() {
24
+ return this.magicServices.subformService;
25
+ }
26
+ get tableService() {
27
+ return this.magicServices.tableService;
28
+ }
29
+ get mg() {
30
+ return this.magicServices.mgAccessorService;
31
+ }
32
+ get taskId() {
33
+ return this.task.taskId;
34
+ }
35
+ get screenFormGroup() {
36
+ return this.task.ScreenModeControls;
37
+ }
38
+ ngOnInit() {
39
+ this.task.detectChanges.pipe().subscribe(c => {
40
+ this.ref.detectChanges();
41
+ });
42
+ this.task.initTask(this.taskIdParam, this.taskDescription);
43
+ this.createFormControlsAccessor(this.screenFormGroup);
44
+ this.setInputDateFormat();
45
+ this.task.customPropertiesSubject.pipe().subscribe(property => {
46
+ this.PropertyChanged(property.propertyName, property.rowId, property.value);
47
+ });
48
+ this.task.recordsCountChangeSubject.pipe().subscribe(value => {
49
+ this.RecordsCountChanged(value);
50
+ });
51
+ this.task.mgLoadSubject.pipe().subscribe(value => {
52
+ this.mgOnLoad();
53
+ });
54
+ }
55
+ createFormControlsAccessor(formGroup) { }
56
+ setInputDateFormat() { }
57
+ PropertyChanged(propertyName, rowId, value) {
58
+ }
59
+ RecordsCountChanged(recordsCount) {
60
+ }
61
+ mgOnLoad() {
62
+ }
63
+ ngAfterViewInit() {
64
+ this.mgSub.init();
65
+ }
66
+ ngAfterContentChecked() {
67
+ if (!isNullOrUndefined(this.tableService.getPageSize()) && this.task.oldPageSize != this.tableService.getPageSize()) {
68
+ this.task.resize(this.tableService.getPageSize(), 0);
69
+ this.task.oldPageSize = this.tableService.getPageSize();
70
+ }
71
+ }
72
+ ngOnDestroy() {
73
+ this.task.dispose();
74
+ }
75
+ static ɵfac = function TaskBaseMagicComponent_Factory(t) { return new (t || TaskBaseMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MagicServices)); };
76
+ static ɵcmp = i0.ɵɵdefineComponent({ type: TaskBaseMagicComponent, selectors: [["task-magic"]], inputs: { taskIdParam: "taskIdParam", taskDescription: "taskDescription" }, features: [i0.ɵɵProvidersFeature([TaskMagicService, SubformMagicService, TableMagicService])], decls: 0, vars: 0, template: function TaskBaseMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
77
+ }
78
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskBaseMagicComponent, [{
79
+ type: Component,
80
+ args: [{
81
+ selector: 'task-magic',
82
+ providers: [TaskMagicService, SubformMagicService, TableMagicService],
83
+ template: ''
84
+ }]
85
+ }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.MagicServices }], { taskIdParam: [{
86
+ type: Input
87
+ }], taskDescription: [{
88
+ type: Input
89
+ }] }); })();
90
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src\\ui\\task-base.magic.component.ts", lineNumber: 20 }); })();
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYXNlLm1hZ2ljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL3Rhc2stYmFzZS5tYWdpYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUUsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFXM0QsTUFBTSxPQUFPLHNCQUFzQjtJQXFCWDtJQUNIO0lBakJWLFdBQVcsQ0FBUztJQUlwQixlQUFlLENBQVM7SUFLakMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQU9sQyxZQUFzQixHQUFzQixFQUN6QixhQUE0QjtRQUR6QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUMxQyxDQUFDO0lBTU4sSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBTUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUMzQyxDQUFDO0lBTUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBTUQsSUFB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Yjs4RUFNVSxXQUFXO2tCQUFuQixLQUFLO1lBSUcsZUFBZTtrQkFBdkIsS0FBSzs7a0ZBVEssc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYWdpY1Byb3BlcnRpZXN9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5pbXBvcnQge1Rhc2tNYWdpY1NlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1YmZvcm1NYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc3ViZm9ybS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYmxlTWFnaWNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RhYmxlLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWFnaWNTZXJ2aWNlcyB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tYWdpYy5zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBBY2Nlc3Nvck1hZ2ljU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9hY2Nlc3Nvci5tYWdpYy5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQmFzZSBjb21wb25lbnQgcmVwcmVzZW50aW5nIGEgTWFnaWMgdGFza1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0YXNrLW1hZ2ljJyxcclxuICBwcm92aWRlcnM6IFtUYXNrTWFnaWNTZXJ2aWNlLCBTdWJmb3JtTWFnaWNTZXJ2aWNlLCBUYWJsZU1hZ2ljU2VydmljZV0sXHJcbiAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAvKipcclxuICAgKiBJZCBvZiB0YXNrLCB1c2VkIGZvciBpbml0aWFsaXppbmcgdGhlIHRhc2sgc2VydmljZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhc2tJZFBhcmFtOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhc2tEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbWFnaWNQcm9wZXJ0aWVzID0gTWFnaWNQcm9wZXJ0aWVzO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZWYgY2hhbmdlcy1kZXRlY3RvciBvYmplY3RcclxuICAgKiBAcGFyYW0gbWFnaWNTZXJ2aWNlcyBBY2Nlc3MgcG9pbnQgZm9yIGFsbCBNYWdpYyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBtYWdpY1NlcnZpY2VzOiBNYWdpY1NlcnZpY2VzXHJcbiAgKSB7ICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIE1hZ2ljIHRhc2sgc2VydmljZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0IHRhc2soKTogVGFza01hZ2ljU2VydmljZSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWdpY1NlcnZpY2VzLnRhc2s7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBNYWdpYyBzdWJmb3JtIHNlcnZpY2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldCBtZ1N1YigpOiBTdWJmb3JtTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLm1hZ2ljU2VydmljZXMuc3ViZm9ybVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBNYWdpYyB0YWJsZSBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgdGFibGVTZXJ2aWNlKCk6IFRhYmxlTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLm1hZ2ljU2VydmljZXMudGFibGVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgTWFnaWMgYWNjZXNzb3Igc2VydmljZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0IG1nKCk6IEFjY2Vzc29yTWFnaWNTZXJ2aWNlICB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWdpY1NlcnZpY2VzLm1nQWNjZXNzb3JTZXJ2aWNlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRhc2sgSWRcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldCB0YXNrSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLnRhc2tJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEZvcm1Hcm91cCBmb3Igc2NyZWVuLW1vZGUgZm9ybXNcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldCBzY3JlZW5Gb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suU2NyZWVuTW9kZUNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy50YXNrLmRldGVjdENoYW5nZXMucGlwZSgpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRhc2suaW5pdFRhc2sodGhpcy50YXNrSWRQYXJhbSwgdGhpcy50YXNrRGVzY3JpcHRpb24pO1xyXG5cclxuICAgIHRoaXMuY3JlYXRlRm9ybUNvbnRyb2xzQWNjZXNzb3IodGhpcy5zY3JlZW5Gb3JtR3JvdXApO1xyXG4gICAgdGhpcy5zZXRJbnB1dERhdGVGb3JtYXQoKTtcclxuXHJcbiAgICAvLyBzdWJjcmliZSB0byBjdXN0b20gcHJvcGVydHkgY2hhbmdlc1xyXG4gICAgdGhpcy50YXNrLmN1c3RvbVByb3BlcnRpZXNTdWJqZWN0LnBpcGUoKS5zdWJzY3JpYmUocHJvcGVydHkgPT4ge1xyXG4gICAgICB0aGlzLlByb3BlcnR5Q2hhbmdlZChwcm9wZXJ0eS5wcm9wZXJ0eU5hbWUsIHByb3BlcnR5LnJvd0lkLCBwcm9wZXJ0eS52YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBzdWJjcmliZSB0byByZWNvcmRzIGNvdW50IGNoYW5nZXNcclxuICAgIHRoaXMudGFzay5yZWNvcmRzQ291bnRDaGFuZ2VTdWJqZWN0LnBpcGUoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLlJlY29yZHNDb3VudENoYW5nZWQodmFsdWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gc3ViY3JpYmUgdG8gbWdMb2FkIGNoYW5nZVxyXG4gICAgdGhpcy50YXNrLm1nTG9hZFN1YmplY3QucGlwZSgpLnN1YnNjcmliZSh2YWx1ZSA9PntcclxuICAgICAgdGhpcy5tZ09uTG9hZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybUNvbnRyb2xzQWNjZXNzb3IoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBzZXRJbnB1dERhdGVGb3JtYXQgKCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIGFueSBjdXN0b20gcHJvcGVydHkgaXMgdXBkYXRlZCBpbiBNYWdpY1xyXG4gICAqIHByb3BlcnR5TmFtZSA6IG5hbWUgb2YgcHJvcGVydHkgd2hpY2ggaXMgdXBkYXRlZC4gVGhlIGZvcm1hdCBpcyA8Y29udHJvbG5hbWU+fjxwcm9wZXJ0eW5hbWU+XHJcbiAgICogcm93SWQgOiByb3cgbnVtYmVyIG9mIHRoZSB1cGRhdGVkIHByb3BlcnR5IGZvciBjb250cm9scyBpbiB0YWJsZSBjb250cm9sICgwIGZvciBjb250cm9scyBvdXRzaWRlIHRhYmxlKVxyXG4gICAqIHZhbHVlIDogdXBkYXRlZCB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcclxuICAgKiBAcmV0dXJucyA6IHZvaWRcclxuICAgKiBUbyB1c2UgdGhlIG1ldGhvZCBvdmVycmlkZSBpdCBpbiB5b3VyIGNvbXBvbmVudCBhbmQgY2hlY2sgdGhlIHByb3BlcnR5IG5hbWUgYW5kIHdyaXRlIHlvdSBjb2RlIC4uZm9yIGVnXHJcbiAgICogaWYocHJvcGVydHlOYW1lID09ICdjb250cm9sbmFtZX5wcm9wZXJ0eU5hbWUnKSB7Ly8geW91ciBjb2RlfVxyXG4gICAqICBlbHNlIHsgLy8geW91ciBjb2RlfVxyXG4gICAqL1xyXG4gIFByb3BlcnR5Q2hhbmdlZChwcm9wZXJ0eU5hbWU6c3RyaW5nLCByb3dJZCA6IG51bWJlciwgdmFsdWUgOiBhbnkpIDogdm9pZCB7XHJcbiAgICAvLyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIGluIHRoZSBkZXJpdmVkIGNsYXNzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWNvcmRzIGNvdW50IGNoYW5nZSBzdWJqZWN0IGlzIHN1YnNjcmliZWQgdG8gY2hhbmdlIGluIGl0cyB2YWx1ZS4gVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWRcclxuICAgKiBhcyB0aGUgdmFsdWUgb2YgcmVjb3JkcyBjb3VudCBpcyByZWNlaXZlZCBhdCBmcm9tIHNlcnZlci5cclxuICAgKiBAcmV0dXJucyA6IHZvaWRcclxuICAgKiBUbyB1c2UgdGhlIG1ldGhvZCBvdmVycmlkZSBpdCBpbiB5b3VyIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBSZWNvcmRzQ291bnRDaGFuZ2VkKHJlY29yZHNDb3VudCA6IG51bWJlcikgOiB2b2lkIHtcclxuICAgIC8vIGludGVudGlvbmFsbHkgbGVmdCBibGFuayBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgaW4gdGhlIGRlcml2ZWQgY2xhc3NcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uY2UgZW5naW5lIGluZm9ybXMgVUkgYWJvdXQgbG9hZGluZyBvZiBmaXJzdCBzZXQgb2YgZGF0YSBpcyBzZW50IHRvIGNsaWVudFxyXG4gICAqIGFuZCBjbGllbnQgaGFzIHJlYWNoZWQgaXRzIGZpcnN0IGlkbGUgdGltZS5cclxuICAgKiBAcmV0dXJucyA6IHZvaWRcclxuICAgKiBUbyB1c2UgdGhlIG1ldGhvZCBvdmVycmlkZSBpdCBpbiB5b3VyIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBtZ09uTG9hZCgpIDogdm9pZCB7XHJcbiAgICAvLyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIGluIHRoZSBkZXJpdmVkIGNsYXNzXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEludGVyZmFjZSBpbXBsZW1lbnRhdGlvblxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubWdTdWIuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkgOiB2b2lkIHtcclxuICAgIGlmKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnRhYmxlU2VydmljZS5nZXRQYWdlU2l6ZSgpKSAmJiB0aGlzLnRhc2sub2xkUGFnZVNpemUgIT0gdGhpcy50YWJsZVNlcnZpY2UuZ2V0UGFnZVNpemUoKSkge1xyXG4gICAgICB0aGlzLnRhc2sucmVzaXplKHRoaXMudGFibGVTZXJ2aWNlLmdldFBhZ2VTaXplKCksIDApO1xyXG4gICAgICB0aGlzLnRhc2sub2xkUGFnZVNpemUgPSB0aGlzLnRhYmxlU2VydmljZS5nZXRQYWdlU2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhc2suZGlzcG9zZSgpO1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -0,0 +1,54 @@
1
+ export class utils {
2
+ static getDistance(control, x, y) {
3
+ let left = control.clientLeft, top = control.clientTop;
4
+ let dx, dy;
5
+ const right = left + control.clientWidth;
6
+ const bottom = top + control.clientHeight;
7
+ if (x < left) {
8
+ dx = left - x;
9
+ }
10
+ else if (x > right) {
11
+ dx = x - right;
12
+ }
13
+ else {
14
+ dx = 0;
15
+ }
16
+ if (y < top) {
17
+ dy = top - y;
18
+ }
19
+ else if (y > bottom) {
20
+ dy = y - bottom;
21
+ }
22
+ else {
23
+ dy = 0;
24
+ }
25
+ const ret = (dx * dx + dy * dy);
26
+ return ret;
27
+ }
28
+ static getDimentions(el) {
29
+ let xPos = 0;
30
+ let yPos = 0;
31
+ let width = el.width;
32
+ let height = el.height;
33
+ while (el) {
34
+ if (el.tagName == "BODY") {
35
+ let xScroll = el.scrollLeft || document.documentElement.scrollLeft;
36
+ let yScroll = el.scrollTop || document.documentElement.scrollTop;
37
+ xPos += (el.offsetLeft - xScroll + el.clientLeft);
38
+ yPos += (el.offsetTop - yScroll + el.clientTop);
39
+ }
40
+ else {
41
+ xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft);
42
+ yPos += (el.offsetTop - el.scrollTop + el.clientTop);
43
+ }
44
+ el = el.offsetParent;
45
+ }
46
+ return {
47
+ x: xPos,
48
+ y: yPos,
49
+ width: width,
50
+ height: height
51
+ };
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sS0FBSztJQUtoQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFFdkQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUV2RCxJQUFJLEVBQUUsRUFBRSxFQUFVLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDYixFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDO2FBQU0sSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDckIsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1osRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDdEIsRUFBRSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDL0IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBS0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ3JCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUV2QixPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUV6QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO2dCQUNuRSxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2dCQUVqRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xELElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLENBQUM7Z0JBRU4sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBRUQsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFFdkIsQ0FBQztRQUNELE9BQU87WUFDTCxDQUFDLEVBQUUsSUFBSTtZQUNQLENBQUMsRUFBRSxJQUFJO1lBQ1AsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gY2xhc3MgdG8gaG9sZCBndWktcmVsYXRlZCBoZWxwZXIgbWV0aG9kc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5leHBvcnQgY2xhc3MgdXRpbHMge1xyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIC8vIENhbGN1bGF0ZSB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgY29udHJvbCBhbmQgdGhlIHN1cHBsaWVkIHgseSBjb29yZGluYXRlc1xyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgc3RhdGljIGdldERpc3RhbmNlKGNvbnRyb2w6IEVsZW1lbnQsIHg6IG51bWJlciwgeTogbnVtYmVyKTogbnVtYmVyIHtcclxuXHJcbiAgICBsZXQgbGVmdCA9IGNvbnRyb2wuY2xpZW50TGVmdCwgdG9wID0gY29udHJvbC5jbGllbnRUb3A7XHJcblxyXG4gICAgbGV0IGR4LCBkeTogbnVtYmVyO1xyXG4gICAgY29uc3QgcmlnaHQgPSBsZWZ0ICsgY29udHJvbC5jbGllbnRXaWR0aDtcclxuICAgIGNvbnN0IGJvdHRvbSA9IHRvcCArIGNvbnRyb2wuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgIGlmICh4IDwgbGVmdCkge1xyXG4gICAgICBkeCA9IGxlZnQgLSB4O1xyXG4gICAgfSBlbHNlIGlmICh4ID4gcmlnaHQpIHtcclxuICAgICAgZHggPSB4IC0gcmlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkeCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHkgPCB0b3ApIHtcclxuICAgICAgZHkgPSB0b3AgLSB5O1xyXG4gICAgfSBlbHNlIGlmICh5ID4gYm90dG9tKSB7XHJcbiAgICAgIGR5ID0geSAtIGJvdHRvbTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGR5ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHJldCA9IChkeCAqIGR4ICsgZHkgKiBkeSlcclxuICAgIHJldHVybiByZXQ7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIC8vXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzdGF0aWMgZ2V0RGltZW50aW9ucyhlbCkge1xyXG4gICAgbGV0IHhQb3MgPSAwO1xyXG4gICAgbGV0IHlQb3MgPSAwO1xyXG4gICAgbGV0IHdpZHRoID0gZWwud2lkdGg7XHJcbiAgICBsZXQgaGVpZ2h0ID0gZWwuaGVpZ2h0O1xyXG5cclxuICAgIHdoaWxlIChlbCkge1xyXG4gICAgICBpZiAoZWwudGFnTmFtZSA9PSBcIkJPRFlcIikge1xyXG4gICAgICAgIC8vIGRlYWwgd2l0aCBicm93c2VyIHF1aXJrcyB3aXRoIGJvZHkvd2luZG93L2RvY3VtZW50IGFuZCBwYWdlIHNjcm9sbFxyXG4gICAgICAgIGxldCB4U2Nyb2xsID0gZWwuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcclxuICAgICAgICBsZXQgeVNjcm9sbCA9IGVsLnNjcm9sbFRvcCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xyXG5cclxuICAgICAgICB4UG9zICs9IChlbC5vZmZzZXRMZWZ0IC0geFNjcm9sbCArIGVsLmNsaWVudExlZnQpO1xyXG4gICAgICAgIHlQb3MgKz0gKGVsLm9mZnNldFRvcCAtIHlTY3JvbGwgKyBlbC5jbGllbnRUb3ApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGZvciBhbGwgb3RoZXIgbm9uLUJPRFkgZWxlbWVudHNcclxuICAgICAgICB4UG9zICs9IChlbC5vZmZzZXRMZWZ0IC0gZWwuc2Nyb2xsTGVmdCArIGVsLmNsaWVudExlZnQpO1xyXG4gICAgICAgIHlQb3MgKz0gKGVsLm9mZnNldFRvcCAtIGVsLnNjcm9sbFRvcCArIGVsLmNsaWVudFRvcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGVsID0gZWwub2Zmc2V0UGFyZW50O1xyXG5cclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHg6IHhQb3MsXHJcbiAgICAgIHk6IHlQb3MsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHRcclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=