@magic-xpa/gui 4.1100.0-dev4110.98 → 4.1100.0

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.
Files changed (195) hide show
  1. package/README.md +7 -7
  2. package/{esm2020 → esm2022}/index.mjs +71 -71
  3. package/{esm2020 → esm2022}/magic-xpa-gui.mjs +1 -1
  4. package/esm2022/src/Commands.mjs +184 -0
  5. package/esm2022/src/Events.mjs +425 -0
  6. package/{esm2020 → esm2022}/src/EventsProcessor.mjs +66 -66
  7. package/{esm2020 → esm2022}/src/FocusManager.mjs +33 -33
  8. package/esm2022/src/GuiConstants.mjs +68 -0
  9. package/{esm2020 → esm2022}/src/GuiEnums.mjs +301 -300
  10. package/esm2022/src/GuiEnvironment.mjs +4 -0
  11. package/{esm2020 → esm2022}/src/IFlowMonitorQueue.mjs +1 -1
  12. package/esm2022/src/Manager.mjs +91 -0
  13. package/esm2022/src/UIBridge.mjs +33 -0
  14. package/{esm2020 → esm2022}/src/env/IEnvironment.mjs +1 -1
  15. package/{esm2020 → esm2022}/src/gui/ControlBase.mjs +2 -2
  16. package/esm2022/src/gui/GuiMgControl.mjs +123 -0
  17. package/{esm2020 → esm2022}/src/gui/GuiMgForm.mjs +3 -3
  18. package/esm2022/src/gui/KeyboardItem.mjs +135 -0
  19. package/esm2022/src/gui/LastFocusedVal.mjs +11 -0
  20. package/esm2022/src/gui/MgValue.mjs +16 -0
  21. package/{esm2020 → esm2022}/src/gui/PropParentInterface.mjs +1 -1
  22. package/{esm2020 → esm2022}/src/gui/low/DialogHandler.mjs +6 -6
  23. package/esm2022/src/gui/low/GuiCommand.mjs +68 -0
  24. package/esm2022/src/gui/low/GuiCommandQueue.mjs +35 -0
  25. package/esm2022/src/gui/low/GuiInteractive.mjs +178 -0
  26. package/esm2022/src/gui/low/Style.mjs +20 -0
  27. package/esm2022/src/management/RuntimeContextBase.mjs +42 -0
  28. package/esm2022/src/management/data/BlobType.mjs +281 -0
  29. package/esm2022/src/management/data/DcValues.mjs +214 -0
  30. package/{esm2020 → esm2022}/src/management/data/DcValuesBuilderBase.mjs +95 -95
  31. package/esm2022/src/management/data/FieldDef.mjs +331 -0
  32. package/{esm2020 → esm2022}/src/management/data/FieldsTable.mjs +54 -54
  33. package/esm2022/src/management/data/GuiDataViewBase.mjs +88 -0
  34. package/esm2022/src/management/data/GuiFieldBase.mjs +82 -0
  35. package/{esm2020 → esm2022}/src/management/data/IRecord.mjs +1 -1
  36. package/{esm2020 → esm2022}/src/management/data/IReferencedObject.mjs +1 -1
  37. package/esm2022/src/management/data/NUM_TYPE.mjs +1739 -0
  38. package/esm2022/src/management/data/ObjectReferenceBase.mjs +48 -0
  39. package/esm2022/src/management/data/ObjectReferencesCollection.mjs +27 -0
  40. package/{esm2020 → esm2022}/src/management/data/RecordUtils.mjs +360 -360
  41. package/esm2022/src/management/data/VectorType.mjs +612 -0
  42. package/esm2022/src/management/data/VectorTypeBase.mjs +88 -0
  43. package/{esm2020 → esm2022}/src/management/events/IActionManager.mjs +1 -1
  44. package/{esm2020 → esm2022}/src/management/events/IGuiEventsManager.mjs +1 -1
  45. package/esm2022/src/management/exp/ExpressionInterface.mjs +244 -0
  46. package/esm2022/src/management/exp/GuiExpressionEvaluator.mjs +305 -0
  47. package/esm2022/src/management/gui/ControlTable.mjs +118 -0
  48. package/esm2022/src/management/gui/DisplayConvertor.mjs +1649 -0
  49. package/esm2022/src/management/gui/FieldValidator.mjs +711 -0
  50. package/esm2022/src/management/gui/GuiControlPropertyAdapter.mjs +24 -0
  51. package/{esm2020 → esm2022}/src/management/gui/GuiFormPropertyAdapter.mjs +10 -10
  52. package/esm2022/src/management/gui/HebrewDate.mjs +278 -0
  53. package/esm2022/src/management/gui/Helps.mjs +237 -0
  54. package/esm2022/src/management/gui/MgControlBase.mjs +1869 -0
  55. package/esm2022/src/management/gui/MgFormBase.mjs +741 -0
  56. package/esm2022/src/management/gui/PIC.mjs +1185 -0
  57. package/{esm2020 → esm2022}/src/management/gui/PropDefaults.mjs +229 -229
  58. package/{esm2020 → esm2022}/src/management/gui/PropInterface.mjs +246 -245
  59. package/esm2022/src/management/gui/PropTable.mjs +221 -0
  60. package/esm2022/src/management/gui/Property.mjs +1362 -0
  61. package/esm2022/src/management/gui/ValidationDetails.mjs +248 -0
  62. package/{esm2020 → esm2022}/src/management/gui/ValidationDetailsBase.mjs +93 -93
  63. package/{esm2020 → esm2022}/src/management/gui/WrongFormatException.mjs +29 -29
  64. package/esm2022/src/management/tasks/GuiDataCollection.mjs +4 -0
  65. package/esm2022/src/management/tasks/GuiTaskBase.mjs +511 -0
  66. package/{esm2020 → esm2022}/src/management/tasks/IMGDataTable.mjs +1 -1
  67. package/{esm2020 → esm2022}/src/management/tasks/ITask.mjs +1 -1
  68. package/esm2022/src/management/tasks/MgTimer.mjs +21 -0
  69. package/esm2022/src/management/tasks/TaskDefinitionId.mjs +54 -0
  70. package/{esm2020 → esm2022}/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +41 -41
  71. package/{esm2020 → esm2022}/src/util/MemoryUtil.mjs +34 -34
  72. package/esm2022/src/util/ObjectReference.mjs +36 -0
  73. package/esm2022/src/util/UsernamePasswordCredentials.mjs +52 -0
  74. package/{fesm2020 → fesm2022}/magic-xpa-gui.mjs +16086 -16095
  75. package/fesm2022/magic-xpa-gui.mjs.map +1 -0
  76. package/index.d.ts +70 -70
  77. package/package.json +6 -12
  78. package/src/Commands.d.ts +40 -40
  79. package/src/Events.d.ts +157 -155
  80. package/src/EventsProcessor.d.ts +13 -13
  81. package/src/FocusManager.d.ts +8 -8
  82. package/src/GuiConstants.d.ts +65 -65
  83. package/src/GuiEnums.d.ts +283 -282
  84. package/src/GuiEnvironment.d.ts +4 -4
  85. package/src/IFlowMonitorQueue.d.ts +3 -3
  86. package/src/Manager.d.ts +26 -26
  87. package/src/UIBridge.d.ts +16 -16
  88. package/src/env/IEnvironment.d.ts +31 -31
  89. package/src/gui/ControlBase.d.ts +4 -4
  90. package/src/gui/GuiMgControl.d.ts +38 -38
  91. package/src/gui/GuiMgForm.d.ts +3 -3
  92. package/src/gui/KeyboardItem.d.ts +18 -18
  93. package/src/gui/LastFocusedVal.d.ts +7 -7
  94. package/src/gui/MgValue.d.ts +15 -15
  95. package/src/gui/PropParentInterface.d.ts +13 -13
  96. package/src/gui/low/DialogHandler.d.ts +4 -4
  97. package/src/gui/low/GuiCommand.d.ts +37 -37
  98. package/src/gui/low/GuiCommandQueue.d.ts +13 -13
  99. package/src/gui/low/GuiInteractive.d.ts +55 -55
  100. package/src/gui/low/Style.d.ts +19 -19
  101. package/src/management/RuntimeContextBase.d.ts +23 -23
  102. package/src/management/data/BlobType.d.ts +29 -29
  103. package/src/management/data/DcValues.d.ts +33 -33
  104. package/src/management/data/DcValuesBuilderBase.d.ts +17 -17
  105. package/src/management/data/FieldDef.d.ts +53 -53
  106. package/src/management/data/FieldsTable.d.ts +16 -16
  107. package/src/management/data/GuiDataViewBase.d.ts +27 -27
  108. package/src/management/data/GuiFieldBase.d.ts +17 -17
  109. package/src/management/data/IRecord.d.ts +12 -12
  110. package/src/management/data/IReferencedObject.d.ts +5 -5
  111. package/src/management/data/NUM_TYPE.d.ts +103 -103
  112. package/src/management/data/ObjectReferenceBase.d.ts +16 -16
  113. package/src/management/data/ObjectReferencesCollection.d.ts +10 -10
  114. package/src/management/data/RecordUtils.d.ts +21 -21
  115. package/src/management/data/VectorType.d.ts +52 -52
  116. package/src/management/data/VectorTypeBase.d.ts +8 -8
  117. package/src/management/events/IActionManager.d.ts +7 -7
  118. package/src/management/events/IGuiEventsManager.d.ts +20 -20
  119. package/src/management/exp/ExpressionInterface.d.ts +242 -242
  120. package/src/management/exp/GuiExpressionEvaluator.d.ts +47 -47
  121. package/src/management/gui/ControlTable.d.ts +28 -28
  122. package/src/management/gui/DisplayConvertor.d.ts +103 -103
  123. package/src/management/gui/FieldValidator.d.ts +35 -35
  124. package/src/management/gui/GuiControlPropertyAdapter.d.ts +40 -40
  125. package/src/management/gui/GuiFormPropertyAdapter.d.ts +17 -17
  126. package/src/management/gui/HebrewDate.d.ts +46 -46
  127. package/src/management/gui/Helps.d.ts +51 -51
  128. package/src/management/gui/MgControlBase.d.ts +225 -223
  129. package/src/management/gui/MgFormBase.d.ts +160 -160
  130. package/src/management/gui/PIC.d.ts +108 -108
  131. package/src/management/gui/PropDefaults.d.ts +7 -7
  132. package/src/management/gui/PropInterface.d.ts +244 -243
  133. package/src/management/gui/PropTable.d.ts +33 -33
  134. package/src/management/gui/Property.d.ts +121 -121
  135. package/src/management/gui/ValidationDetails.d.ts +52 -52
  136. package/src/management/gui/ValidationDetailsBase.d.ts +14 -14
  137. package/src/management/gui/WrongFormatException.d.ts +9 -9
  138. package/src/management/tasks/GuiDataCollection.d.ts +4 -4
  139. package/src/management/tasks/GuiTaskBase.d.ts +150 -150
  140. package/src/management/tasks/IMGDataTable.d.ts +10 -10
  141. package/src/management/tasks/ITask.d.ts +6 -6
  142. package/src/management/tasks/MgTimer.d.ts +8 -8
  143. package/src/management/tasks/TaskDefinitionId.d.ts +16 -16
  144. package/src/management/tasks/TaskDefinitionIdTableSaxHandler.d.ts +7 -7
  145. package/src/util/MemoryUtil.d.ts +6 -6
  146. package/src/util/ObjectReference.d.ts +9 -9
  147. package/src/util/UsernamePasswordCredentials.d.ts +18 -18
  148. package/esm2020/src/Commands.mjs +0 -184
  149. package/esm2020/src/Events.mjs +0 -420
  150. package/esm2020/src/GuiConstants.mjs +0 -68
  151. package/esm2020/src/GuiEnvironment.mjs +0 -4
  152. package/esm2020/src/Manager.mjs +0 -91
  153. package/esm2020/src/UIBridge.mjs +0 -32
  154. package/esm2020/src/gui/GuiMgControl.mjs +0 -125
  155. package/esm2020/src/gui/KeyboardItem.mjs +0 -135
  156. package/esm2020/src/gui/LastFocusedVal.mjs +0 -11
  157. package/esm2020/src/gui/MgValue.mjs +0 -16
  158. package/esm2020/src/gui/low/GuiCommand.mjs +0 -66
  159. package/esm2020/src/gui/low/GuiCommandQueue.mjs +0 -35
  160. package/esm2020/src/gui/low/GuiInteractive.mjs +0 -176
  161. package/esm2020/src/gui/low/Style.mjs +0 -20
  162. package/esm2020/src/management/RuntimeContextBase.mjs +0 -43
  163. package/esm2020/src/management/data/BlobType.mjs +0 -281
  164. package/esm2020/src/management/data/DcValues.mjs +0 -214
  165. package/esm2020/src/management/data/FieldDef.mjs +0 -331
  166. package/esm2020/src/management/data/GuiDataViewBase.mjs +0 -90
  167. package/esm2020/src/management/data/GuiFieldBase.mjs +0 -82
  168. package/esm2020/src/management/data/NUM_TYPE.mjs +0 -1741
  169. package/esm2020/src/management/data/ObjectReferenceBase.mjs +0 -48
  170. package/esm2020/src/management/data/ObjectReferencesCollection.mjs +0 -29
  171. package/esm2020/src/management/data/VectorType.mjs +0 -612
  172. package/esm2020/src/management/data/VectorTypeBase.mjs +0 -88
  173. package/esm2020/src/management/exp/ExpressionInterface.mjs +0 -244
  174. package/esm2020/src/management/exp/GuiExpressionEvaluator.mjs +0 -307
  175. package/esm2020/src/management/gui/ControlTable.mjs +0 -118
  176. package/esm2020/src/management/gui/DisplayConvertor.mjs +0 -1679
  177. package/esm2020/src/management/gui/FieldValidator.mjs +0 -711
  178. package/esm2020/src/management/gui/GuiControlPropertyAdapter.mjs +0 -22
  179. package/esm2020/src/management/gui/HebrewDate.mjs +0 -278
  180. package/esm2020/src/management/gui/Helps.mjs +0 -237
  181. package/esm2020/src/management/gui/MgControlBase.mjs +0 -1858
  182. package/esm2020/src/management/gui/MgFormBase.mjs +0 -741
  183. package/esm2020/src/management/gui/PIC.mjs +0 -1185
  184. package/esm2020/src/management/gui/PropTable.mjs +0 -221
  185. package/esm2020/src/management/gui/Property.mjs +0 -1356
  186. package/esm2020/src/management/gui/ValidationDetails.mjs +0 -248
  187. package/esm2020/src/management/tasks/GuiDataCollection.mjs +0 -4
  188. package/esm2020/src/management/tasks/GuiTaskBase.mjs +0 -510
  189. package/esm2020/src/management/tasks/MgTimer.mjs +0 -21
  190. package/esm2020/src/management/tasks/TaskDefinitionId.mjs +0 -54
  191. package/esm2020/src/util/ObjectReference.mjs +0 -36
  192. package/esm2020/src/util/UsernamePasswordCredentials.mjs +0 -52
  193. package/fesm2015/magic-xpa-gui.mjs +0 -16391
  194. package/fesm2015/magic-xpa-gui.mjs.map +0 -1
  195. package/fesm2020/magic-xpa-gui.mjs.map +0 -1
