@magic-xpa/engine 4.1000.0-dev4100.99 → 4.1100.0-dev4110.1

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 (53) hide show
  1. package/esm2020/src/ClientManager.mjs +12 -12
  2. package/esm2020/src/ConstInterface.mjs +2 -1
  3. package/esm2020/src/CurrentClientVersion.mjs +2 -2
  4. package/esm2020/src/commands/ClientToServer/DataviewCommand.mjs +6 -6
  5. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +4 -4
  6. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +8 -8
  7. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +4 -4
  8. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +5 -5
  9. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +7 -7
  10. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +6 -6
  11. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +8 -8
  12. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +7 -7
  13. package/esm2020/src/data/DataView.mjs +34 -34
  14. package/esm2020/src/data/DataviewManager.mjs +7 -7
  15. package/esm2020/src/data/Record.mjs +10 -10
  16. package/esm2020/src/data/TaskTransactionManager.mjs +4 -4
  17. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +5 -5
  18. package/esm2020/src/env/Environment.mjs +14 -7
  19. package/esm2020/src/event/Event.mjs +4 -1
  20. package/esm2020/src/event/EventHandler.mjs +8 -3
  21. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  22. package/esm2020/src/event/EventsManager.mjs +10 -1
  23. package/esm2020/src/event/IEventsManager.mjs +1 -1
  24. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  25. package/esm2020/src/exp/ExpressionEvaluator.mjs +8 -4
  26. package/esm2020/src/gui/FormsTable.mjs +8 -8
  27. package/esm2020/src/gui/MgControl.mjs +10 -13
  28. package/esm2020/src/gui/MgForm.mjs +9 -23
  29. package/esm2020/src/http/HttpManager.mjs +8 -8
  30. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +34 -23
  31. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  32. package/esm2020/src/security/UserDetails.mjs +12 -12
  33. package/esm2020/src/tasks/MGData.mjs +4 -4
  34. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  35. package/esm2020/src/tasks/Task.mjs +43 -42
  36. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  37. package/esm2020/src/util/PrmMap.mjs +5 -5
  38. package/esm2020/src/util/ReturnResult.mjs +7 -7
  39. package/fesm2015/magic-xpa-engine.mjs +461 -338
  40. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  41. package/fesm2020/magic-xpa-engine.mjs +456 -326
  42. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  43. package/package.json +6 -6
  44. package/src/ConstInterface.d.ts +1 -0
  45. package/src/env/Environment.d.ts +2 -0
  46. package/src/event/EventsManager.d.ts +3 -0
  47. package/src/event/IEventsManager.d.ts +2 -0
  48. package/src/exp/ExpressionEvaluator.d.ts +1 -1
  49. package/src/gui/MgControl.d.ts +0 -1
  50. package/src/gui/MgForm.d.ts +1 -3
  51. package/src/remote/RemoteCommandsProcessor.d.ts +1 -0
  52. package/src/util/FlowMonitorQueue.d.ts +8 -0
  53. package/magic-xpa-engine.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, HashUtils, DateTime, Dictionary, Stack, NChar, isNullOrUndefined, WebException, Thread, Encoding, Exception, isUndefined, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
2
2
  import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
3
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
3
+ import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, VectorType, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
4
4
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
5
5
  import { timer, Subject } from 'rxjs';
6
6
 
@@ -271,6 +271,7 @@ ConstInterface.MG_ATTR_LOCAL_AS400SET = "local_as400set";
271
271
  ConstInterface.MG_ATTR_LOCAL_EXTRA_GENGO = "local_extraGengo";
272
272
  ConstInterface.MG_ATTR_LOCAL_FLAGS = "local_flags";
273
273
  ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP = "SpecialAnsiExpression";
274
+ ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END = "SpecialImmediateHandlerEnd";
274
275
  ConstInterface.MG_ATTR_SPECIAL_SHOW_STATUSBAR_PANES = "SpecialShowStatusBarPanes";
275
276
  ConstInterface.MG_ATTR_SPECIAL_ROUTE_TO_ROOT_PROG_ON_CONTEXT_RECREATION = "SpecialRouteToRootProgramOnContextRecreation";
276
277
  ConstInterface.MG_ATTR_SPECIAL_SPECIAL_EDIT_LEFT_ALIGN = "SpecialEditLeftAlign";
@@ -641,13 +642,6 @@ class CommandSerializationHelper {
641
642
  }
642
643
 
643
644
  class EventCommand extends ClientOriginatedCommandTaskTag {
644
- constructor(magicEvent) {
645
- super();
646
- this.TaskTag = null;
647
- this.MagicEvent = 0;
648
- this.ClientRecId = 0;
649
- this.MagicEvent = magicEvent;
650
- }
651
645
  get CommandTypeAttribute() {
652
646
  return ConstInterface.MG_ATTR_VAL_EVENT;
653
647
  }
@@ -663,6 +657,13 @@ class EventCommand extends ClientOriginatedCommandTaskTag {
663
657
  return false;
664
658
  return true;
665
659
  }
660
+ constructor(magicEvent) {
661
+ super();
662
+ this.TaskTag = null;
663
+ this.MagicEvent = 0;
664
+ this.ClientRecId = 0;
665
+ this.MagicEvent = magicEvent;
666
+ }
666
667
  SerializeCommandData() {
667
668
  let helper = new CommandSerializationHelper();
668
669
  helper.SerializeTaskTag(this.TaskTag);
@@ -1172,15 +1173,6 @@ class OpeningTaskDetails {
1172
1173
  }
1173
1174
 
1174
1175
  class MgControl extends MgControlBase {
1175
- constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1176
- if (arguments.length === 0)
1177
- super();
1178
- else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1179
- super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1180
- else
1181
- super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1182
- this.initialize();
1183
- }
1184
1176
  initialize() {
1185
1177
  this._focusedStopExecution = false;
1186
1178
  this._inControlSuffix = false;
@@ -1193,6 +1185,15 @@ class MgControl extends MgControlBase {
1193
1185
  this.HasZoomHandler = false;
1194
1186
  this.ArgList = null;
1195
1187
  }
1188
+ constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1189
+ if (arguments.length === 0)
1190
+ super();
1191
+ else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1192
+ super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1193
+ else
1194
+ super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1195
+ this.initialize();
1196
+ }
1196
1197
  GetVarIndex() {
1197
1198
  return super.getForm().getTask().DataView.Dvcount + this.veeIndx;
1198
1199
  }
@@ -1459,9 +1460,6 @@ class MgControl extends MgControlBase {
1459
1460
  this.KeyStrokeOn = false;
1460
1461
  }
1461
1462
  }
1462
- async refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1463
- await super.refreshAndSetItemsListForRadioButton(line, execComputeChoice);
1464
- }
1465
1463
  getSubformTask() {
1466
1464
  return this._subformTask;
1467
1465
  }
