@magic-xpa/gui 4.1100.0-dev4110.25 → 4.1100.0-dev4110.252
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 → esm2022}/index.mjs +71 -71
- package/{esm2020 → esm2022}/magic-xpa-gui.mjs +1 -1
- package/esm2022/src/Commands.mjs +184 -0
- package/esm2022/src/Events.mjs +425 -0
- package/esm2022/src/EventsProcessor.mjs +67 -0
- package/esm2022/src/FocusManager.mjs +34 -0
- package/esm2022/src/GuiConstants.mjs +68 -0
- package/{esm2020 → esm2022}/src/GuiEnums.mjs +299 -299
- package/esm2022/src/GuiEnvironment.mjs +4 -0
- package/{esm2020 → esm2022}/src/IFlowMonitorQueue.mjs +1 -1
- package/{esm2020 → esm2022}/src/Manager.mjs +91 -91
- package/esm2022/src/UIBridge.mjs +33 -0
- package/{esm2020 → esm2022}/src/env/IEnvironment.mjs +1 -1
- package/{esm2020 → esm2022}/src/gui/ControlBase.mjs +2 -2
- package/esm2022/src/gui/GuiMgControl.mjs +123 -0
- package/{esm2020 → esm2022}/src/gui/GuiMgForm.mjs +3 -3
- package/esm2022/src/gui/KeyboardItem.mjs +135 -0
- package/esm2022/src/gui/LastFocusedVal.mjs +11 -0
- package/esm2022/src/gui/MgValue.mjs +16 -0
- package/{esm2020 → esm2022}/src/gui/PropParentInterface.mjs +1 -1
- package/{esm2020 → esm2022}/src/gui/low/DialogHandler.mjs +6 -6
- package/esm2022/src/gui/low/GuiCommand.mjs +68 -0
- package/esm2022/src/gui/low/GuiCommandQueue.mjs +35 -0
- package/esm2022/src/gui/low/GuiInteractive.mjs +177 -0
- package/esm2022/src/gui/low/Style.mjs +20 -0
- package/esm2022/src/management/RuntimeContextBase.mjs +42 -0
- package/esm2022/src/management/data/BlobType.mjs +281 -0
- package/{esm2020 → esm2022}/src/management/data/DcValues.mjs +214 -214
- package/esm2022/src/management/data/DcValuesBuilderBase.mjs +96 -0
- package/esm2022/src/management/data/FieldDef.mjs +331 -0
- package/esm2022/src/management/data/FieldsTable.mjs +54 -0
- package/esm2022/src/management/data/GuiDataViewBase.mjs +88 -0
- package/esm2022/src/management/data/GuiFieldBase.mjs +82 -0
- package/{esm2020 → esm2022}/src/management/data/IRecord.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/data/IReferencedObject.mjs +1 -1
- package/esm2022/src/management/data/NUM_TYPE.mjs +1739 -0
- package/esm2022/src/management/data/ObjectReferenceBase.mjs +48 -0
- package/esm2022/src/management/data/ObjectReferencesCollection.mjs +27 -0
- package/esm2022/src/management/data/RecordUtils.mjs +361 -0
- package/esm2022/src/management/data/VectorType.mjs +612 -0
- package/esm2022/src/management/data/VectorTypeBase.mjs +88 -0
- package/{esm2020 → esm2022}/src/management/events/IActionManager.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/events/IGuiEventsManager.mjs +1 -1
- package/esm2022/src/management/exp/ExpressionInterface.mjs +244 -0
- package/{esm2020 → esm2022}/src/management/exp/GuiExpressionEvaluator.mjs +305 -307
- package/esm2022/src/management/gui/ControlTable.mjs +118 -0
- package/esm2022/src/management/gui/DisplayConvertor.mjs +1649 -0
- package/esm2022/src/management/gui/FieldValidator.mjs +711 -0
- package/esm2022/src/management/gui/GuiControlPropertyAdapter.mjs +24 -0
- package/{esm2020 → esm2022}/src/management/gui/GuiFormPropertyAdapter.mjs +10 -10
- package/esm2022/src/management/gui/HebrewDate.mjs +278 -0
- package/esm2022/src/management/gui/Helps.mjs +237 -0
- package/esm2022/src/management/gui/MgControlBase.mjs +1859 -0
- package/esm2022/src/management/gui/MgFormBase.mjs +741 -0
- package/esm2022/src/management/gui/PIC.mjs +1185 -0
- package/esm2022/src/management/gui/PropDefaults.mjs +230 -0
- package/{esm2020 → esm2022}/src/management/gui/PropInterface.mjs +246 -245
- package/esm2022/src/management/gui/PropTable.mjs +221 -0
- package/esm2022/src/management/gui/Property.mjs +1362 -0
- package/esm2022/src/management/gui/ValidationDetails.mjs +248 -0
- package/esm2022/src/management/gui/ValidationDetailsBase.mjs +93 -0
- package/esm2022/src/management/gui/WrongFormatException.mjs +29 -0
- package/esm2022/src/management/tasks/GuiDataCollection.mjs +4 -0
- package/esm2022/src/management/tasks/GuiTaskBase.mjs +511 -0
- package/{esm2020 → esm2022}/src/management/tasks/IMGDataTable.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/tasks/ITask.mjs +1 -1
- package/esm2022/src/management/tasks/MgTimer.mjs +21 -0
- package/esm2022/src/management/tasks/TaskDefinitionId.mjs +54 -0
- package/esm2022/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +41 -0
- package/esm2022/src/util/MemoryUtil.mjs +35 -0
- package/{esm2020 → esm2022}/src/util/ObjectReference.mjs +36 -36
- package/esm2022/src/util/UsernamePasswordCredentials.mjs +52 -0
- package/{fesm2020 → fesm2022}/magic-xpa-gui.mjs +16074 -16074
- package/fesm2022/magic-xpa-gui.mjs.map +1 -0
- package/index.d.ts +70 -70
- package/package.json +6 -12
- package/src/Commands.d.ts +40 -39
- package/src/Events.d.ts +157 -155
- package/src/EventsProcessor.d.ts +13 -13
- package/src/FocusManager.d.ts +8 -8
- package/src/GuiConstants.d.ts +65 -65
- package/src/GuiEnums.d.ts +282 -282
- package/src/GuiEnvironment.d.ts +4 -4
- package/src/IFlowMonitorQueue.d.ts +3 -3
- package/src/Manager.d.ts +26 -26
- package/src/UIBridge.d.ts +16 -16
- package/src/env/IEnvironment.d.ts +31 -31
- package/src/gui/ControlBase.d.ts +4 -4
- package/src/gui/GuiMgControl.d.ts +38 -38
- package/src/gui/GuiMgForm.d.ts +3 -3
- package/src/gui/KeyboardItem.d.ts +18 -18
- package/src/gui/LastFocusedVal.d.ts +7 -7
- package/src/gui/MgValue.d.ts +15 -15
- package/src/gui/PropParentInterface.d.ts +13 -13
- package/src/gui/low/DialogHandler.d.ts +4 -4
- package/src/gui/low/GuiCommand.d.ts +37 -37
- package/src/gui/low/GuiCommandQueue.d.ts +13 -13
- package/src/gui/low/GuiInteractive.d.ts +55 -53
- package/src/gui/low/Style.d.ts +19 -19
- package/src/management/RuntimeContextBase.d.ts +23 -23
- package/src/management/data/BlobType.d.ts +29 -29
- package/src/management/data/DcValues.d.ts +33 -33
- package/src/management/data/DcValuesBuilderBase.d.ts +17 -17
- package/src/management/data/FieldDef.d.ts +53 -53
- package/src/management/data/FieldsTable.d.ts +16 -16
- package/src/management/data/GuiDataViewBase.d.ts +27 -27
- package/src/management/data/GuiFieldBase.d.ts +17 -17
- package/src/management/data/IRecord.d.ts +12 -12
- package/src/management/data/IReferencedObject.d.ts +5 -5
- package/src/management/data/NUM_TYPE.d.ts +103 -103
- package/src/management/data/ObjectReferenceBase.d.ts +16 -16
- package/src/management/data/ObjectReferencesCollection.d.ts +10 -10
- package/src/management/data/RecordUtils.d.ts +21 -21
- package/src/management/data/VectorType.d.ts +52 -52
- package/src/management/data/VectorTypeBase.d.ts +8 -8
- package/src/management/events/IActionManager.d.ts +7 -7
- package/src/management/events/IGuiEventsManager.d.ts +20 -20
- package/src/management/exp/ExpressionInterface.d.ts +242 -242
- package/src/management/exp/GuiExpressionEvaluator.d.ts +47 -47
- package/src/management/gui/ControlTable.d.ts +28 -28
- package/src/management/gui/DisplayConvertor.d.ts +103 -103
- package/src/management/gui/FieldValidator.d.ts +35 -35
- package/src/management/gui/GuiControlPropertyAdapter.d.ts +40 -40
- package/src/management/gui/GuiFormPropertyAdapter.d.ts +17 -17
- package/src/management/gui/HebrewDate.d.ts +46 -46
- package/src/management/gui/Helps.d.ts +51 -51
- package/src/management/gui/MgControlBase.d.ts +223 -223
- package/src/management/gui/MgFormBase.d.ts +160 -160
- package/src/management/gui/PIC.d.ts +108 -108
- package/src/management/gui/PropDefaults.d.ts +7 -7
- package/src/management/gui/PropInterface.d.ts +244 -243
- package/src/management/gui/PropTable.d.ts +33 -33
- package/src/management/gui/Property.d.ts +121 -121
- package/src/management/gui/ValidationDetails.d.ts +52 -52
- package/src/management/gui/ValidationDetailsBase.d.ts +14 -14
- package/src/management/gui/WrongFormatException.d.ts +9 -9
- package/src/management/tasks/GuiDataCollection.d.ts +4 -4
- package/src/management/tasks/GuiTaskBase.d.ts +150 -150
- package/src/management/tasks/IMGDataTable.d.ts +10 -10
- package/src/management/tasks/ITask.d.ts +6 -6
- package/src/management/tasks/MgTimer.d.ts +8 -8
- package/src/management/tasks/TaskDefinitionId.d.ts +16 -16
- package/src/management/tasks/TaskDefinitionIdTableSaxHandler.d.ts +7 -7
- package/src/util/MemoryUtil.d.ts +6 -6
- package/src/util/ObjectReference.d.ts +9 -9
- package/src/util/UsernamePasswordCredentials.d.ts +18 -18
- package/esm2020/src/Commands.mjs +0 -177
- package/esm2020/src/Events.mjs +0 -420
- package/esm2020/src/EventsProcessor.mjs +0 -67
- package/esm2020/src/FocusManager.mjs +0 -34
- package/esm2020/src/GuiConstants.mjs +0 -68
- package/esm2020/src/GuiEnvironment.mjs +0 -4
- package/esm2020/src/UIBridge.mjs +0 -32
- package/esm2020/src/gui/GuiMgControl.mjs +0 -125
- package/esm2020/src/gui/KeyboardItem.mjs +0 -135
- package/esm2020/src/gui/LastFocusedVal.mjs +0 -11
- package/esm2020/src/gui/MgValue.mjs +0 -16
- package/esm2020/src/gui/low/GuiCommand.mjs +0 -66
- package/esm2020/src/gui/low/GuiCommandQueue.mjs +0 -35
- package/esm2020/src/gui/low/GuiInteractive.mjs +0 -165
- package/esm2020/src/gui/low/Style.mjs +0 -20
- package/esm2020/src/management/RuntimeContextBase.mjs +0 -43
- package/esm2020/src/management/data/BlobType.mjs +0 -281
- package/esm2020/src/management/data/DcValuesBuilderBase.mjs +0 -96
- package/esm2020/src/management/data/FieldDef.mjs +0 -331
- package/esm2020/src/management/data/FieldsTable.mjs +0 -54
- package/esm2020/src/management/data/GuiDataViewBase.mjs +0 -90
- package/esm2020/src/management/data/GuiFieldBase.mjs +0 -82
- package/esm2020/src/management/data/NUM_TYPE.mjs +0 -1741
- package/esm2020/src/management/data/ObjectReferenceBase.mjs +0 -48
- package/esm2020/src/management/data/ObjectReferencesCollection.mjs +0 -29
- package/esm2020/src/management/data/RecordUtils.mjs +0 -361
- package/esm2020/src/management/data/VectorType.mjs +0 -612
- package/esm2020/src/management/data/VectorTypeBase.mjs +0 -88
- package/esm2020/src/management/exp/ExpressionInterface.mjs +0 -244
- package/esm2020/src/management/gui/ControlTable.mjs +0 -118
- package/esm2020/src/management/gui/DisplayConvertor.mjs +0 -1679
- package/esm2020/src/management/gui/FieldValidator.mjs +0 -711
- package/esm2020/src/management/gui/GuiControlPropertyAdapter.mjs +0 -22
- package/esm2020/src/management/gui/HebrewDate.mjs +0 -278
- package/esm2020/src/management/gui/Helps.mjs +0 -237
- package/esm2020/src/management/gui/MgControlBase.mjs +0 -1858
- package/esm2020/src/management/gui/MgFormBase.mjs +0 -738
- package/esm2020/src/management/gui/PIC.mjs +0 -1185
- package/esm2020/src/management/gui/PropDefaults.mjs +0 -230
- package/esm2020/src/management/gui/PropTable.mjs +0 -221
- package/esm2020/src/management/gui/Property.mjs +0 -1356
- package/esm2020/src/management/gui/ValidationDetails.mjs +0 -248
- package/esm2020/src/management/gui/ValidationDetailsBase.mjs +0 -93
- package/esm2020/src/management/gui/WrongFormatException.mjs +0 -29
- package/esm2020/src/management/tasks/GuiDataCollection.mjs +0 -4
- package/esm2020/src/management/tasks/GuiTaskBase.mjs +0 -510
- package/esm2020/src/management/tasks/MgTimer.mjs +0 -21
- package/esm2020/src/management/tasks/TaskDefinitionId.mjs +0 -54
- package/esm2020/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +0 -41
- package/esm2020/src/util/MemoryUtil.mjs +0 -35
- package/esm2020/src/util/UsernamePasswordCredentials.mjs +0 -52
- package/fesm2015/magic-xpa-gui.mjs +0 -16364
- package/fesm2015/magic-xpa-gui.mjs.map +0 -1
- package/fesm2020/magic-xpa-gui.mjs.map +0 -1
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { Debug, NString, RefParam } from "@magic-xpa/mscorelib";
|
|
2
|
-
import { ListboxSelectionMode, MgControlType, StorageAttribute, TransMode } from "@magic-xpa/utils";
|
|
3
|
-
import { PIC } from "./PIC";
|
|
4
|
-
import { DisplayConvertor } from "./DisplayConvertor";
|
|
5
|
-
import { BlobType } from "../data/BlobType";
|
|
6
|
-
import { PropInterface } from "./PropInterface";
|
|
7
|
-
import { GuiConstants } from "../../GuiConstants";
|
|
8
|
-
export class PropDefaults {
|
|
9
|
-
static getNumericMgValue(propParent, Value) {
|
|
10
|
-
let pic = new PIC("3", StorageAttribute.NUMERIC, propParent.getCompIdx());
|
|
11
|
-
return DisplayConvertor.Instance.disp2mg(Value, pic, propParent.getCompIdx(), BlobType.CONTENT_TYPE_UNKNOWN);
|
|
12
|
-
}
|
|
13
|
-
static getDefaultValueForTask(propId, handled) {
|
|
14
|
-
let val = null;
|
|
15
|
-
handled.value = true;
|
|
16
|
-
switch (propId) {
|
|
17
|
-
case PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_EVENTS:
|
|
18
|
-
case PropInterface.PROP_TYPE_ALLOW_LOCATE_IN_QUERY:
|
|
19
|
-
case PropInterface.PROP_TYPE_PRINT_DATA:
|
|
20
|
-
case PropInterface.PROP_TYPE_ALLOW_RANGE:
|
|
21
|
-
case PropInterface.PROP_TYPE_ALLOW_LOCATE:
|
|
22
|
-
case PropInterface.PROP_TYPE_ALLOW_SORT:
|
|
23
|
-
case PropInterface.PROP_TYPE_PRELOAD_VIEW:
|
|
24
|
-
case PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX:
|
|
25
|
-
val = "1";
|
|
26
|
-
break;
|
|
27
|
-
case PropInterface.PROP_TYPE_CLOSE_TASKS_BY_MDI_MENU:
|
|
28
|
-
val = "0";
|
|
29
|
-
break;
|
|
30
|
-
default:
|
|
31
|
-
handled.value = false;
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
return val;
|
|
35
|
-
}
|
|
36
|
-
static getDefaultValue(propId, parentType, propParent) {
|
|
37
|
-
let val = null;
|
|
38
|
-
let control = null;
|
|
39
|
-
if (parentType === GuiConstants.PARENT_TYPE_TASK) {
|
|
40
|
-
let handled = new RefParam(false);
|
|
41
|
-
val = this.getDefaultValueForTask(propId, handled);
|
|
42
|
-
if (handled.value)
|
|
43
|
-
return val;
|
|
44
|
-
}
|
|
45
|
-
switch (propId) {
|
|
46
|
-
case PropInterface.PROP_TYPE_COLOR:
|
|
47
|
-
val = this.getNumericMgValue(propParent, "1");
|
|
48
|
-
if (parentType === GuiConstants.PARENT_TYPE_CONTROL) {
|
|
49
|
-
control = propParent;
|
|
50
|
-
if (control.Type === MgControlType.CTRL_TYPE_BUTTON && control.IsImageButton())
|
|
51
|
-
val = this.getNumericMgValue(propParent, "0");
|
|
52
|
-
}
|
|
53
|
-
break;
|
|
54
|
-
case PropInterface.PROP_TYPE_BORDER:
|
|
55
|
-
val = "0";
|
|
56
|
-
if (parentType === GuiConstants.PARENT_TYPE_CONTROL) {
|
|
57
|
-
control = propParent;
|
|
58
|
-
switch (control.Type) {
|
|
59
|
-
case MgControlType.CTRL_TYPE_SUBFORM:
|
|
60
|
-
val = "0";
|
|
61
|
-
break;
|
|
62
|
-
case MgControlType.CTRL_TYPE_TEXT:
|
|
63
|
-
case MgControlType.CTRL_TYPE_TABLE:
|
|
64
|
-
case MgControlType.CTRL_TYPE_LIST:
|
|
65
|
-
case MgControlType.CTRL_TYPE_BROWSER:
|
|
66
|
-
val = "1";
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
break;
|
|
71
|
-
case PropInterface.PROP_TYPE_MAXBOX:
|
|
72
|
-
case PropInterface.PROP_TYPE_MINBOX:
|
|
73
|
-
case PropInterface.PROP_TYPE_MUST_INPUT:
|
|
74
|
-
case PropInterface.PROP_TYPE_MULTILINE:
|
|
75
|
-
case PropInterface.PROP_TYPE_PASSWORD:
|
|
76
|
-
case PropInterface.PROP_TYPE_HEBREW:
|
|
77
|
-
case PropInterface.PROP_TYPE_MULTILINE_VERTICAL_SCROLL:
|
|
78
|
-
case PropInterface.PROP_TYPE_MULTILINE_ALLOW_CR:
|
|
79
|
-
case PropInterface.PROP_TYPE_IS_CACHED:
|
|
80
|
-
case PropInterface.PROP_TYPE_MODIFY_IN_QUERY:
|
|
81
|
-
case PropInterface.PROP_TYPE_SHOW_FULL_ROW:
|
|
82
|
-
case PropInterface.PROP_TYPE_TRACK_SELECTION:
|
|
83
|
-
case PropInterface.PROP_TYPE_COLUMN_DIVIDER:
|
|
84
|
-
case PropInterface.PROP_TYPE_LINE_DIVIDER:
|
|
85
|
-
case PropInterface.PROP_TYPE_THREE_STATES:
|
|
86
|
-
case PropInterface.PROP_TYPE_REFRESH_WHEN_HIDDEN:
|
|
87
|
-
case PropInterface.PROP_TYPE_RETAIN_FOCUS:
|
|
88
|
-
case PropInterface.PROP_TYPE_ROW_PLACEMENT:
|
|
89
|
-
case PropInterface.PROP_TYPE_SHOW_IN_WINDOW_MENU:
|
|
90
|
-
case PropInterface.PROP_TYPE_DATAVIEWCONTROL:
|
|
91
|
-
case PropInterface.PROP_TYPE_SORT_COLUMN:
|
|
92
|
-
case PropInterface.PROP_TYPE_BEFORE_900_VERSION:
|
|
93
|
-
case PropInterface.PROP_TYPE_FILL_WIDTH:
|
|
94
|
-
case PropInterface.PROP_TYPE_MULTI_COLUMN_DISPLAY:
|
|
95
|
-
case PropInterface.PROP_TYPE_AUTO_COMPLETE_MODE_WC:
|
|
96
|
-
val = "0";
|
|
97
|
-
break;
|
|
98
|
-
case PropInterface.PROP_TYPE_SYSTEM_MENU:
|
|
99
|
-
case PropInterface.PROP_TYPE_TITLE_BAR:
|
|
100
|
-
case PropInterface.PROP_TYPE_ENABLED:
|
|
101
|
-
case PropInterface.PROP_TYPE_VISIBLE:
|
|
102
|
-
case PropInterface.PROP_TYPE_TAB_IN:
|
|
103
|
-
case PropInterface.PROP_TYPE_MODIFIABLE:
|
|
104
|
-
case PropInterface.PROP_TYPE_HIGHLIGHTING:
|
|
105
|
-
case PropInterface.PROP_TYPE_AUTO_REFRESH:
|
|
106
|
-
case PropInterface.PROP_TYPE_PARK_ON_CLICK:
|
|
107
|
-
case PropInterface.PROP_TYPE_DISPLAY_MENU:
|
|
108
|
-
case PropInterface.PROP_TYPE_DISPLAY_TOOLBAR:
|
|
109
|
-
case PropInterface.PROP_TYPE_SHOW_BUTTONS:
|
|
110
|
-
case PropInterface.PROP_TYPE_LINES_AT_ROOT:
|
|
111
|
-
case PropInterface.PROP_TYPE_SCROLL_BAR:
|
|
112
|
-
case PropInterface.PROP_TYPE_SHOW_LINES:
|
|
113
|
-
case PropInterface.PROP_TYPE_ALLOW_QUERY:
|
|
114
|
-
case PropInterface.PROP_TYPE_RIGHT_BORDER:
|
|
115
|
-
case PropInterface.PROP_TYPE_TOP_BORDER:
|
|
116
|
-
case PropInterface.PROP_TYPE_TOP_BORDER_MARGIN:
|
|
117
|
-
case PropInterface.PROP_TYPE_SHOW_ELLIPISIS:
|
|
118
|
-
val = "1";
|
|
119
|
-
break;
|
|
120
|
-
case PropInterface.PROP_TYPE_TRIGGER:
|
|
121
|
-
case PropInterface.PROP_TYPE_PROMPT:
|
|
122
|
-
case PropInterface.PROP_TYPE_DISPLAY_LIST:
|
|
123
|
-
case PropInterface.PROP_TYPE_DATA:
|
|
124
|
-
case PropInterface.PROP_TYPE_IMAGE_FILENAME:
|
|
125
|
-
case PropInterface.PROP_TYPE_LABEL:
|
|
126
|
-
case PropInterface.PROP_TYPE_PLACEMENT:
|
|
127
|
-
case PropInterface.PROP_TYPE_PULLDOWN_MENU:
|
|
128
|
-
case PropInterface.PROP_TYPE_CONTEXT_MENU:
|
|
129
|
-
case PropInterface.PROP_TYPE_NODE_ID:
|
|
130
|
-
case PropInterface.PROP_TYPE_NODE_PARENTID:
|
|
131
|
-
case PropInterface.PROP_TYPE_SELECT_PROGRAM:
|
|
132
|
-
case PropInterface.PROP_TYPE_VISIBLE_LAYERS_LIST:
|
|
133
|
-
case PropInterface.PROP_TYPE_EXPANDED_IMAGEIDX:
|
|
134
|
-
case PropInterface.PROP_TYPE_COLLAPSED_IMAGEIDX:
|
|
135
|
-
case PropInterface.PROP_TYPE_OBJECT_TYPE:
|
|
136
|
-
case PropInterface.PROP_TYPE_TAB_ORDER:
|
|
137
|
-
case PropInterface.PROP_TYPE_LOAD_IMAGE_FROM:
|
|
138
|
-
case PropInterface.PROP_TYPE_FORM_NAME:
|
|
139
|
-
case PropInterface.PROP_TYPE_COLUMN_TITLE:
|
|
140
|
-
case PropInterface.PROP_TYPE_WIDTH:
|
|
141
|
-
case PropInterface.PROP_TYPE_PRGTSK_NUM:
|
|
142
|
-
break;
|
|
143
|
-
case PropInterface.PROP_TYPE_MULTILINE_WORDWRAP_SCROLL:
|
|
144
|
-
case PropInterface.PROP_TYPE_BORDER_STYLE:
|
|
145
|
-
val = this.getNumericMgValue(propParent, "2");
|
|
146
|
-
break;
|
|
147
|
-
case PropInterface.PROP_TYPE_WINDOW_TYPE:
|
|
148
|
-
val = this.getNumericMgValue(propParent, "6");
|
|
149
|
-
break;
|
|
150
|
-
case PropInterface.PROP_TYPE_ROW_HIGHLIGHT_STYLE:
|
|
151
|
-
val = this.getNumericMgValue(propParent, "4");
|
|
152
|
-
break;
|
|
153
|
-
case PropInterface.PROP_TYPE_GRADIENT_STYLE:
|
|
154
|
-
case PropInterface.PROP_TYPE_TABBING_ORDER:
|
|
155
|
-
case PropInterface.PROP_TYPE_STARTUP_MODE:
|
|
156
|
-
case PropInterface.PROP_TYPE_CHOICE_COLUMNS:
|
|
157
|
-
case PropInterface.PROP_TYPE_HORIZONTAL_ALIGNMENT:
|
|
158
|
-
case PropInterface.PROP_TYPE_FONT:
|
|
159
|
-
case PropInterface.PROP_TYPE_WALLPAPER_STYLE:
|
|
160
|
-
case PropInterface.PROP_TYPE_CHECKBOX_MAIN_STYLE:
|
|
161
|
-
case PropInterface.PROP_TYPE_TAB_CONTROL_SIDE:
|
|
162
|
-
case PropInterface.PROP_TYPE_RAISE_AT:
|
|
163
|
-
case PropInterface.PROP_TYPE_ALLOWED_DIRECTION:
|
|
164
|
-
case PropInterface.PROP_TYPE_SUBFORM_TYPE:
|
|
165
|
-
case PropInterface.PROP_TYPE_UOM:
|
|
166
|
-
case PropInterface.PROP_TYPE_BOTTOM_POSITION_INTERVAL:
|
|
167
|
-
val = this.getNumericMgValue(propParent, "1");
|
|
168
|
-
break;
|
|
169
|
-
case PropInterface.PROP_TYPE_TASK_PROPERTIES_TRANSACTION_MODE:
|
|
170
|
-
val = TransMode.Physical;
|
|
171
|
-
break;
|
|
172
|
-
case PropInterface.PROP_TYPE_PARKED_COLLAPSED_IMAGEIDX:
|
|
173
|
-
case PropInterface.PROP_TYPE_PARKED_IMAGEIDX:
|
|
174
|
-
case PropInterface.PROP_TYPE_MINIMUM_HEIGHT:
|
|
175
|
-
case PropInterface.PROP_TYPE_TOP:
|
|
176
|
-
case PropInterface.PROP_TYPE_LEFT:
|
|
177
|
-
case PropInterface.PROP_TYPE_TITLE_HEIGHT:
|
|
178
|
-
case PropInterface.PROP_TYPE_LAYER:
|
|
179
|
-
case PropInterface.PROP_TYPE_VISIBLE_LINES:
|
|
180
|
-
case PropInterface.PROP_TYPE_FRAMESET_STYLE:
|
|
181
|
-
case PropInterface.PROP_TYPE_TRANSLATOR:
|
|
182
|
-
case PropInterface.PROP_TYPE_HOR_FAC:
|
|
183
|
-
case PropInterface.PROP_TYPE_VER_FAC:
|
|
184
|
-
case PropInterface.PROP_TYPE_FOCUS_COLOR:
|
|
185
|
-
val = this.getNumericMgValue(propParent, "0");
|
|
186
|
-
break;
|
|
187
|
-
case PropInterface.PROP_TYPE_STYLE_3D:
|
|
188
|
-
if (parentType === GuiConstants.PARENT_TYPE_CONTROL) {
|
|
189
|
-
control = propParent;
|
|
190
|
-
switch (control.Type) {
|
|
191
|
-
case MgControlType.CTRL_TYPE_COMBO:
|
|
192
|
-
val = this.getNumericMgValue(propParent, "2");
|
|
193
|
-
break;
|
|
194
|
-
case MgControlType.CTRL_TYPE_RADIO:
|
|
195
|
-
case MgControlType.CTRL_TYPE_CHECKBOX:
|
|
196
|
-
val = this.getNumericMgValue(propParent, "3");
|
|
197
|
-
break;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
break;
|
|
201
|
-
case PropInterface.PROP_TYPE_IMAGE_LIST_INDEXES:
|
|
202
|
-
case PropInterface.PROP_TYPE_WALLPAPER:
|
|
203
|
-
case PropInterface.PROP_TYPE_TEXT:
|
|
204
|
-
case PropInterface.PROP_TYPE_TOOLTIP:
|
|
205
|
-
case PropInterface.PROP_TYPE_FORMAT:
|
|
206
|
-
val = NString.Empty;
|
|
207
|
-
break;
|
|
208
|
-
case PropInterface.PROP_TYPE_IMAGE_STYLE:
|
|
209
|
-
val = this.getNumericMgValue(propParent, "2");
|
|
210
|
-
break;
|
|
211
|
-
case PropInterface.PROP_TYPE_SELECTION_MODE:
|
|
212
|
-
val = this.getNumericMgValue(propParent, String(ListboxSelectionMode.Single));
|
|
213
|
-
break;
|
|
214
|
-
case PropInterface.PROP_TYPE_INDEX:
|
|
215
|
-
case PropInterface.PROP_TYPE_LINK_FIELD:
|
|
216
|
-
case PropInterface.PROP_TYPE_DISPLAY_FIELD:
|
|
217
|
-
case PropInterface.PROP_TYPE_PERSISTENT_FORM_STATE_VERSION:
|
|
218
|
-
val = this.getNumericMgValue(propParent, "0");
|
|
219
|
-
break;
|
|
220
|
-
default:
|
|
221
|
-
Debug.Assert(false, "Undefined default value");
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
return val;
|
|
225
|
-
}
|
|
226
|
-
static GetPropertyName(propTypeId) {
|
|
227
|
-
return "{Field ID " + propTypeId + "}";
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvcERlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2d1aS9Qcm9wRGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBTWhELE1BQU0sT0FBTyxZQUFZO0lBT2YsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFVBQStCLEVBQUUsS0FBYTtRQUM3RSxJQUFJLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBT08sTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxPQUEwQjtRQUM5RSxJQUFJLEdBQUcsR0FBVyxJQUFJLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssR0FB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QUNSO2dCQUNFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLHlCQUF5QixDQUFDLENBQUM7Z0JBQy9DLE1BQU07U0FDVDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBa0I7UUFDdkMsT0FBTyxZQUFZLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RlYnVnLCBOU3RyaW5nLCBSZWZQYXJhbX0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TGlzdGJveFNlbGVjdGlvbk1vZGUsIE1nQ29udHJvbFR5cGUsIFN0b3JhZ2VBdHRyaWJ1dGUsIFRyYW5zTW9kZX0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtQcm9wUGFyZW50SW50ZXJmYWNlfSBmcm9tIFwiLi4vLi4vZ3VpL1Byb3BQYXJlbnRJbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtQSUN9IGZyb20gXCIuL1BJQ1wiO1xyXG5pbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3J9IGZyb20gXCIuL0Rpc3BsYXlDb252ZXJ0b3JcIjtcclxuaW1wb3J0IHtCbG9iVHlwZX0gZnJvbSBcIi4uL2RhdGEvQmxvYlR5cGVcIjtcclxuaW1wb3J0IHtQcm9wSW50ZXJmYWNlfSBmcm9tIFwiLi9Qcm9wSW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7R3VpQ29uc3RhbnRzfSBmcm9tIFwiLi4vLi4vR3VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7R3VpQ29udHJvbFByb3BlcnR5QWRhcHRlcn0gZnJvbSBcIi4vR3VpQ29udHJvbFByb3BlcnR5QWRhcHRlclwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBQcm9wRGVmYXVsdHMgbWFuYWdlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgcHJvcGVydGllcyBhY2NvcmRpbmcgdG8gdGhlIG1vZGVsIHRoZXkgYmVsb25nIHRvXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBQcm9wRGVmYXVsdHMge1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIGEgbnVtZXJpYyB2YWx1ZSBpbiBpdHMgbWFnaWMgaW50ZXJuYWwgZm9ybWF0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInByb3BQYXJlbnRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiVmFsdWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudDogUHJvcFBhcmVudEludGVyZmFjZSwgVmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcGljOiBQSUMgPSBuZXcgUElDKFwiM1wiLCBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMsIHByb3BQYXJlbnQuZ2V0Q29tcElkeCgpKTtcclxuICAgIHJldHVybiBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLmRpc3AybWcoVmFsdWUsIHBpYywgcHJvcFBhcmVudC5nZXRDb21wSWR4KCksIEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTktOT1dOKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInByb3BJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBnZXREZWZhdWx0VmFsdWVGb3JUYXNrKHByb3BJZDogbnVtYmVyLCBoYW5kbGVkOiBSZWZQYXJhbTxib29sZWFuPik6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgaGFuZGxlZC52YWx1ZSA9IHRydWU7XHJcblxyXG4gICAgc3dpdGNoIChwcm9wSWQpIHtcclxuICAgICAgLy8gZm9yIHRhc2sgcHJvcGVydGllc1xyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RBU0tfUFJPUEVSVElFU19BTExPV19FVkVOVFM6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQUxMT1dfTE9DQVRFX0lOX1FVRVJZOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1BSSU5UX0RBVEE6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQUxMT1dfUkFOR0U6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQUxMT1dfTE9DQVRFOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0FMTE9XX1NPUlQ6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfUFJFTE9BRF9WSUVXOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RBU0tfUFJPUEVSVElFU19BTExPV19JTkRFWDpcclxuICAgICAgICB2YWwgPSBcIjFcIjsgLy8geWVzIGJvb2xlYW5cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIGZvciB0YXNrIHByb3BlcnRpZXNcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9DTE9TRV9UQVNLU19CWV9NRElfTUVOVTpcclxuICAgICAgICB2YWwgPSBcIjBcIjsgLy8geWVzIGJvb2xlYW5cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaGFuZGxlZC52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0RGVmYXVsdFZhbHVlIHJldHVybnMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBwcm9wZXJ0eVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwcm9wSWRcIj5UaGUgcHJvcGVydHkgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyZW50VHlwZVwiPlBBUkVOVF9UWVBFX0NPTlRST0wsIFBBUkVOVF9UWVBFX0ZPUk0sIFBBUkVOVF9UWVBFX1RBU0s8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicHJvcFBhcmVudFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBUaGUgcHJvcGVydHkgZGVmYXVsdCB2YWx1ZSBTdHJpbmcgcmVwcmVzZW50YXRpb248L3JldHVybnM+XHJcbiAgc3RhdGljIGdldERlZmF1bHRWYWx1ZShwcm9wSWQ6IG51bWJlciwgcGFyZW50VHlwZTogc3RyaW5nLCBwcm9wUGFyZW50OiBQcm9wUGFyZW50SW50ZXJmYWNlKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgICBsZXQgY29udHJvbDogR3VpQ29udHJvbFByb3BlcnR5QWRhcHRlciA9IG51bGw7XHJcblxyXG4gICAgaWYgKHBhcmVudFR5cGUgPT09IEd1aUNvbnN0YW50cy5QQVJFTlRfVFlQRV9UQVNLKSB7XHJcbiAgICAgIGxldCBoYW5kbGVkOiBSZWZQYXJhbTxib29sZWFuPiA9IG5ldyBSZWZQYXJhbTxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgICB2YWwgPSB0aGlzLmdldERlZmF1bHRWYWx1ZUZvclRhc2socHJvcElkLCBoYW5kbGVkKTtcclxuXHJcbiAgICAgIGlmIChoYW5kbGVkLnZhbHVlKVxyXG4gICAgICAgIHJldHVybiB2YWw7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoIChwcm9wSWQpIHtcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9DT0xPUjpcclxuICAgICAgICB2YWwgPSB0aGlzLmdldE51bWVyaWNNZ1ZhbHVlKHByb3BQYXJlbnQsIFwiMVwiKTtcclxuICAgICAgICBpZiAocGFyZW50VHlwZSA9PT0gR3VpQ29uc3RhbnRzLlBBUkVOVF9UWVBFX0NPTlRST0wpIHtcclxuICAgICAgICAgIGNvbnRyb2wgPSA8R3VpQ29udHJvbFByb3BlcnR5QWRhcHRlcj48YW55PnByb3BQYXJlbnQ7XHJcbiAgICAgICAgICBpZiAoY29udHJvbC5UeXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9CVVRUT04gJiYgY29udHJvbC5Jc0ltYWdlQnV0dG9uKCkpXHJcbiAgICAgICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIwXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQk9SREVSOlxyXG4gICAgICAgIHZhbCA9IFwiMFwiOyAvLyBubyBib29sZWFuXHJcbiAgICAgICAgaWYgKHBhcmVudFR5cGUgPT09IEd1aUNvbnN0YW50cy5QQVJFTlRfVFlQRV9DT05UUk9MKSB7XHJcbiAgICAgICAgICBjb250cm9sID0gPEd1aUNvbnRyb2xQcm9wZXJ0eUFkYXB0ZXI+PGFueT5wcm9wUGFyZW50O1xyXG4gICAgICAgICAgc3dpdGNoIChjb250cm9sLlR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TVUJGT1JNOlxyXG4gICAgICAgICAgICAgIC8vIGZpeGVkIGJ1ZyAjNzc3NjMzLCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBzdWJmb3JtIGNvbnRyb2wgaXMgTm8gYW5kIG5vdCBZZXNcclxuICAgICAgICAgICAgICB2YWwgPSBcIjBcIjsgLy8gbm8gYm9vbGVhblxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9URVhUOlxyXG4gICAgICAgICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RBQkxFOlxyXG4gICAgICAgICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xJU1Q6XHJcbiAgICAgICAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQlJPV1NFUjpcclxuICAgICAgICAgICAgICB2YWwgPSBcIjFcIjsgLy8geWVzIGJvb2xlYW5cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX01BWEJPWDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9NSU5CT1g6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfTVVTVF9JTlBVVDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9NVUxUSUxJTkU6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfUEFTU1dPUkQ6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfSEVCUkVXOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX01VTFRJTElORV9WRVJUSUNBTF9TQ1JPTEw6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfTVVMVElMSU5FX0FMTE9XX0NSOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0lTX0NBQ0hFRDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9NT0RJRllfSU5fUVVFUlk6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfU0hPV19GVUxMX1JPVzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UUkFDS19TRUxFQ1RJT046XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQ09MVU1OX0RJVklERVI6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfTElORV9ESVZJREVSOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RIUkVFX1NUQVRFUzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9SRUZSRVNIX1dIRU5fSElEREVOOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1JFVEFJTl9GT0NVUzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9ST1dfUExBQ0VNRU5UOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NIT1dfSU5fV0lORE9XX01FTlU6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfREFUQVZJRVdDT05UUk9MOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NPUlRfQ09MVU1OOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0JFRk9SRV85MDBfVkVSU0lPTjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9GSUxMX1dJRFRIOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX01VTFRJX0NPTFVNTl9ESVNQTEFZOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0FVVE9fQ09NUExFVEVfTU9ERV9XQzpcclxuICAgICAgICB2YWwgPSBcIjBcIjsgLy8gbm8gYm9vbGVhblxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9TWVNURU1fTUVOVTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9USVRMRV9CQVI6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRU5BQkxFRDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9WSVNJQkxFOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RBQl9JTjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9NT0RJRklBQkxFOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0hJR0hMSUdIVElORzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9BVVRPX1JFRlJFU0g6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfUEFSS19PTl9DTElDSzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9ESVNQTEFZX01FTlU6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRElTUExBWV9UT09MQkFSOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NIT1dfQlVUVE9OUzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9MSU5FU19BVF9ST09UOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NDUk9MTF9CQVI6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfU0hPV19MSU5FUzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9BTExPV19RVUVSWTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9SSUdIVF9CT1JERVI6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfVE9QX0JPUkRFUjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UT1BfQk9SREVSX01BUkdJTjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9TSE9XX0VMTElQSVNJUzpcclxuICAgICAgICB2YWwgPSBcIjFcIjsgLy8geWVzIGJvb2xlYW5cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIGFsbCB0aG9zZSBwcm9wZXJ0aWVzIG5lZWQgbm90IGNyZWF0ZSBhIGRlZmF1bHRcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UUklHR0VSOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1BST01QVDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9ESVNQTEFZX0xJU1Q6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfREFUQTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9JTUFHRV9GSUxFTkFNRTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9MQUJFTDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9QTEFDRU1FTlQ6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfUFVMTERPV05fTUVOVTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9DT05URVhUX01FTlU6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfTk9ERV9JRDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9OT0RFX1BBUkVOVElEOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NFTEVDVF9QUk9HUkFNOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1ZJU0lCTEVfTEFZRVJTX0xJU1Q6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRVhQQU5ERURfSU1BR0VJRFg6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQ09MTEFQU0VEX0lNQUdFSURYOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX09CSkVDVF9UWVBFOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RBQl9PUkRFUjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9MT0FEX0lNQUdFX0ZST006XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRk9STV9OQU1FOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0NPTFVNTl9USVRMRTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9XSURUSDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9QUkdUU0tfTlVNOlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9NVUxUSUxJTkVfV09SRFdSQVBfU0NST0xMOlxyXG4gICAgICAvLyAyLSBIT1JJWk9OVEFMX1NDUk9MTF9OT1xyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0JPUkRFUl9TVFlMRTogLy8gQk9SREVSX1RZUEVfVEhJQ0tcclxuICAgICAgICB2YWwgPSB0aGlzLmdldE51bWVyaWNNZ1ZhbHVlKHByb3BQYXJlbnQsIFwiMlwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9XSU5ET1dfVFlQRTpcclxuICAgICAgICB2YWwgPSB0aGlzLmdldE51bWVyaWNNZ1ZhbHVlKHByb3BQYXJlbnQsIFwiNlwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9ST1dfSElHSExJR0hUX1NUWUxFOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCI0XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9HUkFESUVOVF9TVFlMRTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UQUJCSU5HX09SREVSOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NUQVJUVVBfTU9ERTpcclxuICAgICAgLy8gMS5ERUZBVUxUXHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQ0hPSUNFX0NPTFVNTlM6XHJcbiAgICAgIC8vIDFcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9IT1JJWk9OVEFMX0FMSUdOTUVOVDpcclxuICAgICAgLy8gMSBBTElHTk1FTlRfVFlQRV9IT1JJX0xFRlRcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9GT05UOlxyXG4gICAgICAvLyAxXHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfV0FMTFBBUEVSX1NUWUxFOlxyXG4gICAgICAvLyBDVFJMX0lNQUdFX1NUWUxFX1RJTEVEXHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQ0hFQ0tCT1hfTUFJTl9TVFlMRTpcclxuICAgICAgLy8gQ0hFQ0tCT1hfTUFJTl9TVFlMRV9CT1hcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UQUJfQ09OVFJPTF9TSURFOlxyXG4gICAgICAvLyBTSURFX1RZUEVfVE9QOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1JBSVNFX0FUOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0FMTE9XRURfRElSRUNUSU9OOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1NVQkZPUk1fVFlQRTpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9VT006XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQk9UVE9NX1BPU0lUSU9OX0lOVEVSVkFMOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIxXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9UQVNLX1BST1BFUlRJRVNfVFJBTlNBQ1RJT05fTU9ERTpcclxuICAgICAgICB2YWwgPSBUcmFuc01vZGUuUGh5c2ljYWw7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1BBUktFRF9DT0xMQVBTRURfSU1BR0VJRFg6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfUEFSS0VEX0lNQUdFSURYOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX01JTklNVU1fSEVJR0hUOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RPUDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9MRUZUOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RJVExFX0hFSUdIVDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9MQVlFUjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9WSVNJQkxFX0xJTkVTOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0ZSQU1FU0VUX1NUWUxFOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RSQU5TTEFUT1I6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfSE9SX0ZBQzpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9WRVJfRkFDOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0ZPQ1VTX0NPTE9SOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIwXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9TVFlMRV8zRDpcclxuICAgICAgICBpZiAocGFyZW50VHlwZSA9PT0gR3VpQ29uc3RhbnRzLlBBUkVOVF9UWVBFX0NPTlRST0wpIHtcclxuICAgICAgICAgIGNvbnRyb2wgPSA8R3VpQ29udHJvbFByb3BlcnR5QWRhcHRlcj48YW55PnByb3BQYXJlbnQ7XHJcbiAgICAgICAgICBzd2l0Y2ggKGNvbnRyb2wuVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTUJPOlxyXG4gICAgICAgICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIyXCIpOyAvLyBDVFJMX0RJTV8zRFxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1JBRElPOlxyXG4gICAgICAgICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NIRUNLQk9YOlxyXG4gICAgICAgICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIzXCIpOyAvLyBDVFJMX0RJTV8zRF9TVU5LRU5cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfSU1BR0VfTElTVF9JTkRFWEVTOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1dBTExQQVBFUjpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9URVhUOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RPT0xUSVA6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRk9STUFUOlxyXG4gICAgICAgIHZhbCA9IE5TdHJpbmcuRW1wdHk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX0lNQUdFX1NUWUxFOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIyXCIpOyAvLyBDVFJMX0lNQUdFX1NUWUxFX0NPUElFRFxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9TRUxFQ1RJT05fTU9ERTpcclxuICAgICAgICB2YWwgPSB0aGlzLmdldE51bWVyaWNNZ1ZhbHVlKHByb3BQYXJlbnQsIFN0cmluZyhMaXN0Ym94U2VsZWN0aW9uTW9kZS5TaW5nbGUpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfSU5ERVg6XHJcbiAgICAgIGNhc2UgUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfTElOS19GSUVMRDpcclxuICAgICAgY2FzZSBQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9ESVNQTEFZX0ZJRUxEOlxyXG4gICAgICBjYXNlIFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1BFUlNJU1RFTlRfRk9STV9TVEFURV9WRVJTSU9OOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TnVtZXJpY01nVmFsdWUocHJvcFBhcmVudCwgXCIwXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIERlYnVnLkFzc2VydChmYWxzZSwgXCJVbmRlZmluZWQgZGVmYXVsdCB2YWx1ZVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgR2V0UHJvcGVydHlOYW1lKHByb3BUeXBlSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gXCJ7RmllbGQgSUQgXCIgKyBwcm9wVHlwZUlkICsgXCJ9XCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { ApplicationException, Hashtable, List, NNumber, NString } from "@magic-xpa/mscorelib";
|
|
2
|
-
import { Property } from "./Property";
|
|
3
|
-
import { XMLConstants, XmlParser } from "@magic-xpa/utils";
|
|
4
|
-
import { Events } from "../../Events";
|
|
5
|
-
import { PropInterface } from "./PropInterface";
|
|
6
|
-
import { GuiFormPropertyAdapter } from "./GuiFormPropertyAdapter";
|
|
7
|
-
import { GuiControlPropertyAdapter } from "./GuiControlPropertyAdapter";
|
|
8
|
-
export class PropTable {
|
|
9
|
-
constructor(parent_) {
|
|
10
|
-
this._hashTab = null;
|
|
11
|
-
this._props = null;
|
|
12
|
-
this._parent = null;
|
|
13
|
-
if (arguments.length === 0) {
|
|
14
|
-
this.constructor_0();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
this.constructor_1(parent_);
|
|
18
|
-
}
|
|
19
|
-
constructor_0() {
|
|
20
|
-
this._props = new List();
|
|
21
|
-
this._hashTab = new Hashtable(20);
|
|
22
|
-
}
|
|
23
|
-
constructor_1(parent_) {
|
|
24
|
-
this.constructor_0();
|
|
25
|
-
this._parent = parent_;
|
|
26
|
-
}
|
|
27
|
-
fillData(parentObj, parType, parser) {
|
|
28
|
-
while (this.initInnerObjects(parser.getNextTag(), parentObj, parType, parser)) {
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
fillDataByExists(task, parser) {
|
|
32
|
-
while (this.fillExistInnerObjects(parser.getNextTag(), task, parser)) {
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
initInnerObjects(foundTagName, parentObj, parType, parser) {
|
|
36
|
-
if (foundTagName !== null && foundTagName === XMLConstants.MG_TAG_PROP) {
|
|
37
|
-
let property = new Property();
|
|
38
|
-
property.fillData(parentObj, parType, parser);
|
|
39
|
-
this.addProp(property);
|
|
40
|
-
}
|
|
41
|
-
else
|
|
42
|
-
return false;
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
addProp(prop) {
|
|
46
|
-
this._hashTab.set_Item(prop.getID(), prop);
|
|
47
|
-
this._props.push(prop);
|
|
48
|
-
}
|
|
49
|
-
delPropById(id) {
|
|
50
|
-
if (this._props === null)
|
|
51
|
-
return;
|
|
52
|
-
let existingProp = this._hashTab.get_Item(id);
|
|
53
|
-
if (existingProp !== null) {
|
|
54
|
-
this._props.Remove(existingProp);
|
|
55
|
-
this._hashTab.Remove(id);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
fillExistInnerObjects(nameOfFound, task, parser) {
|
|
59
|
-
let tokensVector = new List();
|
|
60
|
-
let endContext = -1;
|
|
61
|
-
if (nameOfFound == null)
|
|
62
|
-
return false;
|
|
63
|
-
if (nameOfFound === XMLConstants.MG_TAG_CONTROL)
|
|
64
|
-
endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex());
|
|
65
|
-
else if (nameOfFound === XMLConstants.MG_TAG_PROP)
|
|
66
|
-
endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
|
|
67
|
-
else if (nameOfFound === ('/' + XMLConstants.MG_TAG_CONTROL) ||
|
|
68
|
-
GuiFormPropertyAdapter.IsEndFormTag(nameOfFound)) {
|
|
69
|
-
parser.setCurrIndex2EndOfTag();
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
if (endContext !== -1 && endContext < parser.getXMLdata().length) {
|
|
73
|
-
let tag = parser.getXMLsubstring(endContext);
|
|
74
|
-
parser.add2CurrIndex(tag.indexOf(nameOfFound) + nameOfFound.length);
|
|
75
|
-
tokensVector = XmlParser.getTokens(parser.getXMLsubstring(endContext), XMLConstants.XML_ATTR_DELIM);
|
|
76
|
-
if (nameOfFound === XMLConstants.MG_TAG_CONTROL) {
|
|
77
|
-
this._parent = task.getCtrl(NNumber.Parse(this.fillName(tokensVector)));
|
|
78
|
-
parser.setCurrIndex(++endContext);
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
else if (nameOfFound === XMLConstants.MG_TAG_PROP) {
|
|
82
|
-
if (this._parent != null) {
|
|
83
|
-
let strPropId = this.fillName(tokensVector);
|
|
84
|
-
let propId = NNumber.Parse(strPropId);
|
|
85
|
-
let prop = null;
|
|
86
|
-
if (this._parent != null)
|
|
87
|
-
prop = this._parent.getProp(propId);
|
|
88
|
-
if (prop == null)
|
|
89
|
-
Events.WriteExceptionToLog(NString.Format("in PropTable.fillExistInnerObjects() no property with id={0}", strPropId));
|
|
90
|
-
else
|
|
91
|
-
this.addProp(prop);
|
|
92
|
-
parser.setCurrIndex(endContext + XMLConstants.TAG_TERM.length);
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
else
|
|
96
|
-
Events.WriteExceptionToLog("in PropTable.fillExistInnerObjects() missing control");
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
Events.WriteExceptionToLog(NString.Format("in PropTable.fillExistInnerObjects() illegal tag name: {0}", nameOfFound));
|
|
100
|
-
parser.setCurrIndex(++endContext);
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (nameOfFound === XMLConstants.MG_TAG_CONTROL) {
|
|
105
|
-
parser.setCurrIndex(++endContext);
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
else if (GuiFormPropertyAdapter.IsFormTag(nameOfFound)) {
|
|
109
|
-
this._parent = task.getForm();
|
|
110
|
-
this._parent.fillName(nameOfFound);
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
else if (nameOfFound === ('/' + XMLConstants.MG_TAG_FLD))
|
|
114
|
-
return false;
|
|
115
|
-
parser.setCurrIndex(endContext + XMLConstants.TAG_TERM.length);
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
118
|
-
fillName(tokensVector) {
|
|
119
|
-
let attribute = null;
|
|
120
|
-
let valueStr;
|
|
121
|
-
for (let j = 0; j < tokensVector.length; j = j + 2) {
|
|
122
|
-
attribute = tokensVector.get_Item(j);
|
|
123
|
-
valueStr = tokensVector.get_Item(j + 1);
|
|
124
|
-
if (attribute === XMLConstants.MG_ATTR_DITIDX || attribute === XMLConstants.MG_ATTR_ID)
|
|
125
|
-
return valueStr;
|
|
126
|
-
}
|
|
127
|
-
Events.WriteExceptionToLog(NString.Format("Unrecognized attribute: '{0}'", attribute));
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
getSize() {
|
|
131
|
-
return this._props.length;
|
|
132
|
-
}
|
|
133
|
-
getProp(idx) {
|
|
134
|
-
if (idx < 0 || idx >= this._props.length)
|
|
135
|
-
return null;
|
|
136
|
-
return this._props.get_Item(idx);
|
|
137
|
-
}
|
|
138
|
-
getPropById(id) {
|
|
139
|
-
return this._hashTab.get_Item(id);
|
|
140
|
-
}
|
|
141
|
-
propExists(id) {
|
|
142
|
-
return this.getPropById(id) !== null;
|
|
143
|
-
}
|
|
144
|
-
setProp(propId, val, parent, parentType) {
|
|
145
|
-
let prop = this.getPropById(propId);
|
|
146
|
-
if (prop === null) {
|
|
147
|
-
prop = new Property(propId, parent, parentType);
|
|
148
|
-
this.addProp(prop);
|
|
149
|
-
}
|
|
150
|
-
prop.setValue(val);
|
|
151
|
-
prop.setOrgValue();
|
|
152
|
-
}
|
|
153
|
-
async RefreshDisplay(forceRefresh, onlyRepeatableProps) {
|
|
154
|
-
let allPropsRefreshed = true;
|
|
155
|
-
let prop;
|
|
156
|
-
let i = 0;
|
|
157
|
-
let form = null;
|
|
158
|
-
let visibleProps = new List();
|
|
159
|
-
if (this._parent != null && this._parent instanceof GuiControlPropertyAdapter)
|
|
160
|
-
form = this._parent.getForm();
|
|
161
|
-
if (form != null)
|
|
162
|
-
form.checkAndCreateRow(form.DisplayLine);
|
|
163
|
-
for (i = 0; i < this.getSize(); i++) {
|
|
164
|
-
prop = this.getProp(i);
|
|
165
|
-
try {
|
|
166
|
-
if (onlyRepeatableProps && !Property.isRepeatableInTable())
|
|
167
|
-
continue;
|
|
168
|
-
if (prop.getID() === PropInterface.PROP_TYPE_VISIBLE)
|
|
169
|
-
visibleProps.push(prop);
|
|
170
|
-
else
|
|
171
|
-
await prop.RefreshDisplay(forceRefresh);
|
|
172
|
-
}
|
|
173
|
-
catch (ex) {
|
|
174
|
-
if (ex instanceof ApplicationException) {
|
|
175
|
-
Events.WriteExceptionToLog(ex);
|
|
176
|
-
allPropsRefreshed = false;
|
|
177
|
-
}
|
|
178
|
-
else
|
|
179
|
-
throw ex;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
for (let i = 0; i < visibleProps.length; i++) {
|
|
183
|
-
let visibleProp = visibleProps[i];
|
|
184
|
-
await visibleProp.RefreshDisplay(forceRefresh);
|
|
185
|
-
}
|
|
186
|
-
return allPropsRefreshed;
|
|
187
|
-
}
|
|
188
|
-
updatePrevValueArray(newSize) {
|
|
189
|
-
for (let i = 0; i < this._props.length; i = i + 1) {
|
|
190
|
-
let property = this._props.get_Item(i);
|
|
191
|
-
property.updatePrevValueArray(newSize);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
resetPrevValueArray() {
|
|
195
|
-
for (let i = 0; i < this._props.length; i = i + 1) {
|
|
196
|
-
let property = this._props.get_Item(i);
|
|
197
|
-
property.ResetPrevValueArray();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
resetPrevValAt(index) {
|
|
201
|
-
for (let i = 0; i < this._props.length; i = i + 1) {
|
|
202
|
-
let property = this._props.get_Item(i);
|
|
203
|
-
property.resetPrevValAt(index);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
clearLabelPrevValueArray() {
|
|
207
|
-
let labelProperty = this.getPropById(45);
|
|
208
|
-
if (labelProperty !== null)
|
|
209
|
-
labelProperty.clearPrevValueArray();
|
|
210
|
-
}
|
|
211
|
-
getCtrlRef() {
|
|
212
|
-
return ((this._parent instanceof GuiControlPropertyAdapter) ? this._parent : null);
|
|
213
|
-
}
|
|
214
|
-
InsertPrevValueArray(count) {
|
|
215
|
-
for (let i = 0; i < this._props.length; i++) {
|
|
216
|
-
let prop = this._props[i];
|
|
217
|
-
prop.InsertPrevValueArray(count);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvcFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2d1aS9Qcm9wVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUt0RSxNQUFNLE9BQU8sU0FBUztJQVlwQixZQUFZLE9BQTZCO1FBVmpDLGFBQVEsR0FBZ0MsSUFBSSxDQUFDO1FBQzdDLFdBQU0sR0FBbUIsSUFBSSxDQUFDO1FBQzlCLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBVTFDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBWSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxhQUFhLENB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bWJlciwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7UHJvcGVydHl9IGZyb20gXCIuL1Byb3BlcnR5XCI7XHJcbmltcG9ydCB7UHJvcFBhcmVudEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL2d1aS9Qcm9wUGFyZW50SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7WE1MQ29uc3RhbnRzLCBYbWxQYXJzZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7R3VpVGFza0Jhc2V9IGZyb20gXCIuLi90YXNrcy9HdWlUYXNrQmFzZVwiO1xyXG5pbXBvcnQge0V2ZW50c30gZnJvbSBcIi4uLy4uL0V2ZW50c1wiO1xyXG5pbXBvcnQge1Byb3BJbnRlcmZhY2V9IGZyb20gXCIuL1Byb3BJbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtHdWlGb3JtUHJvcGVydHlBZGFwdGVyfSBmcm9tIFwiLi9HdWlGb3JtUHJvcGVydHlBZGFwdGVyXCI7XHJcbmltcG9ydCB7R3VpQ29udHJvbFByb3BlcnR5QWRhcHRlcn0gZnJvbSBcIi4vR3VpQ29udHJvbFByb3BlcnR5QWRhcHRlclwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBwcm9wZXJ0aWVzIHRhYmxlXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBQcm9wVGFibGUge1xyXG5cclxuICBwcml2YXRlIF9oYXNoVGFiOiBIYXNodGFibGU8bnVtYmVyLCBQcm9wZXJ0eT4gPSBudWxsOyAvLyBmb3IgZmFzdCBhY2Nlc3MgdG8gcHJvcGVydGllc1xyXG4gIHByaXZhdGUgX3Byb3BzOiBMaXN0PFByb3BlcnR5PiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfcGFyZW50OiBQcm9wUGFyZW50SW50ZXJmYWNlID0gbnVsbDtcclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHBhcmVudF86IFByb3BQYXJlbnRJbnRlcmZhY2UpO1xyXG4gIGNvbnN0cnVjdG9yKHBhcmVudF8/OiBQcm9wUGFyZW50SW50ZXJmYWNlKSB7XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMShwYXJlbnRfKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Byb3BzID0gbmV3IExpc3Q8UHJvcGVydHk+KCk7XHJcbiAgICB0aGlzLl9oYXNoVGFiID0gbmV3IEhhc2h0YWJsZTxudW1iZXIsIFByb3BlcnR5PigyMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEocGFyZW50XzogUHJvcFBhcmVudEludGVyZmFjZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICB0aGlzLl9wYXJlbnQgPSBwYXJlbnRfO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHBhcnNlIHRoZSBwcm9wZXJ0aWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmVudE9ialwiPnJlZmVyZW5jZSB0byBwYXJlbnQgb2JqZWN0KEd1aVRhc2tCYXNlKTwvcGFyYW0+XHJcbiAgZmlsbERhdGEocGFyZW50T2JqOiBQcm9wUGFyZW50SW50ZXJmYWNlLCBwYXJUeXBlOiBzdHJpbmcsIHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlci5nZXROZXh0VGFnKCksIHBhcmVudE9iaiwgcGFyVHlwZSwgcGFyc2VyKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZvciByZWNvbXB1dGU6IFBhcnNlIHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGFuZCBjcmVhdGUgcmVmZXJlbmNlcyB0byB0aGVtXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj5yZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBHdWlUYXNrQmFzZTwvcGFyYW0+XHJcbiAgZmlsbERhdGFCeUV4aXN0cyh0YXNrOiBHdWlUYXNrQmFzZSwgcGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLmZpbGxFeGlzdElubmVyT2JqZWN0cyhwYXJzZXIuZ2V0TmV4dFRhZygpLCB0YXNrLCBwYXJzZXIpKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZmlsbCB0aGUgaW5uZXIgb2JqZWN0cyBvZiB0aGUgY2xhc3NcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm91bmRUYWdOYW1lXCI+bmFtZSBvZiB0YWcsIG9mIG9iamVjdCwgd2hpY2ggbmVlZCBiZSBhbGxvY2F0ZWQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyZW50T2JqXCI+cmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgb2JqZWN0LCBuZWVkIGJlIGFkZGVkIHRvIGV2ZXJ5IFByb3BlcnR5PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IE1hbmFnZXIuWG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCB0aGUgZm91bmQgb2JqZWN0IHRhZyBhbmQgQUxMIGl0cyBzdWJ0YWdzIGZpbmlzaDwvcmV0dXJucz5cclxuICBwcml2YXRlIGluaXRJbm5lck9iamVjdHMoZm91bmRUYWdOYW1lOiBzdHJpbmcsIHBhcmVudE9iajogUHJvcFBhcmVudEludGVyZmFjZSwgcGFyVHlwZTogc3RyaW5nLCBwYXJzZXI6IFhtbFBhcnNlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSAhPT0gbnVsbCAmJiBmb3VuZFRhZ05hbWUgPT09IFhNTENvbnN0YW50cy5NR19UQUdfUFJPUCkge1xyXG4gICAgICBsZXQgcHJvcGVydHk6IFByb3BlcnR5ID0gbmV3IFByb3BlcnR5KCk7XHJcbiAgICAgIHByb3BlcnR5LmZpbGxEYXRhKHBhcmVudE9iaiwgcGFyVHlwZSwgcGFyc2VyKTtcclxuICAgICAgdGhpcy5hZGRQcm9wKHByb3BlcnR5KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYWRkaW5nIHByb3BlcnR5IGJ5IGtleVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwcm9wXCI+PC9wYXJhbT5cclxuICBhZGRQcm9wKHByb3A6IFByb3BlcnR5KTogdm9pZCB7XHJcbiAgICB0aGlzLl9oYXNoVGFiLnNldF9JdGVtKHByb3AuZ2V0SUQoKSwgcHJvcCk7XHJcbiAgICB0aGlzLl9wcm9wcy5wdXNoKHByb3ApO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZFwiPjwvcGFyYW0+XHJcbiAgZGVsUHJvcEJ5SWQoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3Byb3BzID09PSBudWxsKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgbGV0IGV4aXN0aW5nUHJvcDogUHJvcGVydHkgPSA8UHJvcGVydHk+dGhpcy5faGFzaFRhYi5nZXRfSXRlbShpZCk7XHJcbiAgICBpZiAoZXhpc3RpbmdQcm9wICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3Byb3BzLlJlbW92ZShleGlzdGluZ1Byb3ApO1xyXG4gICAgICB0aGlzLl9oYXNoVGFiLlJlbW92ZShpZCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZvciBSZWNvbXB1dGU6IEZpbGwgUHJvcFRhYmxlIHdpdGggcmVmZXJlbmNlIHRvIGV4aXN0aW5nIFByb3BUYWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrXCI+cmVmZXJlbmNlIHRvIHBhcmVudCBHdWlUYXNrQmFzZTwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBmaWxsRXhpc3RJbm5lck9iamVjdHMobmFtZU9mRm91bmQ6IHN0cmluZywgdGFzazogR3VpVGFza0Jhc2UsIHBhcnNlcjogWG1sUGFyc2VyKTogYm9vbGVhbiB7XHJcblxyXG4gICAgbGV0IHRva2Vuc1ZlY3RvcjogTGlzdDxzdHJpbmc+ID0gbmV3IExpc3Q8c3RyaW5nPigpO1xyXG4gICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIGlmIChuYW1lT2ZGb3VuZCA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKG5hbWVPZkZvdW5kID09PSBYTUxDb25zdGFudHMuTUdfVEFHX0NPTlRST0wpXHJcbiAgICAgIGVuZENvbnRleHQgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuICAgIGVsc2UgaWYgKG5hbWVPZkZvdW5kID09PSBYTUxDb25zdGFudHMuTUdfVEFHX1BST1ApXHJcbiAgICAgIGVuZENvbnRleHQgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19URVJNLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgZWxzZSBpZiAobmFtZU9mRm91bmQgPT09ICgnLycgKyBYTUxDb25zdGFudHMuTUdfVEFHX0NPTlRST0wpIHx8XHJcbiAgICAgIEd1aUZvcm1Qcm9wZXJ0eUFkYXB0ZXIuSXNFbmRGb3JtVGFnKG5hbWVPZkZvdW5kKSkge1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW5kQ29udGV4dCAhPT0gLTEgJiYgZW5kQ29udGV4dCA8IHBhcnNlci5nZXRYTUxkYXRhKCkubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGxhc3QgcG9zaXRpb24gb2YgaXRzIHRhZ1xyXG4gICAgICBsZXQgdGFnOiBzdHJpbmcgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpO1xyXG4gICAgICBwYXJzZXIuYWRkMkN1cnJJbmRleCh0YWcuaW5kZXhPZihuYW1lT2ZGb3VuZCkgKyBuYW1lT2ZGb3VuZC5sZW5ndGgpO1xyXG4gICAgICB0b2tlbnNWZWN0b3IgPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCksIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcbiAgICAgIGlmIChuYW1lT2ZGb3VuZCA9PT0gWE1MQ29uc3RhbnRzLk1HX1RBR19DT05UUk9MKSB7XHJcbiAgICAgICAgLy8gZGl0aWR4IG9mIEV4aXN0cyBDb250cm9sXHJcbiAgICAgICAgdGhpcy5fcGFyZW50ID0gdGFzay5nZXRDdHJsKE5OdW1iZXIuUGFyc2UodGhpcy5maWxsTmFtZSh0b2tlbnNWZWN0b3IpKSk7XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleCgrK2VuZENvbnRleHQpOyAvLyB0byBkZWxldGUgXCI+XCJcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChuYW1lT2ZGb3VuZCA9PT0gWE1MQ29uc3RhbnRzLk1HX1RBR19QUk9QKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudCAhPSBudWxsKSB7XHJcbiAgICAgICAgICBsZXQgc3RyUHJvcElkOiBzdHJpbmcgPSB0aGlzLmZpbGxOYW1lKHRva2Vuc1ZlY3Rvcik7XHJcbiAgICAgICAgICBsZXQgcHJvcElkOiBudW1iZXIgPSBOTnVtYmVyLlBhcnNlKHN0clByb3BJZCk7XHJcbiAgICAgICAgICBsZXQgcHJvcDogUHJvcGVydHkgPSBudWxsO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLl9wYXJlbnQgIT0gbnVsbClcclxuICAgICAgICAgICAgcHJvcCA9IHRoaXMuX3BhcmVudC5nZXRQcm9wKHByb3BJZCk7XHJcblxyXG4gICAgICAgICAgaWYgKHByb3AgPT0gbnVsbClcclxuICAgICAgICAgICAgRXZlbnRzLldyaXRlRXhjZXB0aW9uVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJpbiBQcm9wVGFibGUuZmlsbEV4aXN0SW5uZXJPYmplY3RzKCkgbm8gcHJvcGVydHkgd2l0aCBpZD17MH1cIiwgc3RyUHJvcElkKSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuYWRkUHJvcChwcm9wKTtcclxuICAgICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgoZW5kQ29udGV4dCArIFhNTENvbnN0YW50cy5UQUdfVEVSTS5sZW5ndGgpO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKFwiaW4gUHJvcFRhYmxlLmZpbGxFeGlzdElubmVyT2JqZWN0cygpIG1pc3NpbmcgY29udHJvbFwiKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBFdmVudHMuV3JpdGVFeGNlcHRpb25Ub0xvZyhOU3RyaW5nLkZvcm1hdChcImluIFByb3BUYWJsZS5maWxsRXhpc3RJbm5lck9iamVjdHMoKSBpbGxlZ2FsIHRhZyBuYW1lOiB7MH1cIiwgbmFtZU9mRm91bmQpKTtcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KCsrZW5kQ29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAobmFtZU9mRm91bmQgPT09IFhNTENvbnN0YW50cy5NR19UQUdfQ09OVFJPTCkge1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KCsrZW5kQ29udGV4dCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoR3VpRm9ybVByb3BlcnR5QWRhcHRlci5Jc0Zvcm1UYWcobmFtZU9mRm91bmQpKSB7XHJcbiAgICAgIHRoaXMuX3BhcmVudCA9IHRhc2suZ2V0Rm9ybSgpO1xyXG4gICAgICAoPEd1aUZvcm1Qcm9wZXJ0eUFkYXB0ZXI+PGFueT50aGlzLl9wYXJlbnQpLmZpbGxOYW1lKG5hbWVPZkZvdW5kKTtcclxuXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobmFtZU9mRm91bmQgPT09ICgnLycgKyBYTUxDb25zdGFudHMuTUdfVEFHX0ZMRCkpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZENvbnRleHQgKyBYTUxDb25zdGFudHMuVEFHX1RFUk0ubGVuZ3RoKTsgLy8gZXhpdCBvZiBib3VuZHNcclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgRmluZCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBDb250cm9sLCBvciBvZiBhbiBleGlzdGluZyBQcm9wZXJ0eVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBOYW1lIG9mIGNvbnRyb2w8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBmaWxsTmFtZSh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICBsZXQgYXR0cmlidXRlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmc7XHJcblxyXG4gICAgZm9yIChsZXQgajogbnVtYmVyID0gMDsgaiA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGogPSBqICsgMikge1xyXG4gICAgICBhdHRyaWJ1dGUgPSB0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaik7XHJcbiAgICAgIHZhbHVlU3RyID0gdG9rZW5zVmVjdG9yLmdldF9JdGVtKGogKyAxKTtcclxuXHJcbiAgICAgIGlmIChhdHRyaWJ1dGUgPT09IFhNTENvbnN0YW50cy5NR19BVFRSX0RJVElEWCB8fCBhdHRyaWJ1dGUgPT09IFhNTENvbnN0YW50cy5NR19BVFRSX0lEKVxyXG4gICAgICAgIHJldHVybiB2YWx1ZVN0cjtcclxuICAgIH1cclxuICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiVW5yZWNvZ25pemVkIGF0dHJpYnV0ZTogJ3swfSdcIiwgYXR0cmlidXRlKSk7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgc2l6ZSBvZiB0aGUgdmVjdG9yIHByb3BzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHNpemUgb2YgdGhlIHByb3BzIG1lbWJlcjwvcmV0dXJucz5cclxuICBnZXRTaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvcHMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIFByb3BlcnR5IGJ5IGl0cyBpbmRleCBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSBwcm9wZXJ0eTwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiByZWZlcmVuY2UgdG8gdGhlIHJlcXVpcmVkIFByb3BlcnR5PC9yZXR1cm5zPlxyXG4gIGdldFByb3AoaWR4OiBudW1iZXIpOiBQcm9wZXJ0eSB7XHJcbiAgICBpZiAoaWR4IDwgMCB8fCBpZHggPj0gdGhpcy5fcHJvcHMubGVuZ3RoKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLl9wcm9wcy5nZXRfSXRlbShpZHgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIFByb3BlcnR5IGJ5IGl0cyBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZFwiPm9mIHRoZSBwcm9wZXJ0eTwvcGFyYW0+XHJcbiAgZ2V0UHJvcEJ5SWQoaWQ6IG51bWJlcik6IFByb3BlcnR5IHtcclxuICAgIHJldHVybiA8UHJvcGVydHk+dGhpcy5faGFzaFRhYi5nZXRfSXRlbShpZCk7XHJcbiAgfVxyXG5cclxuICBwcm9wRXhpc3RzKGlkOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldFByb3BCeUlkKGlkKSAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgYSBwcm9wZXJ0eSB2YWx1ZS4gaW4gY2FzZSB0aGUgdGFibGUgZG9lc24ndCBjb250YWluIHN1Y2ggcHJvcGVydHksIGNyZWF0ZXMgYSBuZXcgUHJvcGVydHkgb2JqZWN0IGFuZCBhZGQgaXQgdG8gdGhlIHRhYmxlLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwcm9wSWRcIj50aGUgaWQgb2YgdGhlIHByb3BlcnR5PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPnRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHk8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyZW50XCI+YSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBvYmplY3Q8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyZW50VHlwZVwiPnRoZSB0eXBlIG9mIHRoZSBwYXJlbnQgb2JqZWN0PC9wYXJhbT5cclxuICBzZXRQcm9wKHByb3BJZDogbnVtYmVyLCB2YWw6IHN0cmluZywgcGFyZW50OiBQcm9wUGFyZW50SW50ZXJmYWNlLCBwYXJlbnRUeXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuXHJcbiAgICBsZXQgcHJvcDogUHJvcGVydHkgPSB0aGlzLmdldFByb3BCeUlkKHByb3BJZCk7XHJcbiAgICBpZiAocHJvcCA9PT0gbnVsbCkge1xyXG4gICAgICBwcm9wID0gbmV3IFByb3BlcnR5KHByb3BJZCwgcGFyZW50LCBwYXJlbnRUeXBlKTtcclxuICAgICAgdGhpcy5hZGRQcm9wKHByb3ApO1xyXG4gICAgfVxyXG4gICAgcHJvcC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgcHJvcC5zZXRPcmdWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJlZnJlc2ggZGlzcGxheSBvZiB0aGUgcHJvcGVydGllcyBpbiB0aGUgVGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm9yY2VSZWZyZXNoXCI+aWYgdHJ1ZSwgcmVmcmVzaCBpcyBmb3JjZWQgcmVnYXJkbGVzcyBvZiB0aGUgcHJldmlvdXMgdmFsdWU8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib25seVJlcGVhdGFibGVQcm9wc1wiPmlmIHRydWUsIHJlZnJlc2hlcyBvbmx5IHJlcGVhdGFibGUgdHJlZSBwcm9wZXJ0aWVzPC9wYXJhbT5cclxuICBhc3luYyBSZWZyZXNoRGlzcGxheShmb3JjZVJlZnJlc2g6IGJvb2xlYW4sIG9ubHlSZXBlYXRhYmxlUHJvcHM6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuXHJcbiAgICBsZXQgYWxsUHJvcHNSZWZyZXNoZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbGV0IHByb3A6IFByb3BlcnR5O1xyXG4gICAgbGV0IGk6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgZm9ybTogR3VpRm9ybVByb3BlcnR5QWRhcHRlciA9IG51bGw7XHJcbiAgICBsZXQgdmlzaWJsZVByb3BzOiBMaXN0PFByb3BlcnR5PiA9IG5ldyBMaXN0KCk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLl9wYXJlbnQgIT0gbnVsbCAmJiB0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBHdWlDb250cm9sUHJvcGVydHlBZGFwdGVyKVxyXG4gICAgICBmb3JtID0gKDxHdWlDb250cm9sUHJvcGVydHlBZGFwdGVyPnRoaXMuX3BhcmVudCkuZ2V0Rm9ybSgpO1xyXG5cclxuICAgIGlmIChmb3JtICE9IG51bGwpXHJcbiAgICAgIGZvcm0uY2hlY2tBbmRDcmVhdGVSb3coZm9ybS5EaXNwbGF5TGluZSk7XHJcblxyXG5cclxuICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmdldFNpemUoKTsgaSsrKSB7XHJcbiAgICAgIHByb3AgPSB0aGlzLmdldFByb3AoaSk7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gaWYgdGhpcyBwcm9wZXJ0eSBpcyBub3QgcmVwZWF0YWJsZSBpbiB0cmVlIG9yIHRhYmxlLCBhbmQgb25seVJlcGVhdGFibGVQcm9wcyB0dXJuZWQgb25cclxuICAgICAgICAvLyBkbyBub3QgcmVmcmVzaCB0aGlzIHByb3BlcnR5XHJcbiAgICAgICAgaWYgKG9ubHlSZXBlYXRhYmxlUHJvcHMgJiYgIVByb3BlcnR5LmlzUmVwZWF0YWJsZUluVGFibGUoKSlcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAvLyBSZWZyZXNoIFZpc2libGUgcHJvcCBvbmx5IGFmdGVyIHJlZnJlc2hpbmcgdGhlIG5hdmlnYXRpb24gcHJvcHMgbGlrZSBYLCBZLlxyXG4gICAgICAgIC8vIE90aGVyd2lzZSwgdGhlIGNvbnRyb2wgaXMgc2hvd24gb24gaXRzIGRlZmF1bHQgbG9jYXRpb24gZmlyc3QgYW5kXHJcbiAgICAgICAgLy8gdGhlbiBtb3ZlZCBzb21ld2hlcmUgZWxzZS4gQW5kIHRoaXMgaXMgY2xlYXJseSB2aXNpYmxlLlxyXG4gICAgICAgIGlmIChwcm9wLmdldElEKCkgPT09IFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1ZJU0lCTEUpXHJcbiAgICAgICAgICB2aXNpYmxlUHJvcHMucHVzaChwcm9wKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBhd2FpdCBwcm9wLlJlZnJlc2hEaXNwbGF5KGZvcmNlUmVmcmVzaCk7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgaWYgKGV4IGluc3RhbmNlb2YgQXBwbGljYXRpb25FeGNlcHRpb24pIHtcclxuICAgICAgICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKGV4KTtcclxuICAgICAgICAgIGFsbFByb3BzUmVmcmVzaGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRocm93ICBleDtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpc2libGVQcm9wcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgbGV0IHZpc2libGVQcm9wID0gdmlzaWJsZVByb3BzW2ldO1xyXG4gICAgICBhd2FpdCB2aXNpYmxlUHJvcC5SZWZyZXNoRGlzcGxheShmb3JjZVJlZnJlc2gpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhbGxQcm9wc1JlZnJlc2hlZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB1cGRhdGUgYWxsIHByb3BlcnRpZXMgYXJyYXkgc2l6ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuZXdTaXplXCI+PC9wYXJhbT5cclxuICB1cGRhdGVQcmV2VmFsdWVBcnJheShuZXdTaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9wcm9wcy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgcHJvcGVydHk6IFByb3BlcnR5ID0gdGhpcy5fcHJvcHMuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIHByb3BlcnR5LnVwZGF0ZVByZXZWYWx1ZUFycmF5KG5ld1NpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyB1cGRhdGUgYWxsIHByb3BlcnRpZXMgYXJyYXkgc2l6ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcmVzZXRQcmV2VmFsdWVBcnJheSgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9wcm9wcy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgcHJvcGVydHk6IFByb3BlcnR5ID0gdGhpcy5fcHJvcHMuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIHByb3BlcnR5LlJlc2V0UHJldlZhbHVlQXJyYXkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUmVzZXQgcHJldiB2YWx1ZSBhdCBpbmRleC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHJlc2V0UHJldlZhbEF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9wcm9wcy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgcHJvcGVydHk6IFByb3BlcnR5ID0gdGhpcy5fcHJvcHMuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIHByb3BlcnR5LnJlc2V0UHJldlZhbEF0KGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY2xlYXIgcHJldlZhbHVlIGFycmF5IG9mIExhYmVsIHByb3BlcnR5IGlmIGV4aXN0c1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY2xlYXJMYWJlbFByZXZWYWx1ZUFycmF5KCk6IHZvaWQge1xyXG4gICAgbGV0IGxhYmVsUHJvcGVydHk6IFByb3BlcnR5ID0gdGhpcy5nZXRQcm9wQnlJZCg0NSk7XHJcbiAgICBpZiAobGFiZWxQcm9wZXJ0eSAhPT0gbnVsbClcclxuICAgICAgbGFiZWxQcm9wZXJ0eS5jbGVhclByZXZWYWx1ZUFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGdldEN0cmxSZWYoKTogR3VpQ29udHJvbFByb3BlcnR5QWRhcHRlciB7XHJcbiAgICByZXR1cm4gKCh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBHdWlDb250cm9sUHJvcGVydHlBZGFwdGVyKSA/IDxHdWlDb250cm9sUHJvcGVydHlBZGFwdGVyPnRoaXMuX3BhcmVudCA6IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEluc2VydFByZXZWYWx1ZUFycmF5KCBjb3VudDogbnVtYmVyKSB7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fcHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHByb3A6IFByb3BlcnR5ID0gdGhpcy5fcHJvcHNbaV07XHJcbiAgICAgIHByb3AuSW5zZXJ0UHJldlZhbHVlQXJyYXkoY291bnQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|