@magic-xpa/angular 4.801.0-dev481.243 → 4.801.0-dev481.249
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +57 -0
- package/{esm2015/magic-xpa-angular.js → esm2020/magic-xpa-angular.mjs} +0 -0
- package/{esm2015/src/controls.metadata.model.js → esm2020/src/controls.metadata.model.mjs} +0 -0
- package/{esm2015/src/interfaces/sub-form-definition.iterface.js → esm2020/src/interfaces/sub-form-definition.iterface.mjs} +1 -0
- package/esm2020/src/magic.core.module.mjs +157 -0
- package/{esm2015/src/services/ISubformMagicService.js → esm2020/src/services/ISubformMagicService.mjs} +1 -0
- package/esm2020/src/services/OverlayWindowService.mjs +208 -0
- package/{esm2015/src/services/StylesMapManager.js → esm2020/src/services/StylesMapManager.mjs} +0 -0
- package/{esm2015/src/services/accessor.magic.service.js → esm2020/src/services/accessor.magic.service.mjs} +2 -2
- package/{esm2015/src/services/commands-collector.magic.service.js → esm2020/src/services/commands-collector.magic.service.mjs} +7 -4
- package/esm2020/src/services/component-list.magic.service.mjs +46 -0
- package/{esm2015/src/services/confirmation.components.magic.provider.js → esm2020/src/services/confirmation.components.magic.provider.mjs} +2 -2
- package/esm2020/src/services/engine.magic.service.mjs +82 -0
- package/{esm2015/src/services/exit.magic.service.js → esm2020/src/services/exit.magic.service.mjs} +2 -2
- package/esm2020/src/services/magic.lazy.loader.service.mjs +16 -0
- package/{esm2015/src/services/magic.providers.js → esm2020/src/services/magic.providers.mjs} +0 -0
- package/{esm2015/src/services/magic.services.js → esm2020/src/services/magic.services.mjs} +2 -2
- package/{esm2015/src/services/mg-date-adapter.js → esm2020/src/services/mg-date-adapter.mjs} +2 -2
- package/{esm2015/src/services/overlay.conainer.magic.provider.js → esm2020/src/services/overlay.conainer.magic.provider.mjs} +2 -2
- package/esm2020/src/services/router-commands.magic.service.mjs +28 -0
- package/{esm2015/src/services/subform.magic.service.js → esm2020/src/services/subform.magic.service.mjs} +14 -10
- package/{esm2015/src/services/table.magic.service.js → esm2020/src/services/table.magic.service.mjs} +2 -2
- package/{esm2015/src/services/task.magics.service.js → esm2020/src/services/task.magics.service.mjs} +2 -2
- package/{esm2015/src/services/title.magic.service.js → esm2020/src/services/title.magic.service.mjs} +2 -2
- package/{esm2015/src/ui/GuiInteractiveExecutor.js → esm2020/src/ui/GuiInteractiveExecutor.mjs} +0 -0
- package/{esm2015/src/ui/components/base-magic-alert.component.js → esm2020/src/ui/components/base-magic-alert.component.mjs} +2 -2
- package/{esm2015/src/ui/components/base-magic-confirm.component.js → esm2020/src/ui/components/base-magic-confirm.component.mjs} +2 -2
- package/esm2020/src/ui/components/magic-alert.component.mjs +71 -0
- package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +82 -0
- package/{esm2015/src/ui/directives/NonMagicControlDirective.js → esm2020/src/ui/directives/NonMagicControlDirective.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.js → esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/checkbox.magic.directive.js → esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/combobox.magic.directive.js → esm2020/src/ui/directives/magic/combobox.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs} +3 -4
- package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs} +3 -4
- package/{esm2015/src/ui/directives/magic/input.noformcontrol.magic.directive.js → esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/nocontrol.magic.directive.js → esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic/row.magic.directive.js → esm2020/src/ui/directives/magic/row.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/magic-focus.directive.js → esm2020/src/ui/directives/magic-focus.directive.mjs} +2 -2
- package/esm2020/src/ui/directives/magic.directive.mjs +207 -0
- package/{esm2015/src/ui/directives/magicViewContainerRef.directive.js → esm2020/src/ui/directives/magicViewContainerRef.directive.mjs} +3 -3
- package/{esm2015/src/ui/directives/mgformat.magic.directive.js → esm2020/src/ui/directives/mgformat.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/directives/range-validator.magic.directive.js → esm2020/src/ui/directives/range-validator.magic.directive.mjs} +2 -2
- package/{esm2015/src/ui/magic-confirmationBox.js → esm2020/src/ui/magic-confirmationBox.mjs} +0 -0
- package/{esm2015/src/ui/magic-modal/base-magic-overlay-container.js → esm2020/src/ui/magic-modal/base-magic-overlay-container.mjs} +0 -0
- package/{esm2015/src/ui/magic-modal/magic-modal-form.js → esm2020/src/ui/magic-modal/magic-modal-form.mjs} +0 -0
- package/{esm2015/src/ui/magic-modal/magic-modal-interface.js → esm2020/src/ui/magic-modal/magic-modal-interface.mjs} +1 -0
- package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +135 -0
- package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +165 -0
- package/esm2020/src/ui/magic-root.component.mjs +237 -0
- package/esm2020/src/ui/mgerror.magic.component.mjs +120 -0
- package/{esm2015/src/ui/pipes/date.magic.pipe.js → esm2020/src/ui/pipes/date.magic.pipe.mjs} +3 -3
- package/{esm2015/src/ui/pipes/time.magic.pipe.js → esm2020/src/ui/pipes/time.magic.pipe.mjs} +3 -3
- package/{esm2015/src/ui/router-container.magic.component.js → esm2020/src/ui/router-container.magic.component.mjs} +2 -2
- package/{esm2015/src/ui/subform.magic.component.js → esm2020/src/ui/subform.magic.component.mjs} +3 -3
- package/{esm2015/src/ui/task-base.magic.component.js → esm2020/src/ui/task-base.magic.component.mjs} +2 -2
- package/{esm2015/src/ui/utils.js → esm2020/src/ui/utils.mjs} +0 -0
- package/fesm2015/magic-xpa-angular.mjs +4578 -0
- package/fesm2015/magic-xpa-angular.mjs.map +1 -0
- package/{fesm2015/magic-xpa-angular.js → fesm2020/magic-xpa-angular.mjs} +433 -412
- package/fesm2020/magic-xpa-angular.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +28 -15
- package/src/magic.core.module.d.ts +3 -8
- package/src/services/OverlayWindowService.d.ts +2 -2
- package/src/services/accessor.magic.service.d.ts +2 -2
- package/src/services/commands-collector.magic.service.d.ts +2 -2
- package/src/services/component-list.magic.service.d.ts +3 -0
- package/src/services/confirmation.components.magic.provider.d.ts +2 -2
- package/src/services/engine.magic.service.d.ts +2 -2
- package/src/services/exit.magic.service.d.ts +2 -2
- package/src/services/magic.lazy.loader.service.d.ts +6 -0
- package/src/services/magic.services.d.ts +2 -2
- package/src/services/mg-date-adapter.d.ts +2 -2
- package/src/services/overlay.conainer.magic.provider.d.ts +2 -2
- package/src/services/router-commands.magic.service.d.ts +2 -2
- package/src/services/subform.magic.service.d.ts +6 -4
- package/src/services/table.magic.service.d.ts +2 -2
- package/src/services/task.magics.service.d.ts +2 -2
- package/src/services/title.magic.service.d.ts +2 -2
- package/src/ui/components/base-magic-alert.component.d.ts +2 -2
- package/src/ui/components/base-magic-confirm.component.d.ts +2 -2
- package/src/ui/components/magic-alert.component.d.ts +2 -2
- package/src/ui/components/magic-confirmation-box.component.d.ts +2 -2
- package/src/ui/directives/NonMagicControlDirective.d.ts +2 -2
- package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic/checkbox.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic/combobox.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +2 -2
- package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +2 -2
- package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +2 -2
- package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic/row.magic.directive.d.ts +2 -2
- package/src/ui/directives/magic-focus.directive.d.ts +2 -2
- package/src/ui/directives/magic.directive.d.ts +2 -2
- package/src/ui/directives/magicViewContainerRef.directive.d.ts +2 -2
- package/src/ui/directives/mgformat.magic.directive.d.ts +2 -2
- package/src/ui/directives/range-validator.magic.directive.d.ts +2 -2
- package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +7 -5
- package/src/ui/magic-modal/magic-overlay-container.d.ts +2 -2
- package/src/ui/magic-root.component.d.ts +2 -2
- package/src/ui/mgerror.magic.component.d.ts +2 -2
- package/src/ui/pipes/date.magic.pipe.d.ts +2 -2
- package/src/ui/pipes/time.magic.pipe.d.ts +2 -2
- package/src/ui/router-container.magic.component.d.ts +2 -2
- package/src/ui/subform.magic.component.d.ts +2 -2
- package/src/ui/task-base.magic.component.d.ts +2 -2
- package/bundles/magic-xpa-angular.umd.js +0 -5028
- package/bundles/magic-xpa-angular.umd.js.map +0 -1
- package/bundles/magic-xpa-angular.umd.min.js +0 -16
- package/bundles/magic-xpa-angular.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -56
- package/esm2015/src/magic.core.module.js +0 -173
- package/esm2015/src/services/OverlayWindowService.js +0 -205
- package/esm2015/src/services/component-list.magic.service.js +0 -36
- package/esm2015/src/services/engine.magic.service.js +0 -82
- package/esm2015/src/services/router-commands.magic.service.js +0 -25
- package/esm2015/src/ui/components/magic-alert.component.js +0 -72
- package/esm2015/src/ui/components/magic-confirmation-box.component.js +0 -83
- package/esm2015/src/ui/directives/magic.directive.js +0 -207
- package/esm2015/src/ui/magic-modal/magic-overlay-container-wrapper.js +0 -131
- package/esm2015/src/ui/magic-modal/magic-overlay-container.js +0 -169
- package/esm2015/src/ui/magic-root.component.js +0 -237
- package/esm2015/src/ui/mgerror.magic.component.js +0 -120
- package/fesm2015/magic-xpa-angular.js.map +0 -1
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from "@angular/core";
|
|
2
|
-
import { AccessorMagicService } from "../services/accessor.magic.service";
|
|
3
|
-
import { TaskMagicService } from "../services/task.magics.service";
|
|
4
|
-
import { isUndefined } from "@magic-xpa/mscorelib";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../services/task.magics.service";
|
|
7
|
-
import * as i2 from "../services/accessor.magic.service";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
const _c0 = ["customContent"];
|
|
10
|
-
function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
11
|
-
i0.ɵɵelementStart(0, "span");
|
|
12
|
-
i0.ɵɵtext(1);
|
|
13
|
-
i0.ɵɵelementEnd();
|
|
14
|
-
} if (rf & 2) {
|
|
15
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
16
|
-
i0.ɵɵadvance(1);
|
|
17
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.mgService.getErrMsg(ctx_r2.id, ctx_r2.rowId), " ");
|
|
18
|
-
} }
|
|
19
|
-
function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
i0.ɵɵelementStart(0, "div");
|
|
21
|
-
i0.ɵɵelementStart(1, "div", null, 1);
|
|
22
|
-
i0.ɵɵprojection(3);
|
|
23
|
-
i0.ɵɵelementEnd();
|
|
24
|
-
i0.ɵɵtemplate(4, ErrorMagicComponent_div_0_span_4_Template, 2, 1, "span", 0);
|
|
25
|
-
i0.ɵɵelementEnd();
|
|
26
|
-
} if (rf & 2) {
|
|
27
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
28
|
-
i0.ɵɵadvance(4);
|
|
29
|
-
i0.ɵɵproperty("ngIf", ctx_r0.defaultDisplay);
|
|
30
|
-
} }
|
|
31
|
-
const _c1 = ["*"];
|
|
32
|
-
export class ErrorMagicComponent {
|
|
33
|
-
constructor(_task, mgService, changeDetectorRef) {
|
|
34
|
-
this._task = _task;
|
|
35
|
-
this.mgService = mgService;
|
|
36
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
37
|
-
this.defaultDisplay = true;
|
|
38
|
-
this.rowId = "0";
|
|
39
|
-
}
|
|
40
|
-
set magic(val) {
|
|
41
|
-
this.id = val;
|
|
42
|
-
}
|
|
43
|
-
;
|
|
44
|
-
set rowId1(val) {
|
|
45
|
-
this.rowId = val;
|
|
46
|
-
}
|
|
47
|
-
;
|
|
48
|
-
set CustomContent(innerComponent) {
|
|
49
|
-
this.defaultDisplay = innerComponent == undefined || this.isEmpty(innerComponent.nativeElement);
|
|
50
|
-
this.changeDetectorRef.detectChanges();
|
|
51
|
-
}
|
|
52
|
-
;
|
|
53
|
-
isEmpty(element) {
|
|
54
|
-
const nodes = element.childNodes;
|
|
55
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
56
|
-
const node = nodes.item(i);
|
|
57
|
-
if (node.nodeType !== 8 && nodes.item(i).textContent.trim().length !== 0) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
HasErrors(id) {
|
|
64
|
-
if (!isUndefined(id)) {
|
|
65
|
-
let control = this._task.getFormControl(this.rowId, id);
|
|
66
|
-
if (control !== null) {
|
|
67
|
-
if (control.dirty && (control.hasError('pattern') || control.hasError('required') ||
|
|
68
|
-
control.hasError('rangevalidator') || control.hasError('maxlength') || control.hasError('max')))
|
|
69
|
-
return true;
|
|
70
|
-
if (control.touched && control.hasError('required'))
|
|
71
|
-
return true;
|
|
72
|
-
if (this._task.Records.list[this.rowId] && this._task.Records.list[this.rowId].getControlMetadata(id)) {
|
|
73
|
-
let controlMetadata = this._task.Records.list[this.rowId].getControlMetadata(id);
|
|
74
|
-
for (let customValidator of controlMetadata.customValidators.keys()) {
|
|
75
|
-
if (control.hasError(customValidator))
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
ErrorMagicComponent.ɵfac = function ErrorMagicComponent_Factory(t) { return new (t || ErrorMagicComponent)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i2.AccessorMagicService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
85
|
-
ErrorMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ErrorMagicComponent, selectors: [["mgError"]], viewQuery: function ErrorMagicComponent_Query(rf, ctx) { if (rf & 1) {
|
|
86
|
-
i0.ɵɵviewQuery(_c0, true);
|
|
87
|
-
} if (rf & 2) {
|
|
88
|
-
var _t;
|
|
89
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CustomContent = _t.first);
|
|
90
|
-
} }, inputs: { magic: "magic", rowId1: ["rowId", "rowId1"] }, ngContentSelectors: _c1, decls: 1, vars: 1, consts: [[4, "ngIf"], ["customContent", ""]], template: function ErrorMagicComponent_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
-
i0.ɵɵprojectionDef();
|
|
92
|
-
i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 0);
|
|
93
|
-
} if (rf & 2) {
|
|
94
|
-
i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
|
|
95
|
-
} }, directives: [i3.NgIf], encapsulation: 2 });
|
|
96
|
-
(function () { i0.ɵsetClassMetadata(ErrorMagicComponent, [{
|
|
97
|
-
type: Component,
|
|
98
|
-
args: [{
|
|
99
|
-
selector: 'mgError',
|
|
100
|
-
template: `<div *ngIf="HasErrors(id)">
|
|
101
|
-
<div #customContent>
|
|
102
|
-
<ng-content></ng-content>
|
|
103
|
-
</div>
|
|
104
|
-
<span *ngIf="defaultDisplay">
|
|
105
|
-
{{mgService.getErrMsg(id, rowId)}}
|
|
106
|
-
</span>
|
|
107
|
-
</div>
|
|
108
|
-
`
|
|
109
|
-
}]
|
|
110
|
-
}], function () { return [{ type: i1.TaskMagicService }, { type: i2.AccessorMagicService }, { type: i0.ChangeDetectorRef }]; }, { magic: [{
|
|
111
|
-
type: Input,
|
|
112
|
-
args: ['magic']
|
|
113
|
-
}], rowId1: [{
|
|
114
|
-
type: Input,
|
|
115
|
-
args: ['rowId']
|
|
116
|
-
}], CustomContent: [{
|
|
117
|
-
type: ViewChild,
|
|
118
|
-
args: ['customContent', { static: false }]
|
|
119
|
-
}] }); })();
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdlcnJvci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tZ2Vycm9yLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztJQVc5Qyw0QkFDQztJQUFBLFlBQ0Y7SUFBQSxpQkFBTzs7O0lBREwsZUFDRjtJQURFLG9GQUNGOzs7SUFOWSwyQkFDWjtJQUFBLG9DQUNFO0lBQUEsa0JBQVk7SUFDZCxpQkFBTTtJQUNMLDRFQUNDO0lBRUYsaUJBQU07OztJQUhDLGVBQXNCO0lBQXRCLDRDQUFzQjs7O0FBT2pDLE1BQU0sT0FBTyxtQkFBbUI7SUE2QjlCLFlBQXNCLEtBQXVCLEVBQVMsU0FBK0IsRUFBWSxpQkFBb0M7UUFBL0csVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUFZLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFYckksbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFZcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQXRCRCxJQUFvQixLQUFLLENBQUMsR0FBRztRQUMzQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQW9CLE1BQU0sQ0FBQyxHQUFHO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdB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QUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FjY2Vzc29yTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvYWNjZXNzb3IubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQge1Rhc2tNYWdpY1NlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIE1hZ2ljIHN1YmZvcm1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWdFcnJvcicsXHJcbiAgdGVtcGxhdGU6ICAgIGA8ZGl2ICpuZ0lmPVwiSGFzRXJyb3JzKGlkKVwiPlxyXG4gICAgPGRpdiAjY3VzdG9tQ29udGVudD5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICAgPHNwYW4gKm5nSWY9XCJkZWZhdWx0RGlzcGxheVwiPlxyXG4gICAgICB7e21nU2VydmljZS5nZXRFcnJNc2coaWQsIHJvd0lkKX19IFxyXG4gICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbmB9KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFcnJvck1hZ2ljQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgaWQ6IHN0cmluZztcclxuICByb3dJZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASW5wdXQoJ21hZ2ljJykgc2V0IG1hZ2ljKHZhbCkge1xyXG4gICAgdGhpcy5pZCA9IHZhbDtcclxuICB9O1xyXG5cclxuICBASW5wdXQoJ3Jvd0lkJykgc2V0IHJvd0lkMSh2YWwpIHtcclxuICAgIHRoaXMucm93SWQgPSB2YWw7XHJcbiAgfTtcclxuXHJcbiAgLy8gaWYgdHJ1ZSAtIGRpc3BsYXkgc3RhbmRhcmQgbWFnaWMgZXJyb3IgbWVzc2FnZSwgaWYgZmFsc2UgLSBjdXN0b21lciBoYXMgcHJvdmlkZXMgaGlzIG93biBjb250ZW50IGFuZCB3ZSdsbCB1c2UgaXRcclxuICBkZWZhdWx0RGlzcGxheSA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N1c3RvbUNvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2V0IEN1c3RvbUNvbnRlbnQoaW5uZXJDb21wb25lbnQ6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuZGVmYXVsdERpc3BsYXkgPSBpbm5lckNvbXBvbmVudCA9PSB1bmRlZmluZWQgfHwgdGhpcy5pc0VtcHR5KGlubmVyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UsIHB1YmxpYyBtZ1NlcnZpY2U6IEFjY2Vzc29yTWFnaWNTZXJ2aWNlLCBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmICkge1xyXG4gICAgdGhpcy5yb3dJZCA9IFwiMFwiO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogcmV0dXJucyB0cnVlIGlmIHRoZSBodG1sIGVsZW1lbnQgaGFzIG5vIGNoaWxkcmVuXHJcbiAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgKi9cclxuICBpc0VtcHR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzLml0ZW0oaSk7XHJcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlICE9PSA4ICYmIG5vZGVzLml0ZW0oaSkudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgSGFzRXJyb3JzKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghaXNVbmRlZmluZWQoaWQpKSB7XHJcbiAgICAgIGxldCBjb250cm9sID0gdGhpcy5fdGFzay5nZXRGb3JtQ29udHJvbCh0aGlzLnJvd0lkLCBpZCk7XHJcbiAgICAgIGlmIChjb250cm9sICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wuZGlydHkgJiYgKGNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCBjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8XHJcbiAgICAgICAgICBjb250cm9sLmhhc0Vycm9yKCdyYW5nZXZhbGlkYXRvcicpIHx8IGNvbnRyb2wuaGFzRXJyb3IoJ21heGxlbmd0aCcpIHx8IGNvbnRyb2wuaGFzRXJyb3IoJ21heCcpKSlcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSlcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBpZih0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXSAmJiB0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXS5nZXRDb250cm9sTWV0YWRhdGEoaWQpKXtcclxuICAgICAgICAgIGxldCBjb250cm9sTWV0YWRhdGEgPSB0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXS5nZXRDb250cm9sTWV0YWRhdGEoaWQpO1xyXG4gICAgICAgICAgZm9yIChsZXQgY3VzdG9tVmFsaWRhdG9yIG9mIGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmtleXMoKSkge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC5oYXNFcnJvcihjdXN0b21WYWxpZGF0b3IpKVxyXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuIl19
|