@magic-xpa/angular 4.1100.0-dev4110.98 → 4.1100.0

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 (170) hide show
  1. package/README.md +5 -5
  2. package/{esm2020 → esm2022}/index.mjs +59 -59
  3. package/{esm2020 → esm2022}/magic-xpa-angular.mjs +1 -1
  4. package/esm2022/src/controls.metadata.model.mjs +183 -0
  5. package/{esm2020 → esm2022}/src/interfaces/sub-form-definition.iterface.mjs +1 -1
  6. package/{esm2020 → esm2022}/src/magic.core.module.mjs +159 -160
  7. package/{esm2020 → esm2022}/src/services/ISubformMagicService.mjs +1 -1
  8. package/esm2022/src/services/OverlayWindowService.mjs +244 -0
  9. package/esm2022/src/services/StylesMapManager.mjs +28 -0
  10. package/esm2022/src/services/accessor.magic.service.mjs +358 -0
  11. package/esm2022/src/services/commands-collector.magic.service.mjs +47 -0
  12. package/esm2022/src/services/component-list.magic.service.mjs +45 -0
  13. package/{esm2020 → esm2022}/src/services/confirmation.components.magic.provider.mjs +21 -21
  14. package/esm2022/src/services/engine.magic.service.mjs +80 -0
  15. package/{esm2020 → esm2022}/src/services/exit.magic.service.mjs +13 -13
  16. package/esm2022/src/services/magic-color.service.mjs +101 -0
  17. package/{esm2020 → esm2022}/src/services/magic.lazy.loader.service.mjs +16 -16
  18. package/{esm2020 → esm2022}/src/services/magic.providers.mjs +24 -24
  19. package/esm2022/src/services/magic.services.mjs +36 -0
  20. package/esm2022/src/services/mg-date-adapter.mjs +108 -0
  21. package/{esm2020 → esm2022}/src/services/overlay.conainer.magic.provider.mjs +14 -14
  22. package/esm2022/src/services/router-commands.magic.service.mjs +31 -0
  23. package/esm2022/src/services/subform.magic.service.mjs +194 -0
  24. package/esm2022/src/services/table.magic.service.mjs +81 -0
  25. package/esm2022/src/services/task.magics.service.mjs +648 -0
  26. package/esm2022/src/services/title.magic.service.mjs +19 -0
  27. package/esm2022/src/ui/GuiInteractiveExecutor.mjs +114 -0
  28. package/esm2022/src/ui/components/base-magic-alert.component.mjs +24 -0
  29. package/esm2022/src/ui/components/base-magic-confirm.component.mjs +24 -0
  30. package/esm2022/src/ui/components/magic-alert.component.mjs +36 -0
  31. package/esm2022/src/ui/components/magic-confirmation-box.component.mjs +42 -0
  32. package/esm2022/src/ui/directives/NonMagicControlDirective.mjs +58 -0
  33. package/esm2022/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +29 -0
  34. package/esm2022/src/ui/directives/magic/checkbox.magic.directive.mjs +100 -0
  35. package/esm2022/src/ui/directives/magic/combobox.magic.directive.mjs +37 -0
  36. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +27 -0
  37. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +85 -0
  38. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +32 -0
  39. package/esm2022/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +28 -0
  40. package/{esm2020 → esm2022}/src/ui/directives/magic/nocontrol.magic.directive.mjs +193 -193
  41. package/esm2022/src/ui/directives/magic/row.magic.directive.mjs +62 -0
  42. package/esm2022/src/ui/directives/magic-focus.directive.mjs +20 -0
  43. package/esm2022/src/ui/directives/magic.directive.mjs +232 -0
  44. package/esm2022/src/ui/directives/magicViewContainerRef.directive.mjs +20 -0
  45. package/esm2022/src/ui/directives/mgformat.magic.directive.mjs +579 -0
  46. package/esm2022/src/ui/directives/range-validator.magic.directive.mjs +60 -0
  47. package/{esm2020 → esm2022}/src/ui/magic-confirmationBox.mjs +41 -41
  48. package/{esm2020 → esm2022}/src/ui/magic-modal/base-magic-overlay-container.mjs +22 -22
  49. package/esm2022/src/ui/magic-modal/magic-modal-form.mjs +6 -0
  50. package/{esm2020 → esm2022}/src/ui/magic-modal/magic-modal-interface.mjs +1 -1
  51. package/esm2022/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +124 -0
  52. package/esm2022/src/ui/magic-modal/magic-overlay-container.mjs +162 -0
  53. package/esm2022/src/ui/magic-root.component.mjs +236 -0
  54. package/esm2022/src/ui/mgerror.magic.component.mjs +125 -0
  55. package/esm2022/src/ui/pipes/date.magic.pipe.mjs +106 -0
  56. package/esm2022/src/ui/pipes/time.magic.pipe.mjs +52 -0
  57. package/esm2022/src/ui/pipes/time24.magic.pipe.mjs +35 -0
  58. package/esm2022/src/ui/router-container.magic.component.mjs +115 -0
  59. package/{esm2020 → esm2022}/src/ui/subform.magic.component.mjs +50 -46
  60. package/esm2022/src/ui/task-base.magic.component.mjs +91 -0
  61. package/{esm2020 → esm2022}/src/ui/utils.mjs +53 -53
  62. package/{fesm2020 → fesm2022}/magic-xpa-angular.mjs +4930 -4495
  63. package/fesm2022/magic-xpa-angular.mjs.map +1 -0
  64. package/index.d.ts +58 -58
  65. package/package.json +10 -16
  66. package/src/controls.metadata.model.d.ts +62 -62
  67. package/src/interfaces/sub-form-definition.iterface.d.ts +12 -12
  68. package/src/magic.core.module.d.ts +41 -41
  69. package/src/services/ISubformMagicService.d.ts +4 -4
  70. package/src/services/OverlayWindowService.d.ts +30 -31
  71. package/src/services/StylesMapManager.d.ts +5 -5
  72. package/src/services/accessor.magic.service.d.ts +69 -69
  73. package/src/services/commands-collector.magic.service.d.ts +15 -15
  74. package/src/services/component-list.magic.service.d.ts +23 -23
  75. package/src/services/confirmation.components.magic.provider.d.ts +8 -8
  76. package/src/services/engine.magic.service.d.ts +27 -27
  77. package/src/services/exit.magic.service.d.ts +6 -6
  78. package/src/services/magic-color.service.d.ts +19 -19
  79. package/src/services/magic.lazy.loader.service.d.ts +6 -6
  80. package/src/services/magic.providers.d.ts +107 -107
  81. package/src/services/magic.services.d.ts +16 -16
  82. package/src/services/mg-date-adapter.d.ts +38 -40
  83. package/src/services/overlay.conainer.magic.provider.d.ts +7 -7
  84. package/src/services/router-commands.magic.service.d.ts +17 -17
  85. package/src/services/subform.magic.service.d.ts +43 -43
  86. package/src/services/table.magic.service.d.ts +30 -30
  87. package/src/services/task.magics.service.d.ts +100 -100
  88. package/src/services/title.magic.service.d.ts +9 -9
  89. package/src/ui/GuiInteractiveExecutor.d.ts +22 -22
  90. package/src/ui/components/base-magic-alert.component.d.ts +10 -10
  91. package/src/ui/components/base-magic-confirm.component.d.ts +10 -10
  92. package/src/ui/components/magic-alert.component.d.ts +6 -6
  93. package/src/ui/components/magic-confirmation-box.component.d.ts +6 -6
  94. package/src/ui/directives/NonMagicControlDirective.d.ts +26 -26
  95. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +9 -9
  96. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +22 -9
  97. package/src/ui/directives/magic/combobox.magic.directive.d.ts +10 -10
  98. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +7 -7
  99. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +23 -17
  100. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +7 -7
  101. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +9 -9
  102. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +18 -18
  103. package/src/ui/directives/magic/row.magic.directive.d.ts +17 -17
  104. package/src/ui/directives/magic-focus.directive.d.ts +9 -9
  105. package/src/ui/directives/magic.directive.d.ts +45 -44
  106. package/src/ui/directives/magicViewContainerRef.directive.d.ts +8 -8
  107. package/src/ui/directives/mgformat.magic.directive.d.ts +38 -31
  108. package/src/ui/directives/range-validator.magic.directive.d.ts +17 -17
  109. package/src/ui/magic-confirmationBox.d.ts +6 -6
  110. package/src/ui/magic-modal/base-magic-overlay-container.d.ts +5 -5
  111. package/src/ui/magic-modal/magic-modal-form.d.ts +5 -5
  112. package/src/ui/magic-modal/magic-modal-interface.d.ts +10 -10
  113. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +30 -31
  114. package/src/ui/magic-modal/magic-overlay-container.d.ts +24 -25
  115. package/src/ui/magic-root.component.d.ts +43 -40
  116. package/src/ui/mgerror.magic.component.d.ts +20 -20
  117. package/src/ui/pipes/date.magic.pipe.d.ts +17 -17
  118. package/src/ui/pipes/time.magic.pipe.d.ts +11 -11
  119. package/src/ui/pipes/time24.magic.pipe.d.ts +10 -10
  120. package/src/ui/router-container.magic.component.d.ts +29 -30
  121. package/src/ui/subform.magic.component.d.ts +16 -16
  122. package/src/ui/task-base.magic.component.d.ts +34 -34
  123. package/src/ui/utils.d.ts +9 -9
  124. package/esm2020/src/controls.metadata.model.mjs +0 -180
  125. package/esm2020/src/services/OverlayWindowService.mjs +0 -236
  126. package/esm2020/src/services/StylesMapManager.mjs +0 -28
  127. package/esm2020/src/services/accessor.magic.service.mjs +0 -356
  128. package/esm2020/src/services/commands-collector.magic.service.mjs +0 -46
  129. package/esm2020/src/services/component-list.magic.service.mjs +0 -46
  130. package/esm2020/src/services/engine.magic.service.mjs +0 -82
  131. package/esm2020/src/services/magic-color.service.mjs +0 -99
  132. package/esm2020/src/services/magic.services.mjs +0 -31
  133. package/esm2020/src/services/mg-date-adapter.mjs +0 -109
  134. package/esm2020/src/services/router-commands.magic.service.mjs +0 -28
  135. package/esm2020/src/services/subform.magic.service.mjs +0 -184
  136. package/esm2020/src/services/table.magic.service.mjs +0 -77
  137. package/esm2020/src/services/task.magics.service.mjs +0 -624
  138. package/esm2020/src/services/title.magic.service.mjs +0 -18
  139. package/esm2020/src/ui/GuiInteractiveExecutor.mjs +0 -105
  140. package/esm2020/src/ui/components/base-magic-alert.component.mjs +0 -23
  141. package/esm2020/src/ui/components/base-magic-confirm.component.mjs +0 -23
  142. package/esm2020/src/ui/components/magic-alert.component.mjs +0 -35
  143. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +0 -41
  144. package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +0 -49
  145. package/esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +0 -28
  146. package/esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs +0 -28
  147. package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +0 -36
  148. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +0 -27
  149. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +0 -52
  150. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +0 -32
  151. package/esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +0 -27
  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/fesm2015/magic-xpa-angular.mjs +0 -4865
  169. package/fesm2015/magic-xpa-angular.mjs.map +0 -1
  170. package/fesm2020/magic-xpa-angular.mjs.map +0 -1