@@ -1,331 +0,0 @@
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
- set DbModifiable(value) {
10
- this._dbModifiable = value;
11
- }
12
- get DbModifiable() {
13
- return this._dbModifiable;
14
- }
15
- constructor(id) {
16
- this.DefaultValue = null;
17
- this.NullAllowed = false;
18
- this._nullDefault = false;
19
- this._nullValue = null;
20
- this._nullDisplay = null;
21
- this._dbModifiable = true;
22
- this._partOfDataview = true;
23
- this._picture = null;
24
- this._size = 0;
25
- this._varName = null;
26
- this._contentType = BlobType.CONTENT_TYPE_UNKNOWN;
27
- this._vecCellsContentType = BlobType.CONTENT_TYPE_UNKNOWN;
28
- this._vecCellsSize = 0;
29
- this._vecCellsType = StorageAttribute.NONE;
30
- this._type = StorageAttribute.NONE;
31
- this.Storage = 0;
32
- this.VarDisplayName = null;
33
- this._id = 0;
34
- this._spaces = null;
35
- this._id = id;
36
- this.VarDisplayName = NString.Empty;
37
- }
38
- get PartOfDataview() {
39
- return this._partOfDataview;
40
- }
41
- getId() {
42
- return this._id;
43
- }
44
- getType() {
45
- return this._type;
46
- }
47
- static getMagicDefaultNullDisplayValue(type) {
48
- let val;
49
- switch (type) {
50
- case StorageAttribute.ALPHA:
51
- case StorageAttribute.UNICODE:
52
- case StorageAttribute.BOOLEAN:
53
- val = "";
54
- break;
55
- case StorageAttribute.NUMERIC:
56
- case StorageAttribute.DATE:
57
- case StorageAttribute.TIME:
58
- val = "";
59
- break;
60
- }
61
- return val;
62
- }
63
- static getMagicDefaultValue(type) {
64
- let val = null;
65
- switch (type) {
66
- case StorageAttribute.ALPHA:
67
- case StorageAttribute.UNICODE:
68
- val = "";
69
- break;
70
- case StorageAttribute.BLOB:
71
- case StorageAttribute.BLOB_VECTOR:
72
- val = BlobType.getEmptyBlobPrefix('\0') + ";";
73
- break;
74
- case StorageAttribute.NUMERIC:
75
- case StorageAttribute.TIME:
76
- val = "FF00000000000000000000000000000000000000";
77
- break;
78
- case StorageAttribute.DATE:
79
- val = FieldDef._default_date;
80
- break;
81
- case StorageAttribute.BOOLEAN:
82
- val = "0";
83
- break;
84
- }
85
- return val;
86
- }
87
- getDefaultValue() {
88
- let val = null;
89
- if (this._type !== StorageAttribute.BLOB_VECTOR) {
90
- if (this._nullDefault && this._nullValue !== null)
91
- val = this._nullValue;
92
- else if (this.DefaultValue !== null)
93
- val = this.DefaultValue;
94
- else
95
- val = this.getMagicDefaultValue();
96
- }
97
- else
98
- val = this.getMagicDefaultValue();
99
- return val;
100
- }
101
- getCellDefualtValue() {
102
- let val;
103
- if (this._type === StorageAttribute.BLOB_VECTOR) {
104
- if (this._nullDefault && this._nullValue !== null)
105
- val = this._nullValue;
106
- else if (this.DefaultValue !== null)
107
- val = this.DefaultValue;
108
- else {
109
- val = FieldDef.getMagicDefaultValue(this._vecCellsType);
110
- if (this._vecCellsType === StorageAttribute.BLOB)
111
- val = BlobType.setContentType(val, this._vecCellsContentType);
112
- }
113
- }
114
- else
115
- val = this.getDefaultValue();
116
- return val;
117
- }
118
- getMagicDefaultValue() {
119
- let val = FieldDef.getMagicDefaultValue(this._type);
120
- if (this._type === StorageAttribute.BLOB)
121
- val = BlobType.setContentType(val, this._contentType);
122
- else {
123
- if (this._type === StorageAttribute.BLOB_VECTOR) {
124
- val = BlobType.SetVecCellAttr(val, this._vecCellsType);
125
- if (this._vecCellsType === StorageAttribute.BLOB)
126
- val = BlobType.setContentType(val, this._vecCellsContentType);
127
- }
128
- }
129
- return val;
130
- }
131
- getContentType() {
132
- return this._contentType;
133
- }
134
- hasNullDisplayValue() {
135
- return this._nullDisplay !== null;
136
- }
137
- getSize() {
138
- return this._size;
139
- }
140
- getVecCellsSize() {
141
- return (this._type === StorageAttribute.BLOB_VECTOR) ? this._vecCellsSize : this._size;
142
- }
143
- setLengths(type, vecCells) {
144
- let res = this._size;
145
- switch (type) {
146
- case StorageAttribute.ALPHA:
147
- case StorageAttribute.MEMO:
148
- case StorageAttribute.UNICODE:
149
- if (vecCells) {
150
- res = this._vecCellsSize;
151
- this._spaces = new Array(this._vecCellsSize);
152
- }
153
- else
154
- this._spaces = new Array(this._size);
155
- for (let i = 0; i < this._size; i = i + 1) {
156
- this._spaces[i] = ' ';
157
- }
158
- break;
159
- case StorageAttribute.NUMERIC:
160
- case StorageAttribute.DATE:
161
- case StorageAttribute.TIME:
162
- res = GuiEnvironment.Environment.GetSignificantNumSize() * 2;
163
- break;
164
- case StorageAttribute.BOOLEAN:
165
- res = (!vecCells ? 1 : 4);
166
- break;
167
- case StorageAttribute.BLOB:
168
- res = (!vecCells ? Int32.MaxValue : VectorType.BLOB_TYPE_STRUCT_SIZE);
169
- break;
170
- case StorageAttribute.BLOB_VECTOR:
171
- res = Int32.MaxValue;
172
- if (!vecCells)
173
- this.setLengths(this._vecCellsType, true);
174
- else
175
- res = VectorType.BLOB_TYPE_STRUCT_SIZE;
176
- break;
177
- }
178
- if (vecCells)
179
- this._vecCellsSize = res;
180
- else
181
- this._size = res;
182
- }
183
- getCellsType() {
184
- return (this._type === StorageAttribute.BLOB_VECTOR) ? this._vecCellsType : this._type;
185
- }
186
- getVecCellsContentType() {
187
- return this._vecCellsContentType;
188
- }
189
- getNullValue() {
190
- return this._nullValue;
191
- }
192
- isNullDefault() {
193
- return this._nullDefault;
194
- }
195
- getNullDisplay() {
196
- let val;
197
- switch (this._type) {
198
- case StorageAttribute.ALPHA:
199
- case StorageAttribute.UNICODE:
200
- case StorageAttribute.BOOLEAN:
201
- val = "";
202
- break;
203
- case StorageAttribute.NUMERIC:
204
- case StorageAttribute.DATE:
205
- case StorageAttribute.TIME:
206
- val = null;
207
- break;
208
- }
209
- return val;
210
- }
211
- IsContentUnicode() {
212
- if (this._type === StorageAttribute.BLOB && this._contentType !== BlobType.CONTENT_TYPE_UNICODE)
213
- return false;
214
- return true;
215
- }
216
- GetPicture() {
217
- return this._picture;
218
- }
219
- setAttribute(attribute, valueStr) {
220
- let isTagProcessed = true;
221
- switch (attribute) {
222
- case XMLConstants.MG_ATTR_TYPE:
223
- this._type = valueStr.charAt(0);
224
- break;
225
- case XMLConstants.MG_ATTR_SIZE:
226
- this._size = XmlParser.getInt(valueStr);
227
- if (this._size <= 0)
228
- Events.WriteExceptionToLog("in Field.initElements(): size must be greater than zero");
229
- break;
230
- case XMLConstants.MG_ATTR_VAR_NAME:
231
- this._varName = XmlParser.unescape(valueStr).toString();
232
- break;
233
- case XMLConstants.MG_ATTR_VAR_DISP_NAME:
234
- this.VarDisplayName = XmlParser.unescape(valueStr).toString();
235
- break;
236
- case XMLConstants.MG_ATTR_PICTURE:
237
- this._picture = XmlParser.unescape(valueStr).toString();
238
- break;
239
- case XMLConstants.MG_ATTR_VEC_CELLS_SIZE:
240
- this._vecCellsSize = NNumber.Parse(valueStr);
241
- break;
242
- case XMLConstants.MG_ATTR_VEC_CELLS_ATTR:
243
- this._vecCellsType = valueStr.charAt(0);
244
- break;
245
- case XMLConstants.MG_ATTR_VEC_CELLS_CONTENT:
246
- this._vecCellsContentType = valueStr.charAt(0);
247
- break;
248
- case XMLConstants.MG_ATTR_NULLVALUE:
249
- if (this._type === StorageAttribute.NUMERIC || this._type === StorageAttribute.DATE || this._type === StorageAttribute.TIME) {
250
- if (GuiEnvironment.Environment.GetDebugLevel() > 1)
251
- this._nullValue = XmlParser.unescape(valueStr).toString();
252
- else
253
- this._nullValue = Base64.decodeToHex(valueStr);
254
- }
255
- else
256
- this._nullValue = XmlParser.unescape(valueStr).toString();
257
- break;
258
- case XMLConstants.MG_ATTR_NULLDISPLAY:
259
- this._nullDisplay = XmlParser.unescape(valueStr).toString();
260
- break;
261
- case XMLConstants.MG_ATTR_NULLDEFAULT:
262
- this._nullDefault = DisplayConvertor.toBoolean(valueStr);
263
- break;
264
- case XMLConstants.MG_ATTR_DB_MODIFIABLE:
265
- this.DbModifiable = DisplayConvertor.toBoolean(valueStr);
266
- break;
267
- case XMLConstants.MG_ATTR_DEFAULTVALUE:
268
- this.DefaultValue = valueStr;
269
- if (this._type === StorageAttribute.ALPHA || this._type === StorageAttribute.UNICODE) {
270
- this.DefaultValue = XmlParser.unescape(valueStr).toString();
271
- this.DefaultValue = StrUtil.padStr(this.DefaultValue, this._size);
272
- }
273
- else if (this._type !== StorageAttribute.BLOB && this._type !== StorageAttribute.BOOLEAN) {
274
- if ((this._type === StorageAttribute.BLOB_VECTOR &&
275
- (this._vecCellsType === StorageAttribute.NUMERIC || this._vecCellsType === StorageAttribute.DATE || this._vecCellsType === StorageAttribute.TIME)) ||
276
- (this._type === StorageAttribute.NUMERIC || this._type === StorageAttribute.DATE || this._type === StorageAttribute.TIME)) {
277
- if (GuiEnvironment.Environment.GetDebugLevel() < 1)
278
- this.DefaultValue = Base64.decodeToHex(valueStr);
279
- }
280
- }
281
- else if (this.DefaultValue.length === 0 && this._type !== StorageAttribute.BLOB)
282
- this.DefaultValue = null;
283
- else if (this._type === StorageAttribute.BLOB)
284
- this.DefaultValue = BlobType.createFromString(this.DefaultValue, this._contentType);
285
- break;
286
- case XMLConstants.MG_ATTR_NULLALLOWED:
287
- this.NullAllowed = DisplayConvertor.toBoolean(valueStr);
288
- break;
289
- case XMLConstants.MG_ATTR_BLOB_CONTENT:
290
- this._contentType = valueStr.charAt(0);
291
- break;
292
- case XMLConstants.MG_ATTR_PART_OF_DATAVIEW:
293
- this._partOfDataview = DisplayConvertor.toBoolean(valueStr);
294
- break;
295
- case XMLConstants.MG_ATTR_STORAGE:
296
- this.Storage = XmlParser.getInt(valueStr);
297
- break;
298
- default:
299
- isTagProcessed = false;
300
- break;
301
- }
302
- return isTagProcessed;
303
- }
304
- fillData(parser) {
305
- let text = parser.ReadToEndOfCurrentElement();
306
- text = text.substr(text.indexOf(XMLConstants.MG_TAG_FLDH) + XMLConstants.MG_TAG_FLDH.length);
307
- let tokens = XmlParser.getTokens(text, XMLConstants.XML_ATTR_DELIM);
308
- this.initElements(tokens);
309
- }
310
- initElements(tokensVector) {
311
- for (let i = 0; i < tokensVector.length; i = i + 2) {
312
- let attribute = tokensVector.get_Item(i);
313
- let valueStr = tokensVector.get_Item(i + 1);
314
- this.setAttribute(attribute, valueStr);
315
- }
316
- this.SetAfterParsing();
317
- }
318
- SetAfterParsing() {
319
- this.setLengths(this._type, false);
320
- if (this.NullAllowed && this._nullDisplay === null)
321
- this._nullDisplay = "";
322
- }
323
- getVarName() {
324
- return this._varName || "";
325
- }
326
- getName() {
327
- return this.getVarName();
328
- }
329
- }
330
- FieldDef._default_date = null;
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGREZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZERlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RyxPQUFPLEVBQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE1BQU0sT0FBTyxRQUFRO0lBUW5CLElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBeUJELFlBQVksRUFBVTtRQXJDdEIsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFXLElBQUksQ0FBQztRQVM5QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUU5QixvQkFBZSxHQUFZLElBQUksQ0FBQztRQUM5QixhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLFVB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XCI7XHJcbmltcG9ydCB7RmxkU3RvcmFnZSwgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCwgWG1sUGFyc2VyLCBCYXNlNjQsIFhNTENvbnN0YW50c30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtMaXN0LCBOTnVtYmVyLCBOU3RyaW5nLCBJbnQzMn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7RXZlbnRzfSBmcm9tIFwiLi4vLi4vRXZlbnRzXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIi4uL2d1aS9EaXNwbGF5Q29udmVydG9yXCI7XHJcbmltcG9ydCB7VmVjdG9yVHlwZX0gZnJvbSBcIi4vVmVjdG9yVHlwZVwiO1xyXG5pbXBvcnQgeyBHdWlFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9HdWlFbnZpcm9ubWVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkRGVmIHtcclxuICBEZWZhdWx0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgTnVsbEFsbG93ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgX251bGxEZWZhdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9udWxsVmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9udWxsRGlzcGxheTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gdHJ1ZSwgaWYgZmllbGQgaXMgbW9kaWZpYWJsZSBvbiBmaWVsZCBsZXZlbFxyXG4gIHNldCBEYk1vZGlmaWFibGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RiTW9kaWZpYWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgRGJNb2RpZmlhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RiTW9kaWZpYWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGJNb2RpZmlhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFydE9mRGF0YXZpZXc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByb3RlY3RlZCBfcGljdHVyZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJvdGVjdGVkIF92YXJOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLyBPbmx5IGZvciBCTE9CIGZpZWxkLiBEb2VzIGl0IGNvbnRhaW4gYSB1bmljb2RlIG9yIEFOU0kgZGF0YT9cclxuICBwcml2YXRlIF9jb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV047XHJcbiAgcHJvdGVjdGVkIF92ZWNDZWxsc0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTjtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICBwcm90ZWN0ZWQgX3R5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgU3RvcmFnZTogRmxkU3RvcmFnZSA9IDA7XHJcbiAgVmFyRGlzcGxheU5hbWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0aWMgX2RlZmF1bHRfZGF0ZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lkOiBudW1iZXIgPSAwO1xyXG4gIHByb3RlY3RlZCBfc3BhY2VzOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+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=
@@ -1,90 +0,0 @@
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
- constructor() {
11
- this._dcValsCollection = new Dictionary();
12
- this._emptyDataview = false;
13
- this._fieldsTab = null;
14
- this._task = null;
15
- this._emptyChoice = new DcValues(true);
16
- this._emptyChoiceForVectors = new DcValues(true);
17
- }
18
- getField(id) {
19
- if (this._fieldsTab != null)
20
- return this._fieldsTab.getField(id);
21
- Events.WriteExceptionToLog("in DataView.getFieldDef(int): There is no fieldsTab object");
22
- return null;
23
- }
24
- isEmptyDataview() {
25
- return this._emptyDataview;
26
- }
27
- setEmptyDataview(emptyDataview) {
28
- this._emptyDataview = emptyDataview;
29
- Commands.addBoolWithLine(CommandType.SET_EMPTY_DATAVIEW, this._task.getForm(), 0, emptyDataview);
30
- }
31
- getTask() {
32
- return this._task;
33
- }
34
- getDcValues(dcId) {
35
- if (dcId === EMPTY_DCREF)
36
- return this.getEmptyChoice();
37
- let dcValues;
38
- let dcv = new RefParam(dcValues);
39
- this._dcValsCollection.TryGetValue(dcId.toString(), dcv);
40
- return dcv.value;
41
- }
42
- getEmptyChoice() {
43
- return this._emptyChoice;
44
- }
45
- getEmptyChoiceForVectors() {
46
- return this._emptyChoiceForVectors;
47
- }
48
- GetFieldsTab() {
49
- return this._fieldsTab;
50
- }
51
- GetRouteParams() {
52
- let params = new List();
53
- for (let i = 0; i < this._fieldsTab.getSize(); i++) {
54
- let field = this._fieldsTab.getField(i);
55
- let val;
56
- if (field.IsExposedRouteParam && !field.isNull()) {
57
- switch (field.getType()) {
58
- case StorageAttribute.ALPHA:
59
- case StorageAttribute.UNICODE:
60
- {
61
- val = field.getDispValue();
62
- if (field.isNull())
63
- val = field.getNullDisplay();
64
- params.push(val.trim());
65
- }
66
- break;
67
- case StorageAttribute.BOOLEAN:
68
- {
69
- if (field.isNull())
70
- params.push(false);
71
- else
72
- params.push(field.getDispValue().charAt(0) === '1' ? true : false);
73
- }
74
- break;
75
- case StorageAttribute.NUMERIC: {
76
- val = field.getDispValue();
77
- if (field.isNull())
78
- val = field.getNullDisplay();
79
- let pic = new PIC(field.getPicture(), field.getType(), this.getTask().getCompIdx());
80
- val = DisplayConvertor.Instance.mg2disp(val, "", pic, true, 0, false);
81
- params.push(val);
82
- break;
83
- }
84
- }
85
- }
86
- }
87
- return (params.length > 0) ? params : null;
88
- }
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpRGF0YVZpZXdCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRGF0YVZpZXdCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBS2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFcEMsT0FBTyxFQUFDLGdCQUFnQixFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzNDLE1BQU0sT0FBZ0IsZUFBZTtJQUFyQztRQUVFLHNCQUFpQixHQUF5QixJQUFJLFVBQVUsRUFBWSxDQUFDO1FBQzdELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ3hDLGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBR2xCLGlCQUFZLEdBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsMkJBQXNCLEdBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFvSGhFLENBQUM7SUFyR0MsUUFBUSxDQUFDLEVBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMs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O3dCQUMvQixJQUFJLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RixHQUFHLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNqQixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpY3Rpb25hcnksIExpc3QsIFJlZlBhcmFtfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtEY1ZhbHVlcywgRU1QVFlfRENSRUZ9IGZyb20gXCIuL0RjVmFsdWVzXCI7XHJcbmltcG9ydCB7RmllbGRzVGFibGV9IGZyb20gXCIuL0ZpZWxkc1RhYmxlXCI7XHJcbmltcG9ydCB7R3VpVGFza0Jhc2V9IGZyb20gXCIuLi90YXNrcy9HdWlUYXNrQmFzZVwiO1xyXG5pbXBvcnQge0ZpZWxkRGVmfSBmcm9tIFwiLi9GaWVsZERlZlwiO1xyXG5pbXBvcnQge0lUYXNrfSBmcm9tIFwiLi4vdGFza3MvSVRhc2tcIjtcclxuaW1wb3J0IHtFdmVudHN9IGZyb20gXCIuLi8uLi9FdmVudHNcIjtcclxuXHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZSwgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge1BJQ30gZnJvbSBcIi4uL2d1aS9QSUNcIjtcclxuaW1wb3J0IHtEaXNwbGF5Q29udmVydG9yfSBmcm9tIFwiLi4vZ3VpL0Rpc3BsYXlDb252ZXJ0b3JcIjtcclxuaW1wb3J0IHtDb21tYW5kc30gZnJvbSBcIi4uLy4uL0NvbW1hbmRzXCI7XHJcbmltcG9ydCB7Q29tbWFuZFR5cGV9IGZyb20gXCIuLi8uLi9HdWlFbnVtc1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBieSB0aGUgR1VJIG5hbWVzcGFjZSBmcm9tIHRoZSBEYXRhVmlld0Jhc2UgY2xhc3MuXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHdWlEYXRhVmlld0Jhc2Uge1xyXG5cclxuICBfZGNWYWxzQ29sbGVjdGlvbjogRGljdGlvbmFyeTxEY1ZhbHVlcz4gPSBuZXcgRGljdGlvbmFyeTxEY1ZhbHVlcz4oKTtcclxuICBwcml2YXRlIF9lbXB0eURhdGF2aWV3OiBib29sZWFuID0gZmFsc2U7IC8vIEluZGljYXRlcyB0aGUgdGFzayBpcyBpbiBFbXB0eSBEYXRhdmlld1xyXG4gIF9maWVsZHNUYWI6IEZpZWxkc1RhYmxlID0gbnVsbDsgLy8gPGR2aGVhZGVyPiAuLi48L2R2aGVhZGVyPiB0YWdcclxuICBfdGFzazogR3VpVGFza0Jhc2UgPSBudWxsOyAvLyBjb250YWluZXIgdGFza1xyXG5cclxuICAvLyBkdW1teSBEY1ZhbHVlcyBmb3IgdXNlIHdpdGggbm9uLURDIGNob2ljZSBjb250cm9sc1xyXG4gIHByaXZhdGUgX2VtcHR5Q2hvaWNlOiBEY1ZhbHVlcyA9IG5ldyBEY1ZhbHVlcyh0cnVlKTtcclxuICBwcml2YXRlIF9lbXB0eUNob2ljZUZvclZlY3RvcnM6IERjVmFsdWVzID0gbmV3IERjVmFsdWVzKHRydWUpO1xyXG5cclxuXHJcbiAgYWJzdHJhY3QgSW5pdCgpOiB2b2lkO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcGFyc2UgdGhlIERWSEVBREVSIHRhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYWJzdHJhY3QgZmlsbEhlYWRlckRhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkO1xyXG5cclxuICBhYnN0cmFjdCBnZXRDaHVua1NpemUoKTogbnVtYmVyO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgYSBmaWVsZCBieSBpdHMgaWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWRcIj5maWVsZCBpZCA8L3BhcmFtPlxyXG4gIGdldEZpZWxkKGlkOiBudW1iZXIpOiBGaWVsZERlZiB7XHJcbiAgICBpZiAodGhpcy5fZmllbGRzVGFiICE9IG51bGwpXHJcbiAgICAgIHJldHVybiB0aGlzLl9maWVsZHNUYWIuZ2V0RmllbGQoaWQpO1xyXG5cclxuICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKFwiaW4gRGF0YVZpZXcuZ2V0RmllbGREZWYoaW50KTogVGhlcmUgaXMgbm8gZmllbGRzVGFiIG9iamVjdFwiKTtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgZW1wdHlEYXRhdmlldzwvcmV0dXJucz5cclxuICBpc0VtcHR5RGF0YXZpZXcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1wdHlEYXRhdmlldztcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZW1wdHlEYXRhdmlld1wiPnRoZSBlbXB0eURhdGF2aWV3IHRvIHNldDwvcGFyYW0+XHJcbiAgc2V0RW1wdHlEYXRhdmlldyhlbXB0eURhdGF2aWV3OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbXB0eURhdGF2aWV3ID0gZW1wdHlEYXRhdmlldztcclxuICAgIENvbW1hbmRzLmFkZEJvb2xXaXRoTGluZShDb21tYW5kVHlwZS5TRVRfRU1QVFlfREFUQVZJRVcsIHRoaXMuX3Rhc2suZ2V0Rm9ybSgpLCAwLCBlbXB0eURhdGF2aWV3KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIHRhc2sgb2YgdGhpcyBkYXRhdmlld1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0VGFzaygpOiBJVGFzayB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFzaztcclxuICB9XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGRjVmFsdWVzIG9iamVjdCBieSBpdHMgaWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZGNJZFwiPmlkIG9mIGEgZGF0YSBjb250cm9sIHZhbHVlcyA8L3BhcmFtPlxyXG4gIGdldERjVmFsdWVzKGRjSWQ6IG51bWJlcik6IERjVmFsdWVzIHtcclxuICAgIGlmIChkY0lkID09PSBFTVBUWV9EQ1JFRilcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW1wdHlDaG9pY2UoKTtcclxuXHJcbiAgICBsZXQgZGNWYWx1ZXM6IERjVmFsdWVzO1xyXG4gICAgbGV0IGRjdjogUmVmUGFyYW08RGNWYWx1ZXM+ID0gbmV3IFJlZlBhcmFtPERjVmFsdWVzPihkY1ZhbHVlcyk7XHJcbiAgICB0aGlzLl9kY1ZhbHNDb2xsZWN0aW9uLlRyeUdldFZhbHVlKGRjSWQudG9TdHJpbmcoKSwgZGN2KTtcclxuICAgIHJldHVybiBkY3YudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+ZHVtbXkgRGNWYWx1ZXMgZm9yIHVzZSB3aXRoIG5vbi1EQyBjaG9pY2UgY29udHJvbHM8L3JldHVybnM+XHJcbiAgZ2V0RW1wdHlDaG9pY2UoKTogRGNWYWx1ZXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5Q2hvaWNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEVtcHR5Q2hvaWNlRm9yVmVjdG9ycygpOiBEY1ZhbHVlcyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1wdHlDaG9pY2VGb3JWZWN0b3JzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBmaWVsZHMgdGFibGUgKDxkdmhlYWRlcj4pIG9mIHRoZSAoKERhdGFWaWV3KWRhdGFWaWV3KVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0RmllbGRzVGFiKCk6IEZpZWxkc1RhYmxlIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHNUYWI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHJvdXRlIHBhcmFtc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0Um91dGVQYXJhbXMoKTogTGlzdDxhbnk+IHtcclxuICAgIGxldCBwYXJhbXM6IExpc3QgPCBhbnkgPiA9IG5ldyBMaXN0KCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2ZpZWxkc1RhYi5nZXRTaXplKCk7IGkrKykge1xyXG5cclxuICAgICAgbGV0IGZpZWxkOiBhbnkgPSB0aGlzLl9maWVsZHNUYWIuZ2V0RmllbGQoaSk7XHJcbiAgICAgIGxldCB2YWw6IGFueTtcclxuICAgICAgaWYgKGZpZWxkLklzRXhwb3NlZFJvdXRlUGFyYW0gJiYgIWZpZWxkLmlzTnVsbCgpKSB7XHJcbiAgICAgICAgc3dpdGNoIChmaWVsZC5nZXRUeXBlKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6IHtcclxuICAgICAgICAgICAgdmFsID0gZmllbGQuZ2V0RGlzcFZhbHVlKCk7XHJcbiAgICAgICAgICAgIGlmIChmaWVsZC5pc051bGwoKSlcclxuICAgICAgICAgICAgICB2YWwgPSBmaWVsZC5nZXROdWxsRGlzcGxheSgpO1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaCg8c3RyaW5nPnZhbC50cmltKCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjoge1xyXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNOdWxsKCkpXHJcbiAgICAgICAgICAgICAgcGFyYW1zLnB1c2goZmFsc2UpO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgcGFyYW1zLnB1c2goZmllbGQuZ2V0RGlzcFZhbHVlKCkuY2hhckF0KDApID09PSAnMScgPyB0cnVlIDogZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzoge1xyXG4gICAgICAgICAgICB2YWwgPSBmaWVsZC5nZXREaXNwVmFsdWUoKTtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLmlzTnVsbCgpKVxyXG4gICAgICAgICAgICAgIHZhbCA9IGZpZWxkLmdldE51bGxEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgIGxldCBwaWM6IFBJQyA9IG5ldyBQSUMoZmllbGQuZ2V0UGljdHVyZSgpLCBmaWVsZC5nZXRUeXBlKCksIHRoaXMuZ2V0VGFzaygpLmdldENvbXBJZHgoKSk7XHJcbiAgICAgICAgICAgIHZhbCA9IERpc3BsYXlDb252ZXJ0b3IuSW5zdGFuY2UubWcyZGlzcCh2YWwsIFwiXCIsIHBpYywgdHJ1ZSwgMCwgZmFsc2UpO1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaCh2YWwpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAocGFyYW1zLmxlbmd0aCA+IDApID8gcGFyYW1zIDogbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,82 +0,0 @@
1
- import { FieldDef } from "./FieldDef";
2
- import { List, NString } from "@magic-xpa/mscorelib";
3
- import { GuiConstants } from "../../GuiConstants";
4
- export class GuiFieldBase extends FieldDef {
5
- constructor(id) {
6
- super(id);
7
- this.ControlToFocus = null;
8
- this._controls = null;
9
- this._dataview = null;
10
- }
11
- getTask() {
12
- return this._dataview.getTask();
13
- }
14
- async updateDisplayWithValue(displayValue, isNull) {
15
- let ctrl = null;
16
- let ctrlValue = null;
17
- let defaultValue = GuiConstants.DEFAULT_VALUE_INT.toString();
18
- if (this._controls !== null) {
19
- let firstControlValue = null;
20
- let foundControlValue = false;
21
- let savedControlToFocus = this.ControlToFocus;
22
- for (let i = 0; i < this._controls.length; i = i + 1) {
23
- ctrl = this._controls.get_Item(i);
24
- if (!ctrl.getForm().inRefreshDisplay()) {
25
- ctrl.resetPrevVal();
26
- await ctrl.SetAndRefreshDisplayValue(displayValue, isNull);
27
- if (!ctrl.isRadio())
28
- if (ctrlValue === null || ctrl.Value !== null && !(ctrl.Value === defaultValue) && ctrl === savedControlToFocus)
29
- ctrlValue = ctrl;
30
- else {
31
- if (firstControlValue === null)
32
- firstControlValue = ctrl;
33
- if (ctrl.Value !== null && !(ctrl.Value === defaultValue)) {
34
- if (!foundControlValue) {
35
- firstControlValue = ctrl;
36
- foundControlValue = true;
37
- }
38
- if (ctrl === savedControlToFocus)
39
- ctrlValue = ctrl;
40
- else if (ctrlValue === null)
41
- ctrlValue = firstControlValue;
42
- }
43
- }
44
- }
45
- }
46
- if (ctrlValue !== null) {
47
- this.ControlToFocus = ctrlValue;
48
- if (this._controls.length > 1) {
49
- ctrlValue.resetPrevVal();
50
- await ctrlValue.SetAndRefreshDisplayValue(displayValue, isNull);
51
- }
52
- }
53
- }
54
- }
55
- SetControl(ctrl) {
56
- if (this._controls === null)
57
- this._controls = new List();
58
- if (!this._controls.Contains(ctrl)) {
59
- this._controls.push(ctrl);
60
- if (this._controls.length === 1)
61
- this.ControlToFocus = ctrl;
62
- }
63
- }
64
- RemoveControl(ctrl) {
65
- this._controls.Remove(ctrl);
66
- }
67
- GetRadioCtrls() {
68
- let list = new List();
69
- if (this._controls !== null) {
70
- for (let i = 0; i < this._controls.length; i = i + 1) {
71
- let ctrl = this._controls[i];
72
- if (ctrl.isRadio())
73
- list.push(ctrl);
74
- }
75
- }
76
- return list;
77
- }
78
- toString() {
79
- return NString.Format("(Field {0}-{1}) in task {2}", this._id, this._varName, this.getTask());
80
- }
81
- }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpRmllbGRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRmllbGRCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFJcEMsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsTUFBTSxPQUFnQixZQUFhLFNBQVEsUUFBUTtJQVNqRCxZQUFZLEVBQVU7UUFDcEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBVFosbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQzNCLGNBQVMsR0FBd0IsSUFBSSxDQUFDO1FBQ3RDLGNBQVMsR0FBb0IsSUFBSSxDQUFDO0lBUTVDLENBQUM7SUFLRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFLRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsWUFBb0IsRUFBRSxNQUFlO1FBQ2hFLElBQUksSUFBSSxHQUFrQixJQUFJLENBQUM7UUFDL0IsSUFBSSxTQUFTLEdBQWtCLElBQUksQ0FBQztRQUNwQyxJQUFJLFlBQVksR0FBVyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFckUsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUMzQixJQUFJLGlCQUFpQixHQUFrQixJQUFJLENBQUM7WUFDNUMsSUFBSSxpQkFBaUIsR0FBWSxLQUFLLENBQUM7WUFDdkMsSUFBSSxtQkFBbUIsR0FBa0IsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFB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QzthQUNuQjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWVsZERlZn0gZnJvbSBcIi4vRmllbGREZWZcIjtcclxuaW1wb3J0IHtHdWlEYXRhVmlld0Jhc2V9IGZyb20gXCIuL0d1aURhdGFWaWV3QmFzZVwiO1xyXG5pbXBvcnQge01nQ29udHJvbEJhc2V9IGZyb20gXCIuLi9ndWkvTWdDb250cm9sQmFzZVwiO1xyXG5pbXBvcnQge0lUYXNrfSBmcm9tIFwiLi4vdGFza3MvSVRhc2tcIjtcclxuaW1wb3J0IHtMaXN0LCBOU3RyaW5nfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtHdWlDb25zdGFudHN9IGZyb20gXCIuLi8uLi9HdWlDb25zdGFudHNcIjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHdWlGaWVsZEJhc2UgZXh0ZW5kcyBGaWVsZERlZiB7XHJcbiAgQ29udHJvbFRvRm9jdXM6IE1nQ29udHJvbEJhc2UgPSBudWxsO1xyXG4gIHByb3RlY3RlZCBfY29udHJvbHM6IExpc3Q8TWdDb250cm9sQmFzZT4gPSBudWxsO1xyXG4gIHByb3RlY3RlZCBfZGF0YXZpZXc6IEd1aURhdGFWaWV3QmFzZSA9IG51bGw7IC8vIHJlZmVyZW5jZSB0byB0aGUgZGF0YXZpZXcgaW4gb3JkZXIgdG8gYWNjZXNzIHJlY29yZCBkYXRhICh1cGRhdGluZywgZXRjLi4uKVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImlkXCI+IGlkeCBpbiBGaWVsZHNUYWJsZSA8L3BhcmFtPlxyXG4gIGNvbnN0cnVjdG9yKGlkOiBudW1iZXIpIHtcclxuICAgIHN1cGVyKGlkKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSB0YXNrIHdoaWNoIHRoZSBmaWVsZCBiZWxvbmdzIHRvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRUYXNrKCk6IElUYXNrIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhdmlldy5nZXRUYXNrKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdXBkYXRlIHRoZSBkaXNwbGF5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyB1cGRhdGVEaXNwbGF5V2l0aFZhbHVlKGRpc3BsYXlWYWx1ZTogc3RyaW5nLCBpc051bGw6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBjdHJsOiBNZ0NvbnRyb2xCYXNlID0gbnVsbDtcclxuICAgIGxldCBjdHJsVmFsdWU6IE1nQ29udHJvbEJhc2UgPSBudWxsO1xyXG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nID0gR3VpQ29uc3RhbnRzLkRFRkFVTFRfVkFMVUVfSU5ULnRvU3RyaW5nKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xzICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCBmaXJzdENvbnRyb2xWYWx1ZTogTWdDb250cm9sQmFzZSA9IG51bGw7XHJcbiAgICAgIGxldCBmb3VuZENvbnRyb2xWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICBsZXQgc2F2ZWRDb250cm9sVG9Gb2N1czogTWdDb250cm9sQmFzZSA9IHRoaXMuQ29udHJvbFRvRm9jdXM7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9jb250cm9scy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGN0cmwgPSB0aGlzLl9jb250cm9scy5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgICAgaWYgKCFjdHJsLmdldEZvcm0oKS5pblJlZnJlc2hEaXNwbGF5KCkpIHtcclxuICAgICAgICAgIGN0cmwucmVzZXRQcmV2VmFsKCk7IC8vIGZvcmNlIHVwZGF0ZSBvZiB0aGUgZGlzcGxheVxyXG4gICAgICAgICAgYXdhaXQgY3RybC5TZXRBbmRSZWZyZXNoRGlzcGxheVZhbHVlKGRpc3BsYXlWYWx1ZSwgaXNOdWxsKTtcclxuXHJcbiAgICAgICAgICAvLyBFdmVuIGlmIHRoZSBjb250cm9sIHRoYXQgY29udGFpbnMgdGhlIGNvcnJlY3QgdmFsdWUgaXMgZm91bmQgd2UgZG9uJ3QgYnJlYWsgdGhlIGxvb3AgYmVjYXVzZTpcclxuICAgICAgICAgIC8vICgxKSB3ZSBuZWVkIHRvIHJlZnJlc2ggYWxsIHRoZSBjb250cm9sc1xyXG4gICAgICAgICAgLy8gKDIpIHRoZSBsYXN0IGNvbnRyb2wgdGhhdCB3YXMgZm9jdXMgd2l0aCB0aGUgY29ycmVjdCB2YWx1ZSBpcyB0aGUgb25lIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWRcclxuICAgICAgICAgIGlmICghY3RybC5pc1JhZGlvKCkpXHJcbiAgICAgICAgICAgIGlmIChjdHJsVmFsdWUgPT09IG51bGwgfHwgY3RybC5WYWx1ZSAhPT0gbnVsbCAmJiAhKGN0cmwuVmFsdWUgPT09IGRlZmF1bHRWYWx1ZSkgJiYgY3RybCA9PT0gc2F2ZWRDb250cm9sVG9Gb2N1cylcclxuICAgICAgICAgICAgICBjdHJsVmFsdWUgPSBjdHJsO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEZpeGVkIGJ1ZyM6NzgwMzU5LCBmb3IgcmFkaW8gY29udHJvbCBzZWxlY3QgdGhlIGNvcnJlY3QgY29udHJvbFxyXG4gICAgICAgICAgICAvLyBpZiBub3QgZm91bmQgYW55IGN0cmx2YWx1ZSh0aGUgY29udHJvbCB0aGF0IHdhcyBpbiBmb2N1c2UpXHJcbiAgICAgICAgICAgIC8vIHNlbGVjdCB0aGUgZmlyc3QgY29udHJvbCB3aXRoIHRoZSBjb3JyZWN0IHZhbHVlIGlmIG5vdCBleGlzdCBzZWxlY3QgdGhlIGZpcnN0IGNvbnRyb2wuXHJcblxyXG4gICAgICAgICAgICAvLyBhLiBzYXZlIHRoZSBmaXJzdCBjb250cm9sICh3aXRoIG9yIHdpdGhvdXQgdGhlIGNvcnJlY3QgdmFsdWUpXHJcbiAgICAgICAgICAgIGlmIChmaXJzdENvbnRyb2xWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgICAgICAgICBmaXJzdENvbnRyb2xWYWx1ZSA9IGN0cmw7XHJcbiAgICAgICAgICAgIGlmIChjdHJsLlZhbHVlICE9PSBudWxsICYmICEoY3RybC5WYWx1ZSA9PT0gZGVmYXVsdFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgIC8vIGIuIHNhdmUgdGhlIGZpcnN0IGNvbnRyb2wgd2l0aCB0aGUgY29ycmVjdCB2YWx1ZVxyXG4gICAgICAgICAgICAgIGlmICghZm91bmRDb250cm9sVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGZpcnN0Q29udHJvbFZhbHVlID0gY3RybDtcclxuICAgICAgICAgICAgICAgIGZvdW5kQ29udHJvbFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gYy5zYXZlIHRoZSBjb250cm9sIHRoYXQgYmVsb25nIHRvIHRoZSBmb2N1cyBjb250cm9sXHJcbiAgICAgICAgICAgICAgaWYgKGN0cmwgPT09IHNhdmVkQ29udHJvbFRvRm9jdXMpXHJcbiAgICAgICAgICAgICAgICBjdHJsVmFsdWUgPSBjdHJsO1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGN0cmxWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgICAgICAgICAgIGN0cmxWYWx1ZSA9IGZpcnN0Q29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBpZiB0aGVyZSB3YXMgYSBjb250cm9sIHRoYXQgaGFkIHRoZSBjb3JyZWN0IHZhbHVlIGFuZCB0aGlzIGZpZWxkIGlzIGxpbmtlZCB0byBtb3JlIHRoYW4gb25lXHJcbiAgICAgIC8vIGNvbnRyb2wgdGhlbiBpdCBtZWFucyB0aGF0IHRoZSBjb250cm9sIHRoYXQgY29udGFpbmVkIHRoZSBjb3JyZWN0IHZhbHVlIG1pZ2h0IGhhdmUgYmVlbiByZXNldCBieVxyXG4gICAgICAvLyBvbmUgb2YgaXRzIHNpYmxpbmdzIHNvIHRoZXJlIGlzIGEgbmVlZCB0byByZWZyZXNoIGl0cyB2YWx1ZSBhZ2Fpbi5cclxuICAgICAgaWYgKGN0cmxWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIC8vIHNhdmUgdGhlIGNvbnRyb2wgdGhhdCBiZWxvbmcgdG8gdGhlIHZhbHVlIG9uIHRoZSBmaWVsZC5cclxuICAgICAgICB0aGlzLkNvbnRyb2xUb0ZvY3VzID0gY3RybFZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLl9jb250cm9scy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBjdHJsVmFsdWUucmVzZXRQcmV2VmFsKCk7IC8vIGZvcmNlIHVwZGF0ZSBvZiB0aGUgZGlzcGxheVxyXG4gICAgICAgICAgYXdhaXQgY3RybFZhbHVlLlNldEFuZFJlZnJlc2hEaXNwbGF5VmFsdWUoZGlzcGxheVZhbHVlLCBpc051bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzZXQgYSByZWZlcmVuY2UgdG8gYSBjb250cm9sIGF0dGFjaGVkIHRvIHRoaXMgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFwiPnRoZSBjb250cm9sIHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoaXMgZmllbGQ8L3BhcmFtPlxyXG4gIFNldENvbnRyb2woY3RybDogTWdDb250cm9sQmFzZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xzID09PSBudWxsKVxyXG4gICAgICB0aGlzLl9jb250cm9scyA9IG5ldyBMaXN0PE1nQ29udHJvbEJhc2U+KCk7XHJcbiAgICBpZiAoIXRoaXMuX2NvbnRyb2xzLkNvbnRhaW5zKGN0cmwpKSB7XHJcbiAgICAgIHRoaXMuX2NvbnRyb2xzLnB1c2goY3RybCk7XHJcblxyXG4gICAgICAvLyBzYXZlIHRoZSBmaXJzdCBjdHJsXHJcbiAgICAgIGlmICh0aGlzLl9jb250cm9scy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgdGhpcy5Db250cm9sVG9Gb2N1cyA9IGN0cmw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJlbW92ZXMgYSByZWZlcmVuY2UgdG8gYSBjb250cm9sIGF0dGFjaGVkIHRvIHRoaXMgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFwiPnRoZSBjb250cm9sIHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoaXMgZmllbGQ8L3BhcmFtPlxyXG4gIFJlbW92ZUNvbnRyb2woY3RybDogTWdDb250cm9sQmFzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udHJvbHMuUmVtb3ZlKGN0cmwpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXR1cm5zIHRoZSBsaXN0IG9mIHJhZGlvIGNvbnRyb2xzIHdoaWNoIGFyZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBmaWVsZCBhbmQgcmVzaWRlcyBvbiB0aGUgc2FtZSB0YXNrLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0UmFkaW9DdHJscygpOiBMaXN0PE1nQ29udHJvbEJhc2U+IHtcclxuICAgIGxldCBsaXN0OiBMaXN0PE1nQ29udHJvbEJhc2U+ID0gbmV3IExpc3Q8TWdDb250cm9sQmFzZT4oKTtcclxuXHJcbiAgICBpZiAodGhpcy5fY29udHJvbHMgIT09IG51bGwpIHtcclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX2NvbnRyb2xzLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgbGV0IGN0cmw6IE1nQ29udHJvbEJhc2UgPSB0aGlzLl9jb250cm9sc1tpXTtcclxuXHJcbiAgICAgICAgaWYgKGN0cmwuaXNSYWRpbygpKVxyXG4gICAgICAgICAgbGlzdC5wdXNoKGN0cmwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGlzdDtcclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoXCIoRmllbGQgezB9LXsxfSkgaW4gdGFzayB7Mn1cIiwgdGhpcy5faWQsIHRoaXMuX3Zhck5hbWUsIHRoaXMuZ2V0VGFzaygpKTtcclxuICB9XHJcbn1cclxuIl19