@magic-xpa/gui 4.1200.0-dev4120.21 → 4.1200.0-dev4120.213
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-gui.mjs +5724 -249
- package/fesm2022/magic-xpa-gui.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/package.json +2 -4
- package/src/GuiEnums.d.ts +3 -0
- package/src/gui/GuiMgControl.d.ts +1 -0
- package/src/management/exp/ExpressionInterface.d.ts +1 -0
- package/src/management/gui/MgControlBase.d.ts +1 -1
- package/src/management/gui/PropInterface.d.ts +2 -1
- package/esm2022/index.mjs +0 -71
- package/esm2022/magic-xpa-gui.mjs +0 -2
- package/esm2022/src/Commands.mjs +0 -184
- package/esm2022/src/Events.mjs +0 -425
- package/esm2022/src/EventsProcessor.mjs +0 -67
- package/esm2022/src/FocusManager.mjs +0 -34
- package/esm2022/src/GuiConstants.mjs +0 -68
- package/esm2022/src/GuiEnums.mjs +0 -301
- package/esm2022/src/GuiEnvironment.mjs +0 -4
- package/esm2022/src/IFlowMonitorQueue.mjs +0 -2
- package/esm2022/src/Manager.mjs +0 -91
- package/esm2022/src/UIBridge.mjs +0 -33
- package/esm2022/src/env/IEnvironment.mjs +0 -2
- package/esm2022/src/gui/ControlBase.mjs +0 -3
- package/esm2022/src/gui/GuiMgControl.mjs +0 -123
- package/esm2022/src/gui/GuiMgForm.mjs +0 -4
- package/esm2022/src/gui/KeyboardItem.mjs +0 -135
- package/esm2022/src/gui/LastFocusedVal.mjs +0 -11
- package/esm2022/src/gui/MgValue.mjs +0 -16
- package/esm2022/src/gui/PropParentInterface.mjs +0 -2
- package/esm2022/src/gui/low/DialogHandler.mjs +0 -7
- package/esm2022/src/gui/low/GuiCommand.mjs +0 -68
- package/esm2022/src/gui/low/GuiCommandQueue.mjs +0 -35
- package/esm2022/src/gui/low/GuiInteractive.mjs +0 -178
- package/esm2022/src/gui/low/Style.mjs +0 -20
- package/esm2022/src/management/RuntimeContextBase.mjs +0 -42
- package/esm2022/src/management/data/BlobType.mjs +0 -281
- package/esm2022/src/management/data/DcValues.mjs +0 -214
- package/esm2022/src/management/data/DcValuesBuilderBase.mjs +0 -96
- package/esm2022/src/management/data/FieldDef.mjs +0 -331
- package/esm2022/src/management/data/FieldsTable.mjs +0 -54
- package/esm2022/src/management/data/GuiDataViewBase.mjs +0 -88
- package/esm2022/src/management/data/GuiFieldBase.mjs +0 -82
- package/esm2022/src/management/data/IRecord.mjs +0 -2
- package/esm2022/src/management/data/IReferencedObject.mjs +0 -2
- package/esm2022/src/management/data/NUM_TYPE.mjs +0 -1739
- package/esm2022/src/management/data/ObjectReferenceBase.mjs +0 -48
- package/esm2022/src/management/data/ObjectReferencesCollection.mjs +0 -27
- package/esm2022/src/management/data/RecordUtils.mjs +0 -361
- package/esm2022/src/management/data/VectorType.mjs +0 -612
- package/esm2022/src/management/data/VectorTypeBase.mjs +0 -88
- package/esm2022/src/management/events/IActionManager.mjs +0 -2
- package/esm2022/src/management/events/IGuiEventsManager.mjs +0 -2
- package/esm2022/src/management/exp/ExpressionInterface.mjs +0 -244
- package/esm2022/src/management/exp/GuiExpressionEvaluator.mjs +0 -305
- package/esm2022/src/management/gui/ControlTable.mjs +0 -118
- package/esm2022/src/management/gui/DisplayConvertor.mjs +0 -1649
- package/esm2022/src/management/gui/FieldValidator.mjs +0 -711
- package/esm2022/src/management/gui/GuiControlPropertyAdapter.mjs +0 -24
- package/esm2022/src/management/gui/GuiFormPropertyAdapter.mjs +0 -11
- package/esm2022/src/management/gui/HebrewDate.mjs +0 -278
- package/esm2022/src/management/gui/Helps.mjs +0 -237
- package/esm2022/src/management/gui/MgControlBase.mjs +0 -1869
- package/esm2022/src/management/gui/MgFormBase.mjs +0 -741
- package/esm2022/src/management/gui/PIC.mjs +0 -1185
- package/esm2022/src/management/gui/PropDefaults.mjs +0 -230
- package/esm2022/src/management/gui/PropInterface.mjs +0 -246
- package/esm2022/src/management/gui/PropTable.mjs +0 -221
- package/esm2022/src/management/gui/Property.mjs +0 -1362
- package/esm2022/src/management/gui/ValidationDetails.mjs +0 -248
- package/esm2022/src/management/gui/ValidationDetailsBase.mjs +0 -93
- package/esm2022/src/management/gui/WrongFormatException.mjs +0 -29
- package/esm2022/src/management/tasks/GuiDataCollection.mjs +0 -4
- package/esm2022/src/management/tasks/GuiTaskBase.mjs +0 -511
- package/esm2022/src/management/tasks/IMGDataTable.mjs +0 -2
- package/esm2022/src/management/tasks/ITask.mjs +0 -2
- package/esm2022/src/management/tasks/MgTimer.mjs +0 -21
- package/esm2022/src/management/tasks/TaskDefinitionId.mjs +0 -54
- package/esm2022/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +0 -41
- package/esm2022/src/util/MemoryUtil.mjs +0 -35
- package/esm2022/src/util/ObjectReference.mjs +0 -36
- package/esm2022/src/util/UsernamePasswordCredentials.mjs +0 -52
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magic-xpa/gui",
|
|
3
|
-
"version": "4.1200.0-dev4120.
|
|
3
|
+
"version": "4.1200.0-dev4120.213",
|
|
4
4
|
"license": "SEE LICENSE IN EULA.pdf",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"timers": "^0.1.1",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"tslib": "^2.3.0"
|
|
9
9
|
},
|
|
10
10
|
"peerDependencies": {
|
|
11
|
-
"@magic-xpa/utils": "4.1200.0-dev4120.
|
|
11
|
+
"@magic-xpa/utils": "4.1200.0-dev4120.213",
|
|
12
12
|
"rxjs": "7.8.1"
|
|
13
13
|
},
|
|
14
14
|
"module": "fesm2022/magic-xpa-gui.mjs",
|
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
},
|
|
20
20
|
".": {
|
|
21
21
|
"types": "./index.d.ts",
|
|
22
|
-
"esm2022": "./esm2022/magic-xpa-gui.mjs",
|
|
23
|
-
"esm": "./esm2022/magic-xpa-gui.mjs",
|
|
24
22
|
"default": "./fesm2022/magic-xpa-gui.mjs"
|
|
25
23
|
}
|
|
26
24
|
},
|
package/src/GuiEnums.d.ts
CHANGED
|
@@ -98,6 +98,7 @@ export declare abstract class MgControlBase extends GuiControlPropertyAdapter im
|
|
|
98
98
|
isVisible(): boolean;
|
|
99
99
|
isEnabled(): boolean;
|
|
100
100
|
isModifiable(): boolean;
|
|
101
|
+
isOnDemandSelectionList(): boolean;
|
|
101
102
|
getDcVals(): DcValues;
|
|
102
103
|
getPrevIsNull(): boolean;
|
|
103
104
|
setPrevIsNull(newValue: boolean): void;
|
|
@@ -121,7 +122,6 @@ export declare abstract class MgControlBase extends GuiControlPropertyAdapter im
|
|
|
121
122
|
getLayer(): number;
|
|
122
123
|
computePIC(picExpResult: string): PIC;
|
|
123
124
|
getCurrentIndexOfChoice(): number[];
|
|
124
|
-
IsMultipleSelectionListBox(): boolean;
|
|
125
125
|
IsDateTimePicture(): boolean;
|
|
126
126
|
SupportsDataSource(): boolean;
|
|
127
127
|
HasAutocomplete(): boolean;
|
package/esm2022/index.mjs
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
export * from "./src/Commands";
|
|
2
|
-
export * from "./src/Events";
|
|
3
|
-
export * from "./src/EventsProcessor";
|
|
4
|
-
export * from "./src/FocusManager";
|
|
5
|
-
export * from "./src/GuiConstants";
|
|
6
|
-
export * from "./src/GuiEnums";
|
|
7
|
-
export * from "./src/GuiEnvironment";
|
|
8
|
-
export * from "./src/IFlowMonitorQueue";
|
|
9
|
-
export * from "./src/Manager";
|
|
10
|
-
export * from "./src/UIBridge";
|
|
11
|
-
export * from "./src/env/IEnvironment";
|
|
12
|
-
export * from "./src/gui/ControlBase";
|
|
13
|
-
export * from "./src/gui/GuiMgControl";
|
|
14
|
-
export * from "./src/gui/GuiMgForm";
|
|
15
|
-
export * from "./src/gui/KeyboardItem";
|
|
16
|
-
export * from "./src/gui/LastFocusedVal";
|
|
17
|
-
export * from "./src/gui/MgValue";
|
|
18
|
-
export * from "./src/gui/PropParentInterface";
|
|
19
|
-
export * from "./src/gui/low/DialogHandler";
|
|
20
|
-
export * from "./src/gui/low/GuiCommand";
|
|
21
|
-
export * from "./src/gui/low/GuiCommandQueue";
|
|
22
|
-
export * from "./src/gui/low/GuiInteractive";
|
|
23
|
-
export * from "./src/gui/low/Style";
|
|
24
|
-
export * from "./src/management/RuntimeContextBase";
|
|
25
|
-
export * from "./src/management/data/BlobType";
|
|
26
|
-
export * from "./src/management/data/DcValues";
|
|
27
|
-
export * from "./src/management/data/DcValuesBuilderBase";
|
|
28
|
-
export * from "./src/management/data/FieldDef";
|
|
29
|
-
export * from "./src/management/data/FieldsTable";
|
|
30
|
-
export * from "./src/management/data/GuiDataViewBase";
|
|
31
|
-
export * from "./src/management/data/GuiFieldBase";
|
|
32
|
-
export * from "./src/management/data/IRecord";
|
|
33
|
-
export * from "./src/management/data/IReferencedObject";
|
|
34
|
-
export * from "./src/management/data/NUM_TYPE";
|
|
35
|
-
export * from "./src/management/data/ObjectReferenceBase";
|
|
36
|
-
export * from "./src/management/data/ObjectReferencesCollection";
|
|
37
|
-
export * from "./src/management/data/RecordUtils";
|
|
38
|
-
export * from "./src/management/data/VectorType";
|
|
39
|
-
export * from "./src/management/data/VectorTypeBase";
|
|
40
|
-
export * from "./src/management/events/IActionManager";
|
|
41
|
-
export * from "./src/management/events/IGuiEventsManager";
|
|
42
|
-
export * from "./src/management/exp/ExpressionInterface";
|
|
43
|
-
export * from "./src/management/exp/GuiExpressionEvaluator";
|
|
44
|
-
export * from "./src/management/gui/ControlTable";
|
|
45
|
-
export * from "./src/management/gui/DisplayConvertor";
|
|
46
|
-
export * from "./src/management/gui/FieldValidator";
|
|
47
|
-
export * from "./src/management/gui/GuiControlPropertyAdapter";
|
|
48
|
-
export * from "./src/management/gui/GuiFormPropertyAdapter";
|
|
49
|
-
export * from "./src/management/gui/HebrewDate";
|
|
50
|
-
export * from "./src/management/gui/Helps";
|
|
51
|
-
export * from "./src/management/gui/MgControlBase";
|
|
52
|
-
export * from "./src/management/gui/MgFormBase";
|
|
53
|
-
export * from "./src/management/gui/PIC";
|
|
54
|
-
export * from "./src/management/gui/PropDefaults";
|
|
55
|
-
export * from "./src/management/gui/Property";
|
|
56
|
-
export * from "./src/management/gui/PropInterface";
|
|
57
|
-
export * from "./src/management/gui/PropTable";
|
|
58
|
-
export * from "./src/management/gui/ValidationDetails";
|
|
59
|
-
export * from "./src/management/gui/ValidationDetailsBase";
|
|
60
|
-
export * from "./src/management/gui/WrongFormatException";
|
|
61
|
-
export * from "./src/management/tasks/GuiDataCollection";
|
|
62
|
-
export * from "./src/management/tasks/GuiTaskBase";
|
|
63
|
-
export * from "./src/management/tasks/IMGDataTable";
|
|
64
|
-
export * from "./src/management/tasks/ITask";
|
|
65
|
-
export * from "./src/management/tasks/MgTimer";
|
|
66
|
-
export * from "./src/management/tasks/TaskDefinitionId";
|
|
67
|
-
export * from "./src/management/tasks/TaskDefinitionIdTableSaxHandler";
|
|
68
|
-
export * from "./src/util/MemoryUtil";
|
|
69
|
-
export * from "./src/util/ObjectReference";
|
|
70
|
-
export * from "./src/util/UsernamePasswordCredentials";
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRXZlbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRXZlbnRzUHJvY2Vzc29yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRm9jdXNNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvR3VpQ29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvR3VpRW51bXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9HdWlFbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0lGbG93TW9uaXRvclF1ZXVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL1VJQnJpZGdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW52L0lFbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9Db250cm9sQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9HdWlNZ0NvbnRyb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvR3VpTWdGb3JtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL0tleWJvYXJkSXRlbVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9MYXN0Rm9jdXNlZFZhbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9NZ1ZhbHVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL1Byb3BQYXJlbnRJbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvbG93L0RpYWxvZ0hhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvbG93L0d1aUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvbG93L0d1aUNvbW1hbmRRdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9sb3cvR3VpSW50ZXJhY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvbG93L1N0eWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9SdW50aW1lQ29udGV4dEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvQmxvYlR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvRGNWYWx1ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvRGNWYWx1ZXNCdWlsZGVyQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZERlZlwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZHNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9HdWlEYXRhVmlld0Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRmllbGRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0lSZWNvcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvSVJlZmVyZW5jZWRPYmplY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvTlVNX1RZUEVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvT2JqZWN0UmVmZXJlbmNlQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9PYmplY3RSZWZlcmVuY2VzQ29sbGVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9SZWNvcmRVdGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9WZWN0b3JUeXBlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL1ZlY3RvclR5cGVCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ldmVudHMvSUFjdGlvbk1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2V2ZW50cy9JR3VpRXZlbnRzTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZXhwL0V4cHJlc3Npb25JbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2V4cC9HdWlFeHByZXNzaW9uRXZhbHVhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvQ29udHJvbFRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvRGlzcGxheUNvbnZlcnRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0ZpZWxkVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvR3VpQ29udHJvbFByb3BlcnR5QWRhcHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0d1aUZvcm1Qcm9wZXJ0eUFkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9IZWJyZXdEYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvSGVscHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9NZ0NvbnRyb2xCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvTWdGb3JtQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1BJQ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1Byb3BEZWZhdWx0c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1Byb3BlcnR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvUHJvcEludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1Byb3BUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1ZhbGlkYXRpb25EZXRhaWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvVmFsaWRhdGlvbkRldGFpbHNCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvV3JvbmdGb3JtYXRFeGNlcHRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L3Rhc2tzL0d1aURhdGFDb2xsZWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC90YXNrcy9HdWlUYXNrQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvSU1HRGF0YVRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC90YXNrcy9JVGFza1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvTWdUaW1lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvVGFza0RlZmluaXRpb25JZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvVGFza0RlZmluaXRpb25JZFRhYmxlU2F4SGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvTWVtb3J5VXRpbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvT2JqZWN0UmVmZXJlbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9Vc2VybmFtZVBhc3N3b3JkQ3JlZGVudGlhbHNcIjtcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './index';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMteHBhLWd1aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9tYWdpYy14cGEtZ3VpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm2022/src/Commands.mjs
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { List } from '@magic-xpa/mscorelib';
|
|
2
|
-
import { GuiInteractive } from './gui/low/GuiInteractive';
|
|
3
|
-
import { GuiMgControl } from './gui/GuiMgControl';
|
|
4
|
-
import { CommandType } from './GuiEnums';
|
|
5
|
-
import { GuiCommandQueue } from './gui/low/GuiCommandQueue';
|
|
6
|
-
import { GuiCommand } from './gui/low/GuiCommand';
|
|
7
|
-
export class Commands {
|
|
8
|
-
static resolveCallback = null;
|
|
9
|
-
static SetResolveCallback(resolveCallback) {
|
|
10
|
-
this.resolveCallback = resolveCallback;
|
|
11
|
-
}
|
|
12
|
-
static ResolvePromise(result) {
|
|
13
|
-
this.resolveCallback(result);
|
|
14
|
-
}
|
|
15
|
-
static async messageBox(title, msg, style) {
|
|
16
|
-
let guiInteractive = new GuiInteractive();
|
|
17
|
-
let returnValue;
|
|
18
|
-
await new Promise((resolve) => {
|
|
19
|
-
this.SetResolveCallback(resolve);
|
|
20
|
-
guiInteractive.messageBox(title, msg, style);
|
|
21
|
-
}).then((res) => { returnValue = res; });
|
|
22
|
-
return returnValue;
|
|
23
|
-
}
|
|
24
|
-
static async openOverlayForm(obj, formName, handlerTaskTag, calledTaskTag, inputControls, isDialog) {
|
|
25
|
-
let guiInteractive = new GuiInteractive();
|
|
26
|
-
await new Promise((resolve) => {
|
|
27
|
-
this.SetResolveCallback(resolve);
|
|
28
|
-
guiInteractive.ExecuteOpenOverlayForm(obj, formName, handlerTaskTag, calledTaskTag, inputControls, isDialog);
|
|
29
|
-
}).then();
|
|
30
|
-
}
|
|
31
|
-
static setTitle(topMostForm, title) {
|
|
32
|
-
let guiInteractive = new GuiInteractive();
|
|
33
|
-
guiInteractive.setTitle(topMostForm, title);
|
|
34
|
-
}
|
|
35
|
-
static setGetSuggestedValueOfChoiceControlOnTagData(ctrl, line, retSuggestedValue) {
|
|
36
|
-
let guiInteractive = new GuiInteractive();
|
|
37
|
-
guiInteractive.setGetSuggestedValueOfChoiceControlOnTagData(ctrl, line, retSuggestedValue);
|
|
38
|
-
}
|
|
39
|
-
static getValue(obj, line, isThreeStateCheckBox) {
|
|
40
|
-
let guiInteractive = new GuiInteractive();
|
|
41
|
-
return guiInteractive.getValue(obj, line, isThreeStateCheckBox);
|
|
42
|
-
}
|
|
43
|
-
static getTopIndex(tablecontrol) {
|
|
44
|
-
let guiInteractive = new GuiInteractive();
|
|
45
|
-
return guiInteractive.getTopIndex(tablecontrol);
|
|
46
|
-
}
|
|
47
|
-
static getIsRowEditing(tablecontrol, rowIndex, isLineMode) {
|
|
48
|
-
let guiInteractive = new GuiInteractive();
|
|
49
|
-
return guiInteractive.getIsRowEditing(tablecontrol, rowIndex, isLineMode);
|
|
50
|
-
}
|
|
51
|
-
static setEditText(control, line, text) {
|
|
52
|
-
let guiInteractive = new GuiInteractive();
|
|
53
|
-
return guiInteractive.setEditText(control, line, text);
|
|
54
|
-
}
|
|
55
|
-
static insertEditText(control, line, startPosition, textToInsert) {
|
|
56
|
-
let guiInteractive = new GuiInteractive();
|
|
57
|
-
return guiInteractive.insertEditText(control, line, startPosition, textToInsert);
|
|
58
|
-
}
|
|
59
|
-
static caretPosGet(control, line) {
|
|
60
|
-
let guiInteractive = new GuiInteractive();
|
|
61
|
-
return guiInteractive.caretPosGet(control, line);
|
|
62
|
-
}
|
|
63
|
-
static addRefreshPage(navigateToRootRoute, initialUrl) {
|
|
64
|
-
let guiInteractive = new GuiInteractive();
|
|
65
|
-
guiInteractive.RefreshPage(navigateToRootRoute, initialUrl);
|
|
66
|
-
}
|
|
67
|
-
static getRowsInPage(control) {
|
|
68
|
-
let guiInteractive = new GuiInteractive();
|
|
69
|
-
let rowsInPage = guiInteractive.getRowsInPage(control);
|
|
70
|
-
return (rowsInPage === 0 ? 1 : rowsInPage);
|
|
71
|
-
}
|
|
72
|
-
static getMaxRowsInPaginatedTable(control) {
|
|
73
|
-
let guiInteractive = new GuiInteractive();
|
|
74
|
-
let maxRows = guiInteractive.getMaxRowsInPaginatedTable(control);
|
|
75
|
-
return (maxRows);
|
|
76
|
-
}
|
|
77
|
-
static getLastRoute() {
|
|
78
|
-
let guiInteractive = new GuiInteractive();
|
|
79
|
-
return guiInteractive.getLastRoute();
|
|
80
|
-
}
|
|
81
|
-
static addBoolWithLine(commandType, obj, line, bool) {
|
|
82
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
83
|
-
guiCommand.Bool1 = bool;
|
|
84
|
-
guiCommand.line = line;
|
|
85
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
86
|
-
}
|
|
87
|
-
static addNoParameters(commandType, obj) {
|
|
88
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
89
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
90
|
-
}
|
|
91
|
-
static addWithNumber(commandType, obj, num) {
|
|
92
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
93
|
-
guiCommand.number = num;
|
|
94
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
95
|
-
}
|
|
96
|
-
static addValueWithLine(commandType, obj, line, value) {
|
|
97
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
98
|
-
guiCommand.value = value;
|
|
99
|
-
guiCommand.line = line;
|
|
100
|
-
if (commandType === CommandType.SET_VALUE) {
|
|
101
|
-
if (obj instanceof GuiMgControl && obj.isChoiceControl()) {
|
|
102
|
-
if (value < 0)
|
|
103
|
-
if (obj.isComboBox())
|
|
104
|
-
guiCommand.value = undefined;
|
|
105
|
-
else
|
|
106
|
-
guiCommand.value = '';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
110
|
-
}
|
|
111
|
-
static addOperationWithLine(commandType, obj, line, operation, value) {
|
|
112
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
113
|
-
guiCommand.obj1 = value;
|
|
114
|
-
guiCommand.line = line;
|
|
115
|
-
guiCommand.Operation = operation;
|
|
116
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
117
|
-
}
|
|
118
|
-
static addOpensubform(commandType, obj, calledTaskTag, subformControlName, formName, inputControls, routerPath, routerParams, inDefaultRouterOutlet) {
|
|
119
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
120
|
-
guiCommand.str = calledTaskTag;
|
|
121
|
-
guiCommand.obj1 = subformControlName;
|
|
122
|
-
guiCommand.userDropFormat = formName;
|
|
123
|
-
guiCommand.fileName = inputControls;
|
|
124
|
-
guiCommand.Bool1 = inDefaultRouterOutlet;
|
|
125
|
-
guiCommand.contextID = routerPath;
|
|
126
|
-
guiCommand.params = routerParams;
|
|
127
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
128
|
-
}
|
|
129
|
-
static addClosesubform(commandType, obj, calledTaskTag, subformControlName, formName) {
|
|
130
|
-
let guiCommand = new GuiCommand(obj, commandType);
|
|
131
|
-
guiCommand.str = calledTaskTag;
|
|
132
|
-
guiCommand.obj1 = subformControlName;
|
|
133
|
-
guiCommand.userDropFormat = formName;
|
|
134
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
135
|
-
}
|
|
136
|
-
static addOpenForm(obj, formName, handlerTaskTag, calledTaskTag, inputControls, isDialog) {
|
|
137
|
-
let guiCommand = new GuiCommand(obj, CommandType.OPEN_FORM);
|
|
138
|
-
guiCommand.TaskTag = handlerTaskTag;
|
|
139
|
-
guiCommand.str = formName;
|
|
140
|
-
guiCommand.stringList = new List();
|
|
141
|
-
guiCommand.stringList.push(calledTaskTag);
|
|
142
|
-
guiCommand.stringList.push(inputControls);
|
|
143
|
-
guiCommand.Bool1 = isDialog;
|
|
144
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
145
|
-
}
|
|
146
|
-
static addCloseForm(obj, handlerTaskTag, calledTaskTag) {
|
|
147
|
-
let guiCommand = new GuiCommand(obj, CommandType.CLOSE_FORM);
|
|
148
|
-
guiCommand.TaskTag = handlerTaskTag;
|
|
149
|
-
guiCommand.str = calledTaskTag;
|
|
150
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
151
|
-
}
|
|
152
|
-
static addCallJS(form, formName, name, args) {
|
|
153
|
-
let guiInteractive = new GuiInteractive();
|
|
154
|
-
return guiInteractive.ExecuteCallJS(form, formName, name, args);
|
|
155
|
-
}
|
|
156
|
-
static addIsLoggedIn(setBool) {
|
|
157
|
-
let guiCommand = new GuiCommand(null, CommandType.SET_IS_LOGGED_IN);
|
|
158
|
-
guiCommand.Bool1 = setBool;
|
|
159
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
160
|
-
}
|
|
161
|
-
static addShowSpinner(show) {
|
|
162
|
-
let guiCommand = new GuiCommand(null, CommandType.SHOW_SPINNER);
|
|
163
|
-
guiCommand.Bool1 = show;
|
|
164
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
165
|
-
}
|
|
166
|
-
static addGlobalCommand(commandType) {
|
|
167
|
-
let guiCommand = new GuiCommand(null, commandType);
|
|
168
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
169
|
-
}
|
|
170
|
-
static addShowHTMLError(commandType, error) {
|
|
171
|
-
let guiCommand = new GuiCommand(null, commandType);
|
|
172
|
-
guiCommand.str = error;
|
|
173
|
-
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
174
|
-
}
|
|
175
|
-
static beginInvoke() {
|
|
176
|
-
GuiCommandQueue.getInstance().beginInvoke();
|
|
177
|
-
}
|
|
178
|
-
static invoke() {
|
|
179
|
-
GuiCommandQueue.getInstance().invoke();
|
|
180
|
-
}
|
|
181
|
-
constructor() {
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL0NvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVVoRCxNQUFNLE9BQU8sUUFBUTtJQUdYLE1BQU0sQ0FBRSxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBS3ZDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFLRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBU0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxLQUFhO1FBQy9ELElBQUksY0FBYyxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFELElBQUksV0FBbUIsQ0FBQztRQUV4QixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUvQyxDQUFDLENBQUMsQ0FBQyxJ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V0FBVyxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBS0QsTUFBTSxDQUFDLFdBQVc7UUFDaEIsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFLRCxNQUFNLENBQUMsTUFBTTtRQUNYLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7SUFDQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0fSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7R3VpTWdGb3JtfSBmcm9tICcuL2d1aS9HdWlNZ0Zvcm0nO1xyXG5pbXBvcnQge0d1aUludGVyYWN0aXZlfSBmcm9tICcuL2d1aS9sb3cvR3VpSW50ZXJhY3RpdmUnO1xyXG5pbXBvcnQge0d1aU1nQ29udHJvbH0gZnJvbSAnLi9ndWkvR3VpTWdDb250cm9sJztcclxuaW1wb3J0IHtDb21tYW5kVHlwZX0gZnJvbSAnLi9HdWlFbnVtcyc7XHJcbmltcG9ydCB7R3VpQ29tbWFuZFF1ZXVlfSBmcm9tICcuL2d1aS9sb3cvR3VpQ29tbWFuZFF1ZXVlJztcclxuaW1wb3J0IHtHdWlDb21tYW5kfSBmcm9tICcuL2d1aS9sb3cvR3VpQ29tbWFuZCc7XHJcblxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBDb21tYW5kcyB0byB0aGUgR1VJIHRocmVhZC5cclxuLy8vICAgVGhlcmXigJlyZSB0d28gdHlwZXMgb2YgY29tbWFuZHMgKGdyb3VwZWQgaW4gI3JlZ2lvbnMpOlxyXG4vLy8gICAgICAxLlx0Q29tbWFuZHMgdGhhdCBhcmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkuXHJcbi8vLyAgICAgIDIuXHRDb21tYW5kcyB0aGF0IGFyZSBxdWV1ZWQgKG92ZXJsb2FkZWQgbWV0aG9kcyDigJhhZGRBc3luY+KAmSkgYW5kIHRoZW4gZXhlY3V0ZWQsXHJcbi8vLyAgICAgICAgIGVpdGhlciBzeW5jaHJvbm91c2x5IChtZXRob2Qg4oCYaW52b2tl4oCZKSBvciBhc3luY2hyb25vdXNseSAobWV0aG9kIOKAmGJlZ2luSW52b2tl4oCZKS5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIENvbW1hbmRzIHtcclxuXHJcblxyXG4gIHByaXZhdGUgc3RhdGljICByZXNvbHZlQ2FsbGJhY2sgPSBudWxsOyAvLyBjYWxsYmFjayB0byByZXNvbHZlIHRoZSBwcm9taXNlXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gc2F2ZSB0aGUgY2FsbGJhY2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBTZXRSZXNvbHZlQ2FsbGJhY2socmVzb2x2ZUNhbGxiYWNrKSB7XHJcbiAgICB0aGlzLnJlc29sdmVDYWxsYmFjayA9IHJlc29sdmVDYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmVzb2x2ZSBwcm9taXNlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgUmVzb2x2ZVByb21pc2UocmVzdWx0OiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGRpc3BsYXkgbWVzc2FnZSBib3hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGl0bGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXNnXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0eWxlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBhc3luYyBtZXNzYWdlQm94KHRpdGxlOiBzdHJpbmcsIG1zZzogc3RyaW5nLCBzdHlsZTogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGxldCByZXR1cm5WYWx1ZTogbnVtYmVyO1xyXG5cclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuU2V0UmVzb2x2ZUNhbGxiYWNrKHJlc29sdmUpO1xyXG4gICAgICBndWlJbnRlcmFjdGl2ZS5tZXNzYWdlQm94KHRpdGxlLCBtc2csIHN0eWxlKTtcclxuICAgICAvLyBzYXZlIHRoZSByZXNvbHZlIGNhbGxiYWNrIG9uIEV2ZW50c01hbmFnZXIsIHNvIHRoYXQgaXQgY2FuIGJlIHJlc29sdmVkIG9uIGNsb3NpbmcgbW9kYWwgd2luZG93XHJcbiAgICB9KS50aGVuKChyZXM6IG51bWJlcik9PntyZXR1cm5WYWx1ZSA9IHJlczt9KTtcclxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUHJvbWlzZSB3YWl0cyB0aWxsIHRoZSBvdmVybGF5IHdpbmRvdyBnZXRzIE9wZW5lZCB0aHJvdWdoIGd1aUludGVyYWN0aXZlIGNvbW1hbmQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgYXN5bmMgb3Blbk92ZXJsYXlGb3JtKG9iajogT2JqZWN0LCBmb3JtTmFtZTogc3RyaW5nLCBoYW5kbGVyVGFza1RhZzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGVkVGFza1RhZzogc3RyaW5nLCBpbnB1dENvbnRyb2xzOiBzdHJpbmcsIGlzRGlhbG9nOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcblxyXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5TZXRSZXNvbHZlQ2FsbGJhY2socmVzb2x2ZSk7XHJcbiAgICAgIGd1aUludGVyYWN0aXZlLkV4ZWN1dGVPcGVuT3ZlcmxheUZvcm0ob2JqLCBmb3JtTmFtZSwgaGFuZGxlclRhc2tUYWcsXHJcbiAgICAgICAgY2FsbGVkVGFza1RhZywgaW5wdXRDb250cm9scywgaXNEaWFsb2cpO1xyXG4gICAgfSkudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aXRsZSB0byBicm93c2VyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRvcE1vc3RGb3JtXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRpdGxlXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgc2V0VGl0bGUodG9wTW9zdEZvcm06IEd1aU1nRm9ybSwgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgZ3VpSW50ZXJhY3RpdmUuc2V0VGl0bGUodG9wTW9zdEZvcm0sIHRpdGxlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwuIFRoaXMgbWV0aG9kZSBpcyBzZXQgVFJVRVxcRkFMU0UgdGhhdCBHdWlVdGlsZXNcXEdldFZhbHVlKCkgbWV0aG9kIHdpbGwgYmUgdXNlXHJcbiAgLy8vICAgdGhpcyBmYWxnIHNheSBpZiB0byByZXR1cm4gdGhlIDogKHRydWUpIHN1Z2dlc3RlZCB2YWx1ZSBvciAoZmFsc2UpdGhlIHJlYWwgdmFsdWVcclxuICAvLy8gICB0aGlzIG1ldGhvZCBpcyB1c2UgZm9yIE1HX0FDVF9DVFJMX01PRElGWVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInJldFN1Z2dlc3RlZFZhbHVlXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgc2V0R2V0U3VnZ2VzdGVkVmFsdWVPZkNob2ljZUNvbnRyb2xPblRhZ0RhdGEoY3RybDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIsIHJldFN1Z2dlc3RlZFZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICBndWlJbnRlcmFjdGl2ZS5zZXRHZXRTdWdnZXN0ZWRWYWx1ZU9mQ2hvaWNlQ29udHJvbE9uVGFnRGF0YShjdHJsLCBsaW5lLCByZXRTdWdnZXN0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib2JqXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImxpbmVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaXNUaHJlZVN0YXRlQ2hlY2tCb3hcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBnZXRWYWx1ZShvYmo6IGFueSwgbGluZTogbnVtYmVyLCBpc1RocmVlU3RhdGVDaGVja0JveDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZ2V0VmFsdWUob2JqLCBsaW5lLCBpc1RocmVlU3RhdGVDaGVja0JveCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgdGFibGUgdG9wIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhYmxlY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0VG9wSW5kZXgodGFibGVjb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmdldFRvcEluZGV4KHRhYmxlY29udHJvbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgaXMgcm93IGVkaXRpbmcgb24gcm93IGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhYmxlY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0SXNSb3dFZGl0aW5nKHRhYmxlY29udHJvbDogYW55LCByb3dJbmRleDogbnVtYmVyLCBpc0xpbmVNb2RlOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZ2V0SXNSb3dFZGl0aW5nKHRhYmxlY29udHJvbCwgcm93SW5kZXgsIGlzTGluZU1vZGUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIHNldCB0aGUgdGV4dCB0byB0aGUgdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIHNldEVkaXRUZXh0KGNvbnRyb2w6IEd1aU1nQ29udHJvbCwgbGluZTogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5zZXRFZGl0VGV4dChjb250cm9sLCBsaW5lLCB0ZXh0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBJbnNlcnQgdGV4dCB0byBhIHRleHQgY29udHJvbCBhdCBhIGdpdmVuIHBvc2l0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGluZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdGFydFBvc2l0aW9uXCI+d2hlcmUgdG8gYWRkIHRoZSB0ZXh0PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRUb0luc2VydFwiPnRoZSB0ZXh0IHRvIGFkZDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgaW5zZXJ0RWRpdFRleHQoY29udHJvbDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdGV4dFRvSW5zZXJ0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5pbnNlcnRFZGl0VGV4dChjb250cm9sLCBsaW5lLCBzdGFydFBvc2l0aW9uLCB0ZXh0VG9JbnNlcnQpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gZ2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQgb24gdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nVmFsdWVcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBjYXJldFBvc0dldChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuY2FyZXRQb3NHZXQoY29udHJvbCwgbGluZSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkUmVmcmVzaFBhZ2UobmF2aWdhdGVUb1Jvb3RSb3V0ZSA6IGJvb2xlYW4sIGluaXRpYWxVcmw6IHN0cmluZykge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG5cclxuICAgIGd1aUludGVyYWN0aXZlLlJlZnJlc2hQYWdlKG5hdmlnYXRlVG9Sb290Um91dGUsIGluaXRpYWxVcmwpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFJvd3NJblBhZ2UoY29udHJvbDogR3VpTWdDb250cm9sKTogbnVtYmVyIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGxldCByb3dzSW5QYWdlID0gZ3VpSW50ZXJhY3RpdmUuZ2V0Um93c0luUGFnZShjb250cm9sKTtcclxuICAgIHJldHVybiAocm93c0luUGFnZSA9PT0gMCA/IDEgOiByb3dzSW5QYWdlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0IG1heCBubyBvZiByb3dzIGluIHBhZ2luYXRlZCB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRNYXhSb3dzSW5QYWdpbmF0ZWRUYWJsZShjb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgbGV0IG1heFJvd3MgPSBndWlJbnRlcmFjdGl2ZS5nZXRNYXhSb3dzSW5QYWdpbmF0ZWRUYWJsZShjb250cm9sKTtcclxuICAgIHJldHVybiAobWF4Um93cyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldCB0aGUgbGFzdCByb3V0ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGdldExhc3RSb3V0ZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmdldExhc3RSb3V0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZEJvb2xXaXRoTGluZShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogYW55LCBsaW5lOiBudW1iZXIsIGJvb2w6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gYm9vbDtcclxuICAgIGd1aUNvbW1hbmQubGluZSA9IGxpbmU7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZE5vUGFyYW1ldGVycyhjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRXaXRoTnVtYmVyKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnksIG51bTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5udW1iZXIgPSBudW07XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZFZhbHVlV2l0aExpbmUoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBvYmo6IGFueSwgbGluZTogbnVtYmVyLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgZ3VpQ29tbWFuZC5saW5lID0gbGluZTtcclxuICAgIGlmIChjb21tYW5kVHlwZSA9PT0gQ29tbWFuZFR5cGUuU0VUX1ZBTFVFKVxyXG4gICAge1xyXG4gICAgICBpZiAob2JqIGluc3RhbmNlb2YgIEd1aU1nQ29udHJvbCAmJiBvYmouaXNDaG9pY2VDb250cm9sKCkpXHJcbiAgICAgIHtcclxuICAgICAgICBpZih2YWx1ZSA8IDApXHJcbiAgICAgICAgICAgIC8vVE9ETzogSGFuZGxpbmcgZG9uZSBmb3IgYnVnICMgMzIwODMgZm9yIGNvbWJvYm94IG9ubHkuIFRvIGJlIGRvbmUgZm9yIGFsbCB0eXBlcyBvZiBjaG9pY2UgY29udHJvbHNcclxuICAgICAgICAgIGlmIChvYmouaXNDb21ib0JveCgpKVxyXG4gICAgICAgICAgICBndWlDb21tYW5kLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBndWlDb21tYW5kLnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGFkZE9wZXJhdGlvbldpdGhMaW5lKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnksIGxpbmU6IG51bWJlciwgb3BlcmF0aW9uOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLm9iajEgPSB2YWx1ZTtcclxuICAgIGd1aUNvbW1hbmQubGluZSA9IGxpbmU7XHJcbiAgICBndWlDb21tYW5kLk9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGFkZE9wZW5zdWJmb3JtKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBPYmplY3QsIGNhbGxlZFRhc2tUYWc6IHN0cmluZywgc3ViZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm1OYW1lOiBzdHJpbmcsIGlucHV0Q29udHJvbHM6IHN0cmluZywgcm91dGVyUGF0aDogc3RyaW5nLCByb3V0ZXJQYXJhbXM6IExpc3Q8YW55PiwgaW5EZWZhdWx0Um91dGVyT3V0bGV0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBjYWxsZWRUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5vYmoxID0gc3ViZm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC51c2VyRHJvcEZvcm1hdCA9IGZvcm1OYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC5maWxlTmFtZSA9IGlucHV0Q29udHJvbHM7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gaW5EZWZhdWx0Um91dGVyT3V0bGV0O1xyXG4gICAgZ3VpQ29tbWFuZC5jb250ZXh0SUQgPSByb3V0ZXJQYXRoO1xyXG4gICAgZ3VpQ29tbWFuZC5wYXJhbXMgPSByb3V0ZXJQYXJhbXM7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZENsb3Nlc3ViZm9ybShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogT2JqZWN0LCBjYWxsZWRUYXNrVGFnOiBzdHJpbmcsIHN1YmZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBmb3JtTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBjYWxsZWRUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5vYmoxID0gc3ViZm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC51c2VyRHJvcEZvcm1hdCA9IGZvcm1OYW1lO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRPcGVuRm9ybShvYmo6IE9iamVjdCwgZm9ybU5hbWU6IHN0cmluZywgaGFuZGxlclRhc2tUYWc6IHN0cmluZywgY2FsbGVkVGFza1RhZzogc3RyaW5nLCBpbnB1dENvbnRyb2xzOiBzdHJpbmcsIGlzRGlhbG9nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgQ29tbWFuZFR5cGUuT1BFTl9GT1JNKTtcclxuICAgIGd1aUNvbW1hbmQuVGFza1RhZyA9IGhhbmRsZXJUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBmb3JtTmFtZTtcclxuICAgIGd1aUNvbW1hbmQuc3RyaW5nTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTtcclxuICAgIGd1aUNvbW1hbmQuc3RyaW5nTGlzdC5wdXNoKGNhbGxlZFRhc2tUYWcpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHJpbmdMaXN0LnB1c2goaW5wdXRDb250cm9scyk7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gaXNEaWFsb2c7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZENsb3NlRm9ybShvYmo6IE9iamVjdCwgaGFuZGxlclRhc2tUYWc6IHN0cmluZywgY2FsbGVkVGFza1RhZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgQ29tbWFuZFR5cGUuQ0xPU0VfRk9STSk7XHJcbiAgICBndWlDb21tYW5kLlRhc2tUYWcgPSBoYW5kbGVyVGFza1RhZztcclxuICAgIGd1aUNvbW1hbmQuc3RyID0gY2FsbGVkVGFza1RhZztcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkQ2FsbEpTKGZvcm0gOiBhbnksIGZvcm1OYW1lOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYXJnczogQXJyYXk8YW55Pik6IHN0cmluZyB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuRXhlY3V0ZUNhbGxKUyhmb3JtICwgZm9ybU5hbWUsICBuYW1lLCBhcmdzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRJc0xvZ2dlZEluKHNldEJvb2w6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQobnVsbCwgQ29tbWFuZFR5cGUuU0VUX0lTX0xPR0dFRF9JTik7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gc2V0Qm9vbDtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGRzIGEgY29tbWFuZCB0byBzaG93IG9yIGhpZGUgdGhlIHNwaW5uZXJcclxuICBzdGF0aWMgYWRkU2hvd1NwaW5uZXIoc2hvdzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBuZXcgR3VpQ29tbWFuZChudWxsLCBDb21tYW5kVHlwZS5TSE9XX1NQSU5ORVIpO1xyXG4gICAgZ3VpQ29tbWFuZC5Cb29sMSA9IHNob3c7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8gYWRkcyBhIGNvbW1hbmQgd2hpY2ggaXMgbm90IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyB0YXNrXHJcbiAgc3RhdGljIGFkZEdsb2JhbENvbW1hbmQoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG51bGwsIGNvbW1hbmRUeXBlKTtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGRzIGEgY29tbWFuZCB0byBkaXNwbGF5IHRoZSBIVE1MIGVycm9yIHJlY2VpdmVkIGZyb20gdGhlIHJlcXVlc2VyXHJcbiAgc3RhdGljIGFkZFNob3dIVE1MRXJyb3IoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBlcnJvcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG51bGwsIGNvbW1hbmRUeXBlKTtcclxuICAgIGd1aUNvbW1hbmQuc3RyID0gZXJyb3I7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGUgYWxsIHBlbmRpbmcgY29tbWFuZHMsIGFzeW5jaHJvbm91c2x5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgYmVnaW5JbnZva2UoKTogdm9pZCB7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5iZWdpbkludm9rZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGUgYWxsIHBlbmRpbmcgY29tbWFuZHMsIHN5bmNocm9ub3VzbHlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBpbnZva2UoKTogdm9pZCB7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5pbnZva2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
|