@magic-xpa/angular 4.1100.0-dev4110.106 → 4.1100.0-dev4110.108
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/index.mjs +59 -2
- package/esm2020/src/controls.metadata.model.mjs +180 -0
- package/esm2020/src/interfaces/sub-form-definition.iterface.mjs +2 -0
- package/esm2020/src/magic.core.module.mjs +160 -0
- package/esm2020/src/services/ISubformMagicService.mjs +2 -0
- package/esm2020/src/services/OverlayWindowService.mjs +236 -0
- package/esm2020/src/services/StylesMapManager.mjs +28 -0
- package/esm2020/src/services/accessor.magic.service.mjs +356 -0
- package/esm2020/src/services/commands-collector.magic.service.mjs +46 -0
- package/esm2020/src/services/component-list.magic.service.mjs +46 -0
- package/esm2020/src/services/confirmation.components.magic.provider.mjs +21 -0
- package/esm2020/src/services/engine.magic.service.mjs +82 -0
- package/esm2020/src/services/exit.magic.service.mjs +13 -0
- package/esm2020/src/services/magic-color.service.mjs +99 -0
- package/esm2020/src/services/magic.lazy.loader.service.mjs +16 -0
- package/esm2020/src/services/magic.providers.mjs +25 -0
- package/esm2020/src/services/magic.services.mjs +31 -0
- package/esm2020/src/services/mg-date-adapter.mjs +109 -0
- package/esm2020/src/services/overlay.conainer.magic.provider.mjs +14 -0
- package/esm2020/src/services/router-commands.magic.service.mjs +28 -0
- package/esm2020/src/services/subform.magic.service.mjs +184 -0
- package/esm2020/src/services/table.magic.service.mjs +77 -0
- package/esm2020/src/services/task.magics.service.mjs +624 -0
- package/esm2020/src/services/title.magic.service.mjs +18 -0
- package/esm2020/src/ui/GuiInteractiveExecutor.mjs +105 -0
- package/esm2020/src/ui/components/base-magic-alert.component.mjs +23 -0
- package/esm2020/src/ui/components/base-magic-confirm.component.mjs +23 -0
- package/esm2020/src/ui/components/magic-alert.component.mjs +35 -0
- package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +41 -0
- package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +49 -0
- package/esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +28 -0
- package/esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs +28 -0
- package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +36 -0
- package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +27 -0
- package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +52 -0
- package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +32 -0
- package/esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +27 -0
- package/esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs +193 -0
- package/esm2020/src/ui/directives/magic/row.magic.directive.mjs +58 -0
- package/esm2020/src/ui/directives/magic-focus.directive.mjs +19 -0
- package/esm2020/src/ui/directives/magic.directive.mjs +215 -0
- package/esm2020/src/ui/directives/magicViewContainerRef.directive.mjs +19 -0
- package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +408 -0
- package/esm2020/src/ui/directives/range-validator.magic.directive.mjs +58 -0
- package/esm2020/src/ui/magic-confirmationBox.mjs +42 -0
- package/esm2020/src/ui/magic-modal/base-magic-overlay-container.mjs +22 -0
- package/esm2020/src/ui/magic-modal/magic-modal-form.mjs +8 -0
- package/esm2020/src/ui/magic-modal/magic-modal-interface.mjs +2 -0
- package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +121 -0
- package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +159 -0
- package/esm2020/src/ui/magic-root.component.mjs +203 -0
- package/esm2020/src/ui/mgerror.magic.component.mjs +119 -0
- package/esm2020/src/ui/pipes/date.magic.pipe.mjs +105 -0
- package/esm2020/src/ui/pipes/time.magic.pipe.mjs +51 -0
- package/esm2020/src/ui/pipes/time24.magic.pipe.mjs +34 -0
- package/esm2020/src/ui/router-container.magic.component.mjs +108 -0
- package/esm2020/src/ui/subform.magic.component.mjs +52 -0
- package/esm2020/src/ui/task-base.magic.component.mjs +86 -0
- package/esm2020/src/ui/utils.mjs +54 -0
- package/fesm2015/magic-xpa-angular.mjs +4863 -0
- package/fesm2015/magic-xpa-angular.mjs.map +1 -1
- package/fesm2020/magic-xpa-angular.mjs +4681 -0
- package/fesm2020/magic-xpa-angular.mjs.map +1 -1
- package/index.d.ts +58 -1
- package/package.json +3 -3
- package/src/controls.metadata.model.d.ts +62 -0
- package/src/interfaces/sub-form-definition.iterface.d.ts +12 -0
- package/src/magic.core.module.d.ts +41 -0
- package/src/services/ISubformMagicService.d.ts +4 -0
- package/src/services/OverlayWindowService.d.ts +31 -0
- package/src/services/StylesMapManager.d.ts +5 -0
- package/src/services/accessor.magic.service.d.ts +69 -0
- package/src/services/commands-collector.magic.service.d.ts +15 -0
- package/src/services/component-list.magic.service.d.ts +23 -0
- package/src/services/confirmation.components.magic.provider.d.ts +8 -0
- package/src/services/engine.magic.service.d.ts +27 -0
- package/src/services/exit.magic.service.d.ts +6 -0
- package/src/services/magic-color.service.d.ts +19 -0
- package/src/services/magic.lazy.loader.service.d.ts +6 -0
- package/src/services/magic.providers.d.ts +107 -0
- package/src/services/magic.services.d.ts +16 -0
- package/src/services/mg-date-adapter.d.ts +40 -0
- package/src/services/overlay.conainer.magic.provider.d.ts +7 -0
- package/src/services/router-commands.magic.service.d.ts +17 -0
- package/src/services/subform.magic.service.d.ts +43 -0
- package/src/services/table.magic.service.d.ts +30 -0
- package/src/services/task.magics.service.d.ts +100 -0
- package/src/services/title.magic.service.d.ts +9 -0
- package/src/ui/GuiInteractiveExecutor.d.ts +22 -0
- package/src/ui/components/base-magic-alert.component.d.ts +10 -0
- package/src/ui/components/base-magic-confirm.component.d.ts +10 -0
- package/src/ui/components/magic-alert.component.d.ts +6 -0
- package/src/ui/components/magic-confirmation-box.component.d.ts +6 -0
- package/src/ui/directives/NonMagicControlDirective.d.ts +26 -0
- package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +9 -0
- package/src/ui/directives/magic/checkbox.magic.directive.d.ts +9 -0
- package/src/ui/directives/magic/combobox.magic.directive.d.ts +10 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +7 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +17 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +7 -0
- package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +9 -0
- package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +18 -0
- package/src/ui/directives/magic/row.magic.directive.d.ts +17 -0
- package/src/ui/directives/magic-focus.directive.d.ts +9 -0
- package/src/ui/directives/magic.directive.d.ts +44 -0
- package/src/ui/directives/magicViewContainerRef.directive.d.ts +8 -0
- package/src/ui/directives/mgformat.magic.directive.d.ts +31 -0
- package/src/ui/directives/range-validator.magic.directive.d.ts +17 -0
- package/src/ui/magic-confirmationBox.d.ts +6 -0
- package/src/ui/magic-modal/base-magic-overlay-container.d.ts +5 -0
- package/src/ui/magic-modal/magic-modal-form.d.ts +5 -0
- package/src/ui/magic-modal/magic-modal-interface.d.ts +10 -0
- package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +31 -0
- package/src/ui/magic-modal/magic-overlay-container.d.ts +25 -0
- package/src/ui/magic-root.component.d.ts +40 -0
- package/src/ui/mgerror.magic.component.d.ts +20 -0
- package/src/ui/pipes/date.magic.pipe.d.ts +17 -0
- package/src/ui/pipes/time.magic.pipe.d.ts +11 -0
- package/src/ui/pipes/time24.magic.pipe.d.ts +10 -0
- package/src/ui/router-container.magic.component.d.ts +30 -0
- package/src/ui/subform.magic.component.d.ts +16 -0
- package/src/ui/task-base.magic.component.d.ts +34 -0
- package/src/ui/utils.d.ts +9 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Styles } from "@magic-xpa/gui";
|
2
|
+
export class confirmationBox {
|
3
|
+
static isConfirmBox(style) {
|
4
|
+
let buttonMode = style & 0x0F;
|
5
|
+
var isConfirm = (buttonMode === Styles.MSGBOX_BUTTON_OK_CANCEL) ||
|
6
|
+
(buttonMode === Styles.MSGBOX_BUTTON_ABORT_RETRY_IGNORE) ||
|
7
|
+
(buttonMode === Styles.MSGBOX_BUTTON_YES_NO_CANCEL) ||
|
8
|
+
(buttonMode === Styles.MSGBOX_BUTTON_YES_NO) ||
|
9
|
+
(buttonMode === Styles.MSGBOX_BUTTON_RETRY_CANCEL);
|
10
|
+
return (isConfirm);
|
11
|
+
}
|
12
|
+
static convertToExcpectedResultBox(style, okWasPressed) {
|
13
|
+
let buttonMode = style & 0x0F;
|
14
|
+
let retValue = Styles.MSGBOX_RESULT_OK;
|
15
|
+
if (buttonMode === Styles.MSGBOX_BUTTON_OK)
|
16
|
+
retValue = Styles.MSGBOX_RESULT_OK;
|
17
|
+
else if (buttonMode === Styles.MSGBOX_BUTTON_OK_CANCEL)
|
18
|
+
retValue = okWasPressed ? Styles.MSGBOX_RESULT_OK : Styles.MSGBOX_RESULT_CANCEL;
|
19
|
+
else if (buttonMode === Styles.MSGBOX_BUTTON_ABORT_RETRY_IGNORE)
|
20
|
+
retValue = okWasPressed ? Styles.MSGBOX_RESULT_ABORT : Styles.MSGBOX_RESULT_RETRY;
|
21
|
+
else if (buttonMode === Styles.MSGBOX_BUTTON_YES_NO_CANCEL)
|
22
|
+
retValue = okWasPressed ? Styles.MSGBOX_RESULT_YES : Styles.MSGBOX_RESULT_NO;
|
23
|
+
else if (buttonMode === Styles.MSGBOX_BUTTON_YES_NO)
|
24
|
+
retValue = okWasPressed ? Styles.MSGBOX_RESULT_YES : Styles.MSGBOX_RESULT_NO;
|
25
|
+
else if (buttonMode === Styles.MSGBOX_BUTTON_RETRY_CANCEL)
|
26
|
+
retValue = okWasPressed ? Styles.MSGBOX_RESULT_RETRY : Styles.MSGBOX_RESULT_CANCEL;
|
27
|
+
return retValue;
|
28
|
+
}
|
29
|
+
static showConfirmationBox(title, message, style) {
|
30
|
+
let okWasPressed = false;
|
31
|
+
let isConfirm = this.isConfirmBox(style);
|
32
|
+
let titleAndString = title + '\n' + '\n' + message;
|
33
|
+
if (isConfirm)
|
34
|
+
okWasPressed = confirm(titleAndString);
|
35
|
+
else {
|
36
|
+
alert(titleAndString);
|
37
|
+
okWasPressed = true;
|
38
|
+
}
|
39
|
+
return okWasPressed;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtY29uZmlybWF0aW9uQm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvbWFnaWMtY29uZmlybWF0aW9uQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUt0QyxNQUFNLE9BQU8sZUFBZTtJQUtuQixNQUFNLENBQUUsWUFBWSxDQUFDLEtBQWM7UUFHeEMsSUFBSSxVQUFVLEdBQVcsS0FBSyxHQUFHLElBQUksQ0FBQztRQUV0QyxJQUFJLFNBQVMsR0FBRyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsdUJBQXVCLENBQUM7WUFDN0QsQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLGdDQUFnQyxDQUFDO1lBQ3hELENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztZQUNuRCxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsb0JBQW9CLENBQUM7WUFDNUMsQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFckQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFRTSxNQUFNLENBQUMsMkJBQTJCLENBQUUsS0FBYSxFQUFFLFlBQXFCO1FBRzdFLElBQUksVUFBVSxHQUFXLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFdEMsSUFBSSxRQUFRLEdBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBRXhDLElBQUksVUFBVSxLQUFNLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDekMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzthQUNoQyxJQUFJLFVBQVUsS0FBSyxNQUFNLENBQUMsdUJBQXVCO1lBQ3BELFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2FBQzdFLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FBQyxnQ0FBZ0M7WUFDN0QsUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7YUFDL0UsSUFBSSxVQUFVLEtBQU0sTUFBTSxDQUFDLDJCQUEyQjtZQUN6RCxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzthQUMxRSxJQUFJLFVBQVUsS0FBSyxNQUFNLENBQUMsb0JBQW9CO1lBQ2pELFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2FBQzFFLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FBQywwQkFBMEI7WUFDdkQsUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7UUFFckYsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQVNNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLEtBQWE7UUFFN0UsSUFBSSxZQUFZLEdBQUssS0FBSyxDQUFDO1FBRTNCLElBQUksU0FBUyxHQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHMUMsSUFBSSxjQUFjLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBRWxELElBQUksU0FBUztZQUNYLFlBQVksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEM7WUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEIsWUFBWSxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUdELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3R5bGVzfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXNwbGF5cyBhIG1lc3NhZ2UtYm94XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgY29uZmlybWF0aW9uQm94IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgIGlzQ29uZmlybUJveChzdHlsZSA6IFN0eWxlcyk6IEJvb2xlYW57XHJcblxyXG4gICAgLy8gYnV0dG9uIGZvcm1hdCBtYXNrIGlzIGluIGZpcnN0IG5pYmJsZSBmcm9tIHJpZ2h0XHJcbiAgICBsZXQgYnV0dG9uTW9kZSA9IDxudW1iZXI+c3R5bGUgJiAweDBGO1xyXG5cclxuICAgIHZhciBpc0NvbmZpcm0gPSAoYnV0dG9uTW9kZSA9PT0gU3R5bGVzLk1TR0JPWF9CVVRUT05fT0tfQ0FOQ0VMKSB8fFxyXG4gICAgICAoYnV0dG9uTW9kZSA9PT0gU3R5bGVzLk1TR0JPWF9CVVRUT05fQUJPUlRfUkVUUllfSUdOT1JFKSB8fFxyXG4gICAgICAoYnV0dG9uTW9kZSA9PT0gU3R5bGVzLk1TR0JPWF9CVVRUT05fWUVTX05PX0NBTkNFTCkgfHxcclxuICAgICAgKGJ1dHRvbk1vZGUgPT09IFN0eWxlcy5NU0dCT1hfQlVUVE9OX1lFU19OTykgfHxcclxuICAgICAgKGJ1dHRvbk1vZGUgPT09IFN0eWxlcy5NU0dCT1hfQlVUVE9OX1JFVFJZX0NBTkNFTCk7XHJcblxyXG4gICAgcmV0dXJuIChpc0NvbmZpcm0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgdGhlIHJlc3VsdCBmcm9tIHRoZSBIVE1MIHdpbmRvdyB0byB0aGUgZXhwZWN0ZWQgcmVzdWx0IHR5cGVcclxuICAgKiBAcGFyYW0gc3R5bGUgUmVzdWx0IHJlY2VpdmVkIGZyb20gSFRNTCB3aW5kb3dcclxuICAgKiBAcGFyYW0gb2tXYXNQcmVzc2VkIFdhcyB0aGUgXCJPS1wiIHByZXNzZWRcclxuICAgKiBAcmV0dXJucyAgTWVzc2FnZUJveCByZXN1bHQgdHlwZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFRvRXhjcGVjdGVkUmVzdWx0Qm94IChzdHlsZTogU3R5bGVzLCBva1dhc1ByZXNzZWQ6IEJvb2xlYW4gKTogU3R5bGVze1xyXG5cclxuICAgIC8vIGJ1dHRvbiBmb3JtYXQgbWFzayBpcyBpbiBmaXJzdCBuaWJibGUgZnJvbSByaWdodFxyXG4gICAgbGV0IGJ1dHRvbk1vZGUgPSA8bnVtYmVyPnN0eWxlICYgMHgwRjtcclxuXHJcbiAgICBsZXQgcmV0VmFsdWUgPSAgU3R5bGVzLk1TR0JPWF9SRVNVTFRfT0s7XHJcblxyXG4gICAgaWYgKGJ1dHRvbk1vZGUgPT09ICBTdHlsZXMuTVNHQk9YX0JVVFRPTl9PSylcclxuICAgICAgcmV0VmFsdWUgPSBTdHlsZXMuTVNHQk9YX1JFU1VMVF9PSztcclxuICAgIGVsc2UgaWYgKGJ1dHRvbk1vZGUgPT09IFN0eWxlcy5NU0dCT1hfQlVUVE9OX09LX0NBTkNFTClcclxuICAgICAgcmV0VmFsdWUgPSBva1dhc1ByZXNzZWQgPyBTdHlsZXMuTVNHQk9YX1JFU1VMVF9PSyA6IFN0eWxlcy5NU0dCT1hfUkVTVUxUX0NBTkNFTDtcclxuICAgIGVsc2UgaWYgKGJ1dHRvbk1vZGUgPT09IFN0eWxlcy5NU0dCT1hfQlVUVE9OX0FCT1JUX1JFVFJZX0lHTk9SRSlcclxuICAgICAgcmV0VmFsdWUgPSBva1dhc1ByZXNzZWQgPyBTdHlsZXMuTVNHQk9YX1JFU1VMVF9BQk9SVCA6IFN0eWxlcy5NU0dCT1hfUkVTVUxUX1JFVFJZO1xyXG4gICAgZWxzZSBpZiAoYnV0dG9uTW9kZSA9PT0gIFN0eWxlcy5NU0dCT1hfQlVUVE9OX1lFU19OT19DQU5DRUwpXHJcbiAgICAgIHJldFZhbHVlID0gb2tXYXNQcmVzc2VkID8gU3R5bGVzLk1TR0JPWF9SRVNVTFRfWUVTIDogU3R5bGVzLk1TR0JPWF9SRVNVTFRfTk87XHJcbiAgICBlbHNlIGlmIChidXR0b25Nb2RlID09PSBTdHlsZXMuTVNHQk9YX0JVVFRPTl9ZRVNfTk8pXHJcbiAgICAgIHJldFZhbHVlID0gb2tXYXNQcmVzc2VkID8gU3R5bGVzLk1TR0JPWF9SRVNVTFRfWUVTIDogU3R5bGVzLk1TR0JPWF9SRVNVTFRfTk87XHJcbiAgICBlbHNlIGlmIChidXR0b25Nb2RlID09PSBTdHlsZXMuTVNHQk9YX0JVVFRPTl9SRVRSWV9DQU5DRUwpXHJcbiAgICAgIHJldFZhbHVlID0gb2tXYXNQcmVzc2VkID8gU3R5bGVzLk1TR0JPWF9SRVNVTFRfUkVUUlkgOiBTdHlsZXMuTVNHQk9YX1JFU1VMVF9DQU5DRUw7XHJcblxyXG4gICAgcmV0dXJuIHJldFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBhIG1lc3NhZ2UgYm94IGFzIGFuIEhUTUwgd2luZG93XHJcbiAgICogQHBhcmFtIHRpdGxlIFRpdGxlIG9mIHRoZSBtZXNzYWdlIGJveFxyXG4gICAqIEBwYXJhbSBtZXNzYWdlIE1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRpc3BsYXkgaW4gdGhlIG1lc3NhZ2UgYm94XHJcbiAgICogQHBhcmFtIHN0eWxlIFN0eWxlIHRoYXQgaW5jbHVkZSBidXR0b25zIFxcIEljb25zXHJcbiAgICogQHJldHVybnMgTWVzc2FnZUJveCByZXN1bHRcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNob3dDb25maXJtYXRpb25Cb3godGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBzdHlsZTogU3R5bGVzKTogYm9vbGVhbiB7XHJcblxyXG4gICAgbGV0IG9rV2FzUHJlc3NlZCAgID0gZmFsc2U7XHJcbi8vIGNoZWNrIGlmIGl0IGlzIGNvbmZpcm1hdGlvbiBib3hcclxuICAgIGxldCBpc0NvbmZpcm0gID0gdGhpcy5pc0NvbmZpcm1Cb3goc3R5bGUpO1xyXG5cclxuICAgIC8vIHRoZSB0aXRsZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzdHJpbmcgYW5kIHdlIHdpbGwgYWRkIG5ldyBsaW5lIGFmdGVyIHRoZSB0aXRsZVxyXG4gICAgbGV0IHRpdGxlQW5kU3RyaW5nID0gdGl0bGUgKyAnXFxuJysgJ1xcbicgKyBtZXNzYWdlO1xyXG5cclxuICAgIGlmIChpc0NvbmZpcm0pXHJcbiAgICAgIG9rV2FzUHJlc3NlZCA9IGNvbmZpcm0odGl0bGVBbmRTdHJpbmcpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGFsZXJ0KHRpdGxlQW5kU3RyaW5nKTtcclxuICAgICAgb2tXYXNQcmVzc2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZXR1cm4gdGhlIHJlc3VsdCBmcm9tIHRoZSB1c2VyXHJcbiAgICByZXR1cm4gb2tXYXNQcmVzc2VkOyBcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { Input, Output } from "@angular/core";
|
3
|
+
let BaseMagicOverlayContainer = class BaseMagicOverlayContainer {
|
4
|
+
};
|
5
|
+
__decorate([
|
6
|
+
Input(),
|
7
|
+
__metadata("design:type", Object)
|
8
|
+
], BaseMagicOverlayContainer.prototype, "ModalComp", void 0);
|
9
|
+
__decorate([
|
10
|
+
Input(),
|
11
|
+
__metadata("design:type", Object)
|
12
|
+
], BaseMagicOverlayContainer.prototype, "ModalCompParameters", void 0);
|
13
|
+
__decorate([
|
14
|
+
Output(),
|
15
|
+
__metadata("design:type", Object)
|
16
|
+
], BaseMagicOverlayContainer.prototype, "onClose", void 0);
|
17
|
+
BaseMagicOverlayContainer = __decorate([
|
18
|
+
Input(),
|
19
|
+
Output()
|
20
|
+
], BaseMagicOverlayContainer);
|
21
|
+
export { BaseMagicOverlayContainer };
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZDLElBQWUseUJBQXlCLEdBQXhDLE1BQWUseUJBQXlCO0NBZTlDLENBQUE7QUFYQztJQUFDLEtBQUssRUFBRTs7NERBQW9CO0FBSzVCO0lBQUMsS0FBSyxFQUFFOztzRUFBbUM7QUFLM0M7SUFBQyxNQUFNLEVBQUU7OzBEQUFrQjtBQWRQLHlCQUF5QjtJQUY5QyxLQUFLLEVBQUU7SUFDUCxNQUFNLEVBQUU7R0FDYSx5QkFBeUIsQ0FlOUM7U0FmcUIseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbkBJbnB1dCgpXHJcbkBPdXRwdXQoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBhYnN0cmFjdCBNb2RhbENvbXA7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWJzdHJhY3QgTW9kYWxDb21wUGFyYW1ldGVyczogYW55O1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhYnN0cmFjdCBvbkNsb3NlO1xyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,8 @@
|
|
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
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtbW9kYWwtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvbWFnaWMtbW9kYWwvbWFnaWMtbW9kYWwtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRGVzY3JpYmVzIHRoZSBiZWhhdmlvciBvZiBhIG1vZGFsIHdpbmRvd1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBNYWdpY01vZGFsSW50ZXJmYWNlIHtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIFgoKTtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIFkoKTtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBXaWR0aCgpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgaGVpZ2h0IG9mIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIEhlaWdodCgpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSXMgdGhlIG1vZGFsIHdpbmRvdyBjZW50ZXJlZCByZWxhdGl2ZWx5IHRvIHRoZSBtYWluIHdpbmRvd1xyXG4gICAqL1xyXG4gIElzQ2VudGVyZWRUb1dpbmRvdygpO1xyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGZvcm0gLSB0aXRsZSBvZiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgRm9ybU5hbWUoKTtcclxuICAvKipcclxuICAgKiBTaG91bGQgdGhlIHRpdGxlIGJhciBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBTaG93VGl0bGVCYXIoKTtcclxuICAvKipcclxuICAgKiBTaG91bGQgdGhlIG1vZGFsIHdpbmRvdyBjbG9zZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgYmFja2dyb3VuZFxyXG4gICAqL1xyXG4gIFNob3VsZENsb3NlT25CYWNrZ3JvdW5kQ2xpY2soKTtcclxufVxyXG4iXX0=
|
@@ -0,0 +1,121 @@
|
|
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=
|
@@ -0,0 +1,159 @@
|
|
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
|