@magic-xpa/angular 4.1100.0-dev4110.171 → 4.1100.0-dev4110.181
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 +58 -58
- 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/{esm2020 → esm2022}/src/ui/directives/mgformat.magic.directive.mjs +578 -576
- 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 +216 -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 +4806 -4666
- package/fesm2022/magic-xpa-angular.mjs.map +1 -0
- package/index.d.ts +58 -58
- package/package.json +7 -13
- 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 -31
- 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 -22
- 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 -23
- 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 -38
- 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 +40 -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 -236
- 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 -105
- 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 -81
- 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/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 -5056
- package/fesm2015/magic-xpa-angular.mjs.map +0 -1
- package/fesm2020/magic-xpa-angular.mjs.map +0 -1
@@ -1,215 +0,0 @@
|
|
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
|
-
set magic(val) {
|
18
|
-
this.id = val;
|
19
|
-
this.selector = "magic";
|
20
|
-
}
|
21
|
-
;
|
22
|
-
set eventsOnly(val) {
|
23
|
-
console.log("eventsOnly");
|
24
|
-
this.eventsOnlyVal = true;
|
25
|
-
}
|
26
|
-
;
|
27
|
-
constructor(_task, element, renderer, vcRef, platform, magicRow) {
|
28
|
-
this._task = _task;
|
29
|
-
this.element = element;
|
30
|
-
this.renderer = renderer;
|
31
|
-
this.vcRef = vcRef;
|
32
|
-
this.platform = platform;
|
33
|
-
this.magicRow = magicRow;
|
34
|
-
this.eventHandlers = {};
|
35
|
-
this.eventsOnlyVal = false;
|
36
|
-
this.htmlElement = this.element.nativeElement;
|
37
|
-
if (!(typeof magicRow === "undefined" || magicRow === null))
|
38
|
-
this.rowId = magicRow.rowId;
|
39
|
-
}
|
40
|
-
get task() {
|
41
|
-
return this._task;
|
42
|
-
}
|
43
|
-
regEvents() {
|
44
|
-
this.eventHandlers["focusin"] = this.OnFocus.bind(this);
|
45
|
-
Object.keys(this.eventHandlers).forEach((key) => {
|
46
|
-
this.focusUnlistener = this.renderer.listen(this.htmlElement, key, this.eventHandlers[key]);
|
47
|
-
});
|
48
|
-
let events = ["click", "mousedown", "dblclick"];
|
49
|
-
events.forEach(event => {
|
50
|
-
this.renderer.listen(this.htmlElement, event, (e) => {
|
51
|
-
let fromButton = false;
|
52
|
-
if (this.htmlElement instanceof HTMLButtonElement)
|
53
|
-
fromButton = true;
|
54
|
-
if (fromButton && (this.platform.IOS || this.platform.SAFARI))
|
55
|
-
this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
|
56
|
-
this.task.insertEvent(getGuiEventObj(event, this.id, +this.rowId, fromButton));
|
57
|
-
if (MagicDirective.noOfAutoCompleteBoxesOpened < 1)
|
58
|
-
e.cancelBubble = true;
|
59
|
-
});
|
60
|
-
});
|
61
|
-
this.renderer.listen(this.htmlElement, "change", (e) => {
|
62
|
-
let guiEvent = getGuiEventObj("selectionchanged", this.id, +this.rowId);
|
63
|
-
if ((event.target).selectedIndex !== undefined) {
|
64
|
-
guiEvent.Value = (event.target).selectedIndex.toString();
|
65
|
-
e.cancelBubble = true;
|
66
|
-
this.task.insertEvent(guiEvent);
|
67
|
-
}
|
68
|
-
});
|
69
|
-
fromEvent(this.htmlElement, "input").pipe(map((event) => {
|
70
|
-
return event.target.value;
|
71
|
-
}), debounceTime(200)).subscribe((x) => {
|
72
|
-
if (this.task.getProperty(this.id, HtmlProperties.BindingLevel, this.rowId) === BindingLevel.Character) {
|
73
|
-
let attribute = this.task.Records.list[0].getControlMetadata(this.id).dataType;
|
74
|
-
if (attribute !== StorageAttributeType.Date && attribute != StorageAttributeType.Time)
|
75
|
-
this.task.mgAccessorService.setValueToControl(this.id, x, true);
|
76
|
-
}
|
77
|
-
});
|
78
|
-
this.renderer.listen(this.htmlElement, "keydown", (e) => {
|
79
|
-
let guiEvent = getGuiEventObj("keydown", this.id, +this.rowId);
|
80
|
-
guiEvent.modifiers = Modifiers.MODIFIER_NONE;
|
81
|
-
if (e.altKey && e.keyCode !== GuiConstants.KEY_ALT)
|
82
|
-
guiEvent.modifiers = Modifiers.MODIFIER_ALT;
|
83
|
-
else if (e.ctrlKey && e.keyCode !== GuiConstants.KEY_CTRL)
|
84
|
-
guiEvent.modifiers = Modifiers.MODIFIER_CTRL;
|
85
|
-
let supportedKey = e.keyCode === GuiConstants.KEY_PG_UP ||
|
86
|
-
e.keyCode === GuiConstants.KEY_PG_DOWN ||
|
87
|
-
e.keyCode === GuiConstants.KEY_LEFT ||
|
88
|
-
e.keyCode === GuiConstants.KEY_RIGHT ||
|
89
|
-
e.keyCode === GuiConstants.KEY_UP ||
|
90
|
-
e.keyCode === GuiConstants.KEY_DOWN ||
|
91
|
-
e.keyCode === GuiConstants.KEY_ESC ||
|
92
|
-
e.keyCode === GuiConstants.KEY_HOME ||
|
93
|
-
e.keyCode === GuiConstants.KEY_END ||
|
94
|
-
e.keyCode === GuiConstants.KEY_RETURN ||
|
95
|
-
(e.keyCode >= GuiConstants.KEY_F1 && e.keyCode <= GuiConstants.KEY_F12);
|
96
|
-
if (guiEvent.modifiers !== Modifiers.MODIFIER_NONE || supportedKey) {
|
97
|
-
guiEvent.keyCode = e.keyCode;
|
98
|
-
if (e.keyCode !== GuiConstants.KEY_ESC || e.keyCode === GuiConstants.KEY_ESC && (!MagicDirective.opened && MagicDirective.noOfAutoCompleteBoxesOpened < 1))
|
99
|
-
e.cancelBubble = true;
|
100
|
-
this.task.insertEvent(guiEvent);
|
101
|
-
}
|
102
|
-
});
|
103
|
-
}
|
104
|
-
OnFocus() {
|
105
|
-
this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
|
106
|
-
event.cancelBubble = true;
|
107
|
-
}
|
108
|
-
IsSameElement(command) {
|
109
|
-
let line = command.line;
|
110
|
-
if (this.task.isTableControl(command.CtrlName))
|
111
|
-
line = this.task.getGuiRowId(line, true);
|
112
|
-
return (command.CtrlName === this.id &&
|
113
|
-
(line === +this.rowId ||
|
114
|
-
(line === 0 && isNullOrUndefined(this.rowId))));
|
115
|
-
}
|
116
|
-
IsSameComponent(command) {
|
117
|
-
return (command.controlName === this.id);
|
118
|
-
}
|
119
|
-
regUpdatesUI() {
|
120
|
-
this.subscribeRefreshDom = this.task
|
121
|
-
.refreshDom.pipe(filter(c => this.IsSameElement(c)))
|
122
|
-
.subscribe(a => {
|
123
|
-
let command = a;
|
124
|
-
if (isNullOrUndefined(this.rowId))
|
125
|
-
this.rowId = "0";
|
126
|
-
try {
|
127
|
-
if (!this.eventsOnlyVal)
|
128
|
-
this.handleCommand(command);
|
129
|
-
}
|
130
|
-
catch (ex) {
|
131
|
-
console.dir(ex);
|
132
|
-
}
|
133
|
-
});
|
134
|
-
this.subscribeInteractiveCommands = this.task.interactiveCommands
|
135
|
-
.pipe(filter(c => this.IsSameComponent(c)))
|
136
|
-
.subscribe(command => {
|
137
|
-
this.handleInteractiveCommands(command);
|
138
|
-
});
|
139
|
-
}
|
140
|
-
ngOnInit() {
|
141
|
-
this.regEvents();
|
142
|
-
this.regUpdatesUI();
|
143
|
-
}
|
144
|
-
handleCommand(command) {
|
145
|
-
switch (command.CommandType) {
|
146
|
-
case CommandType.SET_PROPERTY:
|
147
|
-
this.handleSetProperty(command);
|
148
|
-
break;
|
149
|
-
case CommandType.SET_FOCUS:
|
150
|
-
this.focusUnlistener();
|
151
|
-
if (!(command.obj.ConnectedControl && this.htmlElement instanceof HTMLButtonElement))
|
152
|
-
this.htmlElement.focus();
|
153
|
-
this.focusUnlistener = this.renderer.listen(this.htmlElement, "focusin", this.eventHandlers["focusin"]);
|
154
|
-
break;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
handleInteractiveCommands(command) {
|
158
|
-
switch (command._commandType) {
|
159
|
-
case InteractiveCommandType.CALL_JS:
|
160
|
-
let methodName = command._str;
|
161
|
-
let args = command.arguments;
|
162
|
-
let magicComponent = (this.vcRef._hostLView).find(v => v instanceof TaskBaseMagicComponent);
|
163
|
-
let resultString = "";
|
164
|
-
try {
|
165
|
-
if (!isNullOrUndefined(magicComponent[methodName])) {
|
166
|
-
resultString = magicComponent[methodName].apply(magicComponent, args);
|
167
|
-
}
|
168
|
-
else
|
169
|
-
console.error("Instance method " + methodName + " does not exists");
|
170
|
-
}
|
171
|
-
catch (e) {
|
172
|
-
console.error(e.message);
|
173
|
-
}
|
174
|
-
command.resultString = resultString;
|
175
|
-
break;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
handleSetProperty(command) {
|
179
|
-
switch (command.Operation) {
|
180
|
-
case HtmlProperties.ReadOnly:
|
181
|
-
{
|
182
|
-
if (command.obj.Type == MgControlType.CTRL_TYPE_TEXT)
|
183
|
-
if (command.obj1 != true)
|
184
|
-
this.renderer.removeAttribute(this.htmlElement, command.Operation);
|
185
|
-
else
|
186
|
-
this.renderer.setAttribute(this.htmlElement, command.Operation, command.str);
|
187
|
-
}
|
188
|
-
break;
|
189
|
-
}
|
190
|
-
}
|
191
|
-
ngOnDestroy() {
|
192
|
-
this.subscribeRefreshDom.unsubscribe();
|
193
|
-
}
|
194
|
-
}
|
195
|
-
MagicDirective.opened = false;
|
196
|
-
MagicDirective.noOfAutoCompleteBoxesOpened = 0;
|
197
|
-
MagicDirective.ɵ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)); };
|
198
|
-
MagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", rowId: "rowId" } });
|
199
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
|
200
|
-
type: Directive,
|
201
|
-
args: [{
|
202
|
-
selector: "[magic]"
|
203
|
-
}]
|
204
|
-
}], function () { return [{ type: i1.TaskMagicService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.Platform }, { type: i3.RowMagicDirective, decorators: [{
|
205
|
-
type: Optional
|
206
|
-
}] }]; }, { magic: [{
|
207
|
-
type: Input,
|
208
|
-
args: ["magic"]
|
209
|
-
}], eventsOnly: [{
|
210
|
-
type: Input,
|
211
|
-
args: ["eventsOnly"]
|
212
|
-
}], rowId: [{
|
213
|
-
type: Input
|
214
|
-
}] }); })();
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUVaLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVVqRCxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFvQixLQUFLLENBQUMsR0FBRztRQUMzQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FB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QUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0FBdFJhLHFCQUFNLEdBQUcsS0FBSyxDQUFDO0FBRWYsMENBQTJCLEdBQUUsQ0FBQyxDQUFDOzRFQXZEbEMsY0FBYzttREFBZCxjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2FBQ3BCOztzQkE0RUksUUFBUTt3QkF6RVMsS0FBSztrQkFBeEIsS0FBSzttQkFBQyxPQUFPO1lBUVcsVUFBVTtrQkFBbEMsS0FBSzttQkFBQyxZQUFZO1lBU0gsS0FBSztrQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZFR5cGUsXHJcbiAgR3VpQ29tbWFuZCxcclxuICBHdWlDb25zdGFudHMsXHJcbiAgR3VpSW50ZXJhY3RpdmUsXHJcbiAgSHRtbFByb3BlcnRpZXMsXHJcbiAgSW50ZXJhY3RpdmVDb21tYW5kVHlwZSxcclxuICBNb2RpZmllcnNcclxufSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgZ2V0R3VpRXZlbnRPYmosIElHdWlFdmVudCB9IGZyb20gXCJAbWFnaWMteHBhL2VuZ2luZVwiO1xyXG5cclxuaW1wb3J0IHsgVGFza0Jhc2VNYWdpY0NvbXBvbmVudCB9IGZyb20gXCIuLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRhc2tNYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFJvd01hZ2ljRGlyZWN0aXZlIH0gZnJvbSBcIi4vbWFnaWMvcm93Lm1hZ2ljLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEJpbmRpbmdMZXZlbCwgTWdDb250cm9sVHlwZSwgU3RvcmFnZUF0dHJpYnV0ZVR5cGUgfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcGxhdGZvcm1cIjtcclxuXHJcblxyXG4vKipcclxuICogQ29ubmVjdHMgSFRNTCBlbGVtZW50cyB0byB0aGUgTWFnaWMgV2ViIENsaWVudCBlbmdpbmVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIlttYWdpY11cIlxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hZ2ljRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dChcIm1hZ2ljXCIpIHNldCBtYWdpYyh2YWwpIHtcclxuICAgIHRoaXMuaWQgPSB2YWw7XHJcbiAgICB0aGlzLnNlbGVjdG9yID0gXCJtYWdpY1wiO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZmxhZyBpcyB1c2VkIHdoZW4gd2Ugb25seSB3YW50IHRvIHJlZ2lzdGVyIHRvIGV2ZW50cywgYnV0IGRvIG5vdCB3YW50IHRvIGV4ZWN1dGUgY29tbWFuZHMgc2VudCBmcm9tIHNlcnZlclxyXG4gICAqL1xyXG4gIEBJbnB1dChcImV2ZW50c09ubHlcIikgc2V0IGV2ZW50c09ubHkodmFsKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImV2ZW50c09ubHlcIik7XHJcbiAgICB0aGlzLmV2ZW50c09ubHlWYWwgPSB0cnVlO1xyXG5cclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSb3cgaWQgb2YgdGhlIGNvbnRyb2wsIGZvciB3aGVuIGl0IGlzIG9uIGEgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcm93SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIC8vQElucHV0KCkgZXZlbnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgSFRNTCBlbGVtZW50IGNvbm5lY3RlZCB0byB0aGlzIGRpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgLyoqXHJcbiAgICogTWFnaWMncyBjb21wb25lbnQgaGFuZGxpbmcgdGhpcyBjb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudDtcclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG9mIGV2ZW50IGhhbmRsZXJzIGZvciB0aGlzIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGV2ZW50SGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gdm9pZDsgfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIElkIG9mIHRoaXMgZWxlbWVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2VsZWN0b3I6IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgc3Vic2NyaWJlUmVmcmVzaERvbTogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGZvY3VzVW5saXN0ZW5lcjogKCgpID0+IHZvaWQpO1xyXG5cclxuICBwdWJsaWMgZXZlbnRzT25seVZhbCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vT2ZBdXRvQ29tcGxldGVCb3hlc09wZW5lZCA9MDtcclxuXHJcbiAgc3Vic2NyaWJlSW50ZXJhY3RpdmVDb21tYW5kczogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBfdGFzayBUaGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgZm9yIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZFxyXG4gICAqIEBwYXJhbSByZW5kZXJlciBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gdmNSZWZcclxuICAgKiBAcGFyYW0gcGxhdGZvcm1cclxuICAgKiBAcGFyYW0gbWFnaWNSb3dcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG1hZ2ljUm93OiBSb3dNYWdpY0RpcmVjdGl2ZSkge1xyXG5cclxuICAgIHRoaXMuaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIC8vbGV0IGMgPSAoPGFueT50aGlzLnZjUmVmKS5fdmlldztcclxuICAgIC8vd2hpbGUgKCEoYyBpbnN0YW5jZW9mIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSB7XHJcbiAgICAvLyAgYyA9IGMuY29tcG9uZW50O1xyXG4gICAgLy99XHJcbiAgICAvL3RoaXMuY29tcG9uZW50ID0gYztcclxuICAgIGlmICghKHR5cGVvZiBtYWdpY1JvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBtYWdpY1JvdyA9PT0gbnVsbCkpXHJcbiAgICAgIHRoaXMucm93SWQgPSBtYWdpY1Jvdy5yb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgdGFzaygpOiBUYXNrTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLl90YXNrO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgdG8gdGhlIGV2ZW50cyB0aGlzIGVsZW1lbnQgbWF5IG5lZWQgdG8gaGFuZGxlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlZ0V2ZW50cygpIHtcclxuICAgIC8vIEhhbmRsZSBldmVudHMgZm9yIHdoaWNoIGV2ZW50IGhhbmRsZXIgbWF5IGJlIHJlbW92ZWQgYW5kIHJlc3RvcmVkXHJcbiAgICB0aGlzLmV2ZW50SGFuZGxlcnNbXCJmb2N1c2luXCJdID0gdGhpcy5PbkZvY3VzLmJpbmQodGhpcyk7XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5ldmVudEhhbmRsZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5mb2N1c1VubGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBrZXksIHRoaXMuZXZlbnRIYW5kbGVyc1trZXldKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEhhbmRsZSBldmVudHMgd2l0aCBhbm9ueW1vdXMgIGV2ZW50IGhhbmRsZXJzXHJcbiAgICBsZXQgZXZlbnRzOiBzdHJpbmdbXSA9IFtcImNsaWNrXCIsIFwibW91c2Vkb3duXCIsIFwiZGJsY2xpY2tcIl07Ly8gLCdyZXNpemUnLCAnbG9hZCcsICd1bmxvYWQnXHJcbiAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaHRtbEVsZW1lbnQsIGV2ZW50LCAoZSkgPT4ge1xyXG5cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBmaXJlZCBmcm9tIHpvb20gYnV0dG9uICggdG8gaWRlbnRpZnkgdGhlIGNvbm5lY3RlZCB6b29tIGJ1dHRvbiBpbiBlbmdpbmUpXHJcbiAgICAgICAgbGV0IGZyb21CdXR0b24gPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpXHJcbiAgICAgICAgICBmcm9tQnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW4gdGhlIGNhc2Ugb2YgU2FmYXJpIG9yIENocm9tZSBicm93c2VyIG9uIElPUywgd2hlbiBhIGJ1dHRvbiBpcyBjbGlja2VkLCB0aGUgYnJvd3NlciBkb2VzIG5vdCByZWNlaXZlXHJcbiAgICAgICAgICogZm9jdXMgZXZlbnQgaGVuY2UgdGhlIHpvb20gYWN0aW9uIGlzIG5vdCBleGVjdXRlZC4gU28gaW4gb3JkZXIgdG8gcmVjZWl2ZSBmb2N1cyBldmVudCwgZW5hYmxpbmcgaXQgZXhjbHVzaXZlbHlcclxuICAgICAgICAgKiBpbiB0aGUgY2FzZSBvZiBTYWZhcmkgb3IgQ2hyb21lIGJyb3dzZXIgb24gSU9TIGFuZCBTYWZhcmkgYnJvd3NlciBvbiBNYWMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKGZyb21CdXR0b24gJiYgKHRoaXMucGxhdGZvcm0uSU9TIHx8IHRoaXMucGxhdGZvcm0uU0FGQVJJKSlcclxuICAgICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihcImZvY3VzXCIsIHRoaXMuaWQsICt0aGlzLnJvd0lkKSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihldmVudCwgdGhpcy5pZCwgK3RoaXMucm93SWQsIGZyb21CdXR0b24pKTtcclxuICAgICAgICBpZiAoTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkPCAxKVxyXG4gICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBcImNoYW5nZVwiLCAoZSkgPT4ge1xyXG4gICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwic2VsZWN0aW9uY2hhbmdlZFwiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCk7XHJcblxyXG4gICAgICBpZiAoKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGd1aUV2ZW50LlZhbHVlID0gKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXgudG9TdHJpbmcoKTtcclxuICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGhhbmRsZSB0aGUgaW5wdXQgZXZlbnRcclxuICAgIGZyb21FdmVudCh0aGlzLmh0bWxFbGVtZW50LCBcImlucHV0XCIpLnBpcGUoXHJcbiAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjAwKSAvLyB0aW1lIGFmdGVyIHdoaWNoIHZhbHVlIHdpbGwgYmUgc2VudCB0byBtYWdpY1xyXG4gICAgKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLmdldFByb3BlcnR5KHRoaXMuaWQsIEh0bWxQcm9wZXJ0aWVzLkJpbmRpbmdMZXZlbCwgdGhpcy5yb3dJZCkgPT09IEJpbmRpbmdMZXZlbC5DaGFyYWN0ZXIpIHtcclxuICAgICAgICAgIC8vIERvbid0IHN1cHBvcnQgY2hhcmFjdGVyIGJpbmRpbmcgZm9yIGRhdGUvdGltZSB2YWx1ZXNcclxuICAgICAgICAgbGV0IGF0dHJpYnV0ZSA6IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlID0gIHRoaXMudGFzay5SZWNvcmRzLmxpc3RbMF0uZ2V0Q29udHJvbE1ldGFkYXRhKHRoaXMuaWQpLmRhdGFUeXBlO1xyXG4gICAgICAgICBpZihhdHRyaWJ1dGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlLkRhdGUgJiYgYXR0cmlidXRlICE9IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlLlRpbWUpXHJcbiAgICAgICAgICAgIHRoaXMudGFzay5tZ0FjY2Vzc29yU2VydmljZS5zZXRWYWx1ZVRvQ29udHJvbCh0aGlzLmlkLCB4LCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBcImtleWRvd25cIiwgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwia2V5ZG93blwiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCk7XHJcbiAgICAgICAgZ3VpRXZlbnQubW9kaWZpZXJzID0gTW9kaWZpZXJzLk1PRElGSUVSX05PTkU7XHJcblxyXG4gICAgICAgIGlmIChlLmFsdEtleSAmJiBlLmtleUNvZGUgIT09IEd1aUNvbnN0YW50cy5LRVlfQUxUKVxyXG4gICAgICAgICAgICBndWlFdmVudC5tb2RpZmllcnMgPSBNb2RpZmllcnMuTU9ESUZJRVJfQUxUO1xyXG5cclxuICAgICAgICBlbHNlIGlmIChlLmN0cmxLZXkgJiYgZS5rZXlDb2RlICE9PSBHdWlDb25zdGFudHMuS0VZX0NUUkwpXHJcbiAgICAgICAgICAgIGd1aUV2ZW50Lm1vZGlmaWVycyA9IE1vZGlmaWVycy5NT0RJRklFUl9DVFJMO1xyXG5cclxuICAgICAgICBsZXQgc3VwcG9ydGVkS2V5ID0gZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX1BHX1VQIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9QR19ET1dOIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9MRUZUIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9SSUdIVCB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfVVAgfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0RPV04gfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0VTQyB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfSE9NRSB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfRU5EIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9SRVRVUk4gfHxcclxuICAgICAgICAgICAgKGUua2V5Q29kZSA+PSBHdWlDb25zdGFudHMuS0VZX0YxICYmIGUua2V5Q29kZSA8PSBHdWlDb25zdGFudHMuS0VZX0YxMik7XHJcblxyXG4gICAgICAgIGlmIChndWlFdmVudC5tb2RpZmllcnMgIT09IE1vZGlmaWVycy5NT0RJRklFUl9OT05FIHx8IHN1cHBvcnRlZEtleSkge1xyXG4gICAgICAgICAgICBndWlFdmVudC5rZXlDb2RlID0gZS5rZXlDb2RlO1xyXG5cclxuICAgICAgICAgICAgLy8gRGVmZWN0IDE2MDAyMSBmaXhlZCAtIGRvbid0IHNldCBlLmNhbmNlbEJ1YmJsZSB3aGVuIGNvbWJvYm94IGlzIG9wZW5lZCBhbmQgZXNjIGtleSBpcyBwcmVzc2VkXHJcbiAgICAgICAgICAgIGlmIChlLmtleUNvZGUgIT09IEd1aUNvbnN0YW50cy5LRVlfRVNDIHx8IGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9FU0MgJiYgKCFNYWdpY0RpcmVjdGl2ZS5vcGVuZWQgJiYgTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkIDwgMSkpXHJcbiAgICAgICAgICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBmb2N1cyBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgT25Gb2N1cygpIHtcclxuICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihcImZvY3VzXCIsIHRoaXMuaWQsICt0aGlzLnJvd0lkKSk7XHJcbiAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgdGhlIGNvbW1hbmQncyBlbGVtZW50IHRoZSBzYW1lIGFzIHRoaXMgZGlyZWN0aXZlJ3MgZWxlbWVudFxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICogQHJldHVybnMgdHJ1ZS9mYWxzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1NhbWVFbGVtZW50KGNvbW1hbmQpIHtcclxuICAgIGxldCBsaW5lOiBudW1iZXIgPSBjb21tYW5kLmxpbmU7XHJcblxyXG4gICAgaWYgKHRoaXMudGFzay5pc1RhYmxlQ29udHJvbChjb21tYW5kLkN0cmxOYW1lKSlcclxuICAgICAgbGluZSA9IHRoaXMudGFzay5nZXRHdWlSb3dJZChsaW5lLCB0cnVlKTtcclxuXHJcbiAgICByZXR1cm4gKGNvbW1hbmQuQ3RybE5hbWUgPT09IHRoaXMuaWQgJiZcclxuICAgICAgKGxpbmUgPT09ICt0aGlzLnJvd0lkIHx8XHJcbiAgICAgICAgKGxpbmUgPT09IDAgJiYgaXNOdWxsT3JVbmRlZmluZWQodGhpcy5yb3dJZCkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyB0aGUgY29tbWFuZCdzIGVsZW1lbnQgdGhlIHNhbWUgYXMgdGhpcyBkaXJlY3RpdmUncyBjb21wb25lbnRcclxuICAgKiBAcGFyYW0gY29tbWFuZFxyXG4gICAqIEByZXR1cm5zIHRydWUvZmFsc2VcclxuICAgKi9cclxuICBwcml2YXRlIElzU2FtZUNvbXBvbmVudChjb21tYW5kOiBHdWlJbnRlcmFjdGl2ZSkge1xyXG4gICAgcmV0dXJuIChjb21tYW5kLmNvbnRyb2xOYW1lID09PSB0aGlzLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcml2YXRlIHJlZ1VwZGF0ZXNVSSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbSA9IHRoaXMudGFza1xyXG4gICAgICAucmVmcmVzaERvbS5waXBlKGZpbHRlcihjID0+IHRoaXMuSXNTYW1lRWxlbWVudChjKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYSA9PiB7XHJcbiAgICAgICAgICBsZXQgY29tbWFuZDogR3VpQ29tbWFuZCA9IGE7XHJcbiAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5yb3dJZCkpXHJcbiAgICAgICAgICAgIHRoaXMucm93SWQgPSBcIjBcIjtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5ldmVudHNPbmx5VmFsKVxyXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29tbWFuZChjb21tYW5kKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGlyKGV4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVJbnRlcmFjdGl2ZUNvbW1hbmRzID0gdGhpcy50YXNrLmludGVyYWN0aXZlQ29tbWFuZHNcclxuICAgICAgLnBpcGUoZmlsdGVyKGMgPT4gdGhpcy5Jc1NhbWVDb21wb25lbnQoYykpKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbW1hbmQgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlSW50ZXJhY3RpdmVDb21tYW5kcyhjb21tYW5kKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGlzIG9iamVjdFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWdFdmVudHMoKTtcclxuICAgIHRoaXMucmVnVXBkYXRlc1VJKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBNYWdpYyBXZWJDbGllbnQgZW5naW5lXHJcbiAgICogQHBhcmFtIGNvbW1hbmRcclxuICAgKi9cclxuICBoYW5kbGVDb21tYW5kKGNvbW1hbmQ6IEd1aUNvbW1hbmQpIHtcclxuICAgIHN3aXRjaCAoY29tbWFuZC5Db21tYW5kVHlwZSkge1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TRVRfUFJPUEVSVFk6XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTZXRQcm9wZXJ0eShjb21tYW5kKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0VUX0ZPQ1VTOlxyXG4gICAgICAgICAgICB0aGlzLmZvY3VzVW5saXN0ZW5lcigpO1xyXG4gICAgICAgLy8gRG8gbm90IHNldCBmb2N1cyBvbiBjb25uZWN0ZWQgem9vbSAgYnV0dG9uXHJcbiAgICAgICAgaWYgKCEoY29tbWFuZC5vYmouQ29ubmVjdGVkQ29udHJvbCAmJiB0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpKVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNVbmxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5odG1sRWxlbWVudCwgXCJmb2N1c2luXCIsIHRoaXMuZXZlbnRIYW5kbGVyc1tcImZvY3VzaW5cIl0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBoYW5kbGUgdGhlIGludGVyYWN0aXZlIGNvbW1hbmRzIGxpa2UgQ2FsbEpTXHJcbiAgICovXHJcbiAgaGFuZGxlSW50ZXJhY3RpdmVDb21tYW5kcyhjb21tYW5kOiBHdWlJbnRlcmFjdGl2ZSkge1xyXG4gICAgc3dpdGNoIChjb21tYW5kLl9jb21tYW5kVHlwZSkge1xyXG4gICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuQ0FMTF9KUzpcclxuICAgICAgICBsZXQgbWV0aG9kTmFtZTogc3RyaW5nID0gY29tbWFuZC5fc3RyO1xyXG4gICAgICAgIGxldCBhcmdzOiBBcnJheTxhbnk+ID0gY29tbWFuZC5hcmd1bWVudHM7XHJcbiAgICAgICAgbGV0IG1hZ2ljQ29tcG9uZW50OiBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50ID0gKCg8YW55PnRoaXMudmNSZWYpLl9ob3N0TFZpZXcpLmZpbmQodiA9PiB2IGluc3RhbmNlb2YgVGFza0Jhc2VNYWdpY0NvbXBvbmVudCk7XHJcbiAgICAgICAgbGV0IHJlc3VsdFN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1hZ2ljQ29tcG9uZW50W21ldGhvZE5hbWVdKSkge1xyXG4gICAgICAgICAgICAvLyBpbnZva2UgdGhlIG1ldGhvZCBvbiBpbnN0YW5jZSBvZiBtYWdpYyBjb21wb25lbmV0XHJcbiAgICAgICAgICAgIHJlc3VsdFN0cmluZyA9IG1hZ2ljQ29tcG9uZW50W21ldGhvZE5hbWVdLmFwcGx5KG1hZ2ljQ29tcG9uZW50LCBhcmdzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkluc3RhbmNlIG1ldGhvZCBcIiArIG1ldGhvZE5hbWUgKyBcIiBkb2VzIG5vdCBleGlzdHNcIik7IC8vIHdoZW4gbWV0aG9kIGlzIG5vdCBmb3VuZFxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIGFueSBvdGhlciBleGNlcHRpb25cclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tbWFuZC5yZXN1bHRTdHJpbmcgPSByZXN1bHRTdHJpbmc7IC8vIHVwZGF0ZSB0aGUgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHRoZSBNYWdpYyBzZXQtcHJvcGVydHkgY29tbWFuZFxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICovXHJcbiAgaGFuZGxlU2V0UHJvcGVydHkoY29tbWFuZDogR3VpQ29tbWFuZCkge1xyXG4gICAgc3dpdGNoIChjb21tYW5kLk9wZXJhdGlvbikge1xyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlJlYWRPbmx5OiB7XHJcbiAgICAgICAgaWYoY29tbWFuZC5vYmouVHlwZSA9PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9URVhUKVxyXG4gICAgICAgIGlmIChjb21tYW5kLm9iajEgIT0gdHJ1ZSlcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaHRtbEVsZW1lbnQsIGNvbW1hbmQuT3BlcmF0aW9uKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmh0bWxFbGVtZW50LCBjb21tYW5kLk9wZXJhdGlvbiwgY29tbWFuZC5zdHIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYW51cFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,19 +0,0 @@
|
|
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
|
-
constructor(vcRef) {
|
6
|
-
this.vcRef = vcRef;
|
7
|
-
let comp = (this.vcRef._hostLView).find(v => v != null && !isNullOrUndefined(v.setViewContainerRef));
|
8
|
-
comp.setViewContainerRef(vcRef);
|
9
|
-
}
|
10
|
-
}
|
11
|
-
MagicViewContainerRef.ɵfac = function MagicViewContainerRef_Factory(t) { return new (t || MagicViewContainerRef)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
12
|
-
MagicViewContainerRef.ɵdir = i0.ɵɵdefineDirective({ type: MagicViewContainerRef, selectors: [["", "magicViewContainerRef", ""]] });
|
13
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicViewContainerRef, [{
|
14
|
-
type: Directive,
|
15
|
-
args: [{
|
16
|
-
selector: '[magicViewContainerRef]',
|
17
|
-
}]
|
18
|
-
}], function () { return [{ type: i0.ViewContainerRef }]; }, null); })();
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRTFDLElBQUksSUFBSSxHQUFHLENBQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUEyQixJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFFLENBQTRCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2xLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzswRkFMVSxxQkFBcUI7MERBQXJCLHFCQUFxQjt1RkFBckIscUJBQXFCO2NBSGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2FBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElNYWdpY1ZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zdWItZm9ybS1kZWZpbml0aW9uLml0ZXJmYWNlXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3Igc2V0dGluZyAgVmlld0NvbnRhaW5lclJlZiBvbiBlbGVtZW50XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYWdpY1ZpZXdDb250YWluZXJSZWZdJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y1JlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIC8vIEZvciBhbmd1bGFyIDEwIC0gIGZpbmQgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSB2aWV3c1xuICAgbGV0IGNvbXAgPSAoKDxhbnk+dGhpcy52Y1JlZikuX2hvc3RMVmlldykuZmluZCh2ID0+IHYgYXMgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiAhPSBudWxsICYmICFpc051bGxPclVuZGVmaW5lZCgodiBhcyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmKS5zZXRWaWV3Q29udGFpbmVyUmVmKSk7XG4gICBjb21wLnNldFZpZXdDb250YWluZXJSZWYodmNSZWYpO1xuICB9XG59XG5cbiJdfQ==
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import { Directive, ViewContainerRef } from '@angular/core';
|
2
|
-
import { NG_VALIDATORS } from '@angular/forms';
|
3
|
-
import { TaskMagicService } from '../../services/task.magics.service';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../services/task.magics.service";
|
6
|
-
export class RangeValidatorMagicDirective {
|
7
|
-
constructor(_task, vcRef) {
|
8
|
-
this._task = _task;
|
9
|
-
this.vcRef = vcRef;
|
10
|
-
}
|
11
|
-
validate(c) {
|
12
|
-
let controlName;
|
13
|
-
controlName = this.getControlName(c);
|
14
|
-
let properties;
|
15
|
-
properties = this._task.Records.list["0"].getControlMetadata(controlName);
|
16
|
-
properties.rangeValidator = true;
|
17
|
-
let errMsg = null;
|
18
|
-
if (c.dirty)
|
19
|
-
errMsg = this._task.ValidateControlValue(controlName, this._task.ConvertValToNative(controlName, 0, c.value));
|
20
|
-
let isValid = (errMsg == null) ? true : false;
|
21
|
-
if (isValid) {
|
22
|
-
return null;
|
23
|
-
}
|
24
|
-
else {
|
25
|
-
return {
|
26
|
-
rangevalidator: {
|
27
|
-
errorMsg: errMsg
|
28
|
-
}
|
29
|
-
};
|
30
|
-
}
|
31
|
-
}
|
32
|
-
getControlName(c) {
|
33
|
-
const formGroup = c.parent.controls;
|
34
|
-
return Object.keys(formGroup).find(name => c === formGroup[name]) || null;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
RangeValidatorMagicDirective.ɵfac = function RangeValidatorMagicDirective_Factory(t) { return new (t || RangeValidatorMagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
38
|
-
RangeValidatorMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: RangeValidatorMagicDirective, selectors: [["", "rangevalidator", ""]], features: [i0.ɵɵProvidersFeature([
|
39
|
-
{
|
40
|
-
provide: NG_VALIDATORS,
|
41
|
-
useExisting: RangeValidatorMagicDirective,
|
42
|
-
multi: true,
|
43
|
-
}
|
44
|
-
])] });
|
45
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RangeValidatorMagicDirective, [{
|
46
|
-
type: Directive,
|
47
|
-
args: [{
|
48
|
-
selector: '[rangevalidator] ',
|
49
|
-
providers: [
|
50
|
-
{
|
51
|
-
provide: NG_VALIDATORS,
|
52
|
-
useExisting: RangeValidatorMagicDirective,
|
53
|
-
multi: true,
|
54
|
-
}
|
55
|
-
]
|
56
|
-
}]
|
57
|
-
}], function () { return [{ type: i1.TaskMagicService }, { type: i0.ViewContainerRef }]; }, null); })();
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtdmFsaWRhdG9yLm1hZ2ljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvcmFuZ2UtdmFsaWRhdG9yLm1hZ2ljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBZSxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBbUJ0RSxNQUFNLE9BQU8sNEJBQTRCO0lBT3ZDLFlBQXNCLEtBQXVCLEVBQWEsS0FBdUI7UUFBM0QsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFBYSxVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUNqRixDQUFDO0lBT0EsUUFBUSxDQUFDLENBQWM7UUFDbkIsSUFBSSxXQUFtQixDQUFDO1FBQ3hCLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksVUFBMkIsQ0FBQztRQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksTUFBTSxHQUFXLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsQ0FBQyxLQUFLO1lBQ1YsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUUsV0FBVyxFQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLE9BQU8sR0FBWSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkQsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNiO2FBQ0k7WUFDSCxPQUFPO2dCQUNMLGNBQWMsRUFBRTtvQkFDZCxRQUFRLEVBQUcsTUFBTTtpQkFDbEI7YUFDRixDQUFDO1NBQ0g7SUFDTCxDQUFDO0lBS0YsY0FBYyxDQUFDLENBQWM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQzs7d0dBM0NVLDRCQUE0QjtpRUFBNUIsNEJBQTRCLDRFQVg1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsNEJBQTRCO2dCQUV6QyxLQUFLLEVBQUUsSUFBSTthQUVaO1NBQ0Y7dUZBR1UsNEJBQTRCO2NBYnhDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsOEJBQThCO3dCQUV6QyxLQUFLLEVBQUUsSUFBSTtxQkFFWjtpQkFDRjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRhc2tNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vY29udHJvbHMubWV0YWRhdGEubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRlcyB0aGUgZmllbGQgcmFuZ2UuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyYW5nZXZhbGlkYXRvcl0gJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFJhbmdlVmFsaWRhdG9yTWFnaWNEaXJlY3RpdmUsXHJcblxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhbmdlVmFsaWRhdG9yTWFnaWNEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBfdGFzayBUaGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHZjUmVmXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrOiBUYXNrTWFnaWNTZXJ2aWNlLCAgcHJvdGVjdGVkIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0aW9uIG1ldGhvZFxyXG4gICAqIEBwYXJhbSBjIEZvcm1Db250cm9sIHRvIHZhbGlkYXRlXHJcbiAgICogQHJldHVybnMgSWYgdmFsaWRhdGlvbiBmYWlscywgcmV0dXJuIGVycm9yIG1lc3NhZ2UsIGVsc2UgcmV0dXJucyBudWxsXHJcbiAgICovXHJcbiAgIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcbiAgICAgICBsZXQgY29udHJvbE5hbWU6IHN0cmluZztcclxuICAgICAgIGNvbnRyb2xOYW1lID0gdGhpcy5nZXRDb250cm9sTmFtZSAoYyk7XHJcbiAgICAgICBsZXQgcHJvcGVydGllczogQ29udHJvbE1ldGFkYXRhO1xyXG4gICAgICAgcHJvcGVydGllcyA9IHRoaXMuX3Rhc2suUmVjb3Jkcy5saXN0W1wiMFwiXS5nZXRDb250cm9sTWV0YWRhdGEoY29udHJvbE5hbWUpO1xyXG4gICAgICAgcHJvcGVydGllcy5yYW5nZVZhbGlkYXRvciA9IHRydWU7XHJcbiAgICAgICBsZXQgZXJyTXNnOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgaWYgKGMuZGlydHkpXHJcbiAgICAgICAgZXJyTXNnID0gdGhpcy5fdGFzay5WYWxpZGF0ZUNvbnRyb2xWYWx1ZSAoY29udHJvbE5hbWUsICB0aGlzLl90YXNrLkNvbnZlcnRWYWxUb05hdGl2ZShjb250cm9sTmFtZSwgIDAsIGMudmFsdWUpKTtcclxuICAgICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gKGVyck1zZyA9PSBudWxsKSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgfVxyXG4gICAgICAgZWxzZSB7XHJcbiAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgcmFuZ2V2YWxpZGF0b3I6IHtcclxuICAgICAgICAgICAgIGVycm9yTXNnIDogZXJyTXNnXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9O1xyXG4gICAgICAgfVxyXG4gICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXRDb250cm9sTmFtZShjOiBGb3JtQ29udHJvbCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gYy5wYXJlbnQuY29udHJvbHM7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybUdyb3VwKS5maW5kKG5hbWUgPT4gYyA9PT0gZm9ybUdyb3VwW25hbWVdKSB8fCBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,8 +0,0 @@
|
|
1
|
-
export class ModalFormDefinition {
|
2
|
-
constructor() {
|
3
|
-
this.taskId = "";
|
4
|
-
this.comp = null;
|
5
|
-
this.parameters = {};
|
6
|
-
}
|
7
|
-
}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtbW9kYWwtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW1vZGFsLWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNFLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsU0FBSSxHQUFRLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTW9kYWxGb3JtRGVmaW5pdGlvbiB7XHJcbiAgdGFza0lkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGNvbXA6IGFueSA9IG51bGw7XHJcbiAgcGFyYW1ldGVyczogYW55ID0ge307XHJcbn1cclxuIl19
|
@@ -1,121 +0,0 @@
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild, ComponentFactoryResolver, ElementRef, Injector, ChangeDetectorRef, Compiler } from '@angular/core';
|
2
|
-
import { BaseMagicOverlayContainer } from "./base-magic-overlay-container";
|
3
|
-
import { BaseMagicConfirmComponent } from "../components/base-magic-confirm.component";
|
4
|
-
import { BaseMagicAlertComponent } from "../components/base-magic-alert.component";
|
5
|
-
import { OverlayType } from "@magic-xpa/gui";
|
6
|
-
import { ComponentListMagicService } from "../../services/component-list.magic.service";
|
7
|
-
import { isNullOrUndefined } from '@magic-xpa/mscorelib';
|
8
|
-
import { MagicLazyLoaderService } from '../../services/magic.lazy.loader.service';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "../../services/component-list.magic.service";
|
11
|
-
import * as i2 from "../../services/magic.lazy.loader.service";
|
12
|
-
import * as i3 from "../directives/magic-focus.directive";
|
13
|
-
import * as i4 from "../directives/magicViewContainerRef.directive";
|
14
|
-
const _c0 = ["overlayContainerWrapper"];
|
15
|
-
export class MagicOverlayContainerWrapper {
|
16
|
-
constructor(componentListMagicService, magicLazyModuleLoader, injector, componentFactoryResolver, changeDetectorRef, compiler) {
|
17
|
-
this.componentListMagicService = componentListMagicService;
|
18
|
-
this.magicLazyModuleLoader = magicLazyModuleLoader;
|
19
|
-
this.injector = injector;
|
20
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
21
|
-
this.changeDetectorRef = changeDetectorRef;
|
22
|
-
this.compiler = compiler;
|
23
|
-
this.Component = null;
|
24
|
-
this.Parameters = {};
|
25
|
-
this.onClose = new EventEmitter();
|
26
|
-
}
|
27
|
-
ngOnInit() {
|
28
|
-
let moduleRef = this.componentListMagicService.getModuleRef(this.Parameters.MagicFormName);
|
29
|
-
if (moduleRef == null) {
|
30
|
-
let lazyLoadModule = this.componentListMagicService.getLazyLoadModuleData(this.Parameters.MagicFormName);
|
31
|
-
if (lazyLoadModule != null) {
|
32
|
-
let moduleName = lazyLoadModule.moduleName.replace("Magic", "");
|
33
|
-
moduleName = moduleName.replace("Module", "");
|
34
|
-
this.magicLazyModuleLoader.Load(moduleName).then(m => {
|
35
|
-
const compiled = this.compiler.compileModuleAndAllComponentsSync(m[lazyLoadModule.moduleName]);
|
36
|
-
moduleRef = compiled.ngModuleFactory.create(this.injector);
|
37
|
-
this.loadComponent(moduleRef);
|
38
|
-
});
|
39
|
-
}
|
40
|
-
else {
|
41
|
-
this.loadComponent(null);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
else
|
45
|
-
this.loadComponent(moduleRef);
|
46
|
-
}
|
47
|
-
loadComponent(moduleRef) {
|
48
|
-
this.Parameters.ModalComp = this.componentListMagicService.getComponent(this.Parameters.MagicFormName, !isNullOrUndefined(this.Parameters.MagicFormName));
|
49
|
-
let factory;
|
50
|
-
if (moduleRef != null)
|
51
|
-
factory = moduleRef.componentFactoryResolver.resolveComponentFactory(this.Component);
|
52
|
-
else
|
53
|
-
factory = this.componentFactoryResolver.resolveComponentFactory(this.Component);
|
54
|
-
let componentRef = this.overlayContentViewContainerRef.createComponent(factory);
|
55
|
-
let allowedBaseComp = MagicOverlayContainerWrapper.allowedBaseComps.get(this.OverlayTypeParam);
|
56
|
-
if (componentRef.instance instanceof allowedBaseComp.comp) {
|
57
|
-
Object.assign(componentRef.instance, this.Parameters);
|
58
|
-
componentRef.instance.onClose.subscribe((res) => {
|
59
|
-
this.onClose.emit(res);
|
60
|
-
});
|
61
|
-
}
|
62
|
-
else {
|
63
|
-
let msg = "Provided window container should subclass of : " + allowedBaseComp.error + "window will not work properly.";
|
64
|
-
alert(msg);
|
65
|
-
}
|
66
|
-
}
|
67
|
-
setViewContainerRef(vcRef) {
|
68
|
-
this.overlayContentViewContainerRef = vcRef;
|
69
|
-
}
|
70
|
-
GetRootElement() {
|
71
|
-
return this.overlayContainerWrapperElementRef.nativeElement;
|
72
|
-
}
|
73
|
-
DetectChanges() {
|
74
|
-
this.changeDetectorRef.detectChanges();
|
75
|
-
}
|
76
|
-
}
|
77
|
-
MagicOverlayContainerWrapper.allowedBaseComps = new Map([
|
78
|
-
[OverlayType.Overlay, { comp: BaseMagicOverlayContainer, error: 'BaseMagicOverlayContainer . Overlay ' }],
|
79
|
-
[OverlayType.Alert, { comp: BaseMagicAlertComponent, error: 'BaseMagicAlertComponent. Alert ' }],
|
80
|
-
[OverlayType.ConfirmationBox, { comp: BaseMagicConfirmComponent, error: 'BaseMagicConfirmComponent. Confirmation ' }]
|
81
|
-
]);
|
82
|
-
MagicOverlayContainerWrapper.ɵfac = function MagicOverlayContainerWrapper_Factory(t) { return new (t || MagicOverlayContainerWrapper)(i0.ɵɵdirectiveInject(i1.ComponentListMagicService), i0.ɵɵdirectiveInject(i2.MagicLazyLoaderService), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Compiler)); };
|
83
|
-
MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContainerWrapper, selectors: [["app-magic-overlay-container-wrapper"]], viewQuery: function MagicOverlayContainerWrapper_Query(rf, ctx) { if (rf & 1) {
|
84
|
-
i0.ɵɵviewQuery(_c0, 7);
|
85
|
-
} if (rf & 2) {
|
86
|
-
let _t;
|
87
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayContainerWrapperElementRef = _t.first);
|
88
|
-
} }, inputs: { Component: "Component", Parameters: "Parameters", OverlayTypeParam: "OverlayTypeParam" }, outputs: { onClose: "onClose" }, decls: 7, vars: 0, consts: [["tabIndex", "0", "magicFocus", "", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"], [1, "overlay-container-wrapper-background"], ["overlayContainerWrapper", ""], ["magicViewContainerRef", ""], ["overlayContent", ""], ["tabIndex", "0", 1, "overlay-container-wrapper-background", 2, "width", "0px", "height", "0px"]], template: function MagicOverlayContainerWrapper_Template(rf, ctx) { if (rf & 1) {
|
89
|
-
i0.ɵɵelementStart(0, "div");
|
90
|
-
i0.ɵɵelement(1, "div", 0);
|
91
|
-
i0.ɵɵelementStart(2, "div", 1, 2);
|
92
|
-
i0.ɵɵelement(4, "div", 3, 4);
|
93
|
-
i0.ɵɵelementEnd();
|
94
|
-
i0.ɵɵelement(6, "div", 5);
|
95
|
-
i0.ɵɵelementEnd();
|
96
|
-
} }, dependencies: [i3.MagicFocusDirective, i4.MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
|
97
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
|
98
|
-
type: Component,
|
99
|
-
args: [{ selector: 'app-magic-overlay-container-wrapper', template: `
|
100
|
-
<div>
|
101
|
-
<div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" magicFocus></div>
|
102
|
-
<div class="overlay-container-wrapper-background" #overlayContainerWrapper>
|
103
|
-
<div #overlayContent magicViewContainerRef>
|
104
|
-
</div>
|
105
|
-
</div>
|
106
|
-
<div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
|
107
|
-
</div>
|
108
|
-
`, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
|
109
|
-
}], function () { return [{ type: i1.ComponentListMagicService }, { type: i2.MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.Compiler }]; }, { Component: [{
|
110
|
-
type: Input
|
111
|
-
}], Parameters: [{
|
112
|
-
type: Input
|
113
|
-
}], OverlayTypeParam: [{
|
114
|
-
type: Input
|
115
|
-
}], onClose: [{
|
116
|
-
type: Output
|
117
|
-
}], overlayContainerWrapperElementRef: [{
|
118
|
-
type: ViewChild,
|
119
|
-
args: ['overlayContainerWrapper', { static: true }]
|
120
|
-
}] }); })();
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXItd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW92ZXJsYXktY29udGFpbmVyLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFjLE1BQU0sNkNBQTZDLENBQUM7QUFFcEcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUEyQmxGLE1BQU0sT0FBTyw0QkFBNEI7SUFrQ3ZDLFlBQW9CLHlCQUFvRCxFQUNwRCxxQkFBNkMsRUFDN0MsUUFBa0IsRUFDNUIsd0JBQWtELEVBQ3hDLGlCQUFtQyxFQUNuQyxRQUFrQjtRQUxsQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0MsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hDLHNCQUFpQixH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RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsIE5nTW9kdWxlUmVmLFxyXG4gIEluamVjdG9yLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcGlsZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gXCIuL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXJcIjtcclxuaW1wb3J0IHsgQmFzZU1hZ2ljQ29uZmlybUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtbWFnaWMtY29uZmlybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmFzZU1hZ2ljQWxlcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9iYXNlLW1hZ2ljLWFsZXJ0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPdmVybGF5VHlwZSB9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLCBNb2R1bGVEYXRhIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1saXN0Lm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCIuLi8uLi8uLlwiO1xyXG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IE1hZ2ljTGF6eUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWdpYy5sYXp5LmxvYWRlci5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYWdpYy1vdmVybGF5LWNvbnRhaW5lci13cmFwcGVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyLXdyYXBwZXItYmFja2dyb3VuZFwiIHRhYkluZGV4PVwiMFwiIHN0eWxlPVwid2lkdGg6IDBweDsgaGVpZ2h0OiAwcHg7XCIgbWFnaWNGb2N1cz48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyLXdyYXBwZXItYmFja2dyb3VuZFwiICNvdmVybGF5Q29udGFpbmVyV3JhcHBlcj5cclxuICAgICAgICA8ZGl2ICNvdmVybGF5Q29udGVudCBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1jb250YWluZXItd3JhcHBlci1iYWNrZ3JvdW5kXCIgdGFiSW5kZXg9XCIwXCIgc3R5bGU9XCJ3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDtcIiA+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5vdmVybGF5LWNvbnRhaW5lci13cmFwcGVyLWJhY2tncm91bmQge1xyXG4gICAgICAvKiBtb2RhbCBiYWNrZ3JvdW5kIGZpeGVkIGFjcm9zcyB3aG9sZSBzY3JlZW4gKi9cclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHotaW5kZXg6IDk5OTtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFnaWNPdmVybGF5Q29udGFpbmVyV3JhcHBlciAgaW1wbGVtZW50cyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBDb21wb25lbnQgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIFBhcmFtZXRlcnM6IGFueSA9IHt9O1xyXG5cclxuICBASW5wdXQoKSBwcml2YXRlIE92ZXJsYXlUeXBlUGFyYW06IE92ZXJsYXlUeXBlO1xyXG5cclxuICBAT3V0cHV0KCkgcHJpdmF0ZSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBIVE1MIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgb3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pIG92ZXJsYXlDb250YWluZXJXcmFwcGVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIGNvbnRhaXMgZGF0YSBvZiBhbGxvd2VkIGJhc2UgY29tcG9uZW50cyB0byB1c2VcclxuICAgKi9cclxuICBzdGF0aWMgYWxsb3dlZEJhc2VDb21wcyA9IG5ldyBNYXA8bnVtYmVyLCB7Y29tcDogYW55LCBlcnJvcjogc3RyaW5nfT4oW1xyXG4gICAgW092ZXJsYXlUeXBlLk92ZXJsYXksIHtjb21wOiBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyLCBlcnJvcjonQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciAuIE92ZXJsYXkgJ31dLFxyXG4gICAgW092ZXJsYXlUeXBlLkFsZXJ0LCB7Y29tcDogQmFzZU1hZ2ljQWxlcnRDb21wb25lbnQsIGVycm9yOidCYXNlTWFnaWNBbGVydENvbXBvbmVudC4gQWxlcnQgJ31dLFxyXG4gICAgW092ZXJsYXlUeXBlLkNvbmZpcm1hdGlvbkJveCwgIHtjb21wOiBCYXNlTWFnaWNDb25maXJtQ29tcG9uZW50LCBlcnJvciA6J0Jhc2VNYWdpY0NvbmZpcm1Db21wb25lbnQuIENvbmZpcm1hdGlvbiAnfV1cclxuICBdKTtcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudExpc3RNYWdpY1NlcnZpY2U6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtYWdpY0xhenlNb2R1bGVMb2FkZXI6IE1hZ2ljTGF6eUxvYWRlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBsZXQgbW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+ID0gdGhpcy5jb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLmdldE1vZHVsZVJlZih0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSk7XHJcblxyXG4gICAgaWYgKG1vZHVsZVJlZiA9PSBudWxsKSB7XHJcbiAgICAgIGxldCBsYXp5TG9hZE1vZHVsZTogTW9kdWxlRGF0YSA9IHRoaXMuY29tcG9uZW50TGlzdE1hZ2ljU2VydmljZS5nZXRMYXp5TG9hZE1vZHVsZURhdGEodGhpcy5QYXJhbWV0ZXJzLk1hZ2ljRm9ybU5hbWUpO1xyXG5cclxuICAgICAgaWYgKGxhenlMb2FkTW9kdWxlICE9IG51bGwpIHtcclxuICAgICAgICBsZXQgbW9kdWxlTmFtZSA9IGxhenlMb2FkTW9kdWxlLm1vZHVsZU5hbWUucmVwbGFjZShcIk1hZ2ljXCIsIFwiXCIpO1xyXG4gICAgICAgIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lLnJlcGxhY2UoXCJNb2R1bGVcIiwgXCJcIik7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhenlNb2R1bGVMb2FkZXIuTG9hZChtb2R1bGVOYW1lKS50aGVuKG0gPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29tcGlsZWQgPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyg8YW55Pm1bbGF6eUxvYWRNb2R1bGUubW9kdWxlTmFtZV0pO1xyXG4gICAgICAgICAgbW9kdWxlUmVmID0gY29tcGlsZWQubmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICAgIHRoaXMubG9hZENvbXBvbmVudChtb2R1bGVSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZENvbXBvbmVudChudWxsKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIHRoaXMubG9hZENvbXBvbmVudChtb2R1bGVSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQ29tcG9uZW50KG1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy5QYXJhbWV0ZXJzLk1vZGFsQ29tcCA9IHRoaXMuY29tcG9uZW50TGlzdE1hZ2ljU2VydmljZS5nZXRDb21wb25lbnQodGhpcy5QYXJhbWV0ZXJzLk1hZ2ljRm9ybU5hbWUsICFpc051bGxPclVuZGVmaW5lZCh0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSkpO1xyXG5cclxuICAgIGxldCBmYWN0b3J5O1xyXG4gICAgaWYgKG1vZHVsZVJlZiAhPSBudWxsKVxyXG4gICAgICBmYWN0b3J5ID0gbW9kdWxlUmVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLkNvbXBvbmVudCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLkNvbXBvbmVudCk7XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIGxldCBhbGxvd2VkQmFzZUNvbXAgPSBNYWdpY092ZXJsYXlDb250YWluZXJXcmFwcGVyLmFsbG93ZWRCYXNlQ29tcHMuZ2V0KHRoaXMuT3ZlcmxheVR5cGVQYXJhbSk7XHJcblxyXG5cclxuICAgIGlmIChjb21wb25lbnRSZWYuaW5zdGFuY2UgaW5zdGFuY2VvZiBhbGxvd2VkQmFzZUNvbXAuY29tcCkge1xyXG4gICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5QYXJhbWV0ZXJzKTtcclxuICAgICAgKDxhbnk+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5vbkNsb3NlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQocmVzKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgbXNnID0gXCJQcm92aWRlZCAgd2luZG93IGNvbnRhaW5lciBzaG91bGQgc3ViY2xhc3Mgb2YgOiBcIiArIGFsbG93ZWRCYXNlQ29tcC5lcnJvciArIFwid2luZG93IHdpbGwgbm90IHdvcmsgcHJvcGVybHkuXCI7XHJcbiAgICAgIGFsZXJ0KG1zZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKXtcclxuICAgIHRoaXMub3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmID0gdmNSZWY7XHJcbiAgfVxyXG5cclxuICBHZXRSb290RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyV3JhcHBlckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIERldGVjdENoYW5nZXMoKVxyXG4gIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|