@@ -2818,6 +2816,9 @@ class Event {
2818
2816
  case InternalInterface.MG_ACT_INDEX_CHANGE:
2819
2817
  description = 'Index Change';
2820
2818
  break;
2819
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
2820
+ description = 'Dump Environment';
2821
+ break;
2821
2822
  default:
2822
2823
  description = '';
2823
2824
  break;
@@ -3125,6 +3126,21 @@ class MgPriorityBlockingQueue {
3125
3126
  }
3126
3127
 
3127
3128
  class RunTimeEvent extends RunTimeEventBase {
3129
+ set Control(value) {
3130
+ this._ctrl = value;
3131
+ }
3132
+ set DisplayLine(value) {
3133
+ this._displayLine = value;
3134
+ }
3135
+ get Control() {
3136
+ return this._ctrl;
3137
+ }
3138
+ get ControlsList() {
3139
+ return this._controlsList;
3140
+ }
3141
+ get Direction() {
3142
+ return this._direction;
3143
+ }
3128
3144
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3129
3145
  super();
3130
3146
  this._controlsList = null;
@@ -3186,21 +3202,6 @@ class RunTimeEvent extends RunTimeEventBase {
3186
3202
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3187
3203
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3188
3204
  }
3189
- set Control(value) {
3190
- this._ctrl = value;
3191
- }
3192
- set DisplayLine(value) {
3193
- this._displayLine = value;
3194
- }
3195
- get Control() {
3196
- return this._ctrl;
3197
- }
3198
- get ControlsList() {
3199
- return this._controlsList;
3200
- }
3201
- get Direction() {
3202
- return this._direction;
3203
- }
3204
3205
  constructor_5(taskRef) {
3205
3206
  this.init(taskRef);
3206
3207
  }
@@ -3530,7 +3531,17 @@ class FlowMonitorQueue {
3530
3531
  this._isRecompute = false;
3531
3532
  this._isTask = false;
3532
3533
  this._isTaskFlow = false;
3534
+ this._isDataView = false;
3533
3535
  this.ShouldSerialize = false;
3536
+ this.padRight = (string, length, character = ' ') => {
3537
+ let result = "";
3538
+ let totalLength = length - string.length;
3539
+ for (let i = 0; i < totalLength; i++) {
3540
+ result = character + result;
3541
+ }
3542
+ result = result + string;
3543
+ return result;
3544
+ };
3534
3545
  }
3535
3546
  static get Instance() {
3536
3547
  if (FlowMonitorQueue._instance === null)
@@ -3588,6 +3599,9 @@ class FlowMonitorQueue {
3588
3599
  case ConstInterface.MG_ATTR_TASKFLW:
3589
3600
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3590
3601
  break;
3602
+ case ConstInterface.MG_TAG_DATAVIEW:
3603
+ this._isDataView = XmlParser.getBoolean(valueStr);
3604
+ break;
3591
3605
  case ConstInterface.MG_ATTR_RECOMP:
3592
3606
  this._isRecompute = XmlParser.getBoolean(valueStr);
3593
3607
  break;
@@ -3645,6 +3659,96 @@ class FlowMonitorQueue {
3645
3659
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3646
3660
  }
3647
3661
  }
3662
+ appendVirtualsAndParameters(currentValues) {
3663
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3664
+ act.setInfo(currentValues);
3665
+ this._queue.put(act);
3666
+ }
3667
+ addDataViewFlow(task) {
3668
+ if (this._isDataView) {
3669
+ let fldTab = task.DataView.GetFieldsTab();
3670
+ let preparedDisplayString = "";
3671
+ let finaldisplayData = "\n";
3672
+ let fldValue;
3673
+ let data = "";
3674
+ for (let i = 0; i < fldTab.getSize(); i++) {
3675
+ let fldDef = fldTab.getField(i);
3676
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3677
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3678
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3679
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3680
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3681
+ }
3682
+ }
3683
+ this.appendVirtualsAndParameters(finaldisplayData);
3684
+ }
3685
+ }
3686
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3687
+ switch (Storagetype) {
3688
+ case StorageAttribute.DOTNET:
3689
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3690
+ break;
3691
+ case StorageAttribute.BLOB:
3692
+ {
3693
+ if (BlobType.isValidBlob(data)) {
3694
+ let contentType = BlobType.getContentType(data);
3695
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3696
+ data = data != null ? BlobType.getString(data) : "";
3697
+ else
3698
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3699
+ }
3700
+ else
3701
+ data = "";
3702
+ }
3703
+ break;
3704
+ case StorageAttribute.NUMERIC:
3705
+ case StorageAttribute.DATE:
3706
+ case StorageAttribute.TIME:
3707
+ let conv = DisplayConvertor.Instance;
3708
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3709
+ break;
3710
+ case StorageAttribute.BLOB_VECTOR:
3711
+ let vecOutData;
3712
+ if (data == null) {
3713
+ vecOutData = "[]";
3714
+ }
3715
+ else {
3716
+ let cellAtt = vecCellType;
3717
+ let vector = new VectorType(data);
3718
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3719
+ vecOutData = "[]";
3720
+ else {
3721
+ let vecSize = VectorType.getVecSize(data);
3722
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3723
+ vecOutData = "[";
3724
+ for (let i = 0; i < vecSize; i++) {
3725
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3726
+ vecOutData += i < vecSize - 1 ? "," : "]";
3727
+ }
3728
+ }
3729
+ }
3730
+ data = vecOutData;
3731
+ break;
3732
+ case StorageAttribute.BOOLEAN:
3733
+ data = data == "1" ? "TRUE" : "FALSE";
3734
+ break;
3735
+ }
3736
+ return data;
3737
+ }
3738
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3739
+ let str = "";
3740
+ let finalStringToDisplay = "";
3741
+ if (addDoubleQuotes)
3742
+ finalStringToDisplay = finalStringToDisplay + "\"";
3743
+ finalStringToDisplay = finalStringToDisplay + name;
3744
+ if (addDoubleQuotes)
3745
+ finalStringToDisplay = finalStringToDisplay + "\"";
3746
+ let paddedName = this.padRight(name, 34);
3747
+ let formatOfStringVirtual = `Virtual`;
3748
+ let formatOfStringParameter = `Parameter`;
3749
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3750
+ return str;
3751
+ }
3648
3752
  addTaskFlowRec(id, state, taskInfo) {
3649
3753
  if (this._enabled && this._isTaskFlow) {
3650
3754
  let info;
@@ -3809,6 +3913,7 @@ class FlowMonitorQueue {
3809
3913
  }
3810
3914
  }
3811
3915
  FlowMonitorQueue._instance = null;
3916
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3812
3917
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3813
3918
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3814
3919
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3870,6 +3975,15 @@ class TimerObjectCollection {
3870
3975
  }
3871
3976
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3872
3977
  class RCTimer extends MgTimer {
3978
+ get TimerIntervalMiliSeconds() {
3979
+ return this._timerIntervalMilliSeconds;
3980
+ }
3981
+ set IsIdleTimer(value) {
3982
+ this._isIdle = value;
3983
+ }
3984
+ get IsIdleTimer() {
3985
+ return this._isIdle;
3986
+ }
3873
3987
  constructor(mgData, milliseconds, isIdle) {
3874
3988
  super(milliseconds);
3875
3989
  this._mgData = null;
@@ -3881,15 +3995,6 @@ class RCTimer extends MgTimer {
3881
3995
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3882
3996
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3883
3997
  }
3884
- get TimerIntervalMiliSeconds() {
3885
- return this._timerIntervalMilliSeconds;
3886
- }
3887
- set IsIdleTimer(value) {
3888
- this._isIdle = value;
3889
- }
3890
- get IsIdleTimer() {
3891
- return this._isIdle;
3892
- }
3893
3998
  GetMgdata() {
3894
3999
  return this._mgData;
3895
4000
  }
@@ -4035,6 +4140,9 @@ class ExecutionStack {
4035
4140
  }
4036
4141
 
4037
4142
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4143
+ get CommandTypeAttribute() {
4144
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4145
+ }
4038
4146
  constructor() {
4039
4147
  super();
4040
4148
  this.ExecutionStack = null;
@@ -4048,9 +4156,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4048
4156
  this.CheckOnly = false;
4049
4157
  this.DitIdx = Int32.MinValue;
4050
4158
  }
4051
- get CommandTypeAttribute() {
4052
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4053
- }
4054
4159
  SerializeCommandData() {
4055
4160
  let helper = new CommandSerializationHelper();
4056
4161
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4505,13 +4610,6 @@ class HttpClientAsync extends HttpClientBase {
4505
4610
  }
4506
4611
 
4507
4612
  class HttpManager {
4508
- constructor() {
4509
- this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4510
- this._httpClientAsync = null;
4511
- this._isAbortingMagicEngine = false;
4512
- this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4513
- this.RegisterBasicDelegates();
4514
- }
4515
4613
  getHttpClient() {
4516
4614
  if (this.IsAbortingMagicEngine)
4517
4615
  return new HttpClientSync();
@@ -4531,6 +4629,13 @@ class HttpManager {
4531
4629
  }
4532
4630
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4533
4631
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4632
+ constructor() {
4633
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4634
+ this._httpClientAsync = null;
4635
+ this._isAbortingMagicEngine = false;
4636
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4637
+ this.RegisterBasicDelegates();
4638
+ }
4534
4639
  RegisterBasicDelegates() {
4535
4640
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4536
4641
  }
@@ -5076,6 +5181,12 @@ var RequestStatus;
5076
5181
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5077
5182
  })(RequestStatus || (RequestStatus = {}));
5078
5183
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5184
+ static GetInstance() {
5185
+ if (RemoteCommandsProcessor._instance === null) {
5186
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5187
+ }
5188
+ return RemoteCommandsProcessor._instance;
5189
+ }
5079
5190
  constructor() {
5080
5191
  super();
5081
5192
  this._lastRequestTime = 0;
@@ -5086,12 +5197,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5086
5197
  HttpManager.GetInstance();
5087
5198
  this.RegisterDelegates();
5088
5199
  }
5089
- static GetInstance() {
5090
- if (RemoteCommandsProcessor._instance === null) {
5091
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5092
- }
5093
- return RemoteCommandsProcessor._instance;
5094
- }
5095
5200
  CheckAndSetSessionCounter(newSessionCounter) {
5096
5201
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5097
5202
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5534,11 +5639,22 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5534
5639
  }
5535
5640
  }
5536
5641
  }
5537
- window.localStorage.clear();
5642
+ this.clearLocalStorage();
5538
5643
  throw ex;
5539
5644
  }
5540
5645
  return response;
5541
5646
  }
