@magic-xpa/angular 4.1200.0-dev4120.5 → 4.1200.0-dev4120.52
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/fesm2022/magic-xpa-angular.mjs +1783 -192
- package/fesm2022/magic-xpa-angular.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/package.json +6 -8
- package/src/controls.metadata.model.d.ts +16 -0
- package/src/interfaces/sub-form-definition.iterface.d.ts +6 -0
- package/src/magic.core.module.d.ts +5 -3
- package/src/services/OverlayWindowService.d.ts +19 -0
- package/src/services/StylesMapManager.d.ts +3 -0
- package/src/services/accessor.magic.service.d.ts +243 -3
- package/src/services/commands-collector.magic.service.d.ts +3 -0
- package/src/services/component-list.magic.service.d.ts +27 -0
- package/src/services/confirmation.components.magic.provider.d.ts +16 -0
- package/src/services/engine.magic.service.d.ts +3 -0
- package/src/services/exit.magic.service.d.ts +6 -0
- package/src/services/magic-color.service.d.ts +6 -0
- package/src/services/magic.providers.d.ts +3 -0
- package/src/services/magic.services.d.ts +6 -0
- package/src/services/router-commands.magic.service.d.ts +6 -0
- package/src/services/subform.magic.service.d.ts +28 -0
- package/src/services/table.magic.service.d.ts +56 -0
- package/src/services/task.magics.service.d.ts +300 -0
- package/src/services/title.magic.service.d.ts +11 -0
- package/src/ui/GuiInteractiveExecutor.d.ts +3 -0
- package/src/ui/components/base-magic-alert.component.d.ts +16 -0
- package/src/ui/components/base-magic-confirm.component.d.ts +18 -0
- package/src/ui/components/magic-alert.component.d.ts +3 -0
- package/src/ui/components/magic-confirmation-box.component.d.ts +3 -0
- package/src/ui/directives/NonMagicControlDirective.d.ts +41 -0
- package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +6 -0
- package/src/ui/directives/magic/checkbox.magic.directive.d.ts +12 -0
- package/src/ui/directives/magic/combobox.magic.directive.d.ts +9 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +6 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +13 -0
- package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +6 -0
- package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +6 -0
- package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +3 -0
- package/src/ui/directives/magic/row.magic.directive.d.ts +15 -0
- package/src/ui/directives/magic-focus.directive.d.ts +3 -0
- package/src/ui/directives/magic.directive.d.ts +82 -0
- package/src/ui/directives/magicViewContainerRef.directive.d.ts +3 -0
- package/src/ui/directives/mgformat.magic.directive.d.ts +44 -0
- package/src/ui/directives/range-validator.magic.directive.d.ts +16 -0
- package/src/ui/magic-confirmationBox.d.ts +19 -0
- package/src/ui/magic-modal/base-magic-overlay-container.d.ts +9 -0
- package/src/ui/magic-modal/magic-modal-form.d.ts +3 -0
- package/src/ui/magic-modal/magic-modal-interface.d.ts +27 -0
- package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +20 -0
- package/src/ui/magic-modal/magic-overlay-container.d.ts +51 -0
- package/src/ui/magic-root.component.d.ts +42 -0
- package/src/ui/mgerror.magic.component.d.ts +19 -0
- package/src/ui/pipes/date.magic.pipe.d.ts +6 -0
- package/src/ui/pipes/time.magic.pipe.d.ts +3 -0
- package/src/ui/router-container.magic.component.d.ts +19 -0
- package/src/ui/subform.magic.component.d.ts +21 -0
- package/src/ui/task-base.magic.component.d.ts +78 -0
- package/src/ui/utils.d.ts +3 -0
- package/esm2022/index.mjs +0 -59
- package/esm2022/magic-xpa-angular.mjs +0 -2
- package/esm2022/src/controls.metadata.model.mjs +0 -183
- package/esm2022/src/interfaces/sub-form-definition.iterface.mjs +0 -2
- package/esm2022/src/magic.core.module.mjs +0 -159
- package/esm2022/src/services/ISubformMagicService.mjs +0 -2
- package/esm2022/src/services/OverlayWindowService.mjs +0 -245
- package/esm2022/src/services/StylesMapManager.mjs +0 -28
- package/esm2022/src/services/accessor.magic.service.mjs +0 -358
- package/esm2022/src/services/commands-collector.magic.service.mjs +0 -47
- package/esm2022/src/services/component-list.magic.service.mjs +0 -45
- package/esm2022/src/services/confirmation.components.magic.provider.mjs +0 -21
- package/esm2022/src/services/engine.magic.service.mjs +0 -80
- package/esm2022/src/services/exit.magic.service.mjs +0 -13
- package/esm2022/src/services/magic-color.service.mjs +0 -101
- package/esm2022/src/services/magic.lazy.loader.service.mjs +0 -16
- package/esm2022/src/services/magic.providers.mjs +0 -25
- package/esm2022/src/services/magic.services.mjs +0 -36
- package/esm2022/src/services/mg-date-adapter.mjs +0 -108
- package/esm2022/src/services/overlay.conainer.magic.provider.mjs +0 -14
- package/esm2022/src/services/router-commands.magic.service.mjs +0 -31
- package/esm2022/src/services/subform.magic.service.mjs +0 -195
- package/esm2022/src/services/table.magic.service.mjs +0 -81
- package/esm2022/src/services/task.magics.service.mjs +0 -648
- package/esm2022/src/services/title.magic.service.mjs +0 -19
- package/esm2022/src/ui/GuiInteractiveExecutor.mjs +0 -114
- package/esm2022/src/ui/components/base-magic-alert.component.mjs +0 -24
- package/esm2022/src/ui/components/base-magic-confirm.component.mjs +0 -24
- package/esm2022/src/ui/components/magic-alert.component.mjs +0 -36
- package/esm2022/src/ui/components/magic-confirmation-box.component.mjs +0 -42
- package/esm2022/src/ui/directives/NonMagicControlDirective.mjs +0 -58
- package/esm2022/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +0 -29
- package/esm2022/src/ui/directives/magic/checkbox.magic.directive.mjs +0 -100
- package/esm2022/src/ui/directives/magic/combobox.magic.directive.mjs +0 -37
- package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +0 -27
- package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +0 -85
- package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +0 -32
- package/esm2022/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +0 -28
- package/esm2022/src/ui/directives/magic/nocontrol.magic.directive.mjs +0 -193
- package/esm2022/src/ui/directives/magic/row.magic.directive.mjs +0 -62
- package/esm2022/src/ui/directives/magic-focus.directive.mjs +0 -20
- package/esm2022/src/ui/directives/magic.directive.mjs +0 -232
- package/esm2022/src/ui/directives/magicViewContainerRef.directive.mjs +0 -20
- package/esm2022/src/ui/directives/mgformat.magic.directive.mjs +0 -579
- package/esm2022/src/ui/directives/range-validator.magic.directive.mjs +0 -60
- package/esm2022/src/ui/magic-confirmationBox.mjs +0 -42
- package/esm2022/src/ui/magic-modal/base-magic-overlay-container.mjs +0 -22
- package/esm2022/src/ui/magic-modal/magic-modal-form.mjs +0 -6
- package/esm2022/src/ui/magic-modal/magic-modal-interface.mjs +0 -2
- package/esm2022/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +0 -125
- package/esm2022/src/ui/magic-modal/magic-overlay-container.mjs +0 -162
- package/esm2022/src/ui/magic-root.component.mjs +0 -236
- package/esm2022/src/ui/mgerror.magic.component.mjs +0 -125
- package/esm2022/src/ui/pipes/date.magic.pipe.mjs +0 -106
- package/esm2022/src/ui/pipes/time.magic.pipe.mjs +0 -52
- package/esm2022/src/ui/pipes/time24.magic.pipe.mjs +0 -35
- package/esm2022/src/ui/router-container.magic.component.mjs +0 -115
- package/esm2022/src/ui/subform.magic.component.mjs +0 -56
- package/esm2022/src/ui/task-base.magic.component.mjs +0 -91
- package/esm2022/src/ui/utils.mjs +0 -54
@@ -1,115 +0,0 @@
|
|
1
|
-
import { Component, ViewContainerRef } from '@angular/core';
|
2
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
3
|
-
import { EngineMagicService } from '../services/engine.magic.service';
|
4
|
-
import { getGuiEventObj } from '@magic-xpa/engine';
|
5
|
-
import { List } from '@magic-xpa/mscorelib';
|
6
|
-
import { StrUtil } from '@magic-xpa/utils';
|
7
|
-
import { ComponentListMagicService } from '../services/component-list.magic.service';
|
8
|
-
import { SubformMagicService } from '../services/subform.magic.service';
|
9
|
-
import { CommandsCollectorMagicService } from '../services/commands-collector.magic.service';
|
10
|
-
import { RouterCommandsMagicService } from '../services/router-commands.magic.service';
|
11
|
-
import { TaskMagicService } from '../services/task.magics.service';
|
12
|
-
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "@angular/router";
|
14
|
-
import * as i2 from "../services/engine.magic.service";
|
15
|
-
import * as i3 from "../services/task.magics.service";
|
16
|
-
import * as i4 from "../services/component-list.magic.service";
|
17
|
-
import * as i5 from "../services/commands-collector.magic.service";
|
18
|
-
import * as i6 from "../services/router-commands.magic.service";
|
19
|
-
export class RouterContainerMagicComponent {
|
20
|
-
activatedRoute;
|
21
|
-
router;
|
22
|
-
magic;
|
23
|
-
containerTaskService;
|
24
|
-
viewContainerRef;
|
25
|
-
componentList;
|
26
|
-
pendingCommandsCollector;
|
27
|
-
routerCommandsMagicService;
|
28
|
-
componentRef = null;
|
29
|
-
parentMgSubformService = null;
|
30
|
-
static lastRoute = "/";
|
31
|
-
static get LastRoute() {
|
32
|
-
return RouterContainerMagicComponent.lastRoute;
|
33
|
-
}
|
34
|
-
constructor(activatedRoute, router, magic, containerTaskService, viewContainerRef, componentList, pendingCommandsCollector, routerCommandsMagicService) {
|
35
|
-
this.activatedRoute = activatedRoute;
|
36
|
-
this.router = router;
|
37
|
-
this.magic = magic;
|
38
|
-
this.containerTaskService = containerTaskService;
|
39
|
-
this.viewContainerRef = viewContainerRef;
|
40
|
-
this.componentList = componentList;
|
41
|
-
this.pendingCommandsCollector = pendingCommandsCollector;
|
42
|
-
this.routerCommandsMagicService = routerCommandsMagicService;
|
43
|
-
}
|
44
|
-
ngOnInit() {
|
45
|
-
let subformMagicService = SubformMagicService.currentCallerMgSubformServiceRef;
|
46
|
-
let currentActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
|
47
|
-
RouterContainerMagicComponent.lastRoute = this.router.url;
|
48
|
-
if (subformMagicService == null || subformMagicService.currentRouteDefinition === null) {
|
49
|
-
this.insertRouteEvent(currentActiveRoute);
|
50
|
-
SubformMagicService.routerContainers.push(this);
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
this.initializeComponent();
|
54
|
-
}
|
55
|
-
}
|
56
|
-
insertRouteEvent(currentActiveRoute) {
|
57
|
-
let guiEvent = getGuiEventObj('RouterNavigate', null, 0);
|
58
|
-
guiEvent.RouterPath = currentActiveRoute.snapshot.routeConfig.path;
|
59
|
-
if (currentActiveRoute.snapshot.outlet !== 'primary')
|
60
|
-
guiEvent.RouterOutletName = currentActiveRoute.snapshot.outlet;
|
61
|
-
let calcRouterPath = currentActiveRoute.routeConfig.path;
|
62
|
-
if (calcRouterPath.length > 0) {
|
63
|
-
let routerPath = calcRouterPath;
|
64
|
-
let tokens = StrUtil.tokenize(routerPath, "/:");
|
65
|
-
guiEvent.RouterPath = tokens[0];
|
66
|
-
guiEvent.RouterParams = new List();
|
67
|
-
for (let i = 1; i < tokens.length; i++) {
|
68
|
-
guiEvent.RouterParams.push(currentActiveRoute.snapshot.params[tokens[i]]);
|
69
|
-
}
|
70
|
-
}
|
71
|
-
this.containerTaskService.insertEvent(guiEvent);
|
72
|
-
}
|
73
|
-
initializeComponent() {
|
74
|
-
let subformMagicService = SubformMagicService.currentCallerMgSubformServiceRef;
|
75
|
-
if (subformMagicService.currentRouteDefinition !== null) {
|
76
|
-
let comp = this.componentList.getComponent(subformMagicService.currentRouteDefinition.formName);
|
77
|
-
this.componentRef = this.viewContainerRef.createComponent(comp);
|
78
|
-
Object.assign(this.componentRef.instance, subformMagicService.currentRouteDefinition.parameters);
|
79
|
-
let myActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
|
80
|
-
let routeParams = StrUtil.tokenize(myActiveRoute.snapshot.routeConfig.path, "/:");
|
81
|
-
subformMagicService.routesDict[myActiveRoute.snapshot.outlet] = routeParams[0];
|
82
|
-
this.parentMgSubformService = subformMagicService;
|
83
|
-
subformMagicService.currentRouteDefinition = null;
|
84
|
-
SubformMagicService.currentCallerMgSubformServiceRef = null;
|
85
|
-
let ignoreParamChange = true;
|
86
|
-
myActiveRoute.paramMap.subscribe(params => {
|
87
|
-
if (!ignoreParamChange)
|
88
|
-
this.insertRouteEvent(myActiveRoute);
|
89
|
-
ignoreParamChange = false;
|
90
|
-
});
|
91
|
-
this.parentMgSubformService.refreshView();
|
92
|
-
this.routerCommandsMagicService.ExecuteNextCommand();
|
93
|
-
}
|
94
|
-
}
|
95
|
-
ngOnDestroy() {
|
96
|
-
if (this.componentRef != null) {
|
97
|
-
this.componentRef.instance.task.close();
|
98
|
-
let currentActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
|
99
|
-
this.parentMgSubformService.routesDict[currentActiveRoute.outlet] = "";
|
100
|
-
RouterContainerMagicComponent.lastRoute = this.router.url;
|
101
|
-
}
|
102
|
-
}
|
103
|
-
static ɵfac = function RouterContainerMagicComponent_Factory(t) { return new (t || RouterContainerMagicComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.EngineMagicService), i0.ɵɵdirectiveInject(i3.TaskMagicService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i4.ComponentListMagicService), i0.ɵɵdirectiveInject(i5.CommandsCollectorMagicService), i0.ɵɵdirectiveInject(i6.RouterCommandsMagicService)); };
|
104
|
-
static ɵcmp = i0.ɵɵdefineComponent({ type: RouterContainerMagicComponent, selectors: [["magic-route-outlet"]], decls: 0, vars: 0, template: function RouterContainerMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
105
|
-
}
|
106
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouterContainerMagicComponent, [{
|
107
|
-
type: Component,
|
108
|
-
args: [{
|
109
|
-
selector: 'magic-route-outlet',
|
110
|
-
template: `
|
111
|
-
`
|
112
|
-
}]
|
113
|
-
}], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.EngineMagicService }, { type: i3.TaskMagicService }, { type: i0.ViewContainerRef }, { type: i4.ComponentListMagicService }, { type: i5.CommandsCollectorMagicService }, { type: i6.RouterCommandsMagicService }], null); })();
|
114
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RouterContainerMagicComponent, { className: "RouterContainerMagicComponent", filePath: "src\\ui\\router-container.magic.component.ts", lineNumber: 22 }); })();
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWNvbnRhaW5lci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9yb3V0ZXItY29udGFpbmVyLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBVW5FLE1BQU0sT0FBTyw2QkFBNkI7SUFtQnBCO0lBQ0U7SUFDQTtJQUNGO0lBQ0E7SUFDQTtJQUNFO0lBQ0E7SUF6QmQsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixzQkFBc0IsR0FBd0IsSUFBSSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxTQUFTLEdBQVcsR0FBRyxDQUFDO0lBRXZDLE1BQU0sS0FBSyxTQUFTO1FBQ2xCLE9BQU8sNkJBQTZCLENBQUMs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QUksQ0FBQyxZQUFZLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVsRSxJQUFJLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUV2RSw2QkFBNkIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDM0Q7SUFDSCxDQUFDO3VGQTdIVSw2QkFBNkI7K0NBQTdCLDZCQUE2Qjs7aUZBQTdCLDZCQUE2QjtjQUx6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFO0dBQ1Q7YUFDRjs7a0ZBQ1ksNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50IH0gZnJvbSAnLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW5naW5lTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW5naW5lLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50IH0gZnJvbSAnQG1hZ2ljLXhwYS9lbmdpbmUnO1xyXG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBTdHJVdGlsIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQtbGlzdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViZm9ybU1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N1YmZvcm0ubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1hbmRzQ29sbGVjdG9yTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJDb21tYW5kc01hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JvdXRlci1jb21tYW5kcy5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vY2sgY29tcG9uZW50LCBpbXBsZW1lbnRzIHJvdXRpbmcgYnkgY29ubmVjdGluZyB0aGUgcmVxdWVzdGVkIFVSTCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBNYWdpYyB0YXNrXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXJvdXRlLW91dGxldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJDb250YWluZXJNYWdpY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWYgPSBudWxsO1xyXG4gIHByaXZhdGUgcGFyZW50TWdTdWJmb3JtU2VydmljZTogU3ViZm9ybU1hZ2ljU2VydmljZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbGFzdFJvdXRlOiBzdHJpbmcgPSBcIi9cIjtcclxuXHJcbiAgc3RhdGljIGdldCBMYXN0Um91dGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBSb3V0ZXJDb250YWluZXJNYWdpY0NvbXBvbmVudC5sYXN0Um91dGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAqIEBwYXJhbSBhY3RpdmF0ZWRSb3V0ZVxyXG4gICAqIEBwYXJhbSBtYWdpY1xyXG4gICAqIEBwYXJhbSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgKiBAcGFyYW0gdmlld0NvbnRhaW5lclJlZlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRMaXN0XHJcbiAgICogQHBhcmFtIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgbWFnaWM6IEVuZ2luZU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbnRhaW5lclRhc2tTZXJ2aWNlOiBUYXNrTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudExpc3Q6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvcjogQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHJvdXRlckNvbW1hbmRzTWFnaWNTZXJ2aWNlOiBSb3V0ZXJDb21tYW5kc01hZ2ljU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb25cclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBzdWJmb3JtTWFnaWNTZXJ2aWNlOiBTdWJmb3JtTWFnaWNTZXJ2aWNlID0gU3ViZm9ybU1hZ2ljU2VydmljZS5jdXJyZW50Q2FsbGVyTWdTdWJmb3JtU2VydmljZVJlZjtcclxuXHJcbiAgICBsZXQgY3VycmVudEFjdGl2ZVJvdXRlID0gU3ViZm9ybU1hZ2ljU2VydmljZS5nZXRSZWxhdGl2ZVJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICAgIFJvdXRlckNvbnRhaW5lck1hZ2ljQ29tcG9uZW50Lmxhc3RSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICBpZiAoc3ViZm9ybU1hZ2ljU2VydmljZSA9PSBudWxsIHx8IHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmluc2VydFJvdXRlRXZlbnQoY3VycmVudEFjdGl2ZVJvdXRlKTtcclxuXHJcbiAgICAgIFN1YmZvcm1NYWdpY1NlcnZpY2Uucm91dGVyQ29udGFpbmVycy5wdXNoKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnNlcnRSb3V0ZUV2ZW50KGN1cnJlbnRBY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooJ1JvdXRlck5hdmlnYXRlJywgbnVsbCwgMCk7XHJcbiAgICBndWlFdmVudC5Sb3V0ZXJQYXRoID0gY3VycmVudEFjdGl2ZVJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGg7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRBY3RpdmVSb3V0ZS5zbmFwc2hvdC5vdXRsZXQgIT09ICdwcmltYXJ5JylcclxuICAgICAgZ3VpRXZlbnQuUm91dGVyT3V0bGV0TmFtZSA9IGN1cnJlbnRBY3RpdmVSb3V0ZS5zbmFwc2hvdC5vdXRsZXQ7XHJcblxyXG5cclxuICAgIC8vIGlmIHRoaXMgaXMgTG9hZE9uRGVtYW5kTW9kdWxlTWFnaWNDb21wb25lbnQgaXQncyBtZWFuIHRoYXQgdGhpcyBpcyBsb2FkIG9uIGRlbWFuZCBtb2R1bGUgYW5kIHdlXHJcbiAgICAvLyBuZWVkIHRvIHRha2UgdGhlIHBhdGggZm9ybSByb3V0ZUNvbmZpZy5wYXRoXHJcblxyXG4gICAgbGV0IGNhbGNSb3V0ZXJQYXRoOiBzdHJpbmcgPSBjdXJyZW50QWN0aXZlUm91dGUucm91dGVDb25maWcucGF0aDtcclxuICAgIC8vIGFkZCB0aGUgUm91dGVyUGF0aCBvbmx5IGlmIGV4aXN0XHJcbiAgICBpZiAoY2FsY1JvdXRlclBhdGgubGVuZ3RoID4gMClcclxuICAgIHtcclxuICAgICAgbGV0IHJvdXRlclBhdGg6IHN0cmluZyA9IGNhbGNSb3V0ZXJQYXRoO1xyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocm91dGVyUGF0aCwgXCIvOlwiKTtcclxuICAgICAgZ3VpRXZlbnQuUm91dGVyUGF0aCA9IHRva2Vuc1swXTtcclxuXHJcbiAgICAgIGd1aUV2ZW50LlJvdXRlclBhcmFtcyA9IG5ldyBMaXN0KCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgZ3VpRXZlbnQuUm91dGVyUGFyYW1zLnB1c2goY3VycmVudEFjdGl2ZVJvdXRlLnNuYXBzaG90LnBhcmFtc1t0b2tlbnNbaV1dKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udGFpbmVyVGFza1NlcnZpY2UuaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUNvbXBvbmVudCgpIHtcclxuICAgIC8vIHJlLWluaXQgc3ViZm9ybU1hZ2ljU2VydmljZSAgc2luY2UgaXQgbWF5IGNoYW5nZSBhZnRlciBleGVjdXRpbmcgXCJSb3V0ZXJOYXZpZ2F0ZVwiIGV2ZW50LlxyXG4gICAgbGV0IHN1YmZvcm1NYWdpY1NlcnZpY2U6IFN1YmZvcm1NYWdpY1NlcnZpY2UgPSBTdWJmb3JtTWFnaWNTZXJ2aWNlLmN1cnJlbnRDYWxsZXJNZ1N1YmZvcm1TZXJ2aWNlUmVmO1xyXG4gICAgaWYgKHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgY29tcCA9IHRoaXMuY29tcG9uZW50TGlzdC5nZXRDb21wb25lbnQoc3ViZm9ybU1hZ2ljU2VydmljZS5jdXJyZW50Um91dGVEZWZpbml0aW9uLmZvcm1OYW1lKTtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXApO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBzdWJmb3JtTWFnaWNTZXJ2aWNlLmN1cnJlbnRSb3V0ZURlZmluaXRpb24ucGFyYW1ldGVycyk7XHJcblxyXG5cclxuICAgICAgbGV0IG15QWN0aXZlUm91dGUgPSBTdWJmb3JtTWFnaWNTZXJ2aWNlLmdldFJlbGF0aXZlUm91dGUodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XHJcblxyXG4gICAgICBsZXQgcm91dGVQYXJhbXM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShteUFjdGl2ZVJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsIFwiLzpcIik7XHJcbiAgICAgIHN1YmZvcm1NYWdpY1NlcnZpY2Uucm91dGVzRGljdFtteUFjdGl2ZVJvdXRlLnNuYXBzaG90Lm91dGxldF0gPSByb3V0ZVBhcmFtc1swXTtcclxuXHJcbiAgICAgIHRoaXMucGFyZW50TWdTdWJmb3JtU2VydmljZSA9IHN1YmZvcm1NYWdpY1NlcnZpY2U7XHJcbiAgICAgIHN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudFJvdXRlRGVmaW5pdGlvbiA9IG51bGw7XHJcbiAgICAgIFN1YmZvcm1NYWdpY1NlcnZpY2UuY3VycmVudENhbGxlck1nU3ViZm9ybVNlcnZpY2VSZWYgPSBudWxsO1xyXG5cclxuICAgICAgLy9XaGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQsIHRoZW4gYWxzbyB3ZSBnZXQgdGhlIG5vdGlmaWNhdGlvbiBmb3IgcGFyYW1NYXAgc3Vic2NyaXB0aW9uLlxyXG4gICAgICAvL0J1dCBpbiB0aGlzIGNhc2UsICB3ZSBkbyBub3QgaGF2ZSB0byByYWlzZSB0aGUgZXZlbnQsIGJlY2F1c2UgbWFnaWMgZW5naW5lIGl0c2VsZiBoYXMgIGluaXRpYXRlZCB0aGUgcm91dGUgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLlxyXG4gICAgICAvL1NvLCBjb250cm9sIGl0IHZpYSBpZ25vcmVQYXJhbUNoYW5nZSBmbGFnLlxyXG4gICAgICBsZXQgaWdub3JlUGFyYW1DaGFuZ2UgPSB0cnVlO1xyXG4gICAgICBteUFjdGl2ZVJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgIGlmICghaWdub3JlUGFyYW1DaGFuZ2UpXHJcbiAgICAgICAgICB0aGlzLmluc2VydFJvdXRlRXZlbnQobXlBY3RpdmVSb3V0ZSk7XHJcbiAgICAgICAgaWdub3JlUGFyYW1DaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnBhcmVudE1nU3ViZm9ybVNlcnZpY2UucmVmcmVzaFZpZXcoKTtcclxuXHJcbiAgICAgIHRoaXMucm91dGVyQ29tbWFuZHNNYWdpY1NlcnZpY2UuRXhlY3V0ZU5leHRDb21tYW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhbnVwXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBUT0RPIFJvdXRpbmc6IENhbGwgY2xvc2UoKSBvbmx5IGlmIHRoZSB0YXNrIGlzIG5vdCBhbHJlYWR5IGNsb3NlZC5cclxuICAgIC8vIFRhc2sgY2FuIGJlIGNsb3NlZCB3aGVuIGEgcm91dGVyIGlzIG92ZXJsYXllZCBieSBhbm90aGVyIHRhc2sgdmlhIGNhbGwgb3BlcmF0aW9uLlxyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IG51bGwpXHJcbiAgICB7XHJcbiAgICAgICg8VGFza0Jhc2VNYWdpY0NvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkudGFzay5jbG9zZSgpO1xyXG5cclxuICAgICAgbGV0IGN1cnJlbnRBY3RpdmVSb3V0ZSA9IFN1YmZvcm1NYWdpY1NlcnZpY2UuZ2V0UmVsYXRpdmVSb3V0ZSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcclxuICAgICAgdGhpcy5wYXJlbnRNZ1N1YmZvcm1TZXJ2aWNlLnJvdXRlc0RpY3RbY3VycmVudEFjdGl2ZVJvdXRlLm91dGxldF0gPSBcIlwiO1xyXG5cclxuICAgICAgUm91dGVyQ29udGFpbmVyTWFnaWNDb21wb25lbnQubGFzdFJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import { Component, Input, ViewContainerRef } from "@angular/core";
|
2
|
-
import { SubformMagicService } from "../services/subform.magic.service";
|
3
|
-
import { isNullOrUndefined } from '@magic-xpa/mscorelib';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../services/subform.magic.service";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "ng-dynamic-component";
|
8
|
-
function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
|
9
|
-
i0.ɵɵelement(0, "ndc-dynamic", 1);
|
10
|
-
} if (rf & 2) {
|
11
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
12
|
-
i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
|
13
|
-
} }
|
14
|
-
export class SubformMagicComponent {
|
15
|
-
vcRef;
|
16
|
-
mgSub;
|
17
|
-
id;
|
18
|
-
set magic(val) { this.id = val; }
|
19
|
-
;
|
20
|
-
component = null;
|
21
|
-
constructor(vcRef, mgSub) {
|
22
|
-
this.vcRef = vcRef;
|
23
|
-
this.mgSub = mgSub;
|
24
|
-
this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
|
25
|
-
}
|
26
|
-
get Component() {
|
27
|
-
return this.mgSub.mgGetComp(this.id);
|
28
|
-
}
|
29
|
-
get Parameters() {
|
30
|
-
return this.mgSub.mgGetParameters(this.id);
|
31
|
-
}
|
32
|
-
static ɵfac = function SubformMagicComponent_Factory(t) { return new (t || SubformMagicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.SubformMagicService)); };
|
33
|
-
static ɵcmp = i0.ɵɵdefineComponent({ type: SubformMagicComponent, selectors: [["magic-subform"]], inputs: { magic: "magic" }, decls: 1, vars: 1, consts: [[3, "ndcDynamicComponent", "ndcDynamicInputs", 4, "ngIf"], [3, "ndcDynamicComponent", "ndcDynamicInputs"]], template: function SubformMagicComponent_Template(rf, ctx) { if (rf & 1) {
|
34
|
-
i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
|
35
|
-
} if (rf & 2) {
|
36
|
-
i0.ɵɵproperty("ngIf", ctx.Component);
|
37
|
-
} }, dependencies: [i2.NgIf, i3.DynamicIoDirective, i3.DynamicComponent], encapsulation: 2 });
|
38
|
-
}
|
39
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
|
40
|
-
type: Component,
|
41
|
-
args: [{
|
42
|
-
selector: 'magic-subform',
|
43
|
-
template: `
|
44
|
-
<ndc-dynamic
|
45
|
-
*ngIf="Component"
|
46
|
-
[ndcDynamicComponent]="Component"
|
47
|
-
[ndcDynamicInputs]="Parameters">
|
48
|
-
</ndc-dynamic>
|
49
|
-
`
|
50
|
-
}]
|
51
|
-
}], () => [{ type: i0.ViewContainerRef }, { type: i1.SubformMagicService }], { magic: [{
|
52
|
-
type: Input,
|
53
|
-
args: ['magic']
|
54
|
-
}] }); })();
|
55
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubformMagicComponent, { className: "SubformMagicComponent", filePath: "src\\ui\\subform.magic.component.ts", lineNumber: 20 }); })();
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZm9ybS5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9zdWJmb3JtLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0lBUXJELGlDQUljOzs7SUFEWixBQURBLHNEQUFpQyx1Q0FDRjs7QUFLckMsTUFBTSxPQUFPLHFCQUFxQjtJQW1CWjtJQUFtQztJQWZ2RCxFQUFFLENBQVU7SUFLWixJQUFvQixLQUFLLENBQUMsR0FBRyxJQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFLakQsU0FBUyxHQUEyQixJQUFJLENBQUM7SUFLekMsWUFBb0IsS0FBdUIsRUFBWSxLQUEwQjtRQUE3RCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUFZLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRS9FLElBQUksQ0FBQyxTQUFTLEdBQUssQ0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUUsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUtELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytFQXBDVSxxQkFBcUI7K0NBQXJCLHFCQUFxQjtZQVI5QixzRkFHa0M7O1lBRi9CLG9DQUFlOzs7aUZBT1QscUJBQXFCO2NBWGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFLOzs7Ozs7Q0FNZDthQUFDO21GQVlvQixLQUFLO2tCQUF4QixLQUFLO21CQUFDLE9BQU87O2tGQVRILHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUYXNrQmFzZU1hZ2ljQ29tcG9uZW50fSBmcm9tIFwiLi90YXNrLWJhc2UubWFnaWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN1YmZvcm1NYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc3ViZm9ybS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBNYWdpYyBzdWJmb3JtXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXN1YmZvcm0nLFxyXG4gIHRlbXBsYXRlOiAgICBgXHJcbiAgICA8bmRjLWR5bmFtaWNcclxuICAgICAgKm5nSWY9XCJDb21wb25lbnRcIiAgXHJcbiAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIkNvbXBvbmVudFwiIFxyXG4gICAgICBbbmRjRHluYW1pY0lucHV0c109XCJQYXJhbWV0ZXJzXCI+XHJcbiAgICA8L25kYy1keW5hbWljPlxyXG5gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3ViZm9ybU1hZ2ljQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgICogQGlnbm9yZVxyXG4gICAgKi9cclxuICBpZCA6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnbWFnaWMnKSBzZXQgbWFnaWModmFsKSB7dGhpcy5pZCA9IHZhbDsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudDogVGFza0Jhc2VNYWdpY0NvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgbWdTdWI6IFN1YmZvcm1NYWdpY1NlcnZpY2UpIHtcclxuICAgIC8vIEZvciBhbmd1bGFyIDEzIC0gZmluZCB0aGUgY29tcG9uZW50IGZyb20gX2hvc3RMVmlld1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSAgICgoPGFueT50aGlzLnZjUmVmKS5faG9zdExWaWV3KS5maW5kKHYgPT4gIWlzTnVsbE9yVW5kZWZpbmVkKCh2IGFzIFRhc2tCYXNlTWFnaWNDb21wb25lbnQpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgZ2V0IENvbXBvbmVudCgpOiBDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubWdTdWIubWdHZXRDb21wKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGdldCBQYXJhbWV0ZXJzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZ1N1Yi5tZ0dldFBhcmFtZXRlcnModGhpcy5pZCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
@@ -1,91 +0,0 @@
|
|
1
|
-
import { ChangeDetectorRef, Component, Input } from '@angular/core';
|
2
|
-
import { MagicProperties } from "@magic-xpa/utils";
|
3
|
-
import { isNullOrUndefined } from "@magic-xpa/mscorelib";
|
4
|
-
import { TaskMagicService } from "../services/task.magics.service";
|
5
|
-
import { SubformMagicService } from "../services/subform.magic.service";
|
6
|
-
import { TableMagicService } from "../services/table.magic.service";
|
7
|
-
import { MagicServices } from "../services/magic.services";
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "../services/magic.services";
|
10
|
-
export class TaskBaseMagicComponent {
|
11
|
-
ref;
|
12
|
-
magicServices;
|
13
|
-
taskIdParam;
|
14
|
-
taskDescription;
|
15
|
-
magicProperties = MagicProperties;
|
16
|
-
constructor(ref, magicServices) {
|
17
|
-
this.ref = ref;
|
18
|
-
this.magicServices = magicServices;
|
19
|
-
}
|
20
|
-
get task() {
|
21
|
-
return this.magicServices.task;
|
22
|
-
}
|
23
|
-
get mgSub() {
|
24
|
-
return this.magicServices.subformService;
|
25
|
-
}
|
26
|
-
get tableService() {
|
27
|
-
return this.magicServices.tableService;
|
28
|
-
}
|
29
|
-
get mg() {
|
30
|
-
return this.magicServices.mgAccessorService;
|
31
|
-
}
|
32
|
-
get taskId() {
|
33
|
-
return this.task.taskId;
|
34
|
-
}
|
35
|
-
get screenFormGroup() {
|
36
|
-
return this.task.ScreenModeControls;
|
37
|
-
}
|
38
|
-
ngOnInit() {
|
39
|
-
this.task.detectChanges.pipe().subscribe(c => {
|
40
|
-
this.ref.detectChanges();
|
41
|
-
});
|
42
|
-
this.task.initTask(this.taskIdParam, this.taskDescription);
|
43
|
-
this.createFormControlsAccessor(this.screenFormGroup);
|
44
|
-
this.setInputDateFormat();
|
45
|
-
this.task.customPropertiesSubject.pipe().subscribe(property => {
|
46
|
-
this.PropertyChanged(property.propertyName, property.rowId, property.value);
|
47
|
-
});
|
48
|
-
this.task.recordsCountChangeSubject.pipe().subscribe(value => {
|
49
|
-
this.RecordsCountChanged(value);
|
50
|
-
});
|
51
|
-
this.task.mgLoadSubject.pipe().subscribe(value => {
|
52
|
-
this.mgOnLoad();
|
53
|
-
});
|
54
|
-
}
|
55
|
-
createFormControlsAccessor(formGroup) { }
|
56
|
-
setInputDateFormat() { }
|
57
|
-
PropertyChanged(propertyName, rowId, value) {
|
58
|
-
}
|
59
|
-
RecordsCountChanged(recordsCount) {
|
60
|
-
}
|
61
|
-
mgOnLoad() {
|
62
|
-
}
|
63
|
-
ngAfterViewInit() {
|
64
|
-
this.mgSub.init();
|
65
|
-
}
|
66
|
-
ngAfterContentChecked() {
|
67
|
-
if (!isNullOrUndefined(this.tableService.getPageSize()) && this.task.oldPageSize != this.tableService.getPageSize()) {
|
68
|
-
this.task.resize(this.tableService.getPageSize(), 0);
|
69
|
-
this.task.oldPageSize = this.tableService.getPageSize();
|
70
|
-
}
|
71
|
-
}
|
72
|
-
ngOnDestroy() {
|
73
|
-
this.task.dispose();
|
74
|
-
}
|
75
|
-
static ɵfac = function TaskBaseMagicComponent_Factory(t) { return new (t || TaskBaseMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MagicServices)); };
|
76
|
-
static ɵcmp = i0.ɵɵdefineComponent({ type: TaskBaseMagicComponent, selectors: [["task-magic"]], inputs: { taskIdParam: "taskIdParam", taskDescription: "taskDescription" }, features: [i0.ɵɵProvidersFeature([TaskMagicService, SubformMagicService, TableMagicService])], decls: 0, vars: 0, template: function TaskBaseMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
77
|
-
}
|
78
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskBaseMagicComponent, [{
|
79
|
-
type: Component,
|
80
|
-
args: [{
|
81
|
-
selector: 'task-magic',
|
82
|
-
providers: [TaskMagicService, SubformMagicService, TableMagicService],
|
83
|
-
template: ''
|
84
|
-
}]
|
85
|
-
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.MagicServices }], { taskIdParam: [{
|
86
|
-
type: Input
|
87
|
-
}], taskDescription: [{
|
88
|
-
type: Input
|
89
|
-
}] }); })();
|
90
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskBaseMagicComponent, { className: "TaskBaseMagicComponent", filePath: "src\\ui\\task-base.magic.component.ts", lineNumber: 20 }); })();
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYXNlLm1hZ2ljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL3Rhc2stYmFzZS5tYWdpYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUUsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFXM0QsTUFBTSxPQUFPLHNCQUFzQjtJQXFCWDtJQUNIO0lBakJWLFdBQVcsQ0FBUztJQUlwQixlQUFlLENBQVM7SUFLakMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQU9sQyxZQUFzQixHQUFzQixFQUN6QixhQUE0QjtRQUR6QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUMxQyxDQUFDO0lBTU4sSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBTUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUMzQyxDQUFDO0lBTUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBTUQsSUFB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QVc7a0JBQW5CLEtBQUs7WUFJRyxlQUFlO2tCQUF2QixLQUFLOztrRkFUSyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hZ2ljUHJvcGVydGllc30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3ViZm9ybU1hZ2ljU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zdWJmb3JtLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFibGVNYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdGFibGUubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNYWdpY1NlcnZpY2VzIH0gZnJvbSBcIi4uL3NlcnZpY2VzL21hZ2ljLnNlcnZpY2VzXCI7XHJcbmltcG9ydCB7IEFjY2Vzc29yTWFnaWNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNvbXBvbmVudCByZXByZXNlbnRpbmcgYSBNYWdpYyB0YXNrXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Rhc2stbWFnaWMnLFxyXG4gIHByb3ZpZGVyczogW1Rhc2tNYWdpY1NlcnZpY2UsIFN1YmZvcm1NYWdpY1NlcnZpY2UsIFRhYmxlTWFnaWNTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhc2tCYXNlTWFnaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkIG9mIHRhc2ssIHVzZWQgZm9yIGluaXRpYWxpemluZyB0aGUgdGFzayBzZXJ2aWNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFza0lkUGFyYW06IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBtYWdpY1Byb3BlcnRpZXMgPSBNYWdpY1Byb3BlcnRpZXM7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJlZiBjaGFuZ2VzLWRldGVjdG9yIG9iamVjdFxyXG4gICAqIEBwYXJhbSBtYWdpY1NlcnZpY2VzIEFjY2VzcyBwb2ludCBmb3IgYWxsIE1hZ2ljIHNlcnZpY2VzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHVibGljIG1hZ2ljU2VydmljZXM6IE1hZ2ljU2VydmljZXNcclxuICApIHsgIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgTWFnaWMgdGFzayBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgdGFzaygpOiBUYXNrTWFnaWNTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLm1hZ2ljU2VydmljZXMudGFzaztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIE1hZ2ljIHN1YmZvcm0gc2VydmljZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0IG1nU3ViKCk6IFN1YmZvcm1NYWdpY1NlcnZpY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNTZXJ2aWNlcy5zdWJmb3JtU2VydmljZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIE1hZ2ljIHRhYmxlIHNlcnZpY2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldCB0YWJsZVNlcnZpY2UoKTogVGFibGVNYWdpY1NlcnZpY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNTZXJ2aWNlcy50YWJsZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBNYWdpYyBhY2Nlc3NvciBzZXJ2aWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXQgbWcoKTogQWNjZXNzb3JNYWdpY1NlcnZpY2UgIHtcclxuICAgIHJldHVybiB0aGlzLm1hZ2ljU2VydmljZXMubWdBY2Nlc3NvclNlcnZpY2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGFzayBJZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0IHRhc2tJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2sudGFza0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgRm9ybUdyb3VwIGZvciBzY3JlZW4tbW9kZSBmb3Jtc1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0IHNjcmVlbkZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5TY3JlZW5Nb2RlQ29udHJvbHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLnRhc2suZGV0ZWN0Q2hhbmdlcy5waXBlKCkuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGFzay5pbml0VGFzayh0aGlzLnRhc2tJZFBhcmFtLCB0aGlzLnRhc2tEZXNjcmlwdGlvbik7XHJcblxyXG4gICAgdGhpcy5jcmVhdGVGb3JtQ29udHJvbHNBY2Nlc3Nvcih0aGlzLnNjcmVlbkZvcm1Hcm91cCk7XHJcbiAgICB0aGlzLnNldElucHV0RGF0ZUZvcm1hdCgpO1xyXG5cclxuICAgIC8vIHN1YmNyaWJlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjaGFuZ2VzXHJcbiAgICB0aGlzLnRhc2suY3VzdG9tUHJvcGVydGllc1N1YmplY3QucGlwZSgpLnN1YnNjcmliZShwcm9wZXJ0eSA9PiB7XHJcbiAgICAgIHRoaXMuUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5LnByb3BlcnR5TmFtZSwgcHJvcGVydHkucm93SWQsIHByb3BlcnR5LnZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHN1YmNyaWJlIHRvIHJlY29yZHMgY291bnQgY2hhbmdlc1xyXG4gICAgdGhpcy50YXNrLnJlY29yZHNDb3VudENoYW5nZVN1YmplY3QucGlwZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMuUmVjb3Jkc0NvdW50Q2hhbmdlZCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBzdWJjcmliZSB0byBtZ0xvYWQgY2hhbmdlXHJcbiAgICB0aGlzLnRhc2subWdMb2FkU3ViamVjdC5waXBlKCkuc3Vic2NyaWJlKHZhbHVlID0+e1xyXG4gICAgICB0aGlzLm1nT25Mb2FkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjcmVhdGVGb3JtQ29udHJvbHNBY2Nlc3Nvcihmb3JtR3JvdXA6IEZvcm1Hcm91cCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHNldElucHV0RGF0ZUZvcm1hdCAoKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgYW55IGN1c3RvbSBwcm9wZXJ0eSBpcyB1cGRhdGVkIGluIE1hZ2ljXHJcbiAgICogcHJvcGVydHlOYW1lIDogbmFtZSBvZiBwcm9wZXJ0eSB3aGljaCBpcyB1cGRhdGVkLiBUaGUgZm9ybWF0IGlzIDxjb250cm9sbmFtZT5+PHByb3BlcnR5bmFtZT5cclxuICAgKiByb3dJZCA6IHJvdyBudW1iZXIgb2YgdGhlIHVwZGF0ZWQgcHJvcGVydHkgZm9yIGNvbnRyb2xzIGluIHRhYmxlIGNvbnRyb2wgKDAgZm9yIGNvbnRyb2xzIG91dHNpZGUgdGFibGUpXHJcbiAgICogdmFsdWUgOiB1cGRhdGVkIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eVxyXG4gICAqIEByZXR1cm5zIDogdm9pZFxyXG4gICAqIFRvIHVzZSB0aGUgbWV0aG9kIG92ZXJyaWRlIGl0IGluIHlvdXIgY29tcG9uZW50IGFuZCBjaGVjayB0aGUgcHJvcGVydHkgbmFtZSBhbmQgd3JpdGUgeW91IGNvZGUgLi5mb3IgZWdcclxuICAgKiBpZihwcm9wZXJ0eU5hbWUgPT0gJ2NvbnRyb2xuYW1lfnByb3BlcnR5TmFtZScpIHsvLyB5b3VyIGNvZGV9XHJcbiAgICogIGVsc2UgeyAvLyB5b3VyIGNvZGV9XHJcbiAgICovXHJcbiAgUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5TmFtZTpzdHJpbmcsIHJvd0lkIDogbnVtYmVyLCB2YWx1ZSA6IGFueSkgOiB2b2lkIHtcclxuICAgIC8vIGludGVudGlvbmFsbHkgbGVmdCBibGFuayBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgaW4gdGhlIGRlcml2ZWQgY2xhc3NcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY29yZHMgY291bnQgY2hhbmdlIHN1YmplY3QgaXMgc3Vic2NyaWJlZCB0byBjaGFuZ2UgaW4gaXRzIHZhbHVlLiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZFxyXG4gICAqIGFzIHRoZSB2YWx1ZSBvZiByZWNvcmRzIGNvdW50IGlzIHJlY2VpdmVkIGF0IGZyb20gc2VydmVyLlxyXG4gICAqIEByZXR1cm5zIDogdm9pZFxyXG4gICAqIFRvIHVzZSB0aGUgbWV0aG9kIG92ZXJyaWRlIGl0IGluIHlvdXIgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIFJlY29yZHNDb3VudENoYW5nZWQocmVjb3Jkc0NvdW50IDogbnVtYmVyKSA6IHZvaWQge1xyXG4gICAgLy8gaW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rIGJlY2F1c2UgdGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBpbiB0aGUgZGVyaXZlZCBjbGFzc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb25jZSBlbmdpbmUgaW5mb3JtcyBVSSBhYm91dCBsb2FkaW5nIG9mIGZpcnN0IHNldCBvZiBkYXRhIGlzIHNlbnQgdG8gY2xpZW50XHJcbiAgICogYW5kIGNsaWVudCBoYXMgcmVhY2hlZCBpdHMgZmlyc3QgaWRsZSB0aW1lLlxyXG4gICAqIEByZXR1cm5zIDogdm9pZFxyXG4gICAqIFRvIHVzZSB0aGUgbWV0aG9kIG92ZXJyaWRlIGl0IGluIHlvdXIgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIG1nT25Mb2FkKCkgOiB2b2lkIHtcclxuICAgIC8vIGludGVudGlvbmFsbHkgbGVmdCBibGFuayBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgaW4gdGhlIGRlcml2ZWQgY2xhc3NcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tZ1N1Yi5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSA6IHZvaWQge1xyXG4gICAgaWYoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFibGVTZXJ2aWNlLmdldFBhZ2VTaXplKCkpICYmIHRoaXMudGFzay5vbGRQYWdlU2l6ZSAhPSB0aGlzLnRhYmxlU2VydmljZS5nZXRQYWdlU2l6ZSgpKSB7XHJcbiAgICAgIHRoaXMudGFzay5yZXNpemUodGhpcy50YWJsZVNlcnZpY2UuZ2V0UGFnZVNpemUoKSwgMCk7XHJcbiAgICAgIHRoaXMudGFzay5vbGRQYWdlU2l6ZSA9IHRoaXMudGFibGVTZXJ2aWNlLmdldFBhZ2VTaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFzay5kaXNwb3NlKCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
package/esm2022/src/ui/utils.mjs
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
export class utils {
|
2
|
-
static getDistance(control, x, y) {
|
3
|
-
let left = control.clientLeft, top = control.clientTop;
|
4
|
-
let dx, dy;
|
5
|
-
const right = left + control.clientWidth;
|
6
|
-
const bottom = top + control.clientHeight;
|
7
|
-
if (x < left) {
|
8
|
-
dx = left - x;
|
9
|
-
}
|
10
|
-
else if (x > right) {
|
11
|
-
dx = x - right;
|
12
|
-
}
|
13
|
-
else {
|
14
|
-
dx = 0;
|
15
|
-
}
|
16
|
-
if (y < top) {
|
17
|
-
dy = top - y;
|
18
|
-
}
|
19
|
-
else if (y > bottom) {
|
20
|
-
dy = y - bottom;
|
21
|
-
}
|
22
|
-
else {
|
23
|
-
dy = 0;
|
24
|
-
}
|
25
|
-
const ret = (dx * dx + dy * dy);
|
26
|
-
return ret;
|
27
|
-
}
|
28
|
-
static getDimentions(el) {
|
29
|
-
let xPos = 0;
|
30
|
-
let yPos = 0;
|
31
|
-
let width = el.width;
|
32
|
-
let height = el.height;
|
33
|
-
while (el) {
|
34
|
-
if (el.tagName == "BODY") {
|
35
|
-
let xScroll = el.scrollLeft || document.documentElement.scrollLeft;
|
36
|
-
let yScroll = el.scrollTop || document.documentElement.scrollTop;
|
37
|
-
xPos += (el.offsetLeft - xScroll + el.clientLeft);
|
38
|
-
yPos += (el.offsetTop - yScroll + el.clientTop);
|
39
|
-
}
|
40
|
-
else {
|
41
|
-
xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft);
|
42
|
-
yPos += (el.offsetTop - el.scrollTop + el.clientTop);
|
43
|
-
}
|
44
|
-
el = el.offsetParent;
|
45
|
-
}
|
46
|
-
return {
|
47
|
-
x: xPos,
|
48
|
-
y: yPos,
|
49
|
-
width: width,
|
50
|
-
height: height
|
51
|
-
};
|
52
|
-
}
|
53
|
-
}
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sS0FBSztJQUtoQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFFdkQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUV2RCxJQUFJLEVBQUUsRUFBRSxFQUFVLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFO1lBQ1osRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDZjthQUFNLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRTtZQUNwQixFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNoQjthQUFNO1lBQ0wsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNSO1FBRUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFO1lBQ1gsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDZDthQUFNLElBQUksQ0FBQyxHQUFHLE1BQU0sRUFBRTtZQUNyQixFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztTQUNqQjthQUFNO1lBQ0wsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNSO1FBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFLRCxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDckIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNyQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBRXZCLE9BQU8sRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRTtnQkFFeEIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztnQkFDbkUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztnQkFFakUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDakQ7aUJBQU07Z0JBRUwsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN0RDtZQUVELEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBRXRCO1FBQ0QsT0FBTztZQUNMLENBQUMsRUFBRSxJQUFJO1lBQ1AsQ0FBQyxFQUFFLElBQUk7WUFDUCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBjbGFzcyB0byBob2xkIGd1aS1yZWxhdGVkIGhlbHBlciBtZXRob2RzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbmV4cG9ydCBjbGFzcyB1dGlscyB7XHJcblxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgLy8gQ2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBjb250cm9sIGFuZCB0aGUgc3VwcGxpZWQgeCx5IGNvb3JkaW5hdGVzXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzdGF0aWMgZ2V0RGlzdGFuY2UoY29udHJvbDogRWxlbWVudCwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiBudW1iZXIge1xyXG5cclxuICAgIGxldCBsZWZ0ID0gY29udHJvbC5jbGllbnRMZWZ0LCB0b3AgPSBjb250cm9sLmNsaWVudFRvcDtcclxuXHJcbiAgICBsZXQgZHgsIGR5OiBudW1iZXI7XHJcbiAgICBjb25zdCByaWdodCA9IGxlZnQgKyBjb250cm9sLmNsaWVudFdpZHRoO1xyXG4gICAgY29uc3QgYm90dG9tID0gdG9wICsgY29udHJvbC5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgaWYgKHggPCBsZWZ0KSB7XHJcbiAgICAgIGR4ID0gbGVmdCAtIHg7XHJcbiAgICB9IGVsc2UgaWYgKHggPiByaWdodCkge1xyXG4gICAgICBkeCA9IHggLSByaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGR4ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoeSA8IHRvcCkge1xyXG4gICAgICBkeSA9IHRvcCAtIHk7XHJcbiAgICB9IGVsc2UgaWYgKHkgPiBib3R0b20pIHtcclxuICAgICAgZHkgPSB5IC0gYm90dG9tO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZHkgPSAwO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmV0ID0gKGR4ICogZHggKyBkeSAqIGR5KVxyXG4gICAgcmV0dXJuIHJldDtcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgLy9cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHN0YXRpYyBnZXREaW1lbnRpb25zKGVsKSB7XHJcbiAgICBsZXQgeFBvcyA9IDA7XHJcbiAgICBsZXQgeVBvcyA9IDA7XHJcbiAgICBsZXQgd2lkdGggPSBlbC53aWR0aDtcclxuICAgIGxldCBoZWlnaHQgPSBlbC5oZWlnaHQ7XHJcblxyXG4gICAgd2hpbGUgKGVsKSB7XHJcbiAgICAgIGlmIChlbC50YWdOYW1lID09IFwiQk9EWVwiKSB7XHJcbiAgICAgICAgLy8gZGVhbCB3aXRoIGJyb3dzZXIgcXVpcmtzIHdpdGggYm9keS93aW5kb3cvZG9jdW1lbnQgYW5kIHBhZ2Ugc2Nyb2xsXHJcbiAgICAgICAgbGV0IHhTY3JvbGwgPSBlbC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xyXG4gICAgICAgIGxldCB5U2Nyb2xsID0gZWwuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XHJcblxyXG4gICAgICAgIHhQb3MgKz0gKGVsLm9mZnNldExlZnQgLSB4U2Nyb2xsICsgZWwuY2xpZW50TGVmdCk7XHJcbiAgICAgICAgeVBvcyArPSAoZWwub2Zmc2V0VG9wIC0geVNjcm9sbCArIGVsLmNsaWVudFRvcCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gZm9yIGFsbCBvdGhlciBub24tQk9EWSBlbGVtZW50c1xyXG4gICAgICAgIHhQb3MgKz0gKGVsLm9mZnNldExlZnQgLSBlbC5zY3JvbGxMZWZ0ICsgZWwuY2xpZW50TGVmdCk7XHJcbiAgICAgICAgeVBvcyArPSAoZWwub2Zmc2V0VG9wIC0gZWwuc2Nyb2xsVG9wICsgZWwuY2xpZW50VG9wKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQ7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeDogeFBvcyxcclxuICAgICAgeTogeVBvcyxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodFxyXG4gICAgfTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|