@@ -0,0 +1,232 @@
1
+ import { Directive, ElementRef, Input, Optional, Renderer2, ViewContainerRef } from "@angular/core";
2
+ import { isNullOrUndefined } from "@magic-xpa/mscorelib";
3
+ import { CommandType, GuiConstants, HtmlProperties, InteractiveCommandType, Modifiers } from "@magic-xpa/gui";
4
+ import { getGuiEventObj } from "@magic-xpa/engine";
5
+ import { TaskBaseMagicComponent } from "../task-base.magic.component";
6
+ import { TaskMagicService } from "../../services/task.magics.service";
7
+ import { debounceTime, filter, map } from "rxjs/operators";
8
+ import { RowMagicDirective } from "./magic/row.magic.directive";
9
+ import { fromEvent } from "rxjs";
10
+ import { BindingLevel, MgControlType, StorageAttributeType } from "@magic-xpa/utils";
11
+ import { Platform } from "@angular/cdk/platform";
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../services/task.magics.service";
14
+ import * as i2 from "@angular/cdk/platform";
15
+ import * as i3 from "./magic/row.magic.directive";
16
+ export class MagicDirective {
17
+ _task;
18
+ element;
19
+ renderer;
20
+ vcRef;
21
+ platform;
22
+ magicRow;
23
+ set magic(val) {
24
+ this.id = val;
25
+ this.selector = "magic";
26
+ }
27
+ ;
28
+ set eventsOnly(val) {
29
+ console.log("eventsOnly");
30
+ this.eventsOnlyVal = true;
31
+ }
32
+ ;
33
+ pollTime = 200;
34
+ rowId;
35
+ htmlElement;
36
+ component;
37
+ eventHandlers = {};
38
+ id;
39
+ selector;
40
+ subscribeRefreshDom;
41
+ focusUnlistener;
42
+ eventsOnlyVal = false;
43
+ static opened = false;
44
+ static noOfAutoCompleteBoxesOpened = 0;
45
+ subscribeInteractiveCommands;
46
+ constructor(_task, element, renderer, vcRef, platform, magicRow) {
47
+ this._task = _task;
48
+ this.element = element;
49
+ this.renderer = renderer;
50
+ this.vcRef = vcRef;
51
+ this.platform = platform;
52
+ this.magicRow = magicRow;
53
+ this.htmlElement = this.element.nativeElement;
54
+ if (!(typeof magicRow === "undefined" || magicRow === null))
55
+ this.rowId = magicRow.rowId;
56
+ }
57
+ get task() {
58
+ return this._task;
59
+ }
60
+ regEvents() {
61
+ this.eventHandlers["focusin"] = this.OnFocus.bind(this);
62
+ Object.keys(this.eventHandlers).forEach((key) => {
63
+ this.focusUnlistener = this.renderer.listen(this.htmlElement, key, this.eventHandlers[key]);
64
+ });
65
+ let events = ["click", "mousedown", "dblclick"];
66
+ events.forEach(event => {
67
+ this.renderer.listen(this.htmlElement, event, (e) => {
68
+ let fromButton = false;
69
+ if (this.htmlElement instanceof HTMLButtonElement)
70
+ fromButton = true;
71
+ if (fromButton && (this.platform.IOS || this.platform.SAFARI))
72
+ this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
73
+ this.task.insertEvent(getGuiEventObj(event, this.id, +this.rowId, fromButton));
74
+ if (MagicDirective.noOfAutoCompleteBoxesOpened < 1)
75
+ e.cancelBubble = true;
76
+ });
77
+ });
78
+ this.renderer.listen(this.htmlElement, "change", (e) => {
79
+ let guiEvent = getGuiEventObj("selectionchanged", this.id, +this.rowId);
80
+ if ((event.target).selectedIndex !== undefined) {
81
+ guiEvent.Value = (event.target).selectedIndex.toString();
82
+ e.cancelBubble = true;
83
+ this.task.insertEvent(guiEvent);
84
+ }
85
+ });
86
+ fromEvent(this.htmlElement, "input").pipe(map((event) => {
87
+ return event.target.value;
88
+ }), debounceTime(this.pollTime)).subscribe((x) => {
89
+ if (this.task.getProperty(this.id, HtmlProperties.BindingLevel, this.rowId) === BindingLevel.Character) {
90
+ let attribute = this.task.Records.list[0].getControlMetadata(this.id).dataType;
91
+ if (attribute !== StorageAttributeType.Date && attribute != StorageAttributeType.Time)
92
+ this.task.mgAccessorService.setValueToControl(this.id, x, true);
93
+ }
94
+ });
95
+ this.renderer.listen(this.htmlElement, "keydown", (e) => {
96
+ let guiEvent = getGuiEventObj("keydown", this.id, +this.rowId);
97
+ guiEvent.modifiers = Modifiers.MODIFIER_NONE;
98
+ if (e.altKey && e.keyCode !== GuiConstants.KEY_ALT)
99
+ guiEvent.modifiers = Modifiers.MODIFIER_ALT;
100
+ else if (e.ctrlKey && e.keyCode !== GuiConstants.KEY_CTRL)
101
+ guiEvent.modifiers = Modifiers.MODIFIER_CTRL;
102
+ let supportedKey = e.keyCode === GuiConstants.KEY_PG_UP ||
103
+ e.keyCode === GuiConstants.KEY_PG_DOWN ||
104
+ e.keyCode === GuiConstants.KEY_LEFT ||
105
+ e.keyCode === GuiConstants.KEY_RIGHT ||
106
+ e.keyCode === GuiConstants.KEY_UP ||
107
+ e.keyCode === GuiConstants.KEY_DOWN ||
108
+ e.keyCode === GuiConstants.KEY_ESC ||
109
+ e.keyCode === GuiConstants.KEY_HOME ||
110
+ e.keyCode === GuiConstants.KEY_END ||
111
+ e.keyCode === GuiConstants.KEY_RETURN ||
112
+ (e.keyCode >= GuiConstants.KEY_F1 && e.keyCode <= GuiConstants.KEY_F12);
113
+ if (guiEvent.modifiers !== Modifiers.MODIFIER_NONE || supportedKey) {
114
+ guiEvent.keyCode = e.keyCode;
115
+ if (e.keyCode !== GuiConstants.KEY_ESC || e.keyCode === GuiConstants.KEY_ESC && (!MagicDirective.opened && MagicDirective.noOfAutoCompleteBoxesOpened < 1))
116
+ e.cancelBubble = true;
117
+ this.task.insertEvent(guiEvent);
118
+ }
119
+ });
120
+ }
121
+ OnFocus() {
122
+ this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
123
+ event.cancelBubble = true;
124
+ }
125
+ IsSameElement(command) {
126
+ let line = command.line;
127
+ if (this.task.isTableControl(command.CtrlName))
128
+ line = this.task.getGuiRowId(line, true);
129
+ return (command.CtrlName === this.id &&
130
+ (line === +this.rowId ||
131
+ (line === 0 && isNullOrUndefined(this.rowId))));
132
+ }
133
+ IsSameComponent(command) {
134
+ return (command.controlName === this.id);
135
+ }
136
+ regUpdatesUI() {
137
+ this.subscribeRefreshDom = this.task
138
+ .refreshDom.pipe(filter(c => this.IsSameElement(c)))
139
+ .subscribe(a => {
140
+ let command = a;
141
+ if (isNullOrUndefined(this.rowId))
142
+ this.rowId = "0";
143
+ try {
144
+ if (!this.eventsOnlyVal)
145
+ this.handleCommand(command);
146
+ }
147
+ catch (ex) {
148
+ console.dir(ex);
149
+ }
150
+ });
151
+ this.subscribeInteractiveCommands = this.task.interactiveCommands
152
+ .pipe(filter(c => this.IsSameComponent(c)))
153
+ .subscribe(command => {
154
+ this.handleInteractiveCommands(command);
155
+ });
156
+ }
157
+ ngOnInit() {
158
+ this.regEvents();
159
+ this.regUpdatesUI();
160
+ }
161
+ handleCommand(command) {
162
+ switch (command.CommandType) {
163
+ case CommandType.SET_PROPERTY:
164
+ this.handleSetProperty(command);
165
+ break;
166
+ case CommandType.SET_FOCUS:
167
+ this.focusUnlistener();
168
+ if (!(command.obj.ConnectedControl && this.htmlElement instanceof HTMLButtonElement))
169
+ this.htmlElement.focus();
170
+ this.focusUnlistener = this.renderer.listen(this.htmlElement, "focusin", this.eventHandlers["focusin"]);
171
+ break;
172
+ }
173
+ }
174
+ handleInteractiveCommands(command) {
175
+ switch (command._commandType) {
176
+ case InteractiveCommandType.CALL_JS:
177
+ let methodName = command._str;
178
+ let args = command.arguments;
179
+ let magicComponent = (this.vcRef._hostLView).find(v => v instanceof TaskBaseMagicComponent);
180
+ let resultString = "";
181
+ try {
182
+ if (!isNullOrUndefined(magicComponent[methodName])) {
183
+ resultString = magicComponent[methodName].apply(magicComponent, args);
184
+ }
185
+ else
186
+ console.error("Instance method " + methodName + " does not exists");
187
+ }
188
+ catch (e) {
189
+ console.error(e.message);
190
+ }
191
+ command.resultString = resultString;
192
+ break;
193
+ }
194
+ }
195
+ handleSetProperty(command) {
196
+ switch (command.Operation) {
197
+ case HtmlProperties.ReadOnly:
198
+ {
199
+ if (command.obj.Type == MgControlType.CTRL_TYPE_TEXT)
200
+ if (command.obj1 != true)
201
+ this.renderer.removeAttribute(this.htmlElement, command.Operation);
202
+ else
203
+ this.renderer.setAttribute(this.htmlElement, command.Operation, command.str);
204
+ }
205
+ break;
206
+ }
207
+ }
208
+ ngOnDestroy() {
209
+ this.subscribeRefreshDom.unsubscribe();
210
+ }
211
+ static ɵfac = function MagicDirective_Factory(t) { return new (t || MagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.RowMagicDirective, 8)); };
212
+ static ɵdir = i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", pollTime: "pollTime", rowId: "rowId" } });
213
+ }
214
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
215
+ type: Directive,
216
+ args: [{
217
+ selector: "[magic]"
218
+ }]
219
+ }], () => [{ type: i1.TaskMagicService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.Platform }, { type: i3.RowMagicDirective, decorators: [{
220
+ type: Optional
221
+ }] }], { magic: [{
222
+ type: Input,
223
+ args: ["magic"]
224
+ }], eventsOnly: [{
225
+ type: Input,
226
+ args: ["eventsOnly"]
227
+ }], pollTime: [{
228
+ type: Input
229
+ }], rowId: [{
230
+ type: Input
231
+ }] }); })();
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUVaLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVVqRCxNQUFNLE9BQU8sY0FBYztJQTBFYjtJQUNBO0lBQ0E7SUFDQTtJQUNIO0lBQ2U7SUE5RXhCLElBQW9CLEtBQUssQ0FBQyxHQUFHO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUFBLENBQUM7SUFLRixJQUF5QixVQUFVLENBQUMsR0FBRztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLENBQUM7SUFBQSxDQUFDO0lBS2MsUUFBUSxHQUFXLEdBQUcsQ0FBQztJQUt2QixLQUFLLENBQVM7SUFTcEIsV0FBVyxDQUFjO0lBSTVCLFNBQVMsQ0FBeUI7SUFJakMsYUFBYSxHQUFtQyxFQUFFLENBQUM7SUFJcEQsRUFBRSxDQUFTO0lBSVIsUUFBUSxDQUFTO0lBSTNCLG1CQUFtQixDQUFlO0lBRTFCLGVBQWUsQ0FBZTtJQUUvQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXRCLE1BQU0sQ0FBQywyQkFBMkIsR0FBRSxDQUFDLENBQUM7SUFFN0MsNEJBQTRCLENBQWU7SUFXM0MsWUFDWSxLQUF1QixFQUN2QixPQUFtQixFQUNuQixRQUFtQixFQUNuQixLQUF1QixFQUMxQixRQUFrQixFQUNILFFBQTJCO1FBTHZDLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0gsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFFakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQU05QyxJQUFJLENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxXQUFXLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQU1ELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBS1MsU0FBUztRQUVqQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO1FBR0gsSUFBSSxNQUFNLEdBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFHbEQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFHLElBQUksQ0FBQyxXQUFXLFlBQVksaUJBQWlCO29CQUM5QyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQU9wQixJQUFJLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFFdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLGNBQWMsQ0FBQywyQkFBMkIsR0FBRSxDQUFDO29CQUMvQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBR0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLFFBQVEsR0FBYyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuRixJQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBRSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JELFFBQVEsQ0FBQyxLQUFLLEdBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoRSxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7UUFFSCxDQUFDLENBQUMsQ0FBQztRQUdILFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsRUFDRixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLFlBQVksQ0FBQyxTQUFTLEVBQUU7Z0JBRXZHLElBQUksU0FBUyxHQUEyQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDdkcsSUFBRyxTQUFTLEtBQUssb0JBQW9CLENBQUMsSUFBSSxJQUFJLFNBQVMsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJO29CQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ25FO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRTtZQUNuRSxJQUFJLFFBQVEsR0FBYyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUUsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO1lBRTdDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUM5QyxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7aUJBRTNDLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFlBQVksQ0FBQyxRQUFRO2dCQUNyRCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7WUFFakQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsU0FBUztnQkFDbkQsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsV0FBVztnQkFDdEMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDbkMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsU0FBUztnQkFDcEMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTTtnQkFDakMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDbkMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDbEMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDbkMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDbEMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsVUFBVTtnQkFDckMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFNUUsSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxhQUFhLElBQUksWUFBWSxFQUFFO2dCQUNoRSxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBRzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO29CQUN0SixDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFNTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQU9NLGFBQWEsQ0FBQyxPQUFPO1FBQzFCLElBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDbEMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDbkIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBT08sZUFBZSxDQUFDLE9BQXVCO1FBQzdDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBS08sWUFBWTtRQUNsQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDakMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxPQUFPLEdBQWUsQ0FBQyxDQUFDO1lBQzVCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDbkIsSUFBSTtnQkFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7b0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDL0I7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFFSixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7YUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUtELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFNRCxhQUFhLENBQUMsT0FBbUI7UUFDL0IsUUFBUSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBRTNCLEtBQUssV0FBVyxDQUFDLFlBQVk7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEMsTUFBTTtZQUVSLEtBQUssV0FBVyxDQUFDLFNBQVM7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxZQUFZLGlCQUFpQixDQUFDO29CQUNsRixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDeEcsTUFBTTtTQUNQO0lBQ0wsQ0FBQztJQUtELHlCQUF5QixDQUFDLE9BQXVCO1FBQy9DLFFBQVEsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM1QixLQUFLLHNCQUFzQixDQUFDLE9BQU87Z0JBQ2pDLElBQUksVUFBVSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxHQUFlLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLElBQUksY0FBYyxHQUEyQixDQUFPLElBQUksQ0FBQyxLQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLHNCQUFzQixDQUFDLENBQUM7Z0JBQzNILElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFFdEIsSUFBSTtvQkFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7d0JBRWxELFlBQVksR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDdkU7O3dCQUVDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxHQUFHLGtCQUFrQixDQUFDLENBQUM7aUJBQ3ZFO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUVWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMxQjtnQkFDRCxPQUFPLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDcEMsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQU9ELGlCQUFpQixDQUFDLE9BQW1CO1FBQ25DLFFBQVEsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN6QixLQUFLLGNBQWMsQ0FBQyxRQUFRO2dCQUFFO29CQUM1QixJQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxjQUFjO3dCQUNuRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSTs0QkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7OzRCQUVuRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNoRjtnQkFFQyxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBS0QsV0FBVztRQUVULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDO3dFQWhWVSxjQUFjOytDQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FKMUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2FBQ3BCOztzQkFpRkksUUFBUTtxQkE5RVMsS0FBSztrQkFBeEIsS0FBSzttQkFBQyxPQUFPO1lBUVcsVUFBVTtrQkFBbEMsS0FBSzttQkFBQyxZQUFZO1lBU0gsUUFBUTtrQkFBdkIsS0FBSztZQUtVLEtBQUs7a0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbW1hbmRUeXBlLFxyXG4gIEd1aUNvbW1hbmQsXHJcbiAgR3VpQ29uc3RhbnRzLFxyXG4gIEd1aUludGVyYWN0aXZlLFxyXG4gIEh0bWxQcm9wZXJ0aWVzLFxyXG4gIEludGVyYWN0aXZlQ29tbWFuZFR5cGUsXHJcbiAgTW9kaWZpZXJzXHJcbn0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7IGdldEd1aUV2ZW50T2JqLCBJR3VpRXZlbnQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9lbmdpbmVcIjtcclxuXHJcbmltcG9ydCB7IFRhc2tCYXNlTWFnaWNDb21wb25lbnQgfSBmcm9tIFwiLi4vdGFzay1iYXNlLm1hZ2ljLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUYXNrTWFnaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBSb3dNYWdpY0RpcmVjdGl2ZSB9IGZyb20gXCIuL21hZ2ljL3Jvdy5tYWdpYy5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaW5kaW5nTGV2ZWwsIE1nQ29udHJvbFR5cGUsIFN0b3JhZ2VBdHRyaWJ1dGVUeXBlIH0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BsYXRmb3JtXCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbm5lY3RzIEhUTUwgZWxlbWVudHMgdG8gdGhlIE1hZ2ljIFdlYiBDbGllbnQgZW5naW5lXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbbWFnaWNdXCJcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBNYWdpY0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoXCJtYWdpY1wiKSBzZXQgbWFnaWModmFsKSB7XHJcbiAgICB0aGlzLmlkID0gdmFsO1xyXG4gICAgdGhpcy5zZWxlY3RvciA9IFwibWFnaWNcIjtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGZsYWcgaXMgdXNlZCB3aGVuIHdlIG9ubHkgd2FudCB0byByZWdpc3RlciB0byBldmVudHMsIGJ1dCBkbyBub3Qgd2FudCB0byBleGVjdXRlIGNvbW1hbmRzIHNlbnQgZnJvbSBzZXJ2ZXJcclxuICAgKi9cclxuICBASW5wdXQoXCJldmVudHNPbmx5XCIpIHNldCBldmVudHNPbmx5KHZhbCkge1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudHNPbmx5XCIpO1xyXG4gICAgdGhpcy5ldmVudHNPbmx5VmFsID0gdHJ1ZTtcclxuXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogcG9sbFRpbWU6IGFmdGVyIHdoaWNoIHZhbHVlIHdpbGwgYmUgc2VudCB0byBtYWdpY1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwb2xsVGltZTogbnVtYmVyID0gMjAwO1xyXG5cclxuICAvKipcclxuICAgKiBSb3cgaWQgb2YgdGhlIGNvbnRyb2wsIGZvciB3aGVuIGl0IGlzIG9uIGEgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcm93SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIC8vQElucHV0KCkgZXZlbnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgSFRNTCBlbGVtZW50IGNvbm5lY3RlZCB0byB0aGlzIGRpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgLyoqXHJcbiAgICogTWFnaWMncyBjb21wb25lbnQgaGFuZGxpbmcgdGhpcyBjb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudDtcclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG9mIGV2ZW50IGhhbmRsZXJzIGZvciB0aGlzIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGV2ZW50SGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gdm9pZDsgfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIElkIG9mIHRoaXMgZWxlbWVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2VsZWN0b3I6IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgc3Vic2NyaWJlUmVmcmVzaERvbTogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGZvY3VzVW5saXN0ZW5lcjogKCgpID0+IHZvaWQpO1xyXG5cclxuICBwdWJsaWMgZXZlbnRzT25seVZhbCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vT2ZBdXRvQ29tcGxldGVCb3hlc09wZW5lZCA9MDtcclxuXHJcbiAgc3Vic2NyaWJlSW50ZXJhY3RpdmVDb21tYW5kczogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBfdGFzayBUaGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgZm9yIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZFxyXG4gICAqIEBwYXJhbSByZW5kZXJlciBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gdmNSZWZcclxuICAgKiBAcGFyYW0gcGxhdGZvcm1cclxuICAgKiBAcGFyYW0gbWFnaWNSb3dcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG1hZ2ljUm93OiBSb3dNYWdpY0RpcmVjdGl2ZSkge1xyXG5cclxuICAgIHRoaXMuaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIC8vbGV0IGMgPSAoPGFueT50aGlzLnZjUmVmKS5fdmlldztcclxuICAgIC8vd2hpbGUgKCEoYyBpbnN0YW5jZW9mIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSB7XHJcbiAgICAvLyAgYyA9IGMuY29tcG9uZW50O1xyXG4gICAgLy99XHJcbiAgICAvL3RoaXMuY29tcG9uZW50ID0gYztcclxuICAgIGlmICghKHR5cGVvZiBtYWdpY1JvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBtYWdpY1JvdyA9PT0gbnVsbCkpXHJcbiAgICAgIHRoaXMucm93SWQgPSBtYWdpY1Jvdy5yb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgdGFzaygpOiBUYXNrTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLl90YXNrO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgdG8gdGhlIGV2ZW50cyB0aGlzIGVsZW1lbnQgbWF5IG5lZWQgdG8gaGFuZGxlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlZ0V2ZW50cygpIHtcclxuICAgIC8vIEhhbmRsZSBldmVudHMgZm9yIHdoaWNoIGV2ZW50IGhhbmRsZXIgbWF5IGJlIHJlbW92ZWQgYW5kIHJlc3RvcmVkXHJcbiAgICB0aGlzLmV2ZW50SGFuZGxlcnNbXCJmb2N1c2luXCJdID0gdGhpcy5PbkZvY3VzLmJpbmQodGhpcyk7XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5ldmVudEhhbmRsZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5mb2N1c1VubGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBrZXksIHRoaXMuZXZlbnRIYW5kbGVyc1trZXldKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEhhbmRsZSBldmVudHMgd2l0aCBhbm9ueW1vdXMgIGV2ZW50IGhhbmRsZXJzXHJcbiAgICBsZXQgZXZlbnRzOiBzdHJpbmdbXSA9IFtcImNsaWNrXCIsIFwibW91c2Vkb3duXCIsIFwiZGJsY2xpY2tcIl07Ly8gLCdyZXNpemUnLCAnbG9hZCcsICd1bmxvYWQnXHJcbiAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaHRtbEVsZW1lbnQsIGV2ZW50LCAoZSkgPT4ge1xyXG5cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBmaXJlZCBmcm9tIHpvb20gYnV0dG9uICggdG8gaWRlbnRpZnkgdGhlIGNvbm5lY3RlZCB6b29tIGJ1dHRvbiBpbiBlbmdpbmUpXHJcbiAgICAgICAgbGV0IGZyb21CdXR0b24gPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpXHJcbiAgICAgICAgICBmcm9tQnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW4gdGhlIGNhc2Ugb2YgU2FmYXJpIG9yIENocm9tZSBicm93c2VyIG9uIElPUywgd2hlbiBhIGJ1dHRvbiBpcyBjbGlja2VkLCB0aGUgYnJvd3NlciBkb2VzIG5vdCByZWNlaXZlXHJcbiAgICAgICAgICogZm9jdXMgZXZlbnQgaGVuY2UgdGhlIHpvb20gYWN0aW9uIGlzIG5vdCBleGVjdXRlZC4gU28gaW4gb3JkZXIgdG8gcmVjZWl2ZSBmb2N1cyBldmVudCwgZW5hYmxpbmcgaXQgZXhjbHVzaXZlbHlcclxuICAgICAgICAgKiBpbiB0aGUgY2FzZSBvZiBTYWZhcmkgb3IgQ2hyb21lIGJyb3dzZXIgb24gSU9TIGFuZCBTYWZhcmkgYnJvd3NlciBvbiBNYWMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKGZyb21CdXR0b24gJiYgKHRoaXMucGxhdGZvcm0uSU9TIHx8IHRoaXMucGxhdGZvcm0uU0FGQVJJKSlcclxuICAgICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihcImZvY3VzXCIsIHRoaXMuaWQsICt0aGlzLnJvd0lkKSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihldmVudCwgdGhpcy5pZCwgK3RoaXMucm93SWQsIGZyb21CdXR0b24pKTtcclxuICAgICAgICBpZiAoTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkPCAxKVxyXG4gICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBcImNoYW5nZVwiLCAoZSkgPT4ge1xyXG4gICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwic2VsZWN0aW9uY2hhbmdlZFwiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCk7XHJcblxyXG4gICAgICBpZiAoKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGd1aUV2ZW50LlZhbHVlID0gKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXgudG9TdHJpbmcoKTtcclxuICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGhhbmRsZSB0aGUgaW5wdXQgZXZlbnRcclxuICAgIGZyb21FdmVudCh0aGlzLmh0bWxFbGVtZW50LCBcImlucHV0XCIpLnBpcGUoXHJcbiAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5wb2xsVGltZSkgLy8gdGltZSBhZnRlciB3aGljaCB2YWx1ZSB3aWxsIGJlIHNlbnQgdG8gbWFnaWNcclxuICAgICkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFzay5nZXRQcm9wZXJ0eSh0aGlzLmlkLCBIdG1sUHJvcGVydGllcy5CaW5kaW5nTGV2ZWwsIHRoaXMucm93SWQpID09PSBCaW5kaW5nTGV2ZWwuQ2hhcmFjdGVyKSB7XHJcbiAgICAgICAgICAvLyBEb24ndCBzdXBwb3J0IGNoYXJhY3RlciBiaW5kaW5nIGZvciBkYXRlL3RpbWUgdmFsdWVzXHJcbiAgICAgICAgIGxldCBhdHRyaWJ1dGUgOiBTdG9yYWdlQXR0cmlidXRlVHlwZSA9ICB0aGlzLnRhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YSh0aGlzLmlkKS5kYXRhVHlwZTtcclxuICAgICAgICAgaWYoYXR0cmlidXRlICE9PSBTdG9yYWdlQXR0cmlidXRlVHlwZS5EYXRlICYmIGF0dHJpYnV0ZSAhPSBTdG9yYWdlQXR0cmlidXRlVHlwZS5UaW1lKVxyXG4gICAgICAgICAgICB0aGlzLnRhc2subWdBY2Nlc3NvclNlcnZpY2Uuc2V0VmFsdWVUb0NvbnRyb2wodGhpcy5pZCwgeCwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5odG1sRWxlbWVudCwgXCJrZXlkb3duXCIsIChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgbGV0IGd1aUV2ZW50OiBJR3VpRXZlbnQgPSBnZXRHdWlFdmVudE9iaihcImtleWRvd25cIiwgdGhpcy5pZCwgK3RoaXMucm93SWQpO1xyXG4gICAgICAgIGd1aUV2ZW50Lm1vZGlmaWVycyA9IE1vZGlmaWVycy5NT0RJRklFUl9OT05FO1xyXG5cclxuICAgICAgICBpZiAoZS5hbHRLZXkgJiYgZS5rZXlDb2RlICE9PSBHdWlDb25zdGFudHMuS0VZX0FMVClcclxuICAgICAgICAgICAgZ3VpRXZlbnQubW9kaWZpZXJzID0gTW9kaWZpZXJzLk1PRElGSUVSX0FMVDtcclxuXHJcbiAgICAgICAgZWxzZSBpZiAoZS5jdHJsS2V5ICYmIGUua2V5Q29kZSAhPT0gR3VpQ29uc3RhbnRzLktFWV9DVFJMKVxyXG4gICAgICAgICAgICBndWlFdmVudC5tb2RpZmllcnMgPSBNb2RpZmllcnMuTU9ESUZJRVJfQ1RSTDtcclxuXHJcbiAgICAgICAgbGV0IHN1cHBvcnRlZEtleSA9IGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9QR19VUCB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfUEdfRE9XTiB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfTEVGVCB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfUklHSFQgfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX1VQIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9ET1dOIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9FU0MgfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0hPTUUgfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0VORCB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfUkVUVVJOIHx8XHJcbiAgICAgICAgICAgIChlLmtleUNvZGUgPj0gR3VpQ29uc3RhbnRzLktFWV9GMSAmJiBlLmtleUNvZGUgPD0gR3VpQ29uc3RhbnRzLktFWV9GMTIpO1xyXG5cclxuICAgICAgICBpZiAoZ3VpRXZlbnQubW9kaWZpZXJzICE9PSBNb2RpZmllcnMuTU9ESUZJRVJfTk9ORSB8fCBzdXBwb3J0ZWRLZXkpIHtcclxuICAgICAgICAgICAgZ3VpRXZlbnQua2V5Q29kZSA9IGUua2V5Q29kZTtcclxuXHJcbiAgICAgICAgICAgIC8vIERlZmVjdCAxNjAwMjEgZml4ZWQgLSBkb24ndCBzZXQgZS5jYW5jZWxCdWJibGUgd2hlbiBjb21ib2JveCBpcyBvcGVuZWQgYW5kIGVzYyBrZXkgaXMgcHJlc3NlZFxyXG4gICAgICAgICAgICBpZiAoZS5rZXlDb2RlICE9PSBHdWlDb25zdGFudHMuS0VZX0VTQyB8fCBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfRVNDICYmICghTWFnaWNEaXJlY3RpdmUub3BlbmVkICYmIE1hZ2ljRGlyZWN0aXZlLm5vT2ZBdXRvQ29tcGxldGVCb3hlc09wZW5lZCA8IDEpKVxyXG4gICAgICAgICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGUgZm9jdXMgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIE9uRm9jdXMoKSB7XHJcbiAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ2V0R3VpRXZlbnRPYmooXCJmb2N1c1wiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCkpO1xyXG4gICAgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElzIHRoZSBjb21tYW5kJ3MgZWxlbWVudCB0aGUgc2FtZSBhcyB0aGlzIGRpcmVjdGl2ZSdzIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gY29tbWFuZFxyXG4gICAqIEByZXR1cm5zIHRydWUvZmFsc2VcclxuICAgKi9cclxuICBwdWJsaWMgSXNTYW1lRWxlbWVudChjb21tYW5kKSB7XHJcbiAgICBsZXQgbGluZTogbnVtYmVyID0gY29tbWFuZC5saW5lO1xyXG5cclxuICAgIGlmICh0aGlzLnRhc2suaXNUYWJsZUNvbnRyb2woY29tbWFuZC5DdHJsTmFtZSkpXHJcbiAgICAgIGxpbmUgPSB0aGlzLnRhc2suZ2V0R3VpUm93SWQobGluZSwgdHJ1ZSk7XHJcblxyXG4gICAgcmV0dXJuIChjb21tYW5kLkN0cmxOYW1lID09PSB0aGlzLmlkICYmXHJcbiAgICAgIChsaW5lID09PSArdGhpcy5yb3dJZCB8fFxyXG4gICAgICAgIChsaW5lID09PSAwICYmIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucm93SWQpKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgdGhlIGNvbW1hbmQncyBlbGVtZW50IHRoZSBzYW1lIGFzIHRoaXMgZGlyZWN0aXZlJ3MgY29tcG9uZW50XHJcbiAgICogQHBhcmFtIGNvbW1hbmRcclxuICAgKiBAcmV0dXJucyB0cnVlL2ZhbHNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBJc1NhbWVDb21wb25lbnQoY29tbWFuZDogR3VpSW50ZXJhY3RpdmUpIHtcclxuICAgIHJldHVybiAoY29tbWFuZC5jb250cm9sTmFtZSA9PT0gdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWdVcGRhdGVzVUkoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVJlZnJlc2hEb20gPSB0aGlzLnRhc2tcclxuICAgICAgLnJlZnJlc2hEb20ucGlwZShmaWx0ZXIoYyA9PiB0aGlzLklzU2FtZUVsZW1lbnQoYykpKVxyXG4gICAgICAuc3Vic2NyaWJlKGEgPT4ge1xyXG4gICAgICAgICAgbGV0IGNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBhO1xyXG4gICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucm93SWQpKVxyXG4gICAgICAgICAgICB0aGlzLnJvd0lkID0gXCIwXCI7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRzT25seVZhbClcclxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbW1hbmQoY29tbWFuZCk7XHJcbiAgICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmRpcihleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaWJlSW50ZXJhY3RpdmVDb21tYW5kcyA9IHRoaXMudGFzay5pbnRlcmFjdGl2ZUNvbW1hbmRzXHJcbiAgICAgIC5waXBlKGZpbHRlcihjID0+IHRoaXMuSXNTYW1lQ29tcG9uZW50KGMpKSlcclxuICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUludGVyYWN0aXZlQ29tbWFuZHMoY29tbWFuZCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhpcyBvYmplY3RcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnRXZlbnRzKCk7XHJcbiAgICB0aGlzLnJlZ1VwZGF0ZXNVSSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgY29tbWFuZHMgcmVjZWl2ZWQgZnJvbSB0aGUgTWFnaWMgV2ViQ2xpZW50IGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICovXHJcbiAgaGFuZGxlQ29tbWFuZChjb21tYW5kOiBHdWlDb21tYW5kKSB7XHJcbiAgICBzd2l0Y2ggKGNvbW1hbmQuQ29tbWFuZFR5cGUpIHtcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0VUX1BST1BFUlRZOlxyXG4gICAgICAgIHRoaXMuaGFuZGxlU2V0UHJvcGVydHkoY29tbWFuZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNFVF9GT0NVUzpcclxuICAgICAgICAgICAgdGhpcy5mb2N1c1VubGlzdGVuZXIoKTtcclxuICAgICAgIC8vIERvIG5vdCBzZXQgZm9jdXMgb24gY29ubmVjdGVkIHpvb20gIGJ1dHRvblxyXG4gICAgICAgIGlmICghKGNvbW1hbmQub2JqLkNvbm5lY3RlZENvbnRyb2wgJiYgdGhpcy5odG1sRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSlcclxuICAgICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLmZvY3VzVW5saXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaHRtbEVsZW1lbnQsIFwiZm9jdXNpblwiLCB0aGlzLmV2ZW50SGFuZGxlcnNbXCJmb2N1c2luXCJdKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaGFuZGxlIHRoZSBpbnRlcmFjdGl2ZSBjb21tYW5kcyBsaWtlIENhbGxKU1xyXG4gICAqL1xyXG4gIGhhbmRsZUludGVyYWN0aXZlQ29tbWFuZHMoY29tbWFuZDogR3VpSW50ZXJhY3RpdmUpIHtcclxuICAgIHN3aXRjaCAoY29tbWFuZC5fY29tbWFuZFR5cGUpIHtcclxuICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkNBTExfSlM6XHJcbiAgICAgICAgbGV0IG1ldGhvZE5hbWU6IHN0cmluZyA9IGNvbW1hbmQuX3N0cjtcclxuICAgICAgICBsZXQgYXJnczogQXJyYXk8YW55PiA9IGNvbW1hbmQuYXJndW1lbnRzO1xyXG4gICAgICAgIGxldCBtYWdpY0NvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudCA9ICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gdiBpbnN0YW5jZW9mIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpO1xyXG4gICAgICAgIGxldCByZXN1bHRTdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChtYWdpY0NvbXBvbmVudFttZXRob2ROYW1lXSkpIHtcclxuICAgICAgICAgICAgLy8gaW52b2tlIHRoZSBtZXRob2Qgb24gaW5zdGFuY2Ugb2YgbWFnaWMgY29tcG9uZW5ldFxyXG4gICAgICAgICAgICByZXN1bHRTdHJpbmcgPSBtYWdpY0NvbXBvbmVudFttZXRob2ROYW1lXS5hcHBseShtYWdpY0NvbXBvbmVudCwgYXJncyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbnN0YW5jZSBtZXRob2QgXCIgKyBtZXRob2ROYW1lICsgXCIgZG9lcyBub3QgZXhpc3RzXCIpOyAvLyB3aGVuIG1ldGhvZCBpcyBub3QgZm91bmRcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvLyBhbnkgb3RoZXIgZXhjZXB0aW9uXHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbW1hbmQucmVzdWx0U3RyaW5nID0gcmVzdWx0U3RyaW5nOyAvLyB1cGRhdGUgdGhlIHJldHVybiB2YWx1ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSB0aGUgTWFnaWMgc2V0LXByb3BlcnR5IGNvbW1hbmRcclxuICAgKiBAcGFyYW0gY29tbWFuZFxyXG4gICAqL1xyXG4gIGhhbmRsZVNldFByb3BlcnR5KGNvbW1hbmQ6IEd1aUNvbW1hbmQpIHtcclxuICAgIHN3aXRjaCAoY29tbWFuZC5PcGVyYXRpb24pIHtcclxuICAgICAgY2FzZSBIdG1sUHJvcGVydGllcy5SZWFkT25seToge1xyXG4gICAgICAgIGlmKGNvbW1hbmQub2JqLlR5cGUgPT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEVYVClcclxuICAgICAgICBpZiAoY29tbWFuZC5vYmoxICE9IHRydWUpXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmh0bWxFbGVtZW50LCBjb21tYW5kLk9wZXJhdGlvbik7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5odG1sRWxlbWVudCwgY29tbWFuZC5PcGVyYXRpb24sIGNvbW1hbmQuc3RyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFudXBcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmliZVJlZnJlc2hEb20udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Directive, ViewContainerRef } from "@angular/core";
2
+ import { isNullOrUndefined } from "@magic-xpa/mscorelib";
3
+ import * as i0 from "@angular/core";
4
+ export class MagicViewContainerRef {
5
+ vcRef;
6
+ constructor(vcRef) {
7
+ this.vcRef = vcRef;
8
+ let comp = (this.vcRef._hostLView).find(v => v != null && !isNullOrUndefined(v.setViewContainerRef));
9
+ comp.setViewContainerRef(vcRef);
10
+ }
11
+ static ɵfac = function MagicViewContainerRef_Factory(t) { return new (t || MagicViewContainerRef)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
12
+ static ɵdir = i0.ɵɵdefineDirective({ type: MagicViewContainerRef, selectors: [["", "magicViewContainerRef", ""]] });
13
+ }
14
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicViewContainerRef, [{
15
+ type: Directive,
16
+ args: [{
17
+ selector: '[magicViewContainerRef]',
18
+ }]
19
+ }], () => [{ type: i0.ViewContainerRef }], null); })();
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ1o7SUFBcEIsWUFBb0IsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFFMUMsSUFBSSxJQUFJLEdBQUcsQ0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQTJCLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUUsQ0FBNEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDbEssSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0VBTFUscUJBQXFCOytDQUFyQixxQkFBcUI7O2lGQUFyQixxQkFBcUI7Y0FIakMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7YUFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL3N1Yi1mb3JtLWRlZmluaXRpb24uaXRlcmZhY2VcIjtcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBzZXR0aW5nICBWaWV3Q29udGFpbmVyUmVmIG9uIGVsZW1lbnRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hZ2ljVmlld0NvbnRhaW5lclJlZl0nLFxufSlcbmV4cG9ydCBjbGFzcyBNYWdpY1ZpZXdDb250YWluZXJSZWYge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgLy8gRm9yIGFuZ3VsYXIgMTAgLSAgZmluZCB0aGUgY29tcG9uZW50IGZyb20gdGhlIHZpZXdzXG4gICBsZXQgY29tcCA9ICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gdiBhcyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmICE9IG51bGwgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKCh2IGFzIElNYWdpY1ZpZXdDb250YWluZXJSZWYpLnNldFZpZXdDb250YWluZXJSZWYpKTtcbiAgIGNvbXAuc2V0Vmlld0NvbnRhaW5lclJlZih2Y1JlZik7XG4gIH1cbn1cblxuIl19