5647
+ clearLocalStorage() {
5648
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
5649
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
5650
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
5651
+ window.localStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5652
+ window.localStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5653
+ window.localStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5654
+ window.localStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5655
+ window.localStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5656
+ window.localStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5657
+ }
5542
5658
  HandleErrorResponse(response) {
5543
5659
  try {
5544
5660
  Logger.Instance.WriteServerMessagesToLog("MESSAGE FROM SERVER: " + response);
@@ -5740,21 +5856,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5740
5856
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5741
5857
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5742
5858
  class HandshakeResponse {
5743
- constructor(responseXML) {
5744
- this._scrambleMessages = true;
5745
- this._contextId = null;
5746
- this._privateSessionId = null;
5747
- this._inputPassword = false;
5748
- this._httpTimeout = 0;
5749
- this._systemLogin = null;
5750
- this._maxInternalLogLevel = null;
5751
- try {
5752
- JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5753
- }
5754
- catch (ex) {
5755
- Logger.Instance.WriteExceptionToLog(ex, responseXML);
5756
- }
5757
- }
5758
5859
  get ScrambleMessages() {
5759
5860
  return this._scrambleMessages;
5760
5861
  }
@@ -5776,6 +5877,21 @@ class HandshakeResponse {
5776
5877
  get MaxInternalLogLevel() {
5777
5878
  return this._maxInternalLogLevel;
5778
5879
  }
5880
+ constructor(responseXML) {
5881
+ this._scrambleMessages = true;
5882
+ this._contextId = null;
5883
+ this._privateSessionId = null;
5884
+ this._inputPassword = false;
5885
+ this._httpTimeout = 0;
5886
+ this._systemLogin = null;
5887
+ this._maxInternalLogLevel = null;
5888
+ try {
5889
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5890
+ }
5891
+ catch (ex) {
5892
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
5893
+ }
5894
+ }
5779
5895
  FillFromJSON(error, result) {
5780
5896
  if (error != null) {
5781
5897
  throw error;
@@ -7329,6 +7445,9 @@ class EventHandlerPosition {
7329
7445
  case InternalInterface.MG_ACT_REC_SUFFIX:
7330
7446
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7331
7447
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7448
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7449
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7450
+ }
7332
7451
  if (this._handlerIdx === -1) {
7333
7452
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7334
7453
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7494,11 +7613,6 @@ var DataViewCommandType;
7494
7613
  DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7495
7614
  })(DataViewCommandType || (DataViewCommandType = {}));
7496
7615
  class DataviewCommand extends ClientOriginatedCommandTaskTag {
7497
- constructor() {
7498
- super();
7499
- this.CommandType = 0;
7500
- this.TaskTag = null;
7501
- }
7502
7616
  get CommandTypeAttribute() {
7503
7617
  throw new NotImplementedException();
7504
7618
  }
@@ -7509,6 +7623,11 @@ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7509
7623
  get ShouldSerialize() {
7510
7624
  return false;
7511
7625
  }
7626
+ constructor() {
7627
+ super();
7628
+ this.CommandType = 0;
7629
+ this.TaskTag = null;
7630
+ }
7512
7631
  }
7513
7632
 
7514
7633
  class AddUserRangeDataviewCommand extends DataviewCommand {
@@ -7730,12 +7849,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7730
7849
  }
7731
7850
 
7732
7851
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7733
- constructor() {
7734
- super();
7735
- this.TaskTag = null;
7736
- this.FldId = 0;
7737
- this.IgnoreSubformRecompute = false;
7738
- }
7739
7852
  get CommandTypeAttribute() {
7740
7853
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7741
7854
  }
@@ -7747,17 +7860,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7747
7860
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7748
7861
  return helper.GetString();
7749
7862
  }
7863
+ constructor() {
7864
+ super();
7865
+ this.TaskTag = null;
7866
+ this.FldId = 0;
7867
+ this.IgnoreSubformRecompute = false;
7868
+ }
7750
7869
  getCommandInfo() {
7751
7870
  return NString.Format('[{0} in {1} for Field {2}]', this.CommandTypeAttribute.charAt(0).toUpperCase() + this.CommandTypeAttribute.substr(1, this.CommandTypeAttribute.length), this.Task.getTaskInfo(), this.Task.getFieldDef(this.FldId).getName());
7752
7871
  }
7753
7872
  }
7754
7873
 
7755
7874
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7756
- constructor() {
7757
- super();
7758
- this.TaskTag = null;
7759
- this.ReversibleExit = false;
7760
- }
7761
7875
  get CommandTypeAttribute() {
7762
7876
  return ConstInterface.MG_ATTR_VAL_TRANS;
7763
7877
  }
@@ -7771,6 +7885,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7771
7885
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7772
7886
  return helper.GetString();
7773
7887
  }
7888
+ constructor() {
7889
+ super();
7890
+ this.TaskTag = null;
7891
+ this.ReversibleExit = false;
7892
+ }
7774
7893
  getCommandInfo() {
7775
7894
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7776
7895
  }
@@ -7789,6 +7908,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7789
7908
  }
7790
7909
 
7791
7910
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7911
+ get CommandTypeAttribute() {
7912
+ return ConstInterface.MG_ATTR_VAL_EVAL;
7913
+ }
7792
7914
  constructor() {
7793
7915
  super();
7794
7916
  this.TaskTag = null;
@@ -7797,9 +7919,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7797
7919
  this.MprgCreator = null;
7798
7920
  this.LengthExpVal = Int32.MinValue;
7799
7921
  }
7800
- get CommandTypeAttribute() {
7801
- return ConstInterface.MG_ATTR_VAL_EVAL;
7802
- }
7803
7922
  SerializeCommandData() {
7804
7923
  let helper = new CommandSerializationHelper();
7805
7924
  helper.SerializeTaskTag(this.TaskTag);
@@ -7847,10 +7966,6 @@ class GlobalParamsQueryCommand extends QueryCommand {
7847
7966
  }
7848
7967
 
7849
7968
  class IniputForceWriteCommand extends ClientOriginatedCommand {
7850
- constructor() {
7851
- super();
7852
- this.Text = null;
7853
- }
7854
7969
  get CommandTypeAttribute() {
7855
7970
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
7856
7971
  }
@@ -7860,6 +7975,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
7860
7975
  SerializeCommandData() {
7861
7976
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
7862
7977
  }
7978
+ constructor() {
7979
+ super();
7980
+ this.Text = null;
7981
+ }
7863
7982
  getCommandInfo() {
7864
7983
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
7865
7984
  }
@@ -8155,10 +8274,6 @@ var ParamParseResult;
8155
8274
  })(ParamParseResult || (ParamParseResult = {}));
8156
8275
 
8157
8276
  class PrmMap {
8158
- constructor() {
8159
- this.values = null;
8160
- this.values = new Dictionary();
8161
- }
8162
8277
  getvalue(s) {
8163
8278
  if (this.values.ContainsKey(s))
8164
8279
  return this.values.get_Item(s);
@@ -8171,6 +8286,10 @@ class PrmMap {
8171
8286
  remove(s) {
8172
8287
  this.values.Remove(s);
8173
8288
  }
8289
+ constructor() {
8290
+ this.values = null;
8291
+ this.values = new Dictionary();
8292
+ }
8174
8293
  }
8175
8294
  class MirrorPrmMap extends PrmMap {
8176
8295
  constructor(type) {
@@ -8326,6 +8445,7 @@ class Environment {
8326
8445
  this._debugMode = 0;
8327
8446
  this._significantNumSize = 0;
8328
8447
  this._specialAnsiExpression = false;
8448
+ this._specialImmediatehandlerEnd = false;
8329
8449
  this._specialShowStatusBarPanes = false;
8330
8450
  this._specialRouteToRootProgOnContextRecreation = false;
8331
8451
  this._specialCancelOnCreate = false;
@@ -8479,6 +8599,9 @@ class Environment {
8479
8599
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8480
8600
  this._localFlags = valueStr;
8481
8601
  break;
8602
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8603
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8604
+ break;
8482
8605
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8483
8606
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8484
8607
  break;
@@ -8683,6 +8806,9 @@ class Environment {
8683
8806
  GetLocalFlag(f) {
8684
8807
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8685
8808
  }
8809
+ getSpecialImmediateHandlerEnd() {
8810
+ return this._specialImmediatehandlerEnd;
8811
+ }
8686
8812
  getSpecialAnsiExpression() {
8687
8813
  return this._specialAnsiExpression;
8688
8814
  }
@@ -8752,6 +8878,12 @@ class Environment {
8752
8878
  }
8753
8879
  Environment.Instance = new Environment();
8754
8880
  class EnvironmentDetails {
8881
+ set UpdateInQueryMode(value) {
8882
+ this._updateInQueryMode = value;
8883
+ }
8884
+ set CreateInModifyMode(value) {
8885
+ this._createInModifyMode = value;
8886
+ }
8755
8887
  constructor() {
8756
8888
  this._createInModifyMode = false;
8757
8889
  this._updateInQueryMode = false;
@@ -8762,12 +8894,6 @@ class EnvironmentDetails {
8762
8894
  this.ProjDir = null;
8763
8895
  this.CompIdx = 0;
8764
8896
  }
8765
- set UpdateInQueryMode(value) {
8766
- this._updateInQueryMode = value;
8767
- }
8768
- set CreateInModifyMode(value) {
8769
- this._createInModifyMode = value;
8770
- }
8771
8897
  allowUpdateInQueryMode() {
8772
8898
  return this._updateInQueryMode;
8773
8899
  }
@@ -8855,17 +8981,6 @@ class GlobalParams extends MirrorPrmMap {
8855
8981
  GlobalParams.Instance = new GlobalParams();
8856
8982
 
8857
8983
  class UserDetails {
8858
- constructor() {
8859
- this.UserName = null;
8860
- this.UserID = null;
8861
- this.UserInfo = null;
8862
- this.Password = null;
8863
- this.IsLoggedIn = false;
8864
- this.UserName = NString.Empty;
8865
- this.UserInfo = NString.Empty;
8866
- this.IsLoggedIn = false;
8867
- this.setUserID(NString.Empty);
8868
- }
8869
8984
  setIsLoggedIn(value) {
8870
8985
  this.IsLoggedIn = value;
8871
8986
  }
@@ -8885,6 +9000,17 @@ class UserDetails {
8885
9000
  UserDetails._instance = new UserDetails();
8886
9001
  return UserDetails._instance;
8887
9002
  }
9003
+ constructor() {
9004
+ this.UserName = null;
9005
+ this.UserID = null;
9006
+ this.UserInfo = null;
9007
+ this.Password = null;
9008
+ this.IsLoggedIn = false;
9009
+ this.UserName = NString.Empty;
9010
+ this.UserInfo = NString.Empty;
9011
+ this.IsLoggedIn = false;
9012
+ this.setUserID(NString.Empty);
9013
+ }
8888
9014
  fillData(parser) {
8889
9015
  let tokensVector;
8890
9016
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -11651,7 +11777,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11651
11777
  Exp_params = new Array(nArgs);
11652
11778
  for (j = 0; j < nArgs; j++)
11653
11779
  Exp_params[nArgs - 1 - j] = valStack.pop();
11654
- this.eval_op_CallJS(this.ExpTask, valStack.pop().StrVal, Exp_params, resVal);
11780
+ await this.eval_op_CallJS(this.ExpTask, valStack.pop().StrVal, Exp_params, resVal);
11655
11781
  }
11656
11782
  break;
11657
11783
  case ExpressionInterface.EXP_OP_SET_COOKIE:
@@ -14029,7 +14155,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14029
14155
  resVal.MgNumVal = NUM_TYPE.from_double(programIndex);
14030
14156
  }
14031
14157
  }
14032
- eval_op_CallJS(task, methodName, expVal, resVal) {
14158
+ async eval_op_CallJS(task, methodName, expVal, resVal) {
14033
14159
  resVal.Attr = StorageAttribute.ALPHA;
14034
14160
  resVal.StrVal = '';
14035
14161
  if (task.isMainProg()) {
@@ -14039,6 +14165,10 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14039
14165
  let form = task.getForm();
14040
14166
  let args = this.params2arguments(expVal, 0, expVal.length);
14041
14167
  if (!isNullOrUndefined(args)) {
14168
+ if (task.isFirstRecordCycle()) {
14169
+ Commands.invoke();
14170
+ await Thread.Sleep(10);
14171
+ }
14042
14172
  resVal.StrVal = Commands.addCallJS(form, form.UniqueName, methodName, args);
14043
14173
  resVal.Attr = StorageAttribute.ALPHA;
14044
14174
  }
@@ -14347,6 +14477,12 @@ class DataViewBase extends GuiDataViewBase {
14347
14477
  }
14348
14478
 
14349
14479
  class Record {
14480
+ get InCompute() {
14481
+ return this._inCompute;
14482
+ }
14483
+ get InRecompute() {
14484
+ return this._inRecompute;
14485
+ }
14350
14486
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14351
14487
  this._id = Int32.MinValue;
14352
14488
  this.dbViewRowIdx = 0;
@@ -14364,12 +14500,6 @@ class Record {
14364
14500
  else
14365
14501
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14366
14502
  }
14367
- get InCompute() {
14368
- return this._inCompute;
14369
- }
14370
- get InRecompute() {
14371
- return this._inRecompute;
14372
- }
14373
14503
  constructor_0(dvOrTableCache) {
14374
14504
  if (dvOrTableCache instanceof DataViewBase)
14375
14505
  this._dataview = dvOrTableCache;
@@ -15165,14 +15295,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15165
15295
  Record.INCREASE = true;
15166
15296
  Record.DECREASE = false;
15167
15297
  class DcValuesReference extends ObjectReferenceBase {
15298
+ get DcValues() {
15299
+ return this.Referent;
15300
+ }
15168
15301
  constructor(controlId, referencedDcValues) {
15169
15302
  super(referencedDcValues);
15170
15303
  this.ditIdx = 0;
15171
15304
  this.ditIdx = controlId;
15172
15305
  }
15173
- get DcValues() {
15174
- return this.Referent;
15175
- }
15176
15306
  Clone() {
15177
15307
  return new DcValuesReference(this.ditIdx, this.Referent);
15178
15308
  }
@@ -15448,21 +15578,6 @@ class RecordsTable {
15448
15578
  RecordsTable.REC_NOT_FOUND = -1;
15449
15579
 
15450
15580
  class DataviewHeaderBase {
15451
- constructor(task) {
15452
- this._cond = null;
15453
- this._task = null;
15454
- this.Loc = null;
15455
- this._dir = '\0';
15456
- this._id = 0;
15457
- this._keyIdx = 0;
15458
- this._retVal = null;
15459
- this.returnfield = null;
15460
- this.LinkStartAfterField = 0;
15461
- this.KeyExpression = 0;
15462
- this._task = task;
15463
- this._keyIdx = -1;
15464
- this._cond = new YesNoExp(true);
15465
- }
15466
15581
  get ReturnField() {
15467
15582
  if (this.returnfield === null && this._retVal !== null)
15468
15583
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15483,6 +15598,21 @@ class DataviewHeaderBase {
15483
15598
  get LinkEvaluateCondition() {
15484
15599
  return this._linkEvalCondition;
15485
15600
  }
15601
+ constructor(task) {
15602
+ this._cond = null;
15603
+ this._task = null;
15604
+ this.Loc = null;
15605
+ this._dir = '\0';
15606
+ this._id = 0;
15607
+ this._keyIdx = 0;
15608
+ this._retVal = null;
15609
+ this.returnfield = null;
15610
+ this.LinkStartAfterField = 0;
15611
+ this.KeyExpression = 0;
15612
+ this._task = task;
15613
+ this._keyIdx = -1;
15614
+ this._cond = new YesNoExp(true);
15615
+ }
15486
15616
  SetAttributes(attributes) {
15487
15617
  let keys = attributes.Keys;
15488
15618
  keys.forEach((text) => {
@@ -16773,16 +16903,16 @@ class RecordOutOfDataViewException extends ApplicationException {
16773
16903
  }
16774
16904
 
16775
16905
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
16906
+ set SerializedDCVals(value) {
16907
+ this.parser.setXMLdata(value);
16908
+ this.parser.setCurrIndex(0);
16909
+ }
16776
16910
  constructor() {
16777
16911
  super();
16778
16912
  this.dcv = null;
16779
16913
  this.parser = null;
16780
16914
  this.parser = new XmlParser();
16781
16915
  }
16782
- set SerializedDCVals(value) {
16783
- this.parser.setXMLdata(value);
16784
- this.parser.setCurrIndex(0);
16785
- }
16786
16916
  Build() {
16787
16917
  this.dcv = null;
16788
16918
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -16832,36 +16962,69 @@ class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
16832
16962
  else
16833
16963
  this.SetLinkValues(dcv, this.ParseValues(serializedLinkValues, type));
16834
16964
  }
16835
- ParseValues(valueStr, dataType) {
16836
- let useHex = false;
16837
- if (Environment.Instance.GetDebugLevel() > 1 ||
16838
- dataType === StorageAttribute.ALPHA || dataType === StorageAttribute.UNICODE || dataType === StorageAttribute.BOOLEAN) {
16839
- useHex = true;
16840
- }
16841
- return super.ParseValues(valueStr, dataType, useHex);
16965
+ ParseValues(valueStr, dataType) {
16966
+ let useHex = false;
16967
+ if (Environment.Instance.GetDebugLevel() > 1 ||
16968
+ dataType === StorageAttribute.ALPHA || dataType === StorageAttribute.UNICODE || dataType === StorageAttribute.BOOLEAN) {
16969
+ useHex = true;
16970
+ }
16971
+ return super.ParseValues(valueStr, dataType, useHex);
16972
+ }
16973
+ }
16974
+
16975
+ const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
16976
+ const COMPUTE_NEWREC_ON_CLIENT = 'C';
16977
+ const UNKNOWN_RCMPS_NOT_INITED = 'M';
16978
+ const UNKNOWN_RCMPS_FOUND = 'Y';
16979
+ const INVOKED_FROM_OFFLINE_TASK = '-99999';
16980
+ const CHUNK_CACHE_NEXT = 'N';
16981
+ const CHUNK_CACHE_PREV = 'P';
16982
+ const CHUNK_DV_BOTTOM = 'B';
16983
+ const CHUNK_DV_TOP = 'T';
16984
+ const COMPUTE_FLUSH_UPDATES = 'H';
16985
+ const COMPUTE_NEWREC_ON_SERVER = 'S';
16986
+ const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
16987
+ const RECOVERY_ACT_BEGIN_SCREEN = 'S';
16988
+ const RECOVERY_ACT_BEGIN_TABLE = 'T';
16989
+ const RECOVERY_ACT_CANCEL = 'C';
16990
+ const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
16991
+ const RECOVERY_ACT_NONE = 'N';
16992
+ const TRANS_STAT_CLOSED = 'C';
16993
+ const TRANS_STAT_OPENED = 'O';
16994
+ class DataView extends DataViewBase {
16995
+ set InsertAt(value) {
16996
+ this._insertAt = value;
16997
+ }
16998
+ get InsertAt() {
16999
+ return this._insertAt;
17000
+ }
17001
+ get CurrRec() {
17002
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17003
+ }
17004
+ set CurrRec(value) {
17005
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17006
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17007
+ }
17008
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17009
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17010
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17011
+ }
17012
+ }
17013
+ get FlushUpdates() {
17014
+ return this._flushUpdates;
17015
+ }
17016
+ get HasMainTable() {
17017
+ return this._hasMainTable;
17018
+ }
17019
+ get CurrentRecId() {
17020
+ return this._currRecId;
17021
+ }
17022
+ get FirstRecord() {
17023
+ return this._recordsTab.getRecByIdx(0);
17024
+ }
17025
+ get LastRecord() {
17026
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
16842
17027
  }
16843
- }
16844
-
16845
- const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
16846
- const COMPUTE_NEWREC_ON_CLIENT = 'C';
16847
- const UNKNOWN_RCMPS_NOT_INITED = 'M';
16848
- const UNKNOWN_RCMPS_FOUND = 'Y';
16849
- const INVOKED_FROM_OFFLINE_TASK = '-99999';
16850
- const CHUNK_CACHE_NEXT = 'N';
16851
- const CHUNK_CACHE_PREV = 'P';
16852
- const CHUNK_DV_BOTTOM = 'B';
16853
- const CHUNK_DV_TOP = 'T';
16854
- const COMPUTE_FLUSH_UPDATES = 'H';
16855
- const COMPUTE_NEWREC_ON_SERVER = 'S';
16856
- const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
16857
- const RECOVERY_ACT_BEGIN_SCREEN = 'S';
16858
- const RECOVERY_ACT_BEGIN_TABLE = 'T';
16859
- const RECOVERY_ACT_CANCEL = 'C';
16860
- const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
16861
- const RECOVERY_ACT_NONE = 'N';
16862
- const TRANS_STAT_CLOSED = 'C';
16863
- const TRANS_STAT_OPENED = 'O';
16864
- class DataView extends DataViewBase {
16865
17028
  constructor(taskOrDataView) {
16866
17029
  super();
16867
17030
  this._cacheLruTimeStamp = 0;
@@ -16913,39 +17076,6 @@ class DataView extends DataViewBase {
16913
17076
  Object.assign(this, taskOrDataView);
16914
17077
  }
16915
17078
  }
16916
- set InsertAt(value) {
16917
- this._insertAt = value;
16918
- }
16919
- get InsertAt() {
16920
- return this._insertAt;
16921
- }
16922
- get CurrRec() {
16923
- return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
16924
- }
16925
- set CurrRec(value) {
16926
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
16927
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
16928
- }
16929
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
16930
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
16931
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
16932
- }
16933
- }
16934
- get FlushUpdates() {
16935
- return this._flushUpdates;
16936
- }
16937
- get HasMainTable() {
16938
- return this._hasMainTable;
16939
- }
16940
- get CurrentRecId() {
16941
- return this._currRecId;
16942
- }
16943
- get FirstRecord() {
16944
- return this._recordsTab.getRecByIdx(0);
16945
- }
16946
- get LastRecord() {
16947
- return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
16948
- }
16949
17079
  Init() {
16950
17080
  this.init();
16951
17081
  }
@@ -18518,6 +18648,12 @@ class ReturnResultBase {
18518
18648
  }
18519
18649
 
18520
18650
  class ReturnResult extends ReturnResultBase {
18651
+ get Success() {
18652
+ return this.success;
18653
+ }
18654
+ get ErrorDescription() {
18655
+ return this.errorDescription;
18656
+ }
18521
18657
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
18522
18658
  super();
18523
18659
  this.errorDescription = null;
@@ -18532,12 +18668,6 @@ class ReturnResult extends ReturnResultBase {
18532
18668
  else
18533
18669
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
18534
18670
  }
18535
- get Success() {
18536
- return this.success;
18537
- }
18538
- get ErrorDescription() {
18539
- return this.errorDescription;
18540
- }
18541
18671
  constructor_00(errorDescriptionCode) {
18542
18672
  this.success = false;
18543
18673
  this.ErrorId = errorDescriptionCode;
@@ -18637,13 +18767,13 @@ class Transaction {
18637
18767
  }
18638
18768
 
18639
18769
  class TaskTransactionManager {
18770
+ get isClosingTopmostTask() {
18771
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
18772
+ }
18640
18773
  constructor(task) {
18641
18774
  this.task = null;
18642
18775
  this.task = task;
18643
18776
  }
18644
- get isClosingTopmostTask() {
18645
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
18646
- }
18647
18777
  AllowTransaction(transBegin, forLocal) {
18648
18778
  let result;
18649
18779
  if (forLocal)
@@ -18987,12 +19117,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
18987
19117
  }
18988
19118
 
18989
19119
  class DataviewManager extends DataviewManagerBase {
18990
- constructor(task) {
18991
- super(task);
18992
- this.RemoteDataviewManager = null;
18993
- this.HasRemoteData = true;
18994
- this.RemoteDataviewManager = new RemoteDataviewManager(task);
18995
- }
18996
19120
  get TaskService() {
18997
19121
  return this.Task.TaskService;
18998
19122
  }
@@ -19007,6 +19131,12 @@ class DataviewManager extends DataviewManagerBase {
19007
19131
  get VirtualDataviewManager() {
19008
19132
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19009
19133
  }
19134
+ constructor(task) {
19135
+ super(task);
19136
+ this.RemoteDataviewManager = null;
19137
+ this.HasRemoteData = true;
19138
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19139
+ }
19010
19140
  async Execute(command) {
19011
19141
  return await this.CurrentDataviewManager.Execute(command);
19012
19142
  }
@@ -19145,18 +19275,8 @@ class MgForm extends MgFormBase {
19145
19275
  dv = this._task.DataView;
19146
19276
  return (dv);
19147
19277
  }
19148
- async moveInView(unit, direction, returnToCtrl) {
19149
- if (isNullOrUndefined(returnToCtrl))
19150
- await this.moveInView_0(unit, direction);
19151
- else
19152
- await this.moveInView_1(unit, direction, returnToCtrl);
19153
- }
19154
- async moveInView_0(unit, direction) {
19155
- await this.moveInView(unit, direction, true);
19156
- }
19157
- async moveInView_1(unit, direction, returnToCtrl) {
19278
+ async moveInView(unit, direction) {
19158
19279
  let oldRecId = Int32.MinValue;
19159
- let lastParkedCtrl;
19160
19280
  let currRec = this.GetDataview().getCurrRec();
19161
19281
  let oldTaskMode = ' ';
19162
19282
  let returnToVisibleLine = false;
@@ -19411,15 +19531,6 @@ class MgForm extends MgFormBase {
19411
19531
  else
19412
19532
  this.SetTableTopIndex();
19413
19533
  await AccessHelper.eventsManager.handleInternalEventWithTask(this._task, InternalInterface.MG_ACT_REC_PREFIX);
19414
- if (returnToCtrl) {
19415
- lastParkedCtrl = this._task.getLastParkedCtrl();
19416
- if (lastParkedCtrl != null) {
19417
- let cursorMoved = await lastParkedCtrl.invoke();
19418
- if (!cursorMoved) {
19419
- await AccessHelper.eventsManager.HandleNonParkableControls(this._task);
19420
- }
19421
- }
19422
- }
19423
19534
  }
19424
19535
  catch (e) {
19425
19536
  if (e instanceof RecordOutOfDataViewException) {
@@ -19951,8 +20062,13 @@ class MgForm extends MgFormBase {
19951
20062
  finally {
19952
20063
  this._inRefreshDisp = false;
19953
20064
  }
19954
- if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!super.isLineMode() || this._tableRefreshed))
20065
+ if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!super.isLineMode() || this._tableRefreshed)) {
19955
20066
  this.FormRefreshed = true;
20067
+ if (this._task.isFirstRecordCycle() || AccessHelper.eventsManager.getIsInViewRefresh()) {
20068
+ Commands.addNoParameters(CommandType.SET_WC_IDLE, this);
20069
+ AccessHelper.eventsManager.setIsInViewRefresh(false);
20070
+ }
20071
+ }
19956
20072
  return true;
19957
20073
  }
19958
20074
  RefreshUI() {
@@ -21360,8 +21476,12 @@ class EventHandler {
21360
21476
  continue;
21361
21477
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
21362
21478
  continue;
21363
- if (!taskEnd)
21364
- await this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
21479
+ if (!taskEnd) {
21480
+ let mainLevel = this._task.getMainLevel().toLowerCase();
21481
+ if (await this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
21482
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
21483
+ break;
21484
+ }
21365
21485
  if (this._taskMgdID !== mgdID)
21366
21486
  isChangedCurrWndRef.value = true;
21367
21487
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22155,13 +22275,6 @@ class UserEventsTable {
22155
22275
  }
22156
22276
 
22157
22277
  class FormsTable {
22158
- constructor(task, parentForm) {
22159
- this._task = null;
22160
- this._parentForm = null;
22161
- this._formsStringXml = null;
22162
- this._task = task;
22163
- this._parentForm = parentForm;
22164
- }
22165
22278
  get Count() {
22166
22279
  return this._formsStringXml.length;
22167
22280
  }
@@ -22170,6 +22283,13 @@ class FormsTable {
22170
22283
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22171
22284
  return null;
22172
22285
  }
22286
+ constructor(task, parentForm) {
22287
+ this._task = null;
22288
+ this._parentForm = null;
22289
+ this._formsStringXml = null;
22290
+ this._task = task;
22291
+ this._parentForm = parentForm;
22292
+ }
22173
22293
  async fillData() {
22174
22294
  this._formsStringXml = new List();
22175
22295
  let parser = Manager.GetCurrentRuntimeContext().Parser;
@@ -22359,6 +22479,47 @@ var Task_Direction;
22359
22479
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
22360
22480
  })(Task_Direction || (Task_Direction = {}));
22361
22481
  class Task extends TaskBase {
22482
+ get ParentTask() {
22483
+ return this._parentTask;
22484
+ }
22485
+ set TryingToCommit(value) {
22486
+ this._tryingToCommit = value;
22487
+ }
22488
+ get TryingToCommit() {
22489
+ return this._tryingToCommit;
22490
+ }
22491
+ get TaskService() {
22492
+ if (this._taskService == null)
22493
+ this._taskService = new RemoteTaskService();
22494
+ return this._taskService;
22495
+ }
22496
+ static get CommandsProcessor() {
22497
+ return CommandsProcessorManager.GetCommandsProcessor();
22498
+ }
22499
+ get LogicalStudioParentTask() {
22500
+ if (this.StudioParentTask === null && !super.isMainProg()) {
22501
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
22502
+ }
22503
+ return this.StudioParentTask;
22504
+ }
22505
+ get KnownToServer() {
22506
+ return this._knownToServer;
22507
+ }
22508
+ set Transaction(value) {
22509
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
22510
+ }
22511
+ get Transaction() {
22512
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
22513
+ }
22514
+ get TaskDefinitionId() {
22515
+ if (this.taskDefinitionId === null) {
22516
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
22517
+ }
22518
+ return this.taskDefinitionId;
22519
+ }
22520
+ static get IsBlockingBatch() {
22521
+ return false;
22522
+ }
22362
22523
  constructor(parent) {
22363
22524
  super();
22364
22525
  this._dvCache = null;
@@ -22427,47 +22588,6 @@ class Task extends TaskBase {
22427
22588
  }
22428
22589
  this.constructor_1(parent);
22429
22590
  }
22430
- get ParentTask() {
22431
- return this._parentTask;
22432
- }
22433
- set TryingToCommit(value) {
22434
- this._tryingToCommit = value;
22435
- }
22436
- get TryingToCommit() {
22437
- return this._tryingToCommit;
22438
- }
22439
- get TaskService() {
22440
- if (this._taskService == null)
22441
- this._taskService = new RemoteTaskService();
22442
- return this._taskService;
22443
- }
22444
- static get CommandsProcessor() {
22445
- return CommandsProcessorManager.GetCommandsProcessor();
22446
- }
22447
- get LogicalStudioParentTask() {
22448
- if (this.StudioParentTask === null && !super.isMainProg()) {
22449
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
22450
- }
22451
- return this.StudioParentTask;
22452
- }
22453
- get KnownToServer() {
22454
- return this._knownToServer;
22455
- }
22456
- set Transaction(value) {
22457
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
22458
- }
22459
- get Transaction() {
22460
- return this.DataviewManager.CurrentDataviewManager.Transaction;
22461
- }
22462
- get TaskDefinitionId() {
22463
- if (this.taskDefinitionId === null) {
22464
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
22465
- }
22466
- return this.taskDefinitionId;
22467
- }
22468
- static get IsBlockingBatch() {
22469
- return false;
22470
- }
22471
22591
  constructor_0() {
22472
22592
  this.ActionManager = new ActionManager();
22473
22593
  this.DataView = new DataView(this);
@@ -24278,6 +24398,7 @@ class Task extends TaskBase {
24278
24398
  this.ActionManager.enable(InternalInterface.MG_ACT_SORT_RECORDS, enable);
24279
24399
  enable = await this.checkProp(PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX, true);
24280
24400
  this.ActionManager.enable(InternalInterface.MG_ACT_VIEW_BY_KEY, enable);
24401
+ this.ActionManager.enable(InternalInterface.MG_ACT_DUMP_ENVIRONMENT, true);
24281
24402
  }
24282
24403
  setEnableZoomHandler() {
24283
24404
  this._enableZoomHandler = true;
@@ -24864,6 +24985,9 @@ class CompMainPrgTable {
24864
24985
  }
24865
24986
 
24866
24987
  class MGData {
24988
+ get ForceModal() {
24989
+ return this.forceModal;
24990
+ }
24867
24991
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
24868
24992
  this._expHandlers = null;
24869
24993
  this._id = 0;
@@ -24884,9 +25008,6 @@ class MGData {
24884
25008
  else
24885
25009
  this.constructor_1(id, parent, isModal, forceModal);
24886
25010
  }
24887
- get ForceModal() {
24888
- return this.forceModal;
24889
- }
24890
25011
  constructor_0(id, parent, isModal) {
24891
25012
  this._timerHandlers = new HandlersTable();
24892
25013
  this._expHandlers = new HandlersTable();
@@ -25485,6 +25606,7 @@ class EventsManager {
25485
25606
  this.confirmationDialogTitle = 'Session is about to be terminated!';
25486
25607
  this._lastFailedFocusedControl = null;
25487
25608
  this.isSpinnerShown = false;
25609
+ this.isInViewRefresh = false;
25488
25610
  this.SpinnerStopped = new Subject();
25489
25611
  this._rtEvents = new Stack();
25490
25612
  this._eventsQueue = new MgPriorityBlockingQueue();
@@ -27324,6 +27446,7 @@ class EventsManager {
27324
27446
  }
27325
27447
  break;
27326
27448
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
27449
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
27327
27450
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
27328
27451
  cmdsToServer.Add(cmd);
27329
27452
  await CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -27643,6 +27766,7 @@ class EventsManager {
27643
27766
  else if (intEvtCode === InternalInterface.MG_ACT_RT_REFRESH_SCREEN && task.getMode() !== Constants.TASK_MODE_QUERY && !task.getAfterRetry()) {
27644
27767
  await dv.currRecCompute(true);
27645
27768
  }
27769
+ this.setIsInViewRefresh(true);
27646
27770
  await this.handleInternalEventWithTask(task, InternalInterface.MG_ACT_REC_PREFIX);
27647
27771
  if (!this.GetStopExecutionFlag() && !task.getPreventControlChange()) {
27648
27772
  if (!(task === LastFocusedManager.Instance.getLastFocusedTask() || !task.pathContains(LastFocusedManager.Instance.getLastFocusedTask())))
@@ -28372,6 +28496,12 @@ class EventsManager {
28372
28496
  return false;
28373
28497
  return true;
28374
28498
  }
28499
+ getIsInViewRefresh() {
28500
+ return this.isInViewRefresh;
28501
+ }
28502
+ setIsInViewRefresh(inViewRefresh) {
28503
+ this.isInViewRefresh = inViewRefresh;
28504
+ }
28375
28505
  }
28376
28506
  EventsManager.REAL_ONLY = true;
28377
28507
  EventsManager.MAX_OPER = 9999;
@@ -28888,13 +29018,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
28888
29018
  }
28889
29019
 
28890
29020
  class EnhancedVerifyCommand extends VerifyCommand {
28891
- constructor() {
28892
- super();
28893
- this._buttonsID = '\0';
28894
- this._image = '\0';
28895
- this._returnValStr = null;
28896
- this._returnVal = null;
28897
- }
28898
29021
  async ProcessMessageBoxResponse(task, returnValue) {
28899
29022
  if (task !== null)
28900
29023
  await Operation.setoperVerifyReturnValue(returnValue, this._returnVal);
@@ -28925,6 +29048,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
28925
29048
  break;
28926
29049
  }
28927
29050
  }
29051
+ constructor() {
29052
+ super();
29053
+ this._buttonsID = '\0';
29054
+ this._image = '\0';
29055
+ this._returnValStr = null;
29056
+ this._returnVal = null;
29057
+ }
28928
29058
  }
28929
29059
 
28930
29060
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -29021,12 +29151,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
29021
29151
  }
29022
29152
 
29023
29153
  class ResultCommand extends ClientTargetedCommandBase {
29024
- constructor() {
29025
- super();
29026
- this._isNull = false;
29027
- this._attr = StorageAttribute.NONE;
29028
- this._val = null;
29029
- }
29030
29154
  async Execute(res) {
29031
29155
  if (this._isNull)
29032
29156
  res.SetResultValue(null, StorageAttribute.NONE);
@@ -29052,6 +29176,12 @@ class ResultCommand extends ClientTargetedCommandBase {
29052
29176
  break;
29053
29177
  }
29054
29178
  }
29179
+ constructor() {
29180
+ super();
29181
+ this._isNull = false;
29182
+ this._attr = StorageAttribute.NONE;
29183
+ this._val = null;
29184
+ }
29055
29185
  }
29056
29186
 
29057
29187
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -29416,19 +29546,9 @@ class CommandsTable {
29416
29546
  }
29417
29547
  }
29418
29548
 
29419
- let CurrentClientVersion = '4.1000.0-dev4100.99';
29549
+ let CurrentClientVersion = '4.1100.0-dev4110.1';
29420
29550
 
29421
29551
  class ClientManager {
29422
- constructor() {
29423
- this._globalUniqueSessionId = null;
29424
- this._buttonIsClicked = false;
29425
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
29426
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
29427
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
29428
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
29429
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
29430
- this.RegisterDelegates();
29431
- }
29432
29552
  static get Instance() {
29433
29553
  if (ClientManager._instance === null)
29434
29554
  ClientManager._instance = new ClientManager();
@@ -29628,6 +29748,16 @@ class ClientManager {
29628
29748
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
29629
29749
  }
29630
29750
  }
29751
+ constructor() {
29752
+ this._globalUniqueSessionId = null;
29753
+ this._buttonIsClicked = false;
29754
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
29755
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
29756
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
29757
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
29758
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
29759
+ this.RegisterDelegates();
29760
+ }
29631
29761
  InitGuiManager() {
29632
29762
  Manager.EventsManager = EventsManager.Instance;
29633
29763
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -29680,7 +29810,7 @@ class ClientManager {
29680
29810
  await MGDataCollection.Instance.addMGData(mgd, 0, true);
29681
29811
  await ClientManager.Instance.WorkThreadExecution();
29682
29812
  if (Logger.Instance.ShouldLog()) {
29683
- Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, "dd/MM/yyyy", Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
29813
+ Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_DATE_FORMAT, Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
29684
29814
  }
29685
29815
  }
29686
29816
  else {