@magic-xpa/angular 4.1100.0-dev4110.99 → 4.1101.0-dev4111.269
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,27 +0,0 @@
|
|
1
|
-
import { Directive, HostListener } from "@angular/core";
|
2
|
-
import { MagicDirective } from '../magic.directive';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../magic.directive";
|
5
|
-
export class InputNoFormControlMagicDirective {
|
6
|
-
constructor(magicDirective) {
|
7
|
-
this.magicDirective = magicDirective;
|
8
|
-
}
|
9
|
-
onChange($event) {
|
10
|
-
this.magicDirective.task.setInputTextValue(this.magicDirective.id, this.magicDirective.rowId, event.srcElement.value);
|
11
|
-
}
|
12
|
-
}
|
13
|
-
InputNoFormControlMagicDirective.ɵfac = function InputNoFormControlMagicDirective_Factory(t) { return new (t || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
|
14
|
-
InputNoFormControlMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: InputNoFormControlMagicDirective, selectors: [["input", "magic", "", "noFormControl", "", 3, "type", "checkbox"], ["textarea", "magic", "", "noFormControl", "", 3, "type", "checkbox"]], hostBindings: function InputNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
15
|
-
i0.ɵɵlistener("change", function InputNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
16
|
-
} } });
|
17
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNoFormControlMagicDirective, [{
|
18
|
-
type: Directive,
|
19
|
-
args: [{
|
20
|
-
selector: `input[magic]:([noFormControl]):not([type=checkbox]),
|
21
|
-
textarea[magic]:([noFormControl]):not([type=checkbox])`
|
22
|
-
}]
|
23
|
-
}], function () { return [{ type: i1.MagicDirective }]; }, { onChange: [{
|
24
|
-
type: HostListener,
|
25
|
-
args: ['change', ['$event']]
|
26
|
-
}] }); })();
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubm9mb3JtY29udHJvbC5tYWdpYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9kaXJlY3RpdmVzL21hZ2ljL2lucHV0Lm5vZm9ybWNvbnRyb2wubWFnaWMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsWUFBc0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BELENBQUM7SUFPRCxRQUFRLENBQUMsTUFBTTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFDTixLQUFLLENBQUMsVUFBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hGLENBQUM7O2dIQWJVLGdDQUFnQztxRUFBaEMsZ0NBQWdDO3FIQUFoQyxvQkFBZ0I7O3VGQUFoQixnQ0FBZ0M7Y0FMNUMsU0FBUztlQUFDO2dCQUNFLFFBQVEsRUFBRTtvRUFDNkM7YUFFbkU7aUVBVUMsUUFBUTtrQkFEUCxZQUFZO21CQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7TWFnaWNEaXJlY3RpdmV9IGZyb20gJy4uL21hZ2ljLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIERpcmVjdGl2ZSBmb3Igbm9uLWNoZWNrYm94IGlucHV0IGNvbnRyb2xzIHdoaWNoIGRvIG5vdCBoYXZlIGEgZm9ybSBjb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgICAgICAgICAgIHNlbGVjdG9yOiBgaW5wdXRbbWFnaWNdOihbbm9Gb3JtQ29udHJvbF0pOm5vdChbdHlwZT1jaGVja2JveF0pLFxyXG4gICAgICAgICAgICAgdGV4dGFyZWFbbWFnaWNdOihbbm9Gb3JtQ29udHJvbF0pOm5vdChbdHlwZT1jaGVja2JveF0pYFxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0Tm9Gb3JtQ29udHJvbE1hZ2ljRGlyZWN0aXZlICB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1hZ2ljRGlyZWN0aXZlOiBNYWdpY0RpcmVjdGl2ZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlICdjaGFuZ2UnIGV2ZW50IC0gcGFzcyBpdCB0byB0aGUgTWFnaWMgZW5naW5lXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcclxuICBvbkNoYW5nZSgkZXZlbnQpIHtcclxuICAgICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLnNldElucHV0VGV4dFZhbHVlKHRoaXMubWFnaWNEaXJlY3RpdmUuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQuc3JjRWxlbWVudCkudmFsdWUpXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input } from "@angular/core";
|
2
|
-
import { TaskMagicService } from "../../../services/task.magics.service";
|
3
|
-
import { getGuiEventObj } from "@magic-xpa/engine";
|
4
|
-
import { filter } from "rxjs/operators";
|
5
|
-
import { MagicDirective } from "../../directives/magic.directive";
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../../services/task.magics.service";
|
8
|
-
export class RowMagicDirective {
|
9
|
-
constructor(_task, element) {
|
10
|
-
this._task = _task;
|
11
|
-
this.element = element;
|
12
|
-
this.rowChangedSubscriber = null;
|
13
|
-
this.htmlElement = this.element.nativeElement;
|
14
|
-
}
|
15
|
-
ngOnInit() {
|
16
|
-
this.rowChangedSubscriber = this._task
|
17
|
-
.OnSelectedRowChanged.pipe(filter(rowId => rowId === this.rowId))
|
18
|
-
.subscribe(rowId => {
|
19
|
-
if (!this.isInView(this.htmlElement))
|
20
|
-
this.htmlElement.scrollIntoView();
|
21
|
-
});
|
22
|
-
}
|
23
|
-
isInView(element) {
|
24
|
-
const rect = element.getBoundingClientRect();
|
25
|
-
const parentRect = element.parentElement.getBoundingClientRect();
|
26
|
-
return (rect.top >= parentRect.top &&
|
27
|
-
rect.bottom <= parentRect.bottom);
|
28
|
-
}
|
29
|
-
ngOnDestroy() {
|
30
|
-
if (this.rowChangedSubscriber !== null) {
|
31
|
-
this.rowChangedSubscriber.unsubscribe();
|
32
|
-
}
|
33
|
-
}
|
34
|
-
onClick($event) {
|
35
|
-
if (this.rowId != '') {
|
36
|
-
this._task.insertEvent(getGuiEventObj('click', "magicRow", +this.rowId));
|
37
|
-
if (MagicDirective.noOfAutoCompleteBoxesOpened < 1)
|
38
|
-
event.cancelBubble = true;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
}
|
42
|
-
RowMagicDirective.ɵfac = function RowMagicDirective_Factory(t) { return new (t || RowMagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
43
|
-
RowMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: RowMagicDirective, selectors: [["", "magicRow", ""]], hostBindings: function RowMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
44
|
-
i0.ɵɵlistener("click", function RowMagicDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
|
45
|
-
} }, inputs: { rowId: ["magicRow", "rowId"] } });
|
46
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RowMagicDirective, [{
|
47
|
-
type: Directive,
|
48
|
-
args: [{
|
49
|
-
selector: '[magicRow]'
|
50
|
-
}]
|
51
|
-
}], function () { return [{ type: i1.TaskMagicService }, { type: i0.ElementRef }]; }, { rowId: [{
|
52
|
-
type: Input,
|
53
|
-
args: ['magicRow']
|
54
|
-
}], onClick: [{
|
55
|
-
type: HostListener,
|
56
|
-
args: ['click', ['$event']]
|
57
|
-
}] }); })();
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93Lm1hZ2ljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWMvcm93Lm1hZ2ljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQTs7O0FBVS9ELE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIsWUFDWSxLQUF3QixFQUN4QixPQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSnZCLHlCQUFvQixHQUFpQixJQUFJLENBQUM7UUFPaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUNoRCxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSzthQUNuQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoRSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFPO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNqRSxPQUFPLENBQ0wsSUFBSSxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRztZQUMxQixJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBS0QsV0FBVztRQU9ULElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLElBQUksRUFBRTtZQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBR0QsT0FBTyxDQUFDLE1BQU07UUFDWixJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekUsSUFBSSxjQUFjLENBQUMsMkJBQTJCLEdBQUcsQ0FBQztnQkFDaEQsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDOztrRkFqRVUsaUJBQWlCO3NEQUFqQixpQkFBaUI7b0dBQWpCLG1CQUFlOzt1RkFBZixpQkFBaUI7Y0FMNUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2FBQ3ZCOzRGQUltQixLQUFLO2tCQUF2QixLQUFLO21CQUFDLFVBQVU7WUEwRGpCLE9BQU87a0JBRE4sWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtnZXRHdWlFdmVudE9ian0gZnJvbSBcIkBtYWdpYy14cGEvZW5naW5lXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqcy9SeFwiO1xyXG5pbXBvcnQge01hZ2ljRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9tYWdpYy5kaXJlY3RpdmVcIlxyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiBARGlyZWN0aXZlKHtcclxuICAgc2VsZWN0b3I6ICdbbWFnaWNSb3ddJ1xyXG4gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUm93TWFnaWNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveXtcclxuICBASW5wdXQoJ21hZ2ljUm93Jykgcm93SWQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIEhUTUwgZWxlbWVudCBjb25uZWN0ZWQgdG8gdGhpcyBkaXJlY3RpdmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaHRtbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByb3dDaGFuZ2VkU3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgX3Rhc2sgOiBUYXNrTWFnaWNTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWZcclxuICApXHJcbiAge1xyXG4gICAgdGhpcy5odG1sRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhpcyBvYmplY3RcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm93Q2hhbmdlZFN1YnNjcmliZXIgPSB0aGlzLl90YXNrXHJcbiAgICAgIC5PblNlbGVjdGVkUm93Q2hhbmdlZC5waXBlKGZpbHRlcihyb3dJZCA9PiByb3dJZCA9PT0gdGhpcy5yb3dJZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUocm93SWQgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmlzSW5WaWV3KHRoaXMuaHRtbEVsZW1lbnQpKVxyXG4gICAgICAgICAgICB0aGlzLmh0bWxFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0luVmlldyhlbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHBhcmVudFJlY3QgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICByZWN0LnRvcCA+PSBwYXJlbnRSZWN0LnRvcCAmJlxyXG4gICAgICByZWN0LmJvdHRvbSA8PSBwYXJlbnRSZWN0LmJvdHRvbVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFudXBcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIERvbid0IGtub3cgd2h5LCBidXQgd2hlbiB0aGUgdGFibGUgaXMgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZSwgd2VcclxuICAgIC8vIGdldCBuZ09uSW5pdCgpIGZvciB0aGUgMXN0IHJvdyAocm93SWQgPSBcIjBcIikgYW5kIHRoZW4gbmdPbkRlc3Ryb3koKVxyXG4gICAgLy8gZm9yIG51bWJlciBvZiByb3dzIGluIHRoZSBwYWdlIGJ1dCBoZXJlIHRoaXMucm93SWQgaXMgdW5kZWZpbmVkLlxyXG4gICAgLy8gU2luY2UgbmdPbkluaXQoKSB3YXMgbm90IGNhbGxlZCBmb3IgYWxsIHRoZXNlIHJvd3MsIHRoaXMucm93Q2hhbmdlZFN1YnNjcmliZXJcclxuICAgIC8vIGlzIG51bGwgYW5kIGhlbmNlIGNyYXNoZXMuXHJcbiAgICAvLyBTbywgdGhlIGNvbmRpdGlvbiB0byBjaGVjayBudWxpdHkgaXMgYWRkZWQuXHJcbiAgICBpZiAodGhpcy5yb3dDaGFuZ2VkU3Vic2NyaWJlciAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJvd0NoYW5nZWRTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljaygkZXZlbnQpIHtcclxuICAgIGlmKHRoaXMucm93SWQgIT0gJycpIHtcclxuICAgICAgdGhpcy5fdGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaignY2xpY2snLCBcIm1hZ2ljUm93XCIsICt0aGlzLnJvd0lkKSk7XHJcbiAgICAgIGlmIChNYWdpY0RpcmVjdGl2ZS5ub09mQXV0b0NvbXBsZXRlQm94ZXNPcGVuZWQgPCAxKVxyXG4gICAgICAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gfVxyXG4iXX0=
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { Directive, ElementRef } from "@angular/core";
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class MagicFocusDirective {
|
4
|
-
constructor(hostElement) {
|
5
|
-
this.hostElement = hostElement;
|
6
|
-
}
|
7
|
-
ngAfterViewInit() {
|
8
|
-
this.hostElement.nativeElement.focus();
|
9
|
-
}
|
10
|
-
}
|
11
|
-
MagicFocusDirective.ɵfac = function MagicFocusDirective_Factory(t) { return new (t || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
12
|
-
MagicFocusDirective.ɵdir = i0.ɵɵdefineDirective({ type: MagicFocusDirective, selectors: [["", "magicFocus", ""]] });
|
13
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicFocusDirective, [{
|
14
|
-
type: Directive,
|
15
|
-
args: [{
|
16
|
-
selector: '[magicFocus]'
|
17
|
-
}]
|
18
|
-
}], function () { return [{ type: i0.ElementRef }]; }, null); })();
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy1mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXRELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBRyxDQUFDO0lBQy9DLGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOztzRkFMVSxtQkFBbUI7d0RBQW5CLG1CQUFtQjt1RkFBbkIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsY0FBYzthQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBzZXR0aW5nIGZvY3VzIG9uIGVsZW1lbnRcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW21hZ2ljRm9jdXNdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFnaWNGb2N1c0RpcmVjdGl2ZSAge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7fVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
@@ -1,215 +0,0 @@
|
|
1
|
-
import { Directive, ElementRef, Input, Optional, Renderer2, ViewContainerRef } from "@angular/core";
|
2
|
-
import { isNullOrUndefined } from "@magic-xpa/mscorelib";
|
3
|
-
import { CommandType, GuiConstants, HtmlProperties, InteractiveCommandType, Modifiers } from "@magic-xpa/gui";
|
4
|
-
import { getGuiEventObj } from "@magic-xpa/engine";
|
5
|
-
import { TaskBaseMagicComponent } from "../task-base.magic.component";
|
6
|
-
import { TaskMagicService } from "../../services/task.magics.service";
|
7
|
-
import { debounceTime, filter, map } from "rxjs/operators";
|
8
|
-
import { RowMagicDirective } from "./magic/row.magic.directive";
|
9
|
-
import { fromEvent } from "rxjs";
|
10
|
-
import { BindingLevel, MgControlType, StorageAttributeType } from "@magic-xpa/utils";
|
11
|
-
import { Platform } from "@angular/cdk/platform";
|
12
|
-
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "../../services/task.magics.service";
|
14
|
-
import * as i2 from "@angular/cdk/platform";
|
15
|
-
import * as i3 from "./magic/row.magic.directive";
|
16
|
-
export class MagicDirective {
|
17
|
-
set magic(val) {
|
18
|
-
this.id = val;
|
19
|
-
this.selector = "magic";
|
20
|
-
}
|
21
|
-
;
|
22
|
-
set eventsOnly(val) {
|
23
|
-
console.log("eventsOnly");
|
24
|
-
this.eventsOnlyVal = true;
|
25
|
-
}
|
26
|
-
;
|
27
|
-
constructor(_task, element, renderer, vcRef, platform, magicRow) {
|
28
|
-
this._task = _task;
|
29
|
-
this.element = element;
|
30
|
-
this.renderer = renderer;
|
31
|
-
this.vcRef = vcRef;
|
32
|
-
this.platform = platform;
|
33
|
-
this.magicRow = magicRow;
|
34
|
-
this.eventHandlers = {};
|
35
|
-
this.eventsOnlyVal = false;
|
36
|
-
this.htmlElement = this.element.nativeElement;
|
37
|
-
if (!(typeof magicRow === "undefined" || magicRow === null))
|
38
|
-
this.rowId = magicRow.rowId;
|
39
|
-
}
|
40
|
-
get task() {
|
41
|
-
return this._task;
|
42
|
-
}
|
43
|
-
regEvents() {
|
44
|
-
this.eventHandlers["focusin"] = this.OnFocus.bind(this);
|
45
|
-
Object.keys(this.eventHandlers).forEach((key) => {
|
46
|
-
this.focusUnlistener = this.renderer.listen(this.htmlElement, key, this.eventHandlers[key]);
|
47
|
-
});
|
48
|
-
let events = ["click", "mousedown", "dblclick"];
|
49
|
-
events.forEach(event => {
|
50
|
-
this.renderer.listen(this.htmlElement, event, (e) => {
|
51
|
-
let fromButton = false;
|
52
|
-
if (this.htmlElement instanceof HTMLButtonElement)
|
53
|
-
fromButton = true;
|
54
|
-
if (fromButton && (this.platform.IOS || this.platform.SAFARI))
|
55
|
-
this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
|
56
|
-
this.task.insertEvent(getGuiEventObj(event, this.id, +this.rowId, fromButton));
|
57
|
-
if (MagicDirective.noOfAutoCompleteBoxesOpened < 1)
|
58
|
-
e.cancelBubble = true;
|
59
|
-
});
|
60
|
-
});
|
61
|
-
this.renderer.listen(this.htmlElement, "change", (e) => {
|
62
|
-
let guiEvent = getGuiEventObj("selectionchanged", this.id, +this.rowId);
|
63
|
-
if ((event.target).selectedIndex !== undefined) {
|
64
|
-
guiEvent.Value = (event.target).selectedIndex.toString();
|
65
|
-
e.cancelBubble = true;
|
66
|
-
this.task.insertEvent(guiEvent);
|
67
|
-
}
|
68
|
-
});
|
69
|
-
fromEvent(this.htmlElement, "input").pipe(map((event) => {
|
70
|
-
return event.target.value;
|
71
|
-
}), debounceTime(200)).subscribe((x) => {
|
72
|
-
if (this.task.getProperty(this.id, HtmlProperties.BindingLevel, this.rowId) === BindingLevel.Character) {
|
73
|
-
let attribute = this.task.Records.list[0].getControlMetadata(this.id).dataType;
|
74
|
-
if (attribute !== StorageAttributeType.Date && attribute != StorageAttributeType.Time)
|
75
|
-
this.task.mgAccessorService.setValueToControl(this.id, x, true);
|
76
|
-
}
|
77
|
-
});
|
78
|
-
this.renderer.listen(this.htmlElement, "keydown", (e) => {
|
79
|
-
let guiEvent = getGuiEventObj("keydown", this.id, +this.rowId);
|
80
|
-
guiEvent.modifiers = Modifiers.MODIFIER_NONE;
|
81
|
-
if (e.altKey && e.keyCode !== GuiConstants.KEY_ALT)
|
82
|
-
guiEvent.modifiers = Modifiers.MODIFIER_ALT;
|
83
|
-
else if (e.ctrlKey && e.keyCode !== GuiConstants.KEY_CTRL)
|
84
|
-
guiEvent.modifiers = Modifiers.MODIFIER_CTRL;
|
85
|
-
let supportedKey = e.keyCode === GuiConstants.KEY_PG_UP ||
|
86
|
-
e.keyCode === GuiConstants.KEY_PG_DOWN ||
|
87
|
-
e.keyCode === GuiConstants.KEY_LEFT ||
|
88
|
-
e.keyCode === GuiConstants.KEY_RIGHT ||
|
89
|
-
e.keyCode === GuiConstants.KEY_UP ||
|
90
|
-
e.keyCode === GuiConstants.KEY_DOWN ||
|
91
|
-
e.keyCode === GuiConstants.KEY_ESC ||
|
92
|
-
e.keyCode === GuiConstants.KEY_HOME ||
|
93
|
-
e.keyCode === GuiConstants.KEY_END ||
|
94
|
-
e.keyCode === GuiConstants.KEY_RETURN ||
|
95
|
-
(e.keyCode >= GuiConstants.KEY_F1 && e.keyCode <= GuiConstants.KEY_F12);
|
96
|
-
if (guiEvent.modifiers !== Modifiers.MODIFIER_NONE || supportedKey) {
|
97
|
-
guiEvent.keyCode = e.keyCode;
|
98
|
-
if (e.keyCode !== GuiConstants.KEY_ESC || e.keyCode === GuiConstants.KEY_ESC && (!MagicDirective.opened && MagicDirective.noOfAutoCompleteBoxesOpened < 1))
|
99
|
-
e.cancelBubble = true;
|
100
|
-
this.task.insertEvent(guiEvent);
|
101
|
-
}
|
102
|
-
});
|
103
|
-
}
|
104
|
-
OnFocus() {
|
105
|
-
this.task.insertEvent(getGuiEventObj("focus", this.id, +this.rowId));
|
106
|
-
event.cancelBubble = true;
|
107
|
-
}
|
108
|
-
IsSameElement(command) {
|
109
|
-
let line = command.line;
|
110
|
-
if (this.task.isTableControl(command.CtrlName))
|
111
|
-
line = this.task.getGuiRowId(line, true);
|
112
|
-
return (command.CtrlName === this.id &&
|
113
|
-
(line === +this.rowId ||
|
114
|
-
(line === 0 && isNullOrUndefined(this.rowId))));
|
115
|
-
}
|
116
|
-
IsSameComponent(command) {
|
117
|
-
return (command.controlName === this.id);
|
118
|
-
}
|
119
|
-
regUpdatesUI() {
|
120
|
-
this.subscribeRefreshDom = this.task
|
121
|
-
.refreshDom.pipe(filter(c => this.IsSameElement(c)))
|
122
|
-
.subscribe(a => {
|
123
|
-
let command = a;
|
124
|
-
if (isNullOrUndefined(this.rowId))
|
125
|
-
this.rowId = "0";
|
126
|
-
try {
|
127
|
-
if (!this.eventsOnlyVal)
|
128
|
-
this.handleCommand(command);
|
129
|
-
}
|
130
|
-
catch (ex) {
|
131
|
-
console.dir(ex);
|
132
|
-
}
|
133
|
-
});
|
134
|
-
this.subscribeInteractiveCommands = this.task.interactiveCommands
|
135
|
-
.pipe(filter(c => this.IsSameComponent(c)))
|
136
|
-
.subscribe(command => {
|
137
|
-
this.handleInteractiveCommands(command);
|
138
|
-
});
|
139
|
-
}
|
140
|
-
ngOnInit() {
|
141
|
-
this.regEvents();
|
142
|
-
this.regUpdatesUI();
|
143
|
-
}
|
144
|
-
handleCommand(command) {
|
145
|
-
switch (command.CommandType) {
|
146
|
-
case CommandType.SET_PROPERTY:
|
147
|
-
this.handleSetProperty(command);
|
148
|
-
break;
|
149
|
-
case CommandType.SET_FOCUS:
|
150
|
-
this.focusUnlistener();
|
151
|
-
if (!(command.obj.ConnectedControl && this.htmlElement instanceof HTMLButtonElement))
|
152
|
-
this.htmlElement.focus();
|
153
|
-
this.focusUnlistener = this.renderer.listen(this.htmlElement, "focusin", this.eventHandlers["focusin"]);
|
154
|
-
break;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
handleInteractiveCommands(command) {
|
158
|
-
switch (command._commandType) {
|
159
|
-
case InteractiveCommandType.CALL_JS:
|
160
|
-
let methodName = command._str;
|
161
|
-
let args = command.arguments;
|
162
|
-
let magicComponent = (this.vcRef._hostLView).find(v => v instanceof TaskBaseMagicComponent);
|
163
|
-
let resultString = "";
|
164
|
-
try {
|
165
|
-
if (!isNullOrUndefined(magicComponent[methodName])) {
|
166
|
-
resultString = magicComponent[methodName].apply(magicComponent, args);
|
167
|
-
}
|
168
|
-
else
|
169
|
-
console.error("Instance method " + methodName + " does not exists");
|
170
|
-
}
|
171
|
-
catch (e) {
|
172
|
-
console.error(e.message);
|
173
|
-
}
|
174
|
-
command.resultString = resultString;
|
175
|
-
break;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
handleSetProperty(command) {
|
179
|
-
switch (command.Operation) {
|
180
|
-
case HtmlProperties.ReadOnly:
|
181
|
-
{
|
182
|
-
if (command.obj.Type == MgControlType.CTRL_TYPE_TEXT)
|
183
|
-
if (command.obj1 != true)
|
184
|
-
this.renderer.removeAttribute(this.htmlElement, command.Operation);
|
185
|
-
else
|
186
|
-
this.renderer.setAttribute(this.htmlElement, command.Operation, command.str);
|
187
|
-
}
|
188
|
-
break;
|
189
|
-
}
|
190
|
-
}
|
191
|
-
ngOnDestroy() {
|
192
|
-
this.subscribeRefreshDom.unsubscribe();
|
193
|
-
}
|
194
|
-
}
|
195
|
-
MagicDirective.opened = false;
|
196
|
-
MagicDirective.noOfAutoCompleteBoxesOpened = 0;
|
197
|
-
MagicDirective.ɵfac = function MagicDirective_Factory(t) { return new (t || MagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.RowMagicDirective, 8)); };
|
198
|
-
MagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MagicDirective, selectors: [["", "magic", ""]], inputs: { magic: "magic", eventsOnly: "eventsOnly", rowId: "rowId" } });
|
199
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDirective, [{
|
200
|
-
type: Directive,
|
201
|
-
args: [{
|
202
|
-
selector: "[magic]"
|
203
|
-
}]
|
204
|
-
}], function () { return [{ type: i1.TaskMagicService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.Platform }, { type: i3.RowMagicDirective, decorators: [{
|
205
|
-
type: Optional
|
206
|
-
}] }]; }, { magic: [{
|
207
|
-
type: Input,
|
208
|
-
args: ["magic"]
|
209
|
-
}], eventsOnly: [{
|
210
|
-
type: Input,
|
211
|
-
args: ["eventsOnly"]
|
212
|
-
}], rowId: [{
|
213
|
-
type: Input
|
214
|
-
}] }); })();
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUVaLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVVqRCxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFvQixLQUFLLENBQUMsR0FBRztRQUMzQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FB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QUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0FBdFJhLHFCQUFNLEdBQUcsS0FBSyxDQUFDO0FBRWYsMENBQTJCLEdBQUUsQ0FBQyxDQUFDOzRFQXZEbEMsY0FBYzttREFBZCxjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2FBQ3BCOztzQkE0RUksUUFBUTt3QkF6RVMsS0FBSztrQkFBeEIsS0FBSzttQkFBQyxPQUFPO1lBUVcsVUFBVTtrQkFBbEMsS0FBSzttQkFBQyxZQUFZO1lBU0gsS0FBSztrQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZFR5cGUsXHJcbiAgR3VpQ29tbWFuZCxcclxuICBHdWlDb25zdGFudHMsXHJcbiAgR3VpSW50ZXJhY3RpdmUsXHJcbiAgSHRtbFByb3BlcnRpZXMsXHJcbiAgSW50ZXJhY3RpdmVDb21tYW5kVHlwZSxcclxuICBNb2RpZmllcnNcclxufSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgZ2V0R3VpRXZlbnRPYmosIElHdWlFdmVudCB9IGZyb20gXCJAbWFnaWMteHBhL2VuZ2luZVwiO1xyXG5cclxuaW1wb3J0IHsgVGFza0Jhc2VNYWdpY0NvbXBvbmVudCB9IGZyb20gXCIuLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRhc2tNYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFJvd01hZ2ljRGlyZWN0aXZlIH0gZnJvbSBcIi4vbWFnaWMvcm93Lm1hZ2ljLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEJpbmRpbmdMZXZlbCwgTWdDb250cm9sVHlwZSwgU3RvcmFnZUF0dHJpYnV0ZVR5cGUgfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcGxhdGZvcm1cIjtcclxuXHJcblxyXG4vKipcclxuICogQ29ubmVjdHMgSFRNTCBlbGVtZW50cyB0byB0aGUgTWFnaWMgV2ViIENsaWVudCBlbmdpbmVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIlttYWdpY11cIlxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hZ2ljRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dChcIm1hZ2ljXCIpIHNldCBtYWdpYyh2YWwpIHtcclxuICAgIHRoaXMuaWQgPSB2YWw7XHJcbiAgICB0aGlzLnNlbGVjdG9yID0gXCJtYWdpY1wiO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZmxhZyBpcyB1c2VkIHdoZW4gd2Ugb25seSB3YW50IHRvIHJlZ2lzdGVyIHRvIGV2ZW50cywgYnV0IGRvIG5vdCB3YW50IHRvIGV4ZWN1dGUgY29tbWFuZHMgc2VudCBmcm9tIHNlcnZlclxyXG4gICAqL1xyXG4gIEBJbnB1dChcImV2ZW50c09ubHlcIikgc2V0IGV2ZW50c09ubHkodmFsKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImV2ZW50c09ubHlcIik7XHJcbiAgICB0aGlzLmV2ZW50c09ubHlWYWwgPSB0cnVlO1xyXG5cclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSb3cgaWQgb2YgdGhlIGNvbnRyb2wsIGZvciB3aGVuIGl0IGlzIG9uIGEgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcm93SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIC8vQElucHV0KCkgZXZlbnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgSFRNTCBlbGVtZW50IGNvbm5lY3RlZCB0byB0aGlzIGRpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgLyoqXHJcbiAgICogTWFnaWMncyBjb21wb25lbnQgaGFuZGxpbmcgdGhpcyBjb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudDtcclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG9mIGV2ZW50IGhhbmRsZXJzIGZvciB0aGlzIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGV2ZW50SGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gdm9pZDsgfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIElkIG9mIHRoaXMgZWxlbWVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2VsZWN0b3I6IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgc3Vic2NyaWJlUmVmcmVzaERvbTogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGZvY3VzVW5saXN0ZW5lcjogKCgpID0+IHZvaWQpO1xyXG5cclxuICBwdWJsaWMgZXZlbnRzT25seVZhbCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vT2ZBdXRvQ29tcGxldGVCb3hlc09wZW5lZCA9MDtcclxuXHJcbiAgc3Vic2NyaWJlSW50ZXJhY3RpdmVDb21tYW5kczogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBfdGFzayBUaGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgZm9yIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZFxyXG4gICAqIEBwYXJhbSByZW5kZXJlciBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gdmNSZWZcclxuICAgKiBAcGFyYW0gcGxhdGZvcm1cclxuICAgKiBAcGFyYW0gbWFnaWNSb3dcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG1hZ2ljUm93OiBSb3dNYWdpY0RpcmVjdGl2ZSkge1xyXG5cclxuICAgIHRoaXMuaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIC8vbGV0IGMgPSAoPGFueT50aGlzLnZjUmVmKS5fdmlldztcclxuICAgIC8vd2hpbGUgKCEoYyBpbnN0YW5jZW9mIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSB7XHJcbiAgICAvLyAgYyA9IGMuY29tcG9uZW50O1xyXG4gICAgLy99XHJcbiAgICAvL3RoaXMuY29tcG9uZW50ID0gYztcclxuICAgIGlmICghKHR5cGVvZiBtYWdpY1JvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBtYWdpY1JvdyA9PT0gbnVsbCkpXHJcbiAgICAgIHRoaXMucm93SWQgPSBtYWdpY1Jvdy5yb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdGFzayBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgdGFzaygpOiBUYXNrTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLl90YXNrO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgdG8gdGhlIGV2ZW50cyB0aGlzIGVsZW1lbnQgbWF5IG5lZWQgdG8gaGFuZGxlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlZ0V2ZW50cygpIHtcclxuICAgIC8vIEhhbmRsZSBldmVudHMgZm9yIHdoaWNoIGV2ZW50IGhhbmRsZXIgbWF5IGJlIHJlbW92ZWQgYW5kIHJlc3RvcmVkXHJcbiAgICB0aGlzLmV2ZW50SGFuZGxlcnNbXCJmb2N1c2luXCJdID0gdGhpcy5PbkZvY3VzLmJpbmQodGhpcyk7XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5ldmVudEhhbmRsZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5mb2N1c1VubGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBrZXksIHRoaXMuZXZlbnRIYW5kbGVyc1trZXldKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEhhbmRsZSBldmVudHMgd2l0aCBhbm9ueW1vdXMgIGV2ZW50IGhhbmRsZXJzXHJcbiAgICBsZXQgZXZlbnRzOiBzdHJpbmdbXSA9IFtcImNsaWNrXCIsIFwibW91c2Vkb3duXCIsIFwiZGJsY2xpY2tcIl07Ly8gLCdyZXNpemUnLCAnbG9hZCcsICd1bmxvYWQnXHJcbiAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaHRtbEVsZW1lbnQsIGV2ZW50LCAoZSkgPT4ge1xyXG5cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBmaXJlZCBmcm9tIHpvb20gYnV0dG9uICggdG8gaWRlbnRpZnkgdGhlIGNvbm5lY3RlZCB6b29tIGJ1dHRvbiBpbiBlbmdpbmUpXHJcbiAgICAgICAgbGV0IGZyb21CdXR0b24gPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpXHJcbiAgICAgICAgICBmcm9tQnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW4gdGhlIGNhc2Ugb2YgU2FmYXJpIG9yIENocm9tZSBicm93c2VyIG9uIElPUywgd2hlbiBhIGJ1dHRvbiBpcyBjbGlja2VkLCB0aGUgYnJvd3NlciBkb2VzIG5vdCByZWNlaXZlXHJcbiAgICAgICAgICogZm9jdXMgZXZlbnQgaGVuY2UgdGhlIHpvb20gYWN0aW9uIGlzIG5vdCBleGVjdXRlZC4gU28gaW4gb3JkZXIgdG8gcmVjZWl2ZSBmb2N1cyBldmVudCwgZW5hYmxpbmcgaXQgZXhjbHVzaXZlbHlcclxuICAgICAgICAgKiBpbiB0aGUgY2FzZSBvZiBTYWZhcmkgb3IgQ2hyb21lIGJyb3dzZXIgb24gSU9TIGFuZCBTYWZhcmkgYnJvd3NlciBvbiBNYWMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKGZyb21CdXR0b24gJiYgKHRoaXMucGxhdGZvcm0uSU9TIHx8IHRoaXMucGxhdGZvcm0uU0FGQVJJKSlcclxuICAgICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihcImZvY3VzXCIsIHRoaXMuaWQsICt0aGlzLnJvd0lkKSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihldmVudCwgdGhpcy5pZCwgK3RoaXMucm93SWQsIGZyb21CdXR0b24pKTtcclxuICAgICAgICBpZiAoTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkPCAxKVxyXG4gICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBcImNoYW5nZVwiLCAoZSkgPT4ge1xyXG4gICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwic2VsZWN0aW9uY2hhbmdlZFwiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCk7XHJcblxyXG4gICAgICBpZiAoKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGd1aUV2ZW50LlZhbHVlID0gKDxhbnk+KGV2ZW50LnRhcmdldCkpLnNlbGVjdGVkSW5kZXgudG9TdHJpbmcoKTtcclxuICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGhhbmRsZSB0aGUgaW5wdXQgZXZlbnRcclxuICAgIGZyb21FdmVudCh0aGlzLmh0bWxFbGVtZW50LCBcImlucHV0XCIpLnBpcGUoXHJcbiAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjAwKSAvLyB0aW1lIGFmdGVyIHdoaWNoIHZhbHVlIHdpbGwgYmUgc2VudCB0byBtYWdpY1xyXG4gICAgKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLmdldFByb3BlcnR5KHRoaXMuaWQsIEh0bWxQcm9wZXJ0aWVzLkJpbmRpbmdMZXZlbCwgdGhpcy5yb3dJZCkgPT09IEJpbmRpbmdMZXZlbC5DaGFyYWN0ZXIpIHtcclxuICAgICAgICAgIC8vIERvbid0IHN1cHBvcnQgY2hhcmFjdGVyIGJpbmRpbmcgZm9yIGRhdGUvdGltZSB2YWx1ZXNcclxuICAgICAgICAgbGV0IGF0dHJpYnV0ZSA6IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlID0gIHRoaXMudGFzay5SZWNvcmRzLmxpc3RbMF0uZ2V0Q29udHJvbE1ldGFkYXRhKHRoaXMuaWQpLmRhdGFUeXBlO1xyXG4gICAgICAgICBpZihhdHRyaWJ1dGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlLkRhdGUgJiYgYXR0cmlidXRlICE9IFN0b3JhZ2VBdHRyaWJ1dGVUeXBlLlRpbWUpXHJcbiAgICAgICAgICAgIHRoaXMudGFzay5tZ0FjY2Vzc29yU2VydmljZS5zZXRWYWx1ZVRvQ29udHJvbCh0aGlzLmlkLCB4LCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmh0bWxFbGVtZW50LCBcImtleWRvd25cIiwgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwia2V5ZG93blwiLCB0aGlzLmlkLCArdGhpcy5yb3dJZCk7XHJcbiAgICAgICAgZ3VpRXZlbnQubW9kaWZpZXJzID0gTW9kaWZpZXJzLk1PRElGSUVSX05PTkU7XHJcblxyXG4gICAgICAgIGlmIChlLmFsdEtleSAmJiBlLmtleUNvZGUgIT09IEd1aUNvbnN0YW50cy5LRVlfQUxUKVxyXG4gICAgICAgICAgICBndWlFdmVudC5tb2RpZmllcnMgPSBNb2RpZmllcnMuTU9ESUZJRVJfQUxUO1xyXG5cclxuICAgICAgICBlbHNlIGlmIChlLmN0cmxLZXkgJiYgZS5rZXlDb2RlICE9PSBHdWlDb25zdGFudHMuS0VZX0NUUkwpXHJcbiAgICAgICAgICAgIGd1aUV2ZW50Lm1vZGlmaWVycyA9IE1vZGlmaWVycy5NT0RJRklFUl9DVFJMO1xyXG5cclxuICAgICAgICBsZXQgc3VwcG9ydGVkS2V5ID0gZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX1BHX1VQIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9QR19ET1dOIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9MRUZUIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9SSUdIVCB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfVVAgfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0RPV04gfHxcclxuICAgICAgICAgICAgZS5rZXlDb2RlID09PSBHdWlDb25zdGFudHMuS0VZX0VTQyB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfSE9NRSB8fFxyXG4gICAgICAgICAgICBlLmtleUNvZGUgPT09IEd1aUNvbnN0YW50cy5LRVlfRU5EIHx8XHJcbiAgICAgICAgICAgIGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9SRVRVUk4gfHxcclxuICAgICAgICAgICAgKGUua2V5Q29kZSA+PSBHdWlDb25zdGFudHMuS0VZX0YxICYmIGUua2V5Q29kZSA8PSBHdWlDb25zdGFudHMuS0VZX0YxMik7XHJcblxyXG4gICAgICAgIGlmIChndWlFdmVudC5tb2RpZmllcnMgIT09IE1vZGlmaWVycy5NT0RJRklFUl9OT05FIHx8IHN1cHBvcnRlZEtleSkge1xyXG4gICAgICAgICAgICBndWlFdmVudC5rZXlDb2RlID0gZS5rZXlDb2RlO1xyXG5cclxuICAgICAgICAgICAgLy8gRGVmZWN0IDE2MDAyMSBmaXhlZCAtIGRvbid0IHNldCBlLmNhbmNlbEJ1YmJsZSB3aGVuIGNvbWJvYm94IGlzIG9wZW5lZCBhbmQgZXNjIGtleSBpcyBwcmVzc2VkXHJcbiAgICAgICAgICAgIGlmIChlLmtleUNvZGUgIT09IEd1aUNvbnN0YW50cy5LRVlfRVNDIHx8IGUua2V5Q29kZSA9PT0gR3VpQ29uc3RhbnRzLktFWV9FU0MgJiYgKCFNYWdpY0RpcmVjdGl2ZS5vcGVuZWQgJiYgTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkIDwgMSkpXHJcbiAgICAgICAgICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBmb2N1cyBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgT25Gb2N1cygpIHtcclxuICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChnZXRHdWlFdmVudE9iaihcImZvY3VzXCIsIHRoaXMuaWQsICt0aGlzLnJvd0lkKSk7XHJcbiAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgdGhlIGNvbW1hbmQncyBlbGVtZW50IHRoZSBzYW1lIGFzIHRoaXMgZGlyZWN0aXZlJ3MgZWxlbWVudFxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICogQHJldHVybnMgdHJ1ZS9mYWxzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1NhbWVFbGVtZW50KGNvbW1hbmQpIHtcclxuICAgIGxldCBsaW5lOiBudW1iZXIgPSBjb21tYW5kLmxpbmU7XHJcblxyXG4gICAgaWYgKHRoaXMudGFzay5pc1RhYmxlQ29udHJvbChjb21tYW5kLkN0cmxOYW1lKSlcclxuICAgICAgbGluZSA9IHRoaXMudGFzay5nZXRHdWlSb3dJZChsaW5lLCB0cnVlKTtcclxuXHJcbiAgICByZXR1cm4gKGNvbW1hbmQuQ3RybE5hbWUgPT09IHRoaXMuaWQgJiZcclxuICAgICAgKGxpbmUgPT09ICt0aGlzLnJvd0lkIHx8XHJcbiAgICAgICAgKGxpbmUgPT09IDAgJiYgaXNOdWxsT3JVbmRlZmluZWQodGhpcy5yb3dJZCkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyB0aGUgY29tbWFuZCdzIGVsZW1lbnQgdGhlIHNhbWUgYXMgdGhpcyBkaXJlY3RpdmUncyBjb21wb25lbnRcclxuICAgKiBAcGFyYW0gY29tbWFuZFxyXG4gICAqIEByZXR1cm5zIHRydWUvZmFsc2VcclxuICAgKi9cclxuICBwcml2YXRlIElzU2FtZUNvbXBvbmVudChjb21tYW5kOiBHdWlJbnRlcmFjdGl2ZSkge1xyXG4gICAgcmV0dXJuIChjb21tYW5kLmNvbnRyb2xOYW1lID09PSB0aGlzLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcml2YXRlIHJlZ1VwZGF0ZXNVSSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbSA9IHRoaXMudGFza1xyXG4gICAgICAucmVmcmVzaERvbS5waXBlKGZpbHRlcihjID0+IHRoaXMuSXNTYW1lRWxlbWVudChjKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYSA9PiB7XHJcbiAgICAgICAgICBsZXQgY29tbWFuZDogR3VpQ29tbWFuZCA9IGE7XHJcbiAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5yb3dJZCkpXHJcbiAgICAgICAgICAgIHRoaXMucm93SWQgPSBcIjBcIjtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5ldmVudHNPbmx5VmFsKVxyXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29tbWFuZChjb21tYW5kKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGlyKGV4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVJbnRlcmFjdGl2ZUNvbW1hbmRzID0gdGhpcy50YXNrLmludGVyYWN0aXZlQ29tbWFuZHNcclxuICAgICAgLnBpcGUoZmlsdGVyKGMgPT4gdGhpcy5Jc1NhbWVDb21wb25lbnQoYykpKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbW1hbmQgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlSW50ZXJhY3RpdmVDb21tYW5kcyhjb21tYW5kKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGlzIG9iamVjdFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWdFdmVudHMoKTtcclxuICAgIHRoaXMucmVnVXBkYXRlc1VJKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBNYWdpYyBXZWJDbGllbnQgZW5naW5lXHJcbiAgICogQHBhcmFtIGNvbW1hbmRcclxuICAgKi9cclxuICBoYW5kbGVDb21tYW5kKGNvbW1hbmQ6IEd1aUNvbW1hbmQpIHtcclxuICAgIHN3aXRjaCAoY29tbWFuZC5Db21tYW5kVHlwZSkge1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TRVRfUFJPUEVSVFk6XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTZXRQcm9wZXJ0eShjb21tYW5kKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0VUX0ZPQ1VTOlxyXG4gICAgICAgICAgICB0aGlzLmZvY3VzVW5saXN0ZW5lcigpO1xyXG4gICAgICAgLy8gRG8gbm90IHNldCBmb2N1cyBvbiBjb25uZWN0ZWQgem9vbSAgYnV0dG9uXHJcbiAgICAgICAgaWYgKCEoY29tbWFuZC5vYmouQ29ubmVjdGVkQ29udHJvbCAmJiB0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpKVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNVbmxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5odG1sRWxlbWVudCwgXCJmb2N1c2luXCIsIHRoaXMuZXZlbnRIYW5kbGVyc1tcImZvY3VzaW5cIl0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBoYW5kbGUgdGhlIGludGVyYWN0aXZlIGNvbW1hbmRzIGxpa2UgQ2FsbEpTXHJcbiAgICovXHJcbiAgaGFuZGxlSW50ZXJhY3RpdmVDb21tYW5kcyhjb21tYW5kOiBHdWlJbnRlcmFjdGl2ZSkge1xyXG4gICAgc3dpdGNoIChjb21tYW5kLl9jb21tYW5kVHlwZSkge1xyXG4gICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuQ0FMTF9KUzpcclxuICAgICAgICBsZXQgbWV0aG9kTmFtZTogc3RyaW5nID0gY29tbWFuZC5fc3RyO1xyXG4gICAgICAgIGxldCBhcmdzOiBBcnJheTxhbnk+ID0gY29tbWFuZC5hcmd1bWVudHM7XHJcbiAgICAgICAgbGV0IG1hZ2ljQ29tcG9uZW50OiBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50ID0gKCg8YW55PnRoaXMudmNSZWYpLl9ob3N0TFZpZXcpLmZpbmQodiA9PiB2IGluc3RhbmNlb2YgVGFza0Jhc2VNYWdpY0NvbXBvbmVudCk7XHJcbiAgICAgICAgbGV0IHJlc3VsdFN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1hZ2ljQ29tcG9uZW50W21ldGhvZE5hbWVdKSkge1xyXG4gICAgICAgICAgICAvLyBpbnZva2UgdGhlIG1ldGhvZCBvbiBpbnN0YW5jZSBvZiBtYWdpYyBjb21wb25lbmV0XHJcbiAgICAgICAgICAgIHJlc3VsdFN0cmluZyA9IG1hZ2ljQ29tcG9uZW50W21ldGhvZE5hbWVdLmFwcGx5KG1hZ2ljQ29tcG9uZW50LCBhcmdzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkluc3RhbmNlIG1ldGhvZCBcIiArIG1ldGhvZE5hbWUgKyBcIiBkb2VzIG5vdCBleGlzdHNcIik7IC8vIHdoZW4gbWV0aG9kIGlzIG5vdCBmb3VuZFxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIGFueSBvdGhlciBleGNlcHRpb25cclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tbWFuZC5yZXN1bHRTdHJpbmcgPSByZXN1bHRTdHJpbmc7IC8vIHVwZGF0ZSB0aGUgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHRoZSBNYWdpYyBzZXQtcHJvcGVydHkgY29tbWFuZFxyXG4gICAqIEBwYXJhbSBjb21tYW5kXHJcbiAgICovXHJcbiAgaGFuZGxlU2V0UHJvcGVydHkoY29tbWFuZDogR3VpQ29tbWFuZCkge1xyXG4gICAgc3dpdGNoIChjb21tYW5kLk9wZXJhdGlvbikge1xyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlJlYWRPbmx5OiB7XHJcbiAgICAgICAgaWYoY29tbWFuZC5vYmouVHlwZSA9PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9URVhUKVxyXG4gICAgICAgIGlmIChjb21tYW5kLm9iajEgIT0gdHJ1ZSlcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaHRtbEVsZW1lbnQsIGNvbW1hbmQuT3BlcmF0aW9uKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmh0bWxFbGVtZW50LCBjb21tYW5kLk9wZXJhdGlvbiwgY29tbWFuZC5zdHIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYW51cFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { Directive, ViewContainerRef } from "@angular/core";
|
2
|
-
import { isNullOrUndefined } from "@magic-xpa/mscorelib";
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export class MagicViewContainerRef {
|
5
|
-
constructor(vcRef) {
|
6
|
-
this.vcRef = vcRef;
|
7
|
-
let comp = (this.vcRef._hostLView).find(v => v != null && !isNullOrUndefined(v.setViewContainerRef));
|
8
|
-
comp.setViewContainerRef(vcRef);
|
9
|
-
}
|
10
|
-
}
|
11
|
-
MagicViewContainerRef.ɵfac = function MagicViewContainerRef_Factory(t) { return new (t || MagicViewContainerRef)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
12
|
-
MagicViewContainerRef.ɵdir = i0.ɵɵdefineDirective({ type: MagicViewContainerRef, selectors: [["", "magicViewContainerRef", ""]] });
|
13
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicViewContainerRef, [{
|
14
|
-
type: Directive,
|
15
|
-
args: [{
|
16
|
-
selector: '[magicViewContainerRef]',
|
17
|
-
}]
|
18
|
-
}], function () { return [{ type: i0.ViewContainerRef }]; }, null); })();
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWNWaWV3Q29udGFpbmVyUmVmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRTFDLElBQUksSUFBSSxHQUFHLENBQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUEyQixJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFFLENBQTRCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2xLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzswRkFMVSxxQkFBcUI7MERBQXJCLHFCQUFxQjt1RkFBckIscUJBQXFCO2NBSGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2FBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL3N1Yi1mb3JtLWRlZmluaXRpb24uaXRlcmZhY2VcIjtcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJlY3RpdmUgZm9yIHNldHRpbmcgIFZpZXdDb250YWluZXJSZWYgb24gZWxlbWVudFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbWFnaWNWaWV3Q29udGFpbmVyUmVmXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWdpY1ZpZXdDb250YWluZXJSZWYge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIC8vIEZvciBhbmd1bGFyIDEwIC0gIGZpbmQgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSB2aWV3c1xyXG4gICBsZXQgY29tcCA9ICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gdiBhcyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmICE9IG51bGwgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKCh2IGFzIElNYWdpY1ZpZXdDb250YWluZXJSZWYpLnNldFZpZXdDb250YWluZXJSZWYpKTtcclxuICAgY29tcC5zZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|