@magic-xpa/gui 4.1100.0-dev4110.24 → 4.1100.0-dev4110.240
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
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import { BlobType } from "./BlobType";
|
|
2
|
+
import { StorageAttribute, StrUtil, XmlParser, Base64, XMLConstants } from "@magic-xpa/utils";
|
|
3
|
+
import { NNumber, NString, Int32 } from "@magic-xpa/mscorelib";
|
|
4
|
+
import { Events } from "../../Events";
|
|
5
|
+
import { DisplayConvertor } from "../gui/DisplayConvertor";
|
|
6
|
+
import { VectorType } from "./VectorType";
|
|
7
|
+
import { GuiEnvironment } from "../../GuiEnvironment";
|
|
8
|
+
export class FieldDef {
|
|
9
|
+
DefaultValue = null;
|
|
10
|
+
NullAllowed = false;
|
|
11
|
+
_nullDefault = false;
|
|
12
|
+
_nullValue = null;
|
|
13
|
+
_nullDisplay = null;
|
|
14
|
+
set DbModifiable(value) {
|
|
15
|
+
this._dbModifiable = value;
|
|
16
|
+
}
|
|
17
|
+
get DbModifiable() {
|
|
18
|
+
return this._dbModifiable;
|
|
19
|
+
}
|
|
20
|
+
_dbModifiable = true;
|
|
21
|
+
_partOfDataview = true;
|
|
22
|
+
_picture = null;
|
|
23
|
+
_size = 0;
|
|
24
|
+
_varName = null;
|
|
25
|
+
_contentType = BlobType.CONTENT_TYPE_UNKNOWN;
|
|
26
|
+
_vecCellsContentType = BlobType.CONTENT_TYPE_UNKNOWN;
|
|
27
|
+
_vecCellsSize = 0;
|
|
28
|
+
_vecCellsType = StorageAttribute.NONE;
|
|
29
|
+
_type = StorageAttribute.NONE;
|
|
30
|
+
Storage;
|
|
31
|
+
VarDisplayName = null;
|
|
32
|
+
static _default_date = null;
|
|
33
|
+
_id = 0;
|
|
34
|
+
_spaces = null;
|
|
35
|
+
constructor(id) {
|
|
36
|
+
this._id = id;
|
|
37
|
+
this.VarDisplayName = NString.Empty;
|
|
38
|
+
}
|
|
39
|
+
get PartOfDataview() {
|
|
40
|
+
return this._partOfDataview;
|
|
41
|
+
}
|
|
42
|
+
getId() {
|
|
43
|
+
return this._id;
|
|
44
|
+
}
|
|
45
|
+
getType() {
|
|
46
|
+
return this._type;
|
|
47
|
+
}
|
|
48
|
+
static getMagicDefaultNullDisplayValue(type) {
|
|
49
|
+
let val;
|
|
50
|
+
switch (type) {
|
|
51
|
+
case StorageAttribute.ALPHA:
|
|
52
|
+
case StorageAttribute.UNICODE:
|
|
53
|
+
case StorageAttribute.BOOLEAN:
|
|
54
|
+
val = "";
|
|
55
|
+
break;
|
|
56
|
+
case StorageAttribute.NUMERIC:
|
|
57
|
+
case StorageAttribute.DATE:
|
|
58
|
+
case StorageAttribute.TIME:
|
|
59
|
+
val = "";
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
return val;
|
|
63
|
+
}
|
|
64
|
+
static getMagicDefaultValue(type) {
|
|
65
|
+
let val = null;
|
|
66
|
+
switch (type) {
|
|
67
|
+
case StorageAttribute.ALPHA:
|
|
68
|
+
case StorageAttribute.UNICODE:
|
|
69
|
+
val = "";
|
|
70
|
+
break;
|
|
71
|
+
case StorageAttribute.BLOB:
|
|
72
|
+
case StorageAttribute.BLOB_VECTOR:
|
|
73
|
+
val = BlobType.getEmptyBlobPrefix('\0') + ";";
|
|
74
|
+
break;
|
|
75
|
+
case StorageAttribute.NUMERIC:
|
|
76
|
+
case StorageAttribute.TIME:
|
|
77
|
+
val = "FF00000000000000000000000000000000000000";
|
|
78
|
+
break;
|
|
79
|
+
case StorageAttribute.DATE:
|
|
80
|
+
val = FieldDef._default_date;
|
|
81
|
+
break;
|
|
82
|
+
case StorageAttribute.BOOLEAN:
|
|
83
|
+
val = "0";
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
return val;
|
|
87
|
+
}
|
|
88
|
+
getDefaultValue() {
|
|
89
|
+
let val = null;
|
|
90
|
+
if (this._type !== StorageAttribute.BLOB_VECTOR) {
|
|
91
|
+
if (this._nullDefault && this._nullValue !== null)
|
|
92
|
+
val = this._nullValue;
|
|
93
|
+
else if (this.DefaultValue !== null)
|
|
94
|
+
val = this.DefaultValue;
|
|
95
|
+
else
|
|
96
|
+
val = this.getMagicDefaultValue();
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
val = this.getMagicDefaultValue();
|
|
100
|
+
return val;
|
|
101
|
+
}
|
|
102
|
+
getCellDefualtValue() {
|
|
103
|
+
let val;
|
|
104
|
+
if (this._type === StorageAttribute.BLOB_VECTOR) {
|
|
105
|
+
if (this._nullDefault && this._nullValue !== null)
|
|
106
|
+
val = this._nullValue;
|
|
107
|
+
else if (this.DefaultValue !== null)
|
|
108
|
+
val = this.DefaultValue;
|
|
109
|
+
else {
|
|
110
|
+
val = FieldDef.getMagicDefaultValue(this._vecCellsType);
|
|
111
|
+
if (this._vecCellsType === StorageAttribute.BLOB)
|
|
112
|
+
val = BlobType.setContentType(val, this._vecCellsContentType);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else
|
|
116
|
+
val = this.getDefaultValue();
|
|
117
|
+
return val;
|
|
118
|
+
}
|
|
119
|
+
getMagicDefaultValue() {
|
|
120
|
+
let val = FieldDef.getMagicDefaultValue(this._type);
|
|
121
|
+
if (this._type === StorageAttribute.BLOB)
|
|
122
|
+
val = BlobType.setContentType(val, this._contentType);
|
|
123
|
+
else {
|
|
124
|
+
if (this._type === StorageAttribute.BLOB_VECTOR) {
|
|
125
|
+
val = BlobType.SetVecCellAttr(val, this._vecCellsType);
|
|
126
|
+
if (this._vecCellsType === StorageAttribute.BLOB)
|
|
127
|
+
val = BlobType.setContentType(val, this._vecCellsContentType);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return val;
|
|
131
|
+
}
|
|
132
|
+
getContentType() {
|
|
133
|
+
return this._contentType;
|
|
134
|
+
}
|
|
135
|
+
hasNullDisplayValue() {
|
|
136
|
+
return this._nullDisplay !== null;
|
|
137
|
+
}
|
|
138
|
+
getSize() {
|
|
139
|
+
return this._size;
|
|
140
|
+
}
|
|
141
|
+
getVecCellsSize() {
|
|
142
|
+
return (this._type === StorageAttribute.BLOB_VECTOR) ? this._vecCellsSize : this._size;
|
|
143
|
+
}
|
|
144
|
+
setLengths(type, vecCells) {
|
|
145
|
+
let res = this._size;
|
|
146
|
+
switch (type) {
|
|
147
|
+
case StorageAttribute.ALPHA:
|
|
148
|
+
case StorageAttribute.MEMO:
|
|
149
|
+
case StorageAttribute.UNICODE:
|
|
150
|
+
if (vecCells) {
|
|
151
|
+
res = this._vecCellsSize;
|
|
152
|
+
this._spaces = new Array(this._vecCellsSize);
|
|
153
|
+
}
|
|
154
|
+
else
|
|
155
|
+
this._spaces = new Array(this._size);
|
|
156
|
+
for (let i = 0; i < this._size; i = i + 1) {
|
|
157
|
+
this._spaces[i] = ' ';
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
case StorageAttribute.NUMERIC:
|
|
161
|
+
case StorageAttribute.DATE:
|
|
162
|
+
case StorageAttribute.TIME:
|
|
163
|
+
res = GuiEnvironment.Environment.GetSignificantNumSize() * 2;
|
|
164
|
+
break;
|
|
165
|
+
case StorageAttribute.BOOLEAN:
|
|
166
|
+
res = (!vecCells ? 1 : 4);
|
|
167
|
+
break;
|
|
168
|
+
case StorageAttribute.BLOB:
|
|
169
|
+
res = (!vecCells ? Int32.MaxValue : VectorType.BLOB_TYPE_STRUCT_SIZE);
|
|
170
|
+
break;
|
|
171
|
+
case StorageAttribute.BLOB_VECTOR:
|
|
172
|
+
res = Int32.MaxValue;
|
|
173
|
+
if (!vecCells)
|
|
174
|
+
this.setLengths(this._vecCellsType, true);
|
|
175
|
+
else
|
|
176
|
+
res = VectorType.BLOB_TYPE_STRUCT_SIZE;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
if (vecCells)
|
|
180
|
+
this._vecCellsSize = res;
|
|
181
|
+
else
|
|
182
|
+
this._size = res;
|
|
183
|
+
}
|
|
184
|
+
getCellsType() {
|
|
185
|
+
return (this._type === StorageAttribute.BLOB_VECTOR) ? this._vecCellsType : this._type;
|
|
186
|
+
}
|
|
187
|
+
getVecCellsContentType() {
|
|
188
|
+
return this._vecCellsContentType;
|
|
189
|
+
}
|
|
190
|
+
getNullValue() {
|
|
191
|
+
return this._nullValue;
|
|
192
|
+
}
|
|
193
|
+
isNullDefault() {
|
|
194
|
+
return this._nullDefault;
|
|
195
|
+
}
|
|
196
|
+
getNullDisplay() {
|
|
197
|
+
let val;
|
|
198
|
+
switch (this._type) {
|
|
199
|
+
case StorageAttribute.ALPHA:
|
|
200
|
+
case StorageAttribute.UNICODE:
|
|
201
|
+
case StorageAttribute.BOOLEAN:
|
|
202
|
+
val = "";
|
|
203
|
+
break;
|
|
204
|
+
case StorageAttribute.NUMERIC:
|
|
205
|
+
case StorageAttribute.DATE:
|
|
206
|
+
case StorageAttribute.TIME:
|
|
207
|
+
val = null;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
return val;
|
|
211
|
+
}
|
|
212
|
+
IsContentUnicode() {
|
|
213
|
+
if (this._type === StorageAttribute.BLOB && this._contentType !== BlobType.CONTENT_TYPE_UNICODE)
|
|
214
|
+
return false;
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
GetPicture() {
|
|
218
|
+
return this._picture;
|
|
219
|
+
}
|
|
220
|
+
setAttribute(attribute, valueStr) {
|
|
221
|
+
let isTagProcessed = true;
|
|
222
|
+
switch (attribute) {
|
|
223
|
+
case XMLConstants.MG_ATTR_TYPE:
|
|
224
|
+
this._type = valueStr.charAt(0);
|
|
225
|
+
break;
|
|
226
|
+
case XMLConstants.MG_ATTR_SIZE:
|
|
227
|
+
this._size = XmlParser.getInt(valueStr);
|
|
228
|
+
if (this._size <= 0)
|
|
229
|
+
Events.WriteExceptionToLog("in Field.initElements(): size must be greater than zero");
|
|
230
|
+
break;
|
|
231
|
+
case XMLConstants.MG_ATTR_VAR_NAME:
|
|
232
|
+
this._varName = XmlParser.unescape(valueStr).toString();
|
|
233
|
+
break;
|
|
234
|
+
case XMLConstants.MG_ATTR_VAR_DISP_NAME:
|
|
235
|
+
this.VarDisplayName = XmlParser.unescape(valueStr).toString();
|
|
236
|
+
break;
|
|
237
|
+
case XMLConstants.MG_ATTR_PICTURE:
|
|
238
|
+
this._picture = XmlParser.unescape(valueStr).toString();
|
|
239
|
+
break;
|
|
240
|
+
case XMLConstants.MG_ATTR_VEC_CELLS_SIZE:
|
|
241
|
+
this._vecCellsSize = NNumber.Parse(valueStr);
|
|
242
|
+
break;
|
|
243
|
+
case XMLConstants.MG_ATTR_VEC_CELLS_ATTR:
|
|
244
|
+
this._vecCellsType = valueStr.charAt(0);
|
|
245
|
+
break;
|
|
246
|
+
case XMLConstants.MG_ATTR_VEC_CELLS_CONTENT:
|
|
247
|
+
this._vecCellsContentType = valueStr.charAt(0);
|
|
248
|
+
break;
|
|
249
|
+
case XMLConstants.MG_ATTR_NULLVALUE:
|
|
250
|
+
if (this._type === StorageAttribute.NUMERIC || this._type === StorageAttribute.DATE || this._type === StorageAttribute.TIME) {
|
|
251
|
+
if (GuiEnvironment.Environment.GetDebugLevel() > 1)
|
|
252
|
+
this._nullValue = XmlParser.unescape(valueStr).toString();
|
|
253
|
+
else
|
|
254
|
+
this._nullValue = Base64.decodeToHex(valueStr);
|
|
255
|
+
}
|
|
256
|
+
else
|
|
257
|
+
this._nullValue = XmlParser.unescape(valueStr).toString();
|
|
258
|
+
break;
|
|
259
|
+
case XMLConstants.MG_ATTR_NULLDISPLAY:
|
|
260
|
+
this._nullDisplay = XmlParser.unescape(valueStr).toString();
|
|
261
|
+
break;
|
|
262
|
+
case XMLConstants.MG_ATTR_NULLDEFAULT:
|
|
263
|
+
this._nullDefault = DisplayConvertor.toBoolean(valueStr);
|
|
264
|
+
break;
|
|
265
|
+
case XMLConstants.MG_ATTR_DB_MODIFIABLE:
|
|
266
|
+
this.DbModifiable = DisplayConvertor.toBoolean(valueStr);
|
|
267
|
+
break;
|
|
268
|
+
case XMLConstants.MG_ATTR_DEFAULTVALUE:
|
|
269
|
+
this.DefaultValue = valueStr;
|
|
270
|
+
if (this._type === StorageAttribute.ALPHA || this._type === StorageAttribute.UNICODE) {
|
|
271
|
+
this.DefaultValue = XmlParser.unescape(valueStr).toString();
|
|
272
|
+
this.DefaultValue = StrUtil.padStr(this.DefaultValue, this._size);
|
|
273
|
+
}
|
|
274
|
+
else if (this._type !== StorageAttribute.BLOB && this._type !== StorageAttribute.BOOLEAN) {
|
|
275
|
+
if ((this._type === StorageAttribute.BLOB_VECTOR &&
|
|
276
|
+
(this._vecCellsType === StorageAttribute.NUMERIC || this._vecCellsType === StorageAttribute.DATE || this._vecCellsType === StorageAttribute.TIME)) ||
|
|
277
|
+
(this._type === StorageAttribute.NUMERIC || this._type === StorageAttribute.DATE || this._type === StorageAttribute.TIME)) {
|
|
278
|
+
if (GuiEnvironment.Environment.GetDebugLevel() < 1)
|
|
279
|
+
this.DefaultValue = Base64.decodeToHex(valueStr);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
else if (this.DefaultValue.length === 0 && this._type !== StorageAttribute.BLOB)
|
|
283
|
+
this.DefaultValue = null;
|
|
284
|
+
else if (this._type === StorageAttribute.BLOB)
|
|
285
|
+
this.DefaultValue = BlobType.createFromString(this.DefaultValue, this._contentType);
|
|
286
|
+
break;
|
|
287
|
+
case XMLConstants.MG_ATTR_NULLALLOWED:
|
|
288
|
+
this.NullAllowed = DisplayConvertor.toBoolean(valueStr);
|
|
289
|
+
break;
|
|
290
|
+
case XMLConstants.MG_ATTR_BLOB_CONTENT:
|
|
291
|
+
this._contentType = valueStr.charAt(0);
|
|
292
|
+
break;
|
|
293
|
+
case XMLConstants.MG_ATTR_PART_OF_DATAVIEW:
|
|
294
|
+
this._partOfDataview = DisplayConvertor.toBoolean(valueStr);
|
|
295
|
+
break;
|
|
296
|
+
case XMLConstants.MG_ATTR_STORAGE:
|
|
297
|
+
this.Storage = XmlParser.getInt(valueStr);
|
|
298
|
+
break;
|
|
299
|
+
default:
|
|
300
|
+
isTagProcessed = false;
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
return isTagProcessed;
|
|
304
|
+
}
|
|
305
|
+
fillData(parser) {
|
|
306
|
+
let text = parser.ReadToEndOfCurrentElement();
|
|
307
|
+
text = text.substr(text.indexOf(XMLConstants.MG_TAG_FLDH) + XMLConstants.MG_TAG_FLDH.length);
|
|
308
|
+
let tokens = XmlParser.getTokens(text, XMLConstants.XML_ATTR_DELIM);
|
|
309
|
+
this.initElements(tokens);
|
|
310
|
+
}
|
|
311
|
+
initElements(tokensVector) {
|
|
312
|
+
for (let i = 0; i < tokensVector.length; i = i + 2) {
|
|
313
|
+
let attribute = tokensVector.get_Item(i);
|
|
314
|
+
let valueStr = tokensVector.get_Item(i + 1);
|
|
315
|
+
this.setAttribute(attribute, valueStr);
|
|
316
|
+
}
|
|
317
|
+
this.SetAfterParsing();
|
|
318
|
+
}
|
|
319
|
+
SetAfterParsing() {
|
|
320
|
+
this.setLengths(this._type, false);
|
|
321
|
+
if (this.NullAllowed && this._nullDisplay === null)
|
|
322
|
+
this._nullDisplay = "";
|
|
323
|
+
}
|
|
324
|
+
getVarName() {
|
|
325
|
+
return this._varName || "";
|
|
326
|
+
}
|
|
327
|
+
getName() {
|
|
328
|
+
return this.getVarName();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGREZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZERlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RyxPQUFPLEVBQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksR0FBVyxJQUFJLENBQUM7SUFDNUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUNuQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUd0QyxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNPLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUM5QixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ3hCLEtBQUssR0FBVyxDQUFDLENBQUM7SUFDbEIs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QUFPLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFRRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmxvYlR5cGV9IGZyb20gXCIuL0Jsb2JUeXBlXCI7XHJcbmltcG9ydCB7RmxkU3RvcmFnZSwgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCwgWG1sUGFyc2VyLCBCYXNlNjQsIFhNTENvbnN0YW50c30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtMaXN0LCBOTnVtYmVyLCBOU3RyaW5nLCBJbnQzMn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7RXZlbnRzfSBmcm9tIFwiLi4vLi4vRXZlbnRzXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIi4uL2d1aS9EaXNwbGF5Q29udmVydG9yXCI7XHJcbmltcG9ydCB7VmVjdG9yVHlwZX0gZnJvbSBcIi4vVmVjdG9yVHlwZVwiO1xyXG5pbXBvcnQgeyBHdWlFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9HdWlFbnZpcm9ubWVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkRGVmIHtcclxuICBEZWZhdWx0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgTnVsbEFsbG93ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgX251bGxEZWZhdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9udWxsVmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9udWxsRGlzcGxheTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gdHJ1ZSwgaWYgZmllbGQgaXMgbW9kaWZpYWJsZSBvbiBmaWVsZCBsZXZlbFxyXG4gIHNldCBEYk1vZGlmaWFibGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RiTW9kaWZpYWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgRGJNb2RpZmlhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RiTW9kaWZpYWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGJNb2RpZmlhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFydE9mRGF0YXZpZXc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByb3RlY3RlZCBfcGljdHVyZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJvdGVjdGVkIF92YXJOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLyBPbmx5IGZvciBCTE9CIGZpZWxkLiBEb2VzIGl0IGNvbnRhaW4gYSB1bmljb2RlIG9yIEFOU0kgZGF0YT9cclxuICBwcml2YXRlIF9jb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV047XHJcbiAgcHJvdGVjdGVkIF92ZWNDZWxsc0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTjtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICBwcm90ZWN0ZWQgX3R5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgU3RvcmFnZTogRmxkU3RvcmFnZSA7XHJcbiAgVmFyRGlzcGxheU5hbWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0aWMgX2RlZmF1bHRfZGF0ZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lkOiBudW1iZXIgPSAwO1xyXG4gIHByb3RlY3RlZCBfc3BhY2VzOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaWRfXCI+IGlkeCBpbiBGaWVsZHNUYWJsZSA8L3BhcmFtPlxyXG4gIGNvbnN0cnVjdG9yKGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2lkID0gaWQ7XHJcbiAgICB0aGlzLlZhckRpc3BsYXlOYW1lID0gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcblxyXG4gIGdldCBQYXJ0T2ZEYXRhdmlldygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJ0T2ZEYXRhdmlldztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0aGUgaWQgb2YgdGhlIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaXplIHR5cGUgb2YgY3VycmVudCBGaWVsZDogQSwgTiwgTCwgRCwgVFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBzaXplIG1lbWJlciBvZiBjdXJyZW50IEZpZWxkXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBnZXRUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiB0aGUgbWFnaWMgZGVmYXVsdCBudWxsIGRpc3BsYXkgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInR5cGVcIj5vZiB0aGUgZGF0YTwvcGFyYW0+XHJcbiAgc3RhdGljIGdldE1hZ2ljRGVmYXVsdE51bGxEaXNwbGF5VmFsdWUodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmc7XHJcblxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIHZhbCA9IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIC8vIHplcm9cclxuICAgICAgICB2YWwgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJuIHRoZSBtYWdpYyBkZWZhdWx0IHZhbHVlIGFjY29yZGluZyB0byB0aGUgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlXCI+b2YgdGhlIGRhdGE8L3BhcmFtPlxyXG4gIHN0YXRpYyBnZXRNYWdpY0RlZmF1bHRWYWx1ZSh0eXBlOiBTdG9yYWdlQXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICB2YWwgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SOlxyXG4gICAgICAgIHZhbCA9IEJsb2JUeXBlLmdldEVtcHR5QmxvYlByZWZpeCgnXFwwJykgKyBcIjtcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIHZhbCA9IFwiRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgICB2YWwgPSBGaWVsZERlZi5fZGVmYXVsdF9kYXRlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjpcclxuICAgICAgICB2YWwgPSBcIjBcIjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpIHtcclxuICAgICAgaWYgKHRoaXMuX251bGxEZWZhdWx0ICYmIHRoaXMuX251bGxWYWx1ZSAhPT0gbnVsbClcclxuICAgICAgICB2YWwgPSB0aGlzLl9udWxsVmFsdWU7XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuRGVmYXVsdFZhbHVlICE9PSBudWxsKVxyXG4gICAgICAgIHZhbCA9IHRoaXMuRGVmYXVsdFZhbHVlO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdmFsID0gdGhpcy5nZXRNYWdpY0RlZmF1bHRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgIGVsc2VcclxuICAgICAgIHZhbCA9IHRoaXMuZ2V0TWFnaWNEZWZhdWx0VmFsdWUoKTtcclxuXHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm5zIHRoZSB2ZWN0b3JzIGNlbGxzIGRlZmF1bHQgdmFsdWVcclxuICAvLy8gaWYgdGhlIGZpZWxkIGlzIG5vdCBhIHZlY3RvciByZXR1cm5zIGZpZWxkIGRlZmF1bHQgdmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldENlbGxEZWZ1YWx0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWw6IHN0cmluZztcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSB7XHJcbiAgICAgIGlmICh0aGlzLl9udWxsRGVmYXVsdCAmJiB0aGlzLl9udWxsVmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgdmFsID0gdGhpcy5fbnVsbFZhbHVlO1xyXG4gICAgICBlbHNlIGlmICh0aGlzLkRlZmF1bHRWYWx1ZSAhPT0gbnVsbClcclxuICAgICAgICAgIHZhbCA9IHRoaXMuRGVmYXVsdFZhbHVlO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB2YWwgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZSh0aGlzLl92ZWNDZWxsc1R5cGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdmFsID0gdGhpcy5nZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiB0aGUgbWFnaWMgZGVmYXVsdCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlIHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE1hZ2ljRGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZSh0aGlzLl90eXBlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpXHJcbiAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fY29udGVudFR5cGUpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSB7XHJcbiAgICAgICAgdmFsID0gQmxvYlR5cGUuU2V0VmVjQ2VsbEF0dHIodmFsLCB0aGlzLl92ZWNDZWxsc1R5cGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBjb250ZW50VHlwZSA8L3JldHVybnM+XHJcbiAgZ2V0Q29udGVudFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZW50VHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhlIG51bGxEaXNwbGF5IGhhcyBhIHZhbHVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBoYXNOdWxsRGlzcGxheVZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX251bGxEaXNwbGF5ICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNpemUgbWVtYmVyIG9mIGN1cnJlbnQgRmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gc2l6ZSBtZW1iZXIgb2YgY3VycmVudCBGaWVsZCA8L3JldHVybnM+XHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdmVjdG9yIGNlbGxzIHNpemVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFZlY0NlbGxzU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSA/IHRoaXMuX3ZlY0NlbGxzU2l6ZSA6IHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICBzZXRMZW5ndGhzKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHZlY0NlbGxzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgcmVzOiBudW1iZXIgPSB0aGlzLl9zaXplO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5NRU1POlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICBpZiAodmVjQ2VsbHMpIHtcclxuICAgICAgICAgIHJlcyA9IHRoaXMuX3ZlY0NlbGxzU2l6ZTtcclxuICAgICAgICAgIHRoaXMuX3NwYWNlcyA9IG5ldyBBcnJheTxzdHJpbmc+KHRoaXMuX3ZlY0NlbGxzU2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuX3NwYWNlcyA9IG5ldyBBcnJheTxzdHJpbmc+KHRoaXMuX3NpemUpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fc2l6ZTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgICB0aGlzLl9zcGFjZXNbaV0gPSAnICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5EQVRFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICByZXMgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTaWduaWZpY2FudE51bVNpemUoKSAqIDI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjpcclxuICAgICAgICByZXMgPSAoIXZlY0NlbGxzID8gMSA6IDQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0I6XHJcbiAgICAgICAgLy8gUUNSIDc1ODkxMyBGT1IgVkVDVE9SUyBJTlRFUk5BTCBVU0UgT05MWSBUSEUgU0laRSBPRiBCTE9CUyBBTkQgVkVDVE9SXHJcbiAgICAgICAgLy8gSVMgVEhFIFNJWkUgT0YgVEhJRVIgU1RSVUNUUyBJTiBUSEUgTUFHSUMgRU5HSU5cclxuICAgICAgICByZXMgPSAoIXZlY0NlbGxzID8gSW50MzIuTWF4VmFsdWUgOiBWZWN0b3JUeXBlLkJMT0JfVFlQRV9TVFJVQ1RfU0laRSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1I6XHJcbiAgICAgICAgcmVzID0gSW50MzIuTWF4VmFsdWU7XHJcbiAgICAgICAgaWYgKCF2ZWNDZWxscylcclxuICAgICAgICAgIHRoaXMuc2V0TGVuZ3Rocyh0aGlzLl92ZWNDZWxsc1R5cGUsIHRydWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHJlcyA9IFZlY3RvclR5cGUuQkxPQl9UWVBFX1NUUlVDVF9TSVpFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2ZWNDZWxscylcclxuICAgICAgdGhpcy5fdmVjQ2VsbHNTaXplID0gcmVzO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zaXplID0gcmVzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGNlbGxzIHR5cGUgb2YgdmVjdG9ycyBlbGVzZSByZXR1cm5zIHRoZSBmaWVsZCB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDZWxsc1R5cGUoKTogU3RvcmFnZUF0dHJpYnV0ZSB7XHJcbiAgICByZXR1cm4gKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpID8gdGhpcy5fdmVjQ2VsbHNUeXBlIDogdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBjZWxsIGNvbnRlbnQgdHlwZSBvZiB2ZWN0b3IgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz52ZWN0b3IncyBjZWxsIGNvbnRlbnQgdHlwZTwvcmV0dXJucz5cclxuICBnZXRWZWNDZWxsc0NvbnRlbnRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIE51bGwgVmFsdWUgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TnVsbFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgZmllbGQgaXMgYSBOdWxsIERlZmF1bHRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzTnVsbERlZmF1bHQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbERlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBOdWxsIERpc3BsYXkgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TnVsbERpc3BsYXkoKTogYW55IHtcclxuICAgIGxldCB2YWw6IGFueTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgdmFsID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgLy8gemVyb1xyXG4gICAgICAgIHZhbCA9IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZvciBCTE9CIGZpZWxkcywgY2hlY2sgaWYgdGhleSBjb250YWluIFVOSUNPREUgb3IgQU5TSSBjaGFycy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5UUlVFIGlmIGNvbnRlbnQgaXMgVU5JQ09ERS4gRmFsc2Ugb3RoZXJ3aXNlPC9yZXR1cm5zPlxyXG4gIElzQ29udGVudFVuaWNvZGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CICYmIHRoaXMuX2NvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgR2V0UGljdHVyZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BpY3R1cmU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNldCB0aGUgZmllbGQgYXR0cmlidXRlIGluIHBhcnNpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gcHJvdGVjdGVkIHNldEF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWVTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVGFnUHJvY2Vzc2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1RZUEU6XHJcbiAgICAgICAgdGhpcy5fdHlwZSA9IDxTdG9yYWdlQXR0cmlidXRlPnZhbHVlU3RyLmNoYXJBdCgwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9TSVpFOlxyXG4gICAgICAgIHRoaXMuX3NpemUgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICBpZiAodGhpcy5fc2l6ZSA8PSAwKVxyXG4gICAgICAgICAgRXZlbnRzLldyaXRlRXhjZXB0aW9uVG9Mb2coXCJpbiBGaWVsZC5pbml0RWxlbWVudHMoKTogc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1ZBUl9OQU1FOlxyXG4gICAgICAgIHRoaXMuX3Zhck5hbWUgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkFSX0RJU1BfTkFNRTpcclxuICAgICAgICB0aGlzLlZhckRpc3BsYXlOYW1lID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1BJQ1RVUkU6XHJcbiAgICAgICAgdGhpcy5fcGljdHVyZSA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cikudG9TdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9WRUNfQ0VMTFNfU0laRTpcclxuICAgICAgICB0aGlzLl92ZWNDZWxsc1NpemUgPSBOTnVtYmVyLlBhcnNlKHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9WRUNfQ0VMTFNfQVRUUjpcclxuICAgICAgICB0aGlzLl92ZWNDZWxsc1R5cGUgPSA8U3RvcmFnZUF0dHJpYnV0ZT52YWx1ZVN0ci5jaGFyQXQoMCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkVDX0NFTExTX0NPTlRFTlQ6XHJcbiAgICAgICAgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSA9IHZhbHVlU3RyLmNoYXJBdCgwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9OVUxMVkFMVUU6XHJcbiAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQyB8fCB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5USU1FKSB7XHJcbiAgICAgICAgICBpZiAoR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RGVidWdMZXZlbCgpID4gMSlcclxuICAgICAgICAgICAgdGhpcy5fbnVsbFZhbHVlID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9udWxsVmFsdWUgPSBCYXNlNjQuZGVjb2RlVG9IZXgodmFsdWVTdHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9udWxsVmFsdWUgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTlVMTERJU1BMQVk6XHJcbiAgICAgICAgdGhpcy5fbnVsbERpc3BsYXkgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTlVMTERFRkFVTFQ6XHJcbiAgICAgICAgdGhpcy5fbnVsbERlZmF1bHQgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfREJfTU9ESUZJQUJMRTpcclxuICAgICAgICB0aGlzLkRiTW9kaWZpYWJsZSA9IERpc3BsYXlDb252ZXJ0b3IudG9Cb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9ERUZBVUxUVkFMVUU6XHJcbiAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSB2YWx1ZVN0cjtcclxuICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpIHtcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBTdHJVdGlsLnBhZFN0cih0aGlzLkRlZmF1bHRWYWx1ZSwgdGhpcy5fc2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiAmJiB0aGlzLl90eXBlICE9PSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4pIHtcclxuICAgICAgICAgIC8vIHdvcmtpbmcgaW4gaGV4IG9yIGJhc2U2NFxyXG4gICAgICAgICAgaWYgKCh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SICYmXHJcbiAgICAgICAgICAgICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQyB8fCB0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCB0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkpIHx8XHJcbiAgICAgICAgICAgICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5EQVRFIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkpIHtcclxuICAgICAgICAgICAgaWYgKEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlYnVnTGV2ZWwoKSA8IDEpXHJcbiAgICAgICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBCYXNlNjQuZGVjb2RlVG9IZXgodmFsdWVTdHIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLkRlZmF1bHRWYWx1ZS5sZW5ndGggPT09IDAgJiYgdGhpcy5fdHlwZSAhPT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKVxyXG4gICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBudWxsO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gQmxvYlR5cGUuY3JlYXRlRnJvbVN0cmluZyh0aGlzLkRlZmF1bHRWYWx1ZSwgdGhpcy5fY29udGVudFR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX05VTExBTExPV0VEOlxyXG4gICAgICAgIHRoaXMuTnVsbEFsbG93ZWQgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfQkxPQl9DT05URU5UOlxyXG4gICAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gdmFsdWVTdHIuY2hhckF0KDApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1BBUlRfT0ZfREFUQVZJRVc6XHJcbiAgICAgICAgdGhpcy5fcGFydE9mRGF0YXZpZXcgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfU1RPUkFHRTpcclxuICAgICAgICB0aGlzLlN0b3JhZ2UgPSA8RmxkU3RvcmFnZT5YbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBpc1RhZ1Byb2Nlc3NlZCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1RhZ1Byb2Nlc3NlZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBOZWVkIHBhcnQgaW5wdXQgU3RyaW5nIHRvIHJlbGV2YW50IGZvciB0aGUgRmllbGQgY2xhc3MgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIGxldCB0ZXh0OiBzdHJpbmcgPSBwYXJzZXIuUmVhZFRvRW5kT2ZDdXJyZW50RWxlbWVudCgpO1xyXG4gICAgdGV4dCA9IHRleHQuc3Vic3RyKHRleHQuaW5kZXhPZihYTUxDb25zdGFudHMuTUdfVEFHX0ZMREgpICsgWE1MQ29uc3RhbnRzLk1HX1RBR19GTERILmxlbmd0aCk7XHJcbiAgICBsZXQgdG9rZW5zOiBMaXN0PHN0cmluZz4gPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHRleHQsIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcbiAgICB0aGlzLmluaXRFbGVtZW50cyh0b2tlbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE1ha2UgaW5pdGlhbGl6YXRpb24gb2YgcHJpdmF0ZSBlbGVtZW50cyBieSBmb3VuZCB0b2tlbnNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidG9rZW5zVmVjdG9yXCI+Zm91bmQgdG9rZW5zLCB3aGljaCBjb25zaXN0IGF0dHJpYnV0ZS92YWx1ZSBvZiBldmVyeSBmb3VuZGVsZW1lbnQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVGFiXCI+cmVmZXJlbmNlIHRvIHJlbGV2YW50IGV4cC4gdGFibGU8L3BhcmFtPlxyXG4gIGluaXRFbGVtZW50cyh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGkgPSBpICsgMikge1xyXG4gICAgICBsZXQgYXR0cmlidXRlOiBzdHJpbmcgPSB0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIGxldCB2YWx1ZVN0cjogc3RyaW5nID0gdG9rZW5zVmVjdG9yLmdldF9JdGVtKGkgKyAxKTtcclxuXHJcbiAgICAgIC8vIHRoZSBwYXJzaW5nIGlzIGZpbmlzaGVkIGhlcmVcclxuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZVN0cik7XHJcbiAgICB9XHJcbiAgICB0aGlzLlNldEFmdGVyUGFyc2luZygpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzb21lIHByb3BlcnRpZXMgYXJlIG5lZWRlZCB0byBiZSBzZXQgYWZ0ZXIgcGFyc2luZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgU2V0QWZ0ZXJQYXJzaW5nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRMZW5ndGhzKHRoaXMuX3R5cGUsIGZhbHNlKTtcclxuICAgIGlmICh0aGlzLk51bGxBbGxvd2VkICYmIHRoaXMuX251bGxEaXNwbGF5ID09PSBudWxsKVxyXG4gICAgICB0aGlzLl9udWxsRGlzcGxheSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IG5hbWUgb2YgdmFyaWFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFZhck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YXJOYW1lIHx8IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZm9yIGdldCBWQVJOQU1FIGZ1bmN0aW9uIHVzZVxyXG4gIC8vLyAgIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgd2hlcmUgdGhlIHZhcmlhYmxlIG9yaWdpbmF0ZXMsXHJcbiAgLy8vICAgY29uY2F0ZW5hdGVkIHdpdGggJy4nIGFuZCB0aGUgdmFyaWFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlhYmxlIGluIHRoYXQgdGFibGUuXHJcbiAgLy8vICAgSWYgdGhlIHZhcmlhYmxlIGlzIGEgdmlydHVhbCBvbmUsIHRoZW4gdGhlIHRhYmxlIG5hbWUgd291bGQgaW5kaWNhdGUgJ1ZpcnR1YWwnLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFyTmFtZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { List } from '@magic-xpa/mscorelib';
|
|
2
|
+
import { XMLConstants } from '@magic-xpa/utils';
|
|
3
|
+
import { Manager } from '../../Manager';
|
|
4
|
+
import { Events } from '../../Events';
|
|
5
|
+
export class FieldsTable {
|
|
6
|
+
_fields = null;
|
|
7
|
+
constructor() {
|
|
8
|
+
this._fields = new List();
|
|
9
|
+
}
|
|
10
|
+
getField(idxOrFldName) {
|
|
11
|
+
if ((idxOrFldName === null || idxOrFldName.constructor === Number)) {
|
|
12
|
+
return this.getField_0(idxOrFldName);
|
|
13
|
+
}
|
|
14
|
+
return this.getField_1(idxOrFldName);
|
|
15
|
+
}
|
|
16
|
+
getField_0(idx) {
|
|
17
|
+
let fld = null;
|
|
18
|
+
if (idx >= 0 && idx < this._fields.length)
|
|
19
|
+
fld = this._fields.get_Item(idx);
|
|
20
|
+
return fld;
|
|
21
|
+
}
|
|
22
|
+
getSize() {
|
|
23
|
+
return this._fields.length;
|
|
24
|
+
}
|
|
25
|
+
fillData(parser, dataview) {
|
|
26
|
+
while (this.initInnerObjects(parser.getNextTag(), dataview)) {
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
initInnerObjects(foundTagName, dataview) {
|
|
30
|
+
if (foundTagName === null)
|
|
31
|
+
return false;
|
|
32
|
+
let parser = Manager.GetCurrentRuntimeContext().Parser;
|
|
33
|
+
if (foundTagName === XMLConstants.MG_TAG_FLDH) {
|
|
34
|
+
let field = this.initField(parser, dataview);
|
|
35
|
+
this._fields.push(field);
|
|
36
|
+
}
|
|
37
|
+
else if (foundTagName === XMLConstants.MG_TAG_DVHEADER)
|
|
38
|
+
parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) +
|
|
39
|
+
1);
|
|
40
|
+
else if (foundTagName === "/" + XMLConstants.MG_TAG_DVHEADER) {
|
|
41
|
+
parser.setCurrIndex2EndOfTag();
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
Events.WriteExceptionToLog("There is no such tag in FieldsTable. Insert else if to FieldsTable.initInnerObjects for " + foundTagName);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
getField_1(fldName) {
|
|
51
|
+
return this._fields.find((field) => (field.getVarName() === fldName));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRzVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZHNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0QyxNQUFNLE9BQWdCLFdBQVc7SUFDckIsT0FBTyxHQUFtQixJQUFJLENBQUM7SUFLekM7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFZLENBQUM7SUFDdEMsQ0FBQztJQUlELFFBQVEsQ0FBQyxZQUFpQjtRQUN4QixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxZQUFZLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQU9PLFVBQVUsQ0FBQyxHQUFXO1FBQzVCLElBQUksR0FBRyxHQUFhLElBQUksQ0FBQztRQUV6QixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUN2QyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbkMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBTUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQU1ELFFBQVEsQ0FBQyxNQUFpQixFQUFFLFFBQXlCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBT0QsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxRQUF5QjtRQUM5RCxJQUFJLFlBQVksS0FBSyxJQUFJO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1FBRWYsSUFBSSxNQUFNLEdBQWMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2xFLElBQUksWUFBWSxLQUFLLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLEtBQUssR0FBYSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO2FBQ0ksSUFBSSxZQUFZLEtBQUssWUFBWSxDQUFDLGVBQWU7WUFDcEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1RixDQUFDLENBQUMsQ0FBQzthQUNGLElBQUksWUFBWSxLQUFLLEdBQUcsR0FBRyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQ0ksQ0FBQztZQUNKLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQywwRkFBMEYsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN0SSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFlTyxVQUFVLENBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3QgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IEZpZWxkRGVmIH0gZnJvbSAnLi9GaWVsZERlZic7XHJcbmltcG9ydCB7IEd1aURhdGFWaWV3QmFzZSB9IGZyb20gJy4vR3VpRGF0YVZpZXdCYXNlJztcclxuaW1wb3J0IHsgWE1MQ29uc3RhbnRzLCBYbWxQYXJzZXIgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHsgTWFuYWdlciB9IGZyb20gJy4uLy4uL01hbmFnZXInO1xyXG5pbXBvcnQgeyBFdmVudHMgfSBmcm9tICcuLi8uLi9FdmVudHMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpZWxkc1RhYmxlIHtcclxuICBwcm90ZWN0ZWQgX2ZpZWxkczogTGlzdDxGaWVsZERlZj4gPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEN0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fZmllbGRzID0gbmV3IExpc3Q8RmllbGREZWY+KCk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZChpZHg6IG51bWJlcik6IEZpZWxkRGVmO1xyXG4gIGdldEZpZWxkKGZsZE5hbWU6IHN0cmluZyk6IEZpZWxkRGVmO1xyXG4gIGdldEZpZWxkKGlkeE9yRmxkTmFtZTogYW55KTogRmllbGREZWYge1xyXG4gICAgaWYgKChpZHhPckZsZE5hbWUgPT09IG51bGwgfHwgaWR4T3JGbGROYW1lLmNvbnN0cnVjdG9yID09PSBOdW1iZXIpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZpZWxkXzAoaWR4T3JGbGROYW1lKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEZpZWxkXzEoaWR4T3JGbGROYW1lKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgYSBGaWVsZCBieSBpdHMgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSByZXF1ZXN0ZWQgZmllbGQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gYSByZWZlcmVuY2UgdG8gdGhlIGZpZWxkPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZ2V0RmllbGRfMChpZHg6IG51bWJlcik6IEZpZWxkRGVmIHtcclxuICAgIGxldCBmbGQ6IEZpZWxkRGVmID0gbnVsbDtcclxuXHJcbiAgICBpZiAoaWR4ID49IDAgJiYgaWR4IDwgdGhpcy5fZmllbGRzLmxlbmd0aClcclxuICAgICAgZmxkID0gdGhpcy5fZmllbGRzLmdldF9JdGVtKGlkeCk7XHJcblxyXG4gICAgcmV0dXJuIGZsZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IG51bWJlciBvZiBmaWVsZHMgaW4gdGhlIHRhYmxlPC9yZXR1cm5zPlxyXG4gIGdldFNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUbyBwYXJzZSBpbnB1dCBzdHJpbmcgYW5kIGZpbGwgaW5uZXIgZGF0YTogVmVjdG9yIG9mIGNvbW1hbmRzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRhdGF2aWV3XCI+dG8gdGhlIHBhcmVudDwvcGFyYW0+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIsIGRhdGF2aWV3OiBHdWlEYXRhVmlld0Jhc2UpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLmluaXRJbm5lck9iamVjdHMocGFyc2VyLmdldE5leHRUYWcoKSwgZGF0YXZpZXcpKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFRvIGFsbG9jYXRlIGFuZCBmaWxsIGlubmVyIG9iamVjdHMgb2YgdGhlIGNsYXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZvdW5kVGFnTmFtZVwiPm5hbWUgb2YgdGFnLCBvZiBvYmplY3QsIHdoaWNoIG5lZWQgYmUgYWxsb2NhdGVkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRhdGF2aWV3XCI+dG8gZGF0YSB2aWV3PC9wYXJhbT5cclxuICBpbml0SW5uZXJPYmplY3RzKGZvdW5kVGFnTmFtZTogc3RyaW5nLCBkYXRhdmlldzogR3VpRGF0YVZpZXdCYXNlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgbGV0IHBhcnNlcjogWG1sUGFyc2VyID0gTWFuYWdlci5HZXRDdXJyZW50UnVudGltZUNvbnRleHQoKS5QYXJzZXI7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBYTUxDb25zdGFudHMuTUdfVEFHX0ZMREgpIHtcclxuICAgICAgbGV0IGZpZWxkOiBGaWVsZERlZiA9IHRoaXMuaW5pdEZpZWxkKHBhcnNlciwgZGF0YXZpZXcpO1xyXG4gICAgICB0aGlzLl9maWVsZHMucHVzaChmaWVsZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmb3VuZFRhZ05hbWUgPT09IFhNTENvbnN0YW50cy5NR19UQUdfRFZIRUFERVIpXHJcbiAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgK1xyXG4gICAgICAgIDEpOyAvLyBtb3ZlIEluZGV4IHRvIGVuZCBvZiA8ZHZoZWFkZXI+ICsxIGZvciAnPidcclxuICAgIGVsc2UgaWYgKGZvdW5kVGFnTmFtZSA9PT0gXCIvXCIgKyBYTUxDb25zdGFudHMuTUdfVEFHX0RWSEVBREVSKSB7XHJcbiAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKFwiVGhlcmUgaXMgbm8gc3VjaCB0YWcgaW4gRmllbGRzVGFibGUuIEluc2VydCBlbHNlIGlmIHRvIEZpZWxkc1RhYmxlLmluaXRJbm5lck9iamVjdHMgZm9yIFwiICsgZm91bmRUYWdOYW1lKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBjcmVhdGUgYSBmaWVsZCBhbmQgZmlsbCBpdCBieSBkYXRhXHJcbiAgLy8vIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSB2aXJ0dWFsIGJlY2F1c2UgaXQgaXMgdXNlZCBpbiBSaWNoQ2xpZW50IGJ1dCBpcyBub3QgdXNlZCBpbiBNZ3hwYVJ1bnRpbWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZGF0YXZpZXdcIj4gRGF0YXZpZXcgPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBjcmVhdGVkIGZpbGxlZCBmaWVsZCA8L3JldHVybnM+XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGluaXRGaWVsZChwYXJzZXI6IFhtbFBhcnNlciwgZGF0YXZpZXc6IEd1aURhdGFWaWV3QmFzZSk6IEZpZWxkRGVmO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGEgRmllbGQgYnkgaXRzIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZsZE5hbWVcIj5pcyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZpZWxkPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGEgcmVmZXJlbmNlIHRvIHRoZSBmaWVsZDwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldEZpZWxkXzEoZmxkTmFtZTogc3RyaW5nKTogRmllbGREZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkcy5maW5kKChmaWVsZDogRmllbGREZWYpID0+IChmaWVsZC5nZXRWYXJOYW1lKCkgPT09IGZsZE5hbWUpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Dictionary, List, RefParam } from "@magic-xpa/mscorelib";
|
|
2
|
+
import { DcValues, EMPTY_DCREF } from "./DcValues";
|
|
3
|
+
import { Events } from "../../Events";
|
|
4
|
+
import { StorageAttribute } from "@magic-xpa/utils";
|
|
5
|
+
import { PIC } from "../gui/PIC";
|
|
6
|
+
import { DisplayConvertor } from "../gui/DisplayConvertor";
|
|
7
|
+
import { Commands } from "../../Commands";
|
|
8
|
+
import { CommandType } from "../../GuiEnums";
|
|
9
|
+
export class GuiDataViewBase {
|
|
10
|
+
_dcValsCollection = new Dictionary();
|
|
11
|
+
_emptyDataview = false;
|
|
12
|
+
_fieldsTab = null;
|
|
13
|
+
_task = null;
|
|
14
|
+
_emptyChoice = new DcValues(true);
|
|
15
|
+
_emptyChoiceForVectors = new DcValues(true);
|
|
16
|
+
getField(id) {
|
|
17
|
+
if (this._fieldsTab != null)
|
|
18
|
+
return this._fieldsTab.getField(id);
|
|
19
|
+
Events.WriteExceptionToLog("in DataView.getFieldDef(int): There is no fieldsTab object");
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
isEmptyDataview() {
|
|
23
|
+
return this._emptyDataview;
|
|
24
|
+
}
|
|
25
|
+
setEmptyDataview(emptyDataview) {
|
|
26
|
+
this._emptyDataview = emptyDataview;
|
|
27
|
+
Commands.addBoolWithLine(CommandType.SET_EMPTY_DATAVIEW, this._task.getForm(), 0, emptyDataview);
|
|
28
|
+
}
|
|
29
|
+
getTask() {
|
|
30
|
+
return this._task;
|
|
31
|
+
}
|
|
32
|
+
getDcValues(dcId) {
|
|
33
|
+
if (dcId === EMPTY_DCREF)
|
|
34
|
+
return this.getEmptyChoice();
|
|
35
|
+
let dcValues;
|
|
36
|
+
let dcv = new RefParam(dcValues);
|
|
37
|
+
this._dcValsCollection.TryGetValue(dcId.toString(), dcv);
|
|
38
|
+
return dcv.value;
|
|
39
|
+
}
|
|
40
|
+
getEmptyChoice() {
|
|
41
|
+
return this._emptyChoice;
|
|
42
|
+
}
|
|
43
|
+
getEmptyChoiceForVectors() {
|
|
44
|
+
return this._emptyChoiceForVectors;
|
|
45
|
+
}
|
|
46
|
+
GetFieldsTab() {
|
|
47
|
+
return this._fieldsTab;
|
|
48
|
+
}
|
|
49
|
+
GetRouteParams() {
|
|
50
|
+
let params = new List();
|
|
51
|
+
for (let i = 0; i < this._fieldsTab.getSize(); i++) {
|
|
52
|
+
let field = this._fieldsTab.getField(i);
|
|
53
|
+
let val;
|
|
54
|
+
if (field.IsExposedRouteParam && !field.isNull()) {
|
|
55
|
+
switch (field.getType()) {
|
|
56
|
+
case StorageAttribute.ALPHA:
|
|
57
|
+
case StorageAttribute.UNICODE:
|
|
58
|
+
{
|
|
59
|
+
val = field.getDispValue();
|
|
60
|
+
if (field.isNull())
|
|
61
|
+
val = field.getNullDisplay();
|
|
62
|
+
params.push(val.trim());
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case StorageAttribute.BOOLEAN:
|
|
66
|
+
{
|
|
67
|
+
if (field.isNull())
|
|
68
|
+
params.push(false);
|
|
69
|
+
else
|
|
70
|
+
params.push(field.getDispValue().charAt(0) === '1' ? true : false);
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case StorageAttribute.NUMERIC: {
|
|
74
|
+
val = field.getDispValue();
|
|
75
|
+
if (field.isNull())
|
|
76
|
+
val = field.getNullDisplay();
|
|
77
|
+
let pic = new PIC(field.getPicture(), field.getType(), this.getTask().getCompIdx());
|
|
78
|
+
val = DisplayConvertor.Instance.mg2disp(val, "", pic, true, 0, false);
|
|
79
|
+
params.push(val);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return (params.length > 0) ? params : null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpRGF0YVZpZXdCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRGF0YVZpZXdCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBS2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFcEMsT0FBTyxFQUFDLGdCQUFnQixFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzNDLE1BQU0sT0FBZ0IsZUFBZTtJQUVuQyxpQkFBaUIsR0FBeUIsSUFBSSxVQUFVLEVBQVksQ0FBQztJQUM3RCxjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ3hDLFVBQVUsR0FBZ0IsSUFBSSxDQUFDO0lBQy9CLEtBQUssR0FBZ0IsSUFBSSxDQUFDO0lBR2xCLFlBQVksR0FBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxzQkFBc0IsR0FBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQWU5RCxRQUFRLENBQUMsRUFBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sQ0FB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SyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUMvQixJQUFJLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RixHQUFHLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNqQixNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGljdGlvbmFyeSwgTGlzdCwgUmVmUGFyYW19IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0RjVmFsdWVzLCBFTVBUWV9EQ1JFRn0gZnJvbSBcIi4vRGNWYWx1ZXNcIjtcclxuaW1wb3J0IHtGaWVsZHNUYWJsZX0gZnJvbSBcIi4vRmllbGRzVGFibGVcIjtcclxuaW1wb3J0IHtHdWlUYXNrQmFzZX0gZnJvbSBcIi4uL3Rhc2tzL0d1aVRhc2tCYXNlXCI7XHJcbmltcG9ydCB7RmllbGREZWZ9IGZyb20gXCIuL0ZpZWxkRGVmXCI7XHJcbmltcG9ydCB7SVRhc2t9IGZyb20gXCIuLi90YXNrcy9JVGFza1wiO1xyXG5pbXBvcnQge0V2ZW50c30gZnJvbSBcIi4uLy4uL0V2ZW50c1wiO1xyXG5cclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBYbWxQYXJzZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7UElDfSBmcm9tIFwiLi4vZ3VpL1BJQ1wiO1xyXG5pbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3J9IGZyb20gXCIuLi9ndWkvRGlzcGxheUNvbnZlcnRvclwiO1xyXG5pbXBvcnQge0NvbW1hbmRzfSBmcm9tIFwiLi4vLi4vQ29tbWFuZHNcIjtcclxuaW1wb3J0IHtDb21tYW5kVHlwZX0gZnJvbSBcIi4uLy4uL0d1aUVudW1zXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIGJ5IHRoZSBHVUkgbmFtZXNwYWNlIGZyb20gdGhlIERhdGFWaWV3QmFzZSBjbGFzcy5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEd1aURhdGFWaWV3QmFzZSB7XHJcblxyXG4gIF9kY1ZhbHNDb2xsZWN0aW9uOiBEaWN0aW9uYXJ5PERjVmFsdWVzPiA9IG5ldyBEaWN0aW9uYXJ5PERjVmFsdWVzPigpO1xyXG4gIHByaXZhdGUgX2VtcHR5RGF0YXZpZXc6IGJvb2xlYW4gPSBmYWxzZTsgLy8gSW5kaWNhdGVzIHRoZSB0YXNrIGlzIGluIEVtcHR5IERhdGF2aWV3XHJcbiAgX2ZpZWxkc1RhYjogRmllbGRzVGFibGUgPSBudWxsOyAvLyA8ZHZoZWFkZXI+IC4uLjwvZHZoZWFkZXI+IHRhZ1xyXG4gIF90YXNrOiBHdWlUYXNrQmFzZSA9IG51bGw7IC8vIGNvbnRhaW5lciB0YXNrXHJcblxyXG4gIC8vIGR1bW15IERjVmFsdWVzIGZvciB1c2Ugd2l0aCBub24tREMgY2hvaWNlIGNvbnRyb2xzXHJcbiAgcHJpdmF0ZSBfZW1wdHlDaG9pY2U6IERjVmFsdWVzID0gbmV3IERjVmFsdWVzKHRydWUpO1xyXG4gIHByaXZhdGUgX2VtcHR5Q2hvaWNlRm9yVmVjdG9yczogRGNWYWx1ZXMgPSBuZXcgRGNWYWx1ZXModHJ1ZSk7XHJcblxyXG5cclxuICBhYnN0cmFjdCBJbml0KCk6IHZvaWQ7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBwYXJzZSB0aGUgRFZIRUFERVIgdGFnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhYnN0cmFjdCBmaWxsSGVhZGVyRGF0YShwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQ7XHJcblxyXG4gIGFic3RyYWN0IGdldENodW5rU2l6ZSgpOiBudW1iZXI7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIGZpZWxkIGJ5IGl0cyBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZFwiPmZpZWxkIGlkIDwvcGFyYW0+XHJcbiAgZ2V0RmllbGQoaWQ6IG51bWJlcik6IEZpZWxkRGVmIHtcclxuICAgIGlmICh0aGlzLl9maWVsZHNUYWIgIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkc1RhYi5nZXRGaWVsZChpZCk7XHJcblxyXG4gICAgRXZlbnRzLldyaXRlRXhjZXB0aW9uVG9Mb2coXCJpbiBEYXRhVmlldy5nZXRGaWVsZERlZihpbnQpOiBUaGVyZSBpcyBubyBmaWVsZHNUYWIgb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+IHRoZSBlbXB0eURhdGF2aWV3PC9yZXR1cm5zPlxyXG4gIGlzRW1wdHlEYXRhdmlldygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lbXB0eURhdGF2aWV3O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJlbXB0eURhdGF2aWV3XCI+dGhlIGVtcHR5RGF0YXZpZXcgdG8gc2V0PC9wYXJhbT5cclxuICBzZXRFbXB0eURhdGF2aWV3KGVtcHR5RGF0YXZpZXc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2VtcHR5RGF0YXZpZXcgPSBlbXB0eURhdGF2aWV3O1xyXG4gICAgQ29tbWFuZHMuYWRkQm9vbFdpdGhMaW5lKENvbW1hbmRUeXBlLlNFVF9FTVBUWV9EQVRBVklFVywgdGhpcy5fdGFzay5nZXRGb3JtKCksIDAsIGVtcHR5RGF0YXZpZXcpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgdGFzayBvZiB0aGlzIGRhdGF2aWV3XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRUYXNrKCk6IElUYXNrIHtcclxuICAgIHJldHVybiB0aGlzLl90YXNrO1xyXG4gIH1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgZGNWYWx1ZXMgb2JqZWN0IGJ5IGl0cyBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkY0lkXCI+aWQgb2YgYSBkYXRhIGNvbnRyb2wgdmFsdWVzIDwvcGFyYW0+XHJcbiAgZ2V0RGNWYWx1ZXMoZGNJZDogbnVtYmVyKTogRGNWYWx1ZXMge1xyXG4gICAgaWYgKGRjSWQgPT09IEVNUFRZX0RDUkVGKVxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRFbXB0eUNob2ljZSgpO1xyXG5cclxuICAgIGxldCBkY1ZhbHVlczogRGNWYWx1ZXM7XHJcbiAgICBsZXQgZGN2OiBSZWZQYXJhbTxEY1ZhbHVlcz4gPSBuZXcgUmVmUGFyYW08RGNWYWx1ZXM+KGRjVmFsdWVzKTtcclxuICAgIHRoaXMuX2RjVmFsc0NvbGxlY3Rpb24uVHJ5R2V0VmFsdWUoZGNJZC50b1N0cmluZygpLCBkY3YpO1xyXG4gICAgcmV0dXJuIGRjdi52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8cmV0dXJucz5kdW1teSBEY1ZhbHVlcyBmb3IgdXNlIHdpdGggbm9uLURDIGNob2ljZSBjb250cm9sczwvcmV0dXJucz5cclxuICBnZXRFbXB0eUNob2ljZSgpOiBEY1ZhbHVlcyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1wdHlDaG9pY2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RW1wdHlDaG9pY2VGb3JWZWN0b3JzKCk6IERjVmFsdWVzIHtcclxuICAgIHJldHVybiB0aGlzLl9lbXB0eUNob2ljZUZvclZlY3RvcnM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGZpZWxkcyB0YWJsZSAoPGR2aGVhZGVyPikgb2YgdGhlICgoRGF0YVZpZXcpZGF0YVZpZXcpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRGaWVsZHNUYWIoKTogRmllbGRzVGFibGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkc1RhYjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgcm91dGUgcGFyYW1zXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRSb3V0ZVBhcmFtcygpOiBMaXN0PGFueT4ge1xyXG4gICAgbGV0IHBhcmFtczogTGlzdCA8IGFueSA+ID0gbmV3IExpc3QoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZmllbGRzVGFiLmdldFNpemUoKTsgaSsrKSB7XHJcblxyXG4gICAgICBsZXQgZmllbGQ6IGFueSA9IHRoaXMuX2ZpZWxkc1RhYi5nZXRGaWVsZChpKTtcclxuICAgICAgbGV0IHZhbDogYW55O1xyXG4gICAgICBpZiAoZmllbGQuSXNFeHBvc2VkUm91dGVQYXJhbSAmJiAhZmllbGQuaXNOdWxsKCkpIHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkLmdldFR5cGUoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERToge1xyXG4gICAgICAgICAgICB2YWwgPSBmaWVsZC5nZXREaXNwVmFsdWUoKTtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLmlzTnVsbCgpKVxyXG4gICAgICAgICAgICAgIHZhbCA9IGZpZWxkLmdldE51bGxEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKDxzdHJpbmc+dmFsLnRyaW0oKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOiB7XHJcbiAgICAgICAgICAgIGlmIChmaWVsZC5pc051bGwoKSlcclxuICAgICAgICAgICAgICBwYXJhbXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBwYXJhbXMucHVzaChmaWVsZC5nZXREaXNwVmFsdWUoKS5jaGFyQXQoMCkgPT09ICcxJyA/IHRydWUgOiBmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOiB7XHJcbiAgICAgICAgICAgIHZhbCA9IGZpZWxkLmdldERpc3BWYWx1ZSgpO1xyXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNOdWxsKCkpXHJcbiAgICAgICAgICAgICAgdmFsID0gZmllbGQuZ2V0TnVsbERpc3BsYXkoKTtcclxuICAgICAgICAgICAgbGV0IHBpYzogUElDID0gbmV3IFBJQyhmaWVsZC5nZXRQaWN0dXJlKCksIGZpZWxkLmdldFR5cGUoKSwgdGhpcy5nZXRUYXNrKCkuZ2V0Q29tcElkeCgpKTtcclxuICAgICAgICAgICAgdmFsID0gRGlzcGxheUNvbnZlcnRvci5JbnN0YW5jZS5tZzJkaXNwKHZhbCwgXCJcIiwgcGljLCB0cnVlLCAwLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKHZhbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChwYXJhbXMubGVuZ3RoID4gMCkgPyBwYXJhbXMgOiBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|