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