@magic-xpa/angular 4.1100.0-dev4110.99 → 4.1101.0-dev4111.271
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/README.md +5 -5
- 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 +245 -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 +195 -0
- package/esm2022/src/services/table.magic.service.mjs +81 -0
- package/esm2022/src/services/task.magics.service.mjs +648 -0
- package/esm2022/src/services/title.magic.service.mjs +19 -0
- package/esm2022/src/ui/GuiInteractiveExecutor.mjs +114 -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 +100 -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/{esm2020 → esm2022}/src/ui/directives/magic/nocontrol.magic.directive.mjs +193 -193
- 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 +232 -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 +41 -41
- 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 +125 -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/{esm2020 → esm2022}/src/ui/utils.mjs +53 -53
- package/{fesm2020 → fesm2022}/magic-xpa-angular.mjs +4933 -4495
- 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 -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 +22 -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 +45 -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 -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 -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/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/fesm2015/magic-xpa-angular.mjs +0 -4865
- package/fesm2015/magic-xpa-angular.mjs.map +0 -1
- package/fesm2020/magic-xpa-angular.mjs.map +0 -1
@@ -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=
|
@@ -1,159 +0,0 @@
|
|
1
|
-
import { Component, ComponentFactoryResolver, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
2
|
-
import { isNullOrUndefined } from '@magic-xpa/mscorelib';
|
3
|
-
import { BaseMagicOverlayContainer } from './base-magic-overlay-container';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/common";
|
6
|
-
import * as i2 from "../directives/magicViewContainerRef.directive";
|
7
|
-
const _c0 = ["modalheader"];
|
8
|
-
const _c1 = ["modalForeground"];
|
9
|
-
function MagicOverlayContainer_button_2_Template(rf, ctx) { if (rf & 1) {
|
10
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
11
|
-
i0.ɵɵelementStart(0, "button", 8);
|
12
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.OnClose()); });
|
13
|
-
i0.ɵɵtext(1, "X");
|
14
|
-
i0.ɵɵelementEnd();
|
15
|
-
} }
|
16
|
-
function MagicOverlayContainer_div_5_Template(rf, ctx) { if (rf & 1) {
|
17
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
18
|
-
i0.ɵɵelementStart(0, "div", 9, 10);
|
19
|
-
i0.ɵɵtext(2);
|
20
|
-
i0.ɵɵelementStart(3, "button", 11);
|
21
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.OnClose()); });
|
22
|
-
i0.ɵɵtext(4, "X");
|
23
|
-
i0.ɵɵelementEnd()();
|
24
|
-
} if (rf & 2) {
|
25
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
26
|
-
i0.ɵɵadvance(2);
|
27
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.getText(), " ");
|
28
|
-
} }
|
29
|
-
export class MagicOverlayContainer extends BaseMagicOverlayContainer {
|
30
|
-
constructor(componentFactoryResolver) {
|
31
|
-
super();
|
32
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
33
|
-
this.ModalComp = null;
|
34
|
-
this.ModalCompParameters = {};
|
35
|
-
this.onClose = new EventEmitter();
|
36
|
-
this.componentRef = null;
|
37
|
-
}
|
38
|
-
ngOnInit() {
|
39
|
-
const factory = this.componentFactoryResolver.resolveComponentFactory(this.ModalComp);
|
40
|
-
this.componentRef = this.modalbodyViewContainerRef.createComponent(factory);
|
41
|
-
Object.assign(this.componentRef.instance, this.ModalCompParameters);
|
42
|
-
}
|
43
|
-
setViewContainerRef(vcRef) {
|
44
|
-
this.modalbodyViewContainerRef = vcRef;
|
45
|
-
}
|
46
|
-
getText() {
|
47
|
-
if (this.componentRef !== null) {
|
48
|
-
let comp = this.componentRef.instance;
|
49
|
-
return comp.FormName();
|
50
|
-
}
|
51
|
-
else
|
52
|
-
return '';
|
53
|
-
}
|
54
|
-
getStyle() {
|
55
|
-
let styles = {};
|
56
|
-
if (this.componentRef != undefined) {
|
57
|
-
let comp = this.componentRef.instance;
|
58
|
-
styles['width'] = comp.Width();
|
59
|
-
styles['height'] = comp.Height();
|
60
|
-
if (comp.IsCenteredToWindow()) {
|
61
|
-
styles['margin'] = 'auto';
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
styles['margin-left'] = comp.X() + 'px';
|
65
|
-
styles['margin-top'] = comp.Y() + 'px';
|
66
|
-
}
|
67
|
-
}
|
68
|
-
return styles;
|
69
|
-
}
|
70
|
-
getClientAreaStyles() {
|
71
|
-
let styles = {};
|
72
|
-
if (this.componentRef != undefined) {
|
73
|
-
const headerHeight = this.getShowTitleBar() && !isNullOrUndefined(this.headerElementRef) ? (this.headerElementRef.nativeElement.offsetHeight + 1) : 0;
|
74
|
-
if (!isNullOrUndefined(this.foregroundElementRef)) {
|
75
|
-
const foregroundHeight = this.foregroundElementRef.nativeElement.offsetHeight;
|
76
|
-
styles['height'] = (foregroundHeight - headerHeight) + 'px';
|
77
|
-
const foregroundWidth = this.foregroundElementRef.nativeElement.offsetWidth;
|
78
|
-
styles['width'] = (foregroundWidth) + 'px';
|
79
|
-
}
|
80
|
-
styles['overflow'] = 'auto';
|
81
|
-
}
|
82
|
-
return styles;
|
83
|
-
}
|
84
|
-
getShowTitleBar() {
|
85
|
-
if (this.componentRef != undefined) {
|
86
|
-
let comp = this.componentRef.instance;
|
87
|
-
return comp.ShowTitleBar();
|
88
|
-
}
|
89
|
-
}
|
90
|
-
OnClose() {
|
91
|
-
this.onClose.emit();
|
92
|
-
}
|
93
|
-
OnBackgroundClick() {
|
94
|
-
let comp = this.componentRef.instance;
|
95
|
-
if (comp.ShouldCloseOnBackgroundClick())
|
96
|
-
this.OnClose();
|
97
|
-
}
|
98
|
-
}
|
99
|
-
MagicOverlayContainer.ɵfac = function MagicOverlayContainer_Factory(t) { return new (t || MagicOverlayContainer)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); };
|
100
|
-
MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContainer, selectors: [["app-magic-overlay-container"]], viewQuery: function MagicOverlayContainer_Query(rf, ctx) { if (rf & 1) {
|
101
|
-
i0.ɵɵviewQuery(_c0, 5);
|
102
|
-
i0.ɵɵviewQuery(_c1, 5);
|
103
|
-
} if (rf & 2) {
|
104
|
-
let _t;
|
105
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerElementRef = _t.first);
|
106
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.foregroundElementRef = _t.first);
|
107
|
-
} }, inputs: { ModalComp: "ModalComp", ModalCompParameters: "ModalCompParameters" }, outputs: { onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 4, consts: [[1, "modal-background", 3, "click"], ["tabindex", "-1", "style", "float:right; border: none; background-color: transparent; outline: none; color: white", 3, "click", 4, "ngIf"], [1, "modal-foreground", 3, "ngStyle"], ["modalForeground", ""], ["class", "modal-header", 4, "ngIf"], [3, "ngStyle"], ["magicViewContainerRef", ""], ["modalbody", ""], ["tabindex", "-1", 2, "float", "right", "border", "none", "background-color", "transparent", "outline", "none", "color", "white", 3, "click"], [1, "modal-header"], ["modalheader", ""], ["tabindex", "-1", 2, "float", "right", 3, "click"]], template: function MagicOverlayContainer_Template(rf, ctx) { if (rf & 1) {
|
108
|
-
i0.ɵɵelementStart(0, "div")(1, "div", 0);
|
109
|
-
i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { return ctx.OnBackgroundClick(); });
|
110
|
-
i0.ɵɵtemplate(2, MagicOverlayContainer_button_2_Template, 2, 0, "button", 1);
|
111
|
-
i0.ɵɵelementEnd();
|
112
|
-
i0.ɵɵelementStart(3, "div", 2, 3);
|
113
|
-
i0.ɵɵtemplate(5, MagicOverlayContainer_div_5_Template, 5, 1, "div", 4);
|
114
|
-
i0.ɵɵelementStart(6, "div", 5);
|
115
|
-
i0.ɵɵelement(7, "div", 6, 7);
|
116
|
-
i0.ɵɵelementEnd()()();
|
117
|
-
} if (rf & 2) {
|
118
|
-
i0.ɵɵadvance(2);
|
119
|
-
i0.ɵɵproperty("ngIf", !ctx.getShowTitleBar());
|
120
|
-
i0.ɵɵadvance(1);
|
121
|
-
i0.ɵɵproperty("ngStyle", ctx.getStyle());
|
122
|
-
i0.ɵɵadvance(2);
|
123
|
-
i0.ɵɵproperty("ngIf", ctx.getShowTitleBar());
|
124
|
-
i0.ɵɵadvance(1);
|
125
|
-
i0.ɵɵproperty("ngStyle", ctx.getClientAreaStyles());
|
126
|
-
} }, dependencies: [i1.NgIf, i1.NgStyle, i2.MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}"] });
|
127
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
|
128
|
-
type: Component,
|
129
|
-
args: [{ selector: 'app-magic-overlay-container', template: `
|
130
|
-
<div>
|
131
|
-
<div class="modal-background" (click)="OnBackgroundClick()">
|
132
|
-
<button (click)="OnClose()" tabindex="-1" style="float:right; border: none; background-color: transparent; outline: none; color: white" *ngIf="!getShowTitleBar()">X</button>
|
133
|
-
</div>
|
134
|
-
<div #modalForeground class="modal-foreground" [ngStyle]="getStyle()">
|
135
|
-
<div #modalheader class="modal-header" *ngIf="getShowTitleBar()">
|
136
|
-
{{getText()}}
|
137
|
-
<button (click)="OnClose()" style="float:right" tabindex="-1">X</button>
|
138
|
-
</div>
|
139
|
-
<div [ngStyle]="getClientAreaStyles()">
|
140
|
-
<div #modalbody magicViewContainerRef>
|
141
|
-
</div>
|
142
|
-
</div>
|
143
|
-
</div>
|
144
|
-
</div>
|
145
|
-
`, styles: [".modal-foreground{position:fixed;inset:0;background-color:#fff}.modal-background{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header{background-color:beige;border-bottom:2px solid red}\n"] }]
|
146
|
-
}], function () { return [{ type: i0.ComponentFactoryResolver }]; }, { headerElementRef: [{
|
147
|
-
type: ViewChild,
|
148
|
-
args: ['modalheader', { static: false }]
|
149
|
-
}], foregroundElementRef: [{
|
150
|
-
type: ViewChild,
|
151
|
-
args: ['modalForeground', { static: false }]
|
152
|
-
}], ModalComp: [{
|
153
|
-
type: Input
|
154
|
-
}], ModalCompParameters: [{
|
155
|
-
type: Input
|
156
|
-
}], onClose: [{
|
157
|
-
type: Output
|
158
|
-
}] }); })();
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1tb2RhbC9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJQVduRSxpQ0FBbUs7SUFBM0oscUtBQVMsZUFBQSxnQkFBUyxDQUFBLElBQUM7SUFBd0ksaUJBQUM7SUFBQSxpQkFBUzs7OztJQUc3SyxrQ0FBaUU7SUFDL0QsWUFDQTtJQUFBLGtDQUE4RDtJQUF0RCxrS0FBUyxlQUFBLGdCQUFTLENBQUEsSUFBQztJQUFtQyxpQkFBQztJQUFBLGlCQUFTLEVBQUE7OztJQUR4RSxlQUNBO0lBREEsaURBQ0E7O0FBV1YsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHlCQUF5QjtJQW9DbEUsWUFDVSx3QkFBa0Q7UUFDMUQsS0FBSyxFQUFFLENBQUM7UUFEQSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBbkJuRCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBSWpCLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUU3QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUtyQyxpQkFBWSxHQUFHLElBQUksQ0FBQztJQVU1QixDQUFDO0lBS0QsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENB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LENBQUM7SUFDdEIsQ0FBQztJQUtELGlCQUFpQjtRQUNmLElBQUksSUFBSSxHQUF3QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQStCLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7OzBGQTFJVSxxQkFBcUI7MERBQXJCLHFCQUFxQjs7Ozs7Ozs7UUFsQjlCLDJCQUFLLGFBQUE7UUFDMkIsK0ZBQVMsdUJBQW1CLElBQUM7UUFDekQsNEVBQTZLO1FBQy9LLGlCQUFNO1FBQ04saUNBQXNFO1FBQ3BFLHNFQUdNO1FBQ04sOEJBQXVDO1FBQ3JDLDRCQUNNO1FBQ1IsaUJBQU0sRUFBQSxFQUFBOztRQVZtSSxlQUF3QjtRQUF4Qiw2Q0FBd0I7UUFFcEgsZUFBc0I7UUFBdEIsd0NBQXNCO1FBQzNCLGVBQXVCO1FBQXZCLDRDQUF1QjtRQUkxRCxlQUFpQztRQUFqQyxtREFBaUM7O3VGQVNqQyxxQkFBcUI7Y0FyQmpDLFNBQVM7MkJBQ0UsNkJBQTZCLFlBQzdCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUOzJFQVk0QyxnQkFBZ0I7a0JBQTVELFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUlNLG9CQUFvQjtrQkFBcEUsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFLdEMsU0FBUztrQkFBakIsS0FBSztZQUlHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUVJLE9BQU87a0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYWdpY01vZGFsSW50ZXJmYWNlIH0gZnJvbSAnLi9tYWdpYy1tb2RhbC1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJy4vYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lcic7XHJcbmltcG9ydCB7IElNYWdpY1ZpZXdDb250YWluZXJSZWYgfSBmcm9tICcuLi8uLi8uLic7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG1vZGFsIHdpbmRvdyBmb3IgTWFnaWMgbW9kYWwgd2luZG93IGNvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW1hZ2ljLW92ZXJsYXktY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tncm91bmRcIiAoY2xpY2spPVwiT25CYWNrZ3JvdW5kQ2xpY2soKVwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIk9uQ2xvc2UoKVwiIHRhYmluZGV4PVwiLTFcIiBzdHlsZT1cImZsb2F0OnJpZ2h0OyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBvdXRsaW5lOiBub25lOyBjb2xvcjogd2hpdGVcIiAqbmdJZj1cIiFnZXRTaG93VGl0bGVCYXIoKVwiPlg8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgI21vZGFsRm9yZWdyb3VuZCBjbGFzcz1cIm1vZGFsLWZvcmVncm91bmRcIiBbbmdTdHlsZV09XCJnZXRTdHlsZSgpXCI+XHJcbiAgICAgICAgPGRpdiAjbW9kYWxoZWFkZXIgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIiAqbmdJZj1cImdldFNob3dUaXRsZUJhcigpXCI+XHJcbiAgICAgICAgICB7e2dldFRleHQoKX19XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKClcIiBzdHlsZT1cImZsb2F0OnJpZ2h0XCIgdGFiaW5kZXg9XCItMVwiPlg8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cImdldENsaWVudEFyZWFTdHlsZXMoKVwiPlxyXG4gICAgICAgICAgPGRpdiAjbW9kYWxib2R5IG1hZ2ljVmlld0NvbnRhaW5lclJlZj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFnaWMtb3ZlcmxheS1jb250YWluZXIuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljT3ZlcmxheUNvbnRhaW5lciBleHRlbmRzIEJhc2VNYWdpY092ZXJsYXlDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQgLCBJTWFnaWNWaWV3Q29udGFpbmVyUmVme1xyXG4gIC8qKlxyXG4gICAqIEhUTUwgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBtb2RhbGJvZHlWaWV3Q29udGFpbmVyUmVmIDogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogSGVhZGVyIG9mIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdtb2RhbGhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBoZWFkZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIC8qKlxyXG4gICAqIEZvcmVncm91bmQgb2YgdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsRm9yZWdyb3VuZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JlZ3JvdW5kRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBNb2RhbENvbXAgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgTW9kYWxDb21wUGFyYW1ldGVyczogYW55ID0ge307XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY29tcG9uZW50UmVmID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5qZWN0b3JcclxuICAgKiBAcGFyYW0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLk1vZGFsQ29tcCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMubW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLk1vZGFsQ29tcFBhcmFtZXRlcnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNldFZpZXdDb250YWluZXJSZWYodmNSZWY6IFZpZXdDb250YWluZXJSZWYpe1xyXG4gICAgdGhpcy5tb2RhbGJvZHlWaWV3Q29udGFpbmVyUmVmID0gdmNSZWY7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZm9ybSBuYW1lXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuICAgICAgcmV0dXJuIGNvbXAuRm9ybU5hbWUoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBDU1Mgc3R5bGVzIGZvciB0aGUgd2luZG93XHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRTdHlsZSgpIHtcclxuICAgIGxldCBzdHlsZXMgPSB7fTtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG5cclxuICAgICAgc3R5bGVzWyd3aWR0aCddID0gY29tcC5XaWR0aCgpO1xyXG4gICAgICBzdHlsZXNbJ2hlaWdodCddID0gY29tcC5IZWlnaHQoKTtcclxuXHJcbiAgICAgIGlmIChjb21wLklzQ2VudGVyZWRUb1dpbmRvdygpKSB7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4nXSA9ICdhdXRvJztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzdHlsZXNbJ21hcmdpbi1sZWZ0J10gPSBjb21wLlgoKSArICdweCc7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4tdG9wJ10gPSBjb21wLlkoKSArICdweCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBDU1Mgc3R5bGVzIGZvciB0aGUgY2xpZW50IGFyZWFcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldENsaWVudEFyZWFTdHlsZXMoKSB7XHJcbiAgICBsZXQgc3R5bGVzID0ge307XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuZ2V0U2hvd1RpdGxlQmFyKCkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaGVhZGVyRWxlbWVudFJlZikgPyAodGhpcy5oZWFkZXJFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgMSkgOiAwO1xyXG4gICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYpKSB7XHJcbiAgICAgICAgY29uc3QgZm9yZWdyb3VuZEhlaWdodCA9IHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgc3R5bGVzWydoZWlnaHQnXSA9IChmb3JlZ3JvdW5kSGVpZ2h0IC0gaGVhZGVySGVpZ2h0KSArICdweCc7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcmVncm91bmRXaWR0aCA9IHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICBzdHlsZXNbJ3dpZHRoJ10gPSAoZm9yZWdyb3VuZFdpZHRoKSArICdweCc7XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzWydvdmVyZmxvdyddID0gJ2F1dG8nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3VsZCB0aGUgdGl0bGUgYmFyIGJlIGRpc3BsYXllZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0U2hvd1RpdGxlQmFyKCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcbiAgICAgIHJldHVybiBjb21wLlNob3dUaXRsZUJhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBPbkNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgY2xpY2sgaW4gdGhlIGJhY2tncm91bmQgd2luZG93XHJcbiAgICovXHJcbiAgT25CYWNrZ3JvdW5kQ2xpY2soKSB7XHJcbiAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcblxyXG4gICAgaWYgKGNvbXAuU2hvdWxkQ2xvc2VPbkJhY2tncm91bmRDbGljaygpKVxyXG4gICAgICB0aGlzLk9uQ2xvc2UoKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -1,203 +0,0 @@
|
|
1
|
-
import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, Optional, TemplateRef, ViewChild } from '@angular/core';
|
2
|
-
import { CommandType } from '@magic-xpa/gui';
|
3
|
-
import { Title } from '@angular/platform-browser';
|
4
|
-
import { EngineMagicService } from '../services/engine.magic.service';
|
5
|
-
import { ComponentListMagicService } from '../services/component-list.magic.service';
|
6
|
-
import { GuiInteractiveExecutor } from './GuiInteractiveExecutor';
|
7
|
-
import { filter } from 'rxjs/operators';
|
8
|
-
import { ExitMagicService } from '../services/exit.magic.service';
|
9
|
-
import { OverlayWindowService } from '../services/OverlayWindowService';
|
10
|
-
import { CommandsCollectorMagicService } from '../services/commands-collector.magic.service';
|
11
|
-
import { HttpClient } from '@angular/common/http';
|
12
|
-
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "../services/engine.magic.service";
|
14
|
-
import * as i2 from "../services/component-list.magic.service";
|
15
|
-
import * as i3 from "@angular/platform-browser";
|
16
|
-
import * as i4 from "../services/OverlayWindowService";
|
17
|
-
import * as i5 from "@angular/common/http";
|
18
|
-
import * as i6 from "../services/commands-collector.magic.service";
|
19
|
-
import * as i7 from "../services/exit.magic.service";
|
20
|
-
import * as i8 from "@angular/common";
|
21
|
-
import * as i9 from "ng-dynamic-component";
|
22
|
-
import * as i10 from "./directives/magicViewContainerRef.directive";
|
23
|
-
const _c0 = ["magicRoot"];
|
24
|
-
function MagicShellComponent_ndc_dynamic_2_Template(rf, ctx) { if (rf & 1) {
|
25
|
-
i0.ɵɵelement(0, "ndc-dynamic", 6);
|
26
|
-
} if (rf & 2) {
|
27
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
28
|
-
i0.ɵɵproperty("ndcDynamicComponent", ctx_r1.RootComponent)("ndcDynamicInputs", ctx_r1.RootComponentParameters);
|
29
|
-
} }
|
30
|
-
function MagicShellComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
31
|
-
i0.ɵɵelementStart(0, "div", 7);
|
32
|
-
i0.ɵɵelementContainer(1, 8);
|
33
|
-
i0.ɵɵelementEnd();
|
34
|
-
} if (rf & 2) {
|
35
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
36
|
-
const _r4 = i0.ɵɵreference(7);
|
37
|
-
i0.ɵɵadvance(1);
|
38
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.SpinnerTemplate ? ctx_r3.SpinnerTemplate : _r4);
|
39
|
-
} }
|
40
|
-
function MagicShellComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
41
|
-
i0.ɵɵelement(0, "div", 9);
|
42
|
-
} }
|
43
|
-
export class MagicShellComponent {
|
44
|
-
constructor(engineMagicService, componentList, changeDetectorRef, titleService, overlayWindowService, httpClient, pendingCommandsCollector, exitMagicService) {
|
45
|
-
this.engineMagicService = engineMagicService;
|
46
|
-
this.componentList = componentList;
|
47
|
-
this.changeDetectorRef = changeDetectorRef;
|
48
|
-
this.titleService = titleService;
|
49
|
-
this.overlayWindowService = overlayWindowService;
|
50
|
-
this.httpClient = httpClient;
|
51
|
-
this.pendingCommandsCollector = pendingCommandsCollector;
|
52
|
-
this.exitMagicService = exitMagicService;
|
53
|
-
this.RootComponent = null;
|
54
|
-
this.magicEngineTerminated = false;
|
55
|
-
this.initialize();
|
56
|
-
this.setTitle();
|
57
|
-
}
|
58
|
-
onBeforeUnload(event) {
|
59
|
-
if (this.engineMagicService.TransCacheExists()) {
|
60
|
-
event.returnValue = 'Are you sure?';
|
61
|
-
return 'Are you sure?';
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
this.engineMagicService.TerminateContextUsingFetchAPI();
|
65
|
-
this.magicEngineTerminated = true;
|
66
|
-
}
|
67
|
-
}
|
68
|
-
onUnload(event) {
|
69
|
-
if (!this.magicEngineTerminated)
|
70
|
-
this.engineMagicService.TerminateContextUsingFetchAPI();
|
71
|
-
}
|
72
|
-
ngAfterViewInit() {
|
73
|
-
this.overlayWindowService.init(this.overlayWindowsContainerViewRef, this.rootMagicElementRef.nativeElement, this.changeDetectorRef);
|
74
|
-
this.engineMagicService.startMagicEngine(this.httpClient);
|
75
|
-
}
|
76
|
-
setViewContainerRef(vcRef) {
|
77
|
-
this.overlayWindowsContainerViewRef = vcRef;
|
78
|
-
}
|
79
|
-
initialize() {
|
80
|
-
this.registerUICommands();
|
81
|
-
}
|
82
|
-
setTitle() {
|
83
|
-
const newTitle = this.componentList.title;
|
84
|
-
this.titleService.setTitle(newTitle);
|
85
|
-
}
|
86
|
-
setComponent(formName, taskId, taskDescription, isModal) {
|
87
|
-
this.pendingCommandsCollector.startCollecting();
|
88
|
-
if (isModal) {
|
89
|
-
this.overlayWindowService.open(formName, taskId, taskDescription);
|
90
|
-
}
|
91
|
-
else {
|
92
|
-
this.RootComponent = this.componentList.getComponent(formName);
|
93
|
-
this.RootComponentParameters = { taskIdParam: taskId, taskDescription: taskDescription };
|
94
|
-
}
|
95
|
-
this.changeDetectorRef.detectChanges();
|
96
|
-
}
|
97
|
-
registerUICommands() {
|
98
|
-
this.engineMagicService.refreshDom.pipe(filter(command => command.TaskTag === '0'))
|
99
|
-
.subscribe(command => {
|
100
|
-
this.executeCommand(command);
|
101
|
-
});
|
102
|
-
this.engineMagicService
|
103
|
-
.interactiveCommands.pipe(filter(command => command.TaskTag === '0'))
|
104
|
-
.subscribe(command => {
|
105
|
-
GuiInteractiveExecutor.executeInteractiveCommand(null, command, this.overlayWindowService);
|
106
|
-
});
|
107
|
-
}
|
108
|
-
executeCommand(command) {
|
109
|
-
switch (command.CommandType) {
|
110
|
-
case CommandType.OPEN_FORM:
|
111
|
-
this.setComponent(command.str, command.stringList[0], command.stringList[1], command.Bool1);
|
112
|
-
break;
|
113
|
-
case CommandType.SET_IS_LOGGED_IN:
|
114
|
-
this.engineMagicService.setIsLoggedIn(command.Bool1);
|
115
|
-
break;
|
116
|
-
case CommandType.CLOSE_FORM:
|
117
|
-
if (this.RootComponent != null && command.str === this.RootComponentParameters.taskIdParam) {
|
118
|
-
this.RootComponent = null;
|
119
|
-
this.RootComponentParameters = {};
|
120
|
-
this.changeDetectorRef.detectChanges();
|
121
|
-
}
|
122
|
-
else {
|
123
|
-
this.overlayWindowService.close(command.str);
|
124
|
-
this.changeDetectorRef.detectChanges();
|
125
|
-
}
|
126
|
-
break;
|
127
|
-
case CommandType.RELOAD_PAGE:
|
128
|
-
window.location.reload();
|
129
|
-
break;
|
130
|
-
case CommandType.SHOW_SPINNER:
|
131
|
-
if (this.showSpinner != command.Bool1) {
|
132
|
-
this.showSpinner = command.Bool1;
|
133
|
-
this.changeDetectorRef.detectChanges();
|
134
|
-
}
|
135
|
-
break;
|
136
|
-
case CommandType.EXIT_MAGIC:
|
137
|
-
if (this.exitMagicService)
|
138
|
-
this.exitMagicService.exitMagic();
|
139
|
-
break;
|
140
|
-
case CommandType.SHOW_HTML_ERROR:
|
141
|
-
window.document.write(command.str);
|
142
|
-
break;
|
143
|
-
}
|
144
|
-
}
|
145
|
-
}
|
146
|
-
MagicShellComponent.ɵfac = function MagicShellComponent_Factory(t) { return new (t || MagicShellComponent)(i0.ɵɵdirectiveInject(i1.EngineMagicService), i0.ɵɵdirectiveInject(i2.ComponentListMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.Title), i0.ɵɵdirectiveInject(i4.OverlayWindowService), i0.ɵɵdirectiveInject(i5.HttpClient), i0.ɵɵdirectiveInject(i6.CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i7.ExitMagicService, 8)); };
|
147
|
-
MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent, selectors: [["magic-root"]], viewQuery: function MagicShellComponent_Query(rf, ctx) { if (rf & 1) {
|
148
|
-
i0.ɵɵviewQuery(_c0, 7);
|
149
|
-
} if (rf & 2) {
|
150
|
-
let _t;
|
151
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootMagicElementRef = _t.first);
|
152
|
-
} }, hostBindings: function MagicShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
153
|
-
i0.ɵɵlistener("beforeunload", function MagicShellComponent_beforeunload_HostBindingHandler($event) { return ctx.onBeforeUnload($event); }, false, i0.ɵɵresolveWindow)("unload", function MagicShellComponent_unload_HostBindingHandler($event) { return ctx.onUnload($event); }, false, i0.ɵɵresolveWindow);
|
154
|
-
} }, inputs: { SpinnerTemplate: "SpinnerTemplate" }, features: [i0.ɵɵProvidersFeature([])], decls: 8, vars: 2, consts: [["magicRoot", ""], [3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], ["magicViewContainerRef", ""], ["overlayWindowsContainer", ""], ["class", "spinner-background", 4, "ngIf"], ["defaultSpinner", ""], [3, "ndcDynamicComponent", "ndcDynamicInputs"], [1, "spinner-background"], [3, "ngTemplateOutlet"], [1, "mgSpinnerClass"]], template: function MagicShellComponent_Template(rf, ctx) { if (rf & 1) {
|
155
|
-
i0.ɵɵelementStart(0, "div", null, 0);
|
156
|
-
i0.ɵɵtemplate(2, MagicShellComponent_ndc_dynamic_2_Template, 1, 2, "ndc-dynamic", 1);
|
157
|
-
i0.ɵɵelement(3, "div", 2, 3);
|
158
|
-
i0.ɵɵelementEnd();
|
159
|
-
i0.ɵɵtemplate(5, MagicShellComponent_div_5_Template, 2, 1, "div", 4);
|
160
|
-
i0.ɵɵtemplate(6, MagicShellComponent_ng_template_6_Template, 1, 0, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
|
161
|
-
} if (rf & 2) {
|
162
|
-
i0.ɵɵadvance(2);
|
163
|
-
i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
|
164
|
-
i0.ɵɵadvance(3);
|
165
|
-
i0.ɵɵproperty("ngIf", ctx.showSpinner);
|
166
|
-
} }, dependencies: [i8.NgIf, i8.NgTemplateOutlet, i9.DynamicComponent, i9.DynamicIoDirective, i10.MagicViewContainerRef], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:_ngcontent-%COMP%_spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
|
167
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
|
168
|
-
type: Component,
|
169
|
-
args: [{ selector: 'magic-root', providers: [], template: `
|
170
|
-
<div #magicRoot>
|
171
|
-
<ndc-dynamic
|
172
|
-
*ngIf = "RootComponent !== null"
|
173
|
-
[ndcDynamicComponent]="RootComponent"
|
174
|
-
[ndcDynamicInputs] ="RootComponentParameters">
|
175
|
-
</ndc-dynamic>
|
176
|
-
|
177
|
-
<div #overlayWindowsContainer magicViewContainerRef>
|
178
|
-
</div>
|
179
|
-
</div>
|
180
|
-
|
181
|
-
<div class="spinner-background" *ngIf="showSpinner">
|
182
|
-
<ng-container [ngTemplateOutlet]="SpinnerTemplate ? SpinnerTemplate:defaultSpinner"></ng-container>
|
183
|
-
</div>
|
184
|
-
|
185
|
-
<ng-template #defaultSpinner>
|
186
|
-
<div class="mgSpinnerClass"></div>
|
187
|
-
</ng-template>
|
188
|
-
`, styles: [".mgSpinnerClass{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
189
|
-
}], function () { return [{ type: i1.EngineMagicService }, { type: i2.ComponentListMagicService }, { type: i0.ChangeDetectorRef }, { type: i3.Title }, { type: i4.OverlayWindowService }, { type: i5.HttpClient }, { type: i6.CommandsCollectorMagicService }, { type: i7.ExitMagicService, decorators: [{
|
190
|
-
type: Optional
|
191
|
-
}] }]; }, { rootMagicElementRef: [{
|
192
|
-
type: ViewChild,
|
193
|
-
args: ['magicRoot', { static: true }]
|
194
|
-
}], SpinnerTemplate: [{
|
195
|
-
type: Input
|
196
|
-
}], onBeforeUnload: [{
|
197
|
-
type: HostListener,
|
198
|
-
args: ['window:beforeunload', ['$event']]
|
199
|
-
}], onUnload: [{
|
200
|
-
type: HostListener,
|
201
|
-
args: ['window:unload', ['$event']]
|
202
|
-
}] }); })();
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1yb290LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBWTVDLGlDQUljOzs7SUFGWiwwREFBcUMsb0RBQUE7OztJQVF6Qyw4QkFBb0Q7SUFDbEQsMkJBQW1HO0lBQ3JHLGlCQUFNOzs7O0lBRFUsZUFBcUU7SUFBckUsd0ZBQXFFOzs7SUFJbkYseUJBQWtDOztBQWtDeEMsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUIsWUFBc0Isa0JBQXNDLEVBQ3RDLGFB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QW1FWSxRQUFRO3dCQXZCcUIsbUJBQW1CO2tCQUE1RCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFL0IsZUFBZTtrQkFBdkIsS0FBSztZQWdDTixjQUFjO2tCQURiLFlBQVk7bUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFpQi9DLFFBQVE7a0JBRFAsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1hbmRUeXBlLCBHdWlDb21tYW5kIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFbmdpbmVNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbmdpbmUubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQtbGlzdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpSW50ZXJhY3RpdmVFeGVjdXRvciB9IGZyb20gJy4vR3VpSW50ZXJhY3RpdmVFeGVjdXRvcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXhpdE1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V4aXQubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvT3ZlcmxheVdpbmRvd1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnLi4vLi4nO1xyXG5pbXBvcnQgeyBDb21tYW5kc0NvbGxlY3Rvck1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1hbmRzLWNvbGxlY3Rvci5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbi8qKlxyXG4gKiBSb290IE1hZ2ljIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYWdpYy1yb290JyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgLy8gRXhpdE1hZ2ljU2VydmljZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI21hZ2ljUm9vdD5cclxuICAgICAgPG5kYy1keW5hbWljXHJcbiAgICAgICAgKm5nSWYgPSBcIlJvb3RDb21wb25lbnQgIT09IG51bGxcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIlJvb3RDb21wb25lbnRcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljSW5wdXRzXSAgID1cIlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzXCI+XHJcbiAgICAgIDwvbmRjLWR5bmFtaWM+XHJcblxyXG4gICAgICA8ZGl2ICNvdmVybGF5V2luZG93c0NvbnRhaW5lciBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYmFja2dyb3VuZFwiICpuZ0lmPVwic2hvd1NwaW5uZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJTcGlubmVyVGVtcGxhdGUgPyBTcGlubmVyVGVtcGxhdGU6ZGVmYXVsdFNwaW5uZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNwaW5uZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZ1NwaW5uZXJDbGFzc1wiPjwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5tZ1NwaW5uZXJDbGFzcyB7XHJcbiAgICAgIGJvcmRlcjogMTBweCBzb2xpZCAjY2NjY2NjOyAvKiBMaWdodCBncmV5ICovXHJcbiAgICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgYmxhY2s7IC8qIEJsdWUgKi9cclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICB9XHJcbiAgICAuc3Bpbm5lci1iYWNrZ3JvdW5kIHtcclxuICAgICAgLyogYmFja2dyb3VuZCBmaXhlZCBhY3Jvc3Mgd2hvbGUgc2NyZWVuICovXHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcbiAgICBAa2V5ZnJhbWVzIHNwaW4ge1xyXG4gICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcclxuICAvKipcclxuICAgKiBSb290IGNvbXBvbmVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHdpbmRvd1xyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnQgOiBDb21wb25lbnQgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIHBhcmFtZXRlcnMgZm9yIHRoZSBSb290IENvbXBvbmVudFxyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnRQYXJhbWV0ZXJzIDogYW55O1xyXG5cclxuICBvdmVybGF5V2luZG93c0NvbnRhaW5lclZpZXdSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21hZ2ljUm9vdCcsIHsgc3RhdGljOiB0cnVlIH0pIHJvb3RNYWdpY0VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIFNwaW5uZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgc2hvd1NwaW5uZXI6IGJvb2xlYW47XHJcbiAgbWFnaWNFbmdpbmVUZXJtaW5hdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hZ2ljIE1hZ2ljJ3Mgc2VydmljZVxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRMaXN0IE1hZ2ljIGNvbXBvbmVudCBsaXN0XHJcbiAgICogQHBhcmFtIGNoYW5nZURldGVjdG9yUmVmIENoYW5nZXMgZGV0ZWN0b3JcclxuICAgKiBAcGFyYW0gdGl0bGVTZXJ2aWNlIFRpdGxlIHNldHRpbmcgc2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBuYXRpdmUgaHR0cENsaWVudCBpbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBleGl0TWFnaWNTZXJ2aWNlIE1hZ2ljIGV4aXQgc2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbmdpbmVNYWdpY1NlcnZpY2U6IEVuZ2luZU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29tcG9uZW50TGlzdDpDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFRpdGxlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheVdpbmRvd1NlcnZpY2U6IE92ZXJsYXlXaW5kb3dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvcjogQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgIHB1YmxpYyBleGl0TWFnaWNTZXJ2aWNlOiBFeGl0TWFnaWNTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB0aGlzLnNldFRpdGxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCZWZvcmUtdW5sb2FkIGV2ZW50IGxpc3RlbmVyXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFsnJGV2ZW50J10pXHJcbiAgb25CZWZvcmVVbmxvYWQoZXZlbnQpIHtcclxuICAgIGlmKHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlLlRyYW5zQ2FjaGVFeGlzdHMoKSlcclxuICAgIHtcclxuICAgICAgLy8gU2hvdyB0aGUgY29uZmlybWF0aW9uIGJveCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBicm93c2VyXHJcbiAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gJ0FyZSB5b3Ugc3VyZT8nO1xyXG4gICAgICByZXR1cm4gJ0FyZSB5b3Ugc3VyZT8nO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAvLyB0ZXJtaW5hdGUgdGhlIG1hZ2ljIHNlcnZlciBjb250ZXh0IHVzaW5nIGZldGNoIEFQSSB3aXRoIGtlZXAtYWxpdmVcclxuICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTtcclxuICAgICAgdGhpcy5tYWdpY0VuZ2luZVRlcm1pbmF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcsIFsnJGV2ZW50J10pXHJcbiAgb25VbmxvYWQoZXZlbnQpIHtcclxuICAgIC8vIENocm9tZSBwcm92aWRlcyBhbiBvcHBvcnR1bml0eSB0byB0ZXJtaW5hdGUgdGhlIGNvbnRleHQgYWZ0ZXIgdXNlciBhcHByb3ZlcyB0aGUgYnJvd3NlciB1bmxvYWQgYWxlcnRcclxuICAgIGlmKCF0aGlzLm1hZ2ljRW5naW5lVGVybWluYXRlZClcclxuICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2UuaW5pdCh0aGlzLm92ZXJsYXlXaW5kb3dzQ29udGFpbmVyVmlld1JlZiwgdGhpcy5yb290TWFnaWNFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2Uuc3RhcnRNYWdpY0VuZ2luZSh0aGlzLmh0dHBDbGllbnQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Vmlld0NvbnRhaW5lclJlZih2Y1JlZjogVmlld0NvbnRhaW5lclJlZil7XHJcbiAgICB0aGlzLm92ZXJsYXlXaW5kb3dzQ29udGFpbmVyVmlld1JlZiA9IHZjUmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb24gb2YgTWFnaWMgbWVjaGFuaXNtc1xyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyVUlDb21tYW5kcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB0aXRsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRUaXRsZSggKSB7XHJcbiAgICBjb25zdCBuZXdUaXRsZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRMaXN0LnRpdGxlO1xyXG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoIG5ld1RpdGxlICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGNvbXBvbmVudCBhY2NvcmRpbmcgdG8gcmVxdWVzdGVkIGZvcm1cclxuICAgKiBAcGFyYW0gZm9ybU5hbWUgTmFtZSBvZiB0aGUgZm9ybSB0byBvcGVuXHJcbiAgICogQHBhcmFtIHRhc2tJZCBJZCBvZiBvcGVuaW5nIHRhc2tcclxuICAgKiBAcGFyYW0gdGFza0Rlc2NyaXB0aW9uIFRPRE9cclxuICAgKiBAcGFyYW0gaXNNb2RhbCB3aGV0aGVyIG1vZGFsIHdpbmRvdyBpcyBiZWluZyBvcGVuZWRcclxuICAgKi9cclxuICBwcml2YXRlIHNldENvbXBvbmVudChmb3JtTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmcsIGlzTW9kYWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucGVuZGluZ0NvbW1hbmRzQ29sbGVjdG9yLnN0YXJ0Q29sbGVjdGluZygpO1xyXG5cclxuICAgIGlmKGlzTW9kYWwpIHtcclxuICAgICAgdGhpcy5vdmVybGF5V2luZG93U2VydmljZS5vcGVuKGZvcm1OYW1lLCB0YXNrSWQsIHRhc2tEZXNjcmlwdGlvbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5Sb290Q29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRMaXN0LmdldENvbXBvbmVudChmb3JtTmFtZSk7XHJcbiAgICAgIHRoaXMuUm9vdENvbXBvbmVudFBhcmFtZXRlcnMgPSB7IHRhc2tJZFBhcmFtOiB0YXNrSWQsIHRhc2tEZXNjcmlwdGlvbjogdGFza0Rlc2NyaXB0aW9uIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICByZWdpc3RlclVJQ29tbWFuZHMoKSB7XHJcbiAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5yZWZyZXNoRG9tLnBpcGUoXHJcbiAgICAgIGZpbHRlcihjb21tYW5kID0+IGNvbW1hbmQuVGFza1RhZyA9PT0gJzAnKSlcclxuICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlXHJcbiAgICAgIC5pbnRlcmFjdGl2ZUNvbW1hbmRzLnBpcGUoXHJcbiAgICAgIGZpbHRlcihjb21tYW5kID0+IGNvbW1hbmQuVGFza1RhZyA9PT0gJzAnKSlcclxuICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICBHdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yLmV4ZWN1dGVJbnRlcmFjdGl2ZUNvbW1hbmQobnVsbCwgY29tbWFuZCwgdGhpcy5vdmVybGF5V2luZG93U2VydmljZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZSBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBNYWdpYyBXZWJDbGllbnQgZW5naW5lXHJcbiAgICogQHBhcmFtIGNvbW1hbmRcclxuICAgKi9cclxuICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBHdWlDb21tYW5kKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGNvbW1hbmQuQ29tbWFuZFR5cGUpIHtcclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5PUEVOX0ZPUk06XHJcbiAgICAgICAgICB0aGlzLnNldENvbXBvbmVudChjb21tYW5kLnN0ciwgY29tbWFuZC5zdHJpbmdMaXN0WzBdLCBjb21tYW5kLnN0cmluZ0xpc3RbMV0sIGNvbW1hbmQuQm9vbDEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNFVF9JU19MT0dHRURfSU46XHJcbiAgICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2Uuc2V0SXNMb2dnZWRJbihjb21tYW5kLkJvb2wxKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuQ0xPU0VfRk9STTpcclxuICAgICAgICBpZiAodGhpcy5Sb290Q29tcG9uZW50ICE9IG51bGwgJiYgY29tbWFuZC5zdHIgPT09IHRoaXMuUm9vdENvbXBvbmVudFBhcmFtZXRlcnMudGFza0lkUGFyYW0pIHtcclxuICAgICAgICAgIHRoaXMuUm9vdENvbXBvbmVudCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzID0ge307XHJcblxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgeyAvLyBDbG9zZSBtb2RhbCB3aW5kb3dcclxuICAgICAgICAgIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2UuY2xvc2UoY29tbWFuZC5zdHIpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5SRUxPQURfUEFHRTpcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNIT1dfU1BJTk5FUjpcclxuICAgICAgICBpZiAodGhpcy5zaG93U3Bpbm5lciAhPSBjb21tYW5kLkJvb2wxKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dTcGlubmVyID0gY29tbWFuZC5Cb29sMTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuRVhJVF9NQUdJQzpcclxuICAgICAgICBpZiAodGhpcy5leGl0TWFnaWNTZXJ2aWNlKVxyXG4gICAgICAgICAgdGhpcy5leGl0TWFnaWNTZXJ2aWNlLmV4aXRNYWdpYygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TSE9XX0hUTUxfRVJST1I6XHJcbiAgICAgICAgd2luZG93LmRvY3VtZW50LndyaXRlKGNvbW1hbmQuc3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|