@magic-xpa/engine 4.1000.0-dev4100.43 → 4.1000.0-dev4100.431

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 (59) hide show
  1. package/esm2020/index.mjs +1 -1
  2. package/esm2020/src/ClientManager.mjs +17 -14
  3. package/esm2020/src/ConstInterface.mjs +3 -1
  4. package/esm2020/src/CurrentClientVersion.mjs +2 -2
  5. package/esm2020/src/GuiEventsProcessor.mjs +5 -5
  6. package/esm2020/src/commands/ClientToServer/DataviewCommand.mjs +6 -6
  7. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +4 -4
  8. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +8 -8
  9. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +4 -4
  10. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +5 -5
  11. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +7 -7
  12. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +6 -6
  13. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +8 -8
  14. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +7 -7
  15. package/esm2020/src/data/DataView.mjs +34 -34
  16. package/esm2020/src/data/DataviewManager.mjs +7 -7
  17. package/esm2020/src/data/Record.mjs +10 -10
  18. package/esm2020/src/data/TaskTransactionManager.mjs +4 -4
  19. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +5 -5
  20. package/esm2020/src/env/Environment.mjs +14 -7
  21. package/esm2020/src/env/MirrorString.mjs +2 -3
  22. package/esm2020/src/event/Event.mjs +4 -1
  23. package/esm2020/src/event/EventHandler.mjs +8 -3
  24. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  25. package/esm2020/src/event/EventsManager.mjs +27 -5
  26. package/esm2020/src/event/IEventsManager.mjs +1 -1
  27. package/esm2020/src/event/RunTimeEvent.mjs +23 -16
  28. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  29. package/esm2020/src/exp/ExpressionEvaluator.mjs +9 -179
  30. package/esm2020/src/gui/FormsTable.mjs +8 -8
  31. package/esm2020/src/gui/MgControl.mjs +10 -13
  32. package/esm2020/src/gui/MgForm.mjs +11 -28
  33. package/esm2020/src/http/HttpManager.mjs +8 -8
  34. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +47 -27
  35. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  36. package/esm2020/src/security/UserDetails.mjs +12 -12
  37. package/esm2020/src/tasks/MGData.mjs +4 -4
  38. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  39. package/esm2020/src/tasks/Task.mjs +43 -42
  40. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  41. package/esm2020/src/util/PrmMap.mjs +6 -6
  42. package/esm2020/src/util/ReturnResult.mjs +7 -7
  43. package/fesm2015/magic-xpa-engine.mjs +546 -591
  44. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  45. package/fesm2020/magic-xpa-engine.mjs +534 -547
  46. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  47. package/package.json +6 -6
  48. package/src/ConstInterface.d.ts +2 -0
  49. package/src/env/Environment.d.ts +2 -0
  50. package/src/event/EventsManager.d.ts +4 -0
  51. package/src/event/IEventsManager.d.ts +2 -0
  52. package/src/event/RunTimeEvent.d.ts +3 -0
  53. package/src/exp/ExpressionEvaluator.d.ts +1 -10
  54. package/src/gui/MgControl.d.ts +0 -1
  55. package/src/gui/MgForm.d.ts +1 -3
  56. package/src/remote/RemoteCommandsProcessor.d.ts +1 -0
  57. package/src/util/FlowMonitorQueue.d.ts +8 -0
  58. package/src/util/PrmMap.d.ts +1 -1
  59. package/magic-xpa-engine.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  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';
3
3
  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';
4
- 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';
4
+ 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';
5
5
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
6
6
  import { timer, Subject } from 'rxjs';
7
7
 
@@ -272,6 +272,7 @@ ConstInterface.MG_ATTR_LOCAL_AS400SET = "local_as400set";
272
272
  ConstInterface.MG_ATTR_LOCAL_EXTRA_GENGO = "local_extraGengo";
273
273
  ConstInterface.MG_ATTR_LOCAL_FLAGS = "local_flags";
274
274
  ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP = "SpecialAnsiExpression";
275
+ ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END = "SpecialImmediateHandlerEnd";
275
276
  ConstInterface.MG_ATTR_SPECIAL_SHOW_STATUSBAR_PANES = "SpecialShowStatusBarPanes";
276
277
  ConstInterface.MG_ATTR_SPECIAL_ROUTE_TO_ROOT_PROG_ON_CONTEXT_RECREATION = "SpecialRouteToRootProgramOnContextRecreation";
277
278
  ConstInterface.MG_ATTR_SPECIAL_SPECIAL_EDIT_LEFT_ALIGN = "SpecialEditLeftAlign";
@@ -476,6 +477,7 @@ ConstInterface.RC_TOKEN_DATA = "DATA=";
476
477
  ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
477
478
  ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
478
479
  ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
480
+ ConstInterface.ENV_VAR_LIST = "EnvVarList";
479
481
  ConstInterface.LAST_EXCEPTION = "LastException";
480
482
  ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
481
483
  ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
@@ -641,13 +643,6 @@ class CommandSerializationHelper {
641
643
  }
642
644
 
643
645
  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
646
  get CommandTypeAttribute() {
652
647
  return ConstInterface.MG_ATTR_VAL_EVENT;
653
648
  }
@@ -663,6 +658,13 @@ class EventCommand extends ClientOriginatedCommandTaskTag {
663
658
  return false;
664
659
  return true;
665
660
  }
661
+ constructor(magicEvent) {
662
+ super();
663
+ this.TaskTag = null;
664
+ this.MagicEvent = 0;
665
+ this.ClientRecId = 0;
666
+ this.MagicEvent = magicEvent;
667
+ }
666
668
  SerializeCommandData() {
667
669
  let helper = new CommandSerializationHelper();
668
670
  helper.SerializeTaskTag(this.TaskTag);
@@ -1202,15 +1204,6 @@ class OpeningTaskDetails {
1202
1204
  }
1203
1205
 
1204
1206
  class MgControl extends MgControlBase {
1205
- constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1206
- if (arguments.length === 0)
1207
- super();
1208
- else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1209
- super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1210
- else
1211
- super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1212
- this.initialize();
1213
- }
1214
1207
  initialize() {
1215
1208
  this._focusedStopExecution = false;
1216
1209
  this._inControlSuffix = false;
@@ -1223,6 +1216,15 @@ class MgControl extends MgControlBase {
1223
1216
  this.HasZoomHandler = false;
1224
1217
  this.ArgList = null;
1225
1218
  }
1219
+ constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1220
+ if (arguments.length === 0)
1221
+ super();
1222
+ else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1223
+ super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1224
+ else
1225
+ super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1226
+ this.initialize();
1227
+ }
1226
1228
  GetVarIndex() {
1227
1229
  return super.getForm().getTask().DataView.Dvcount + this.veeIndx;
1228
1230
  }
@@ -1547,14 +1549,6 @@ class MgControl extends MgControlBase {
1547
1549
  }
1548
1550
  });
1549
1551
  }
1550
- refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1551
- const _super = Object.create(null, {
1552
- refreshAndSetItemsListForRadioButton: { get: () => super.refreshAndSetItemsListForRadioButton }
1553
- });
1554
- return __awaiter(this, void 0, void 0, function* () {
1555
- yield _super.refreshAndSetItemsListForRadioButton.call(this, line, execComputeChoice);
1556
- });
1557
- }
1558
1552
  getSubformTask() {
1559
1553
  return this._subformTask;
1560
1554
  }
@@ -2923,6 +2917,9 @@ class Event {
2923
2917
  case InternalInterface.MG_ACT_INDEX_CHANGE:
2924
2918
  description = 'Index Change';
2925
2919
  break;
2920
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
2921
+ description = 'Dump Environment';
2922
+ break;
2926
2923
  default:
2927
2924
  description = '';
2928
2925
  break;
@@ -3232,6 +3229,27 @@ class MgPriorityBlockingQueue {
3232
3229
  }
3233
3230
 
3234
3231
  class RunTimeEvent extends RunTimeEventBase {
3232
+ set ShouldHandleZoom(value) {
3233
+ this._shouldHandleZoom = value;
3234
+ }
3235
+ get ShouldHandleZoom() {
3236
+ return this._shouldHandleZoom;
3237
+ }
3238
+ set Control(value) {
3239
+ this._ctrl = value;
3240
+ }
3241
+ set DisplayLine(value) {
3242
+ this._displayLine = value;
3243
+ }
3244
+ get Control() {
3245
+ return this._ctrl;
3246
+ }
3247
+ get ControlsList() {
3248
+ return this._controlsList;
3249
+ }
3250
+ get Direction() {
3251
+ return this._direction;
3252
+ }
3235
3253
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3236
3254
  super();
3237
3255
  this._controlsList = null;
@@ -3260,6 +3278,7 @@ class RunTimeEvent extends RunTimeEventBase {
3260
3278
  this._task = null;
3261
3279
  this._taskTag = null;
3262
3280
  this._val = null;
3281
+ this._shouldHandleZoom = false;
3263
3282
  this.IgnoreSpecifiedControl = false;
3264
3283
  this.LastFocusedVal = null;
3265
3284
  if (arguments.length === 1 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof TaskBase))
@@ -3293,21 +3312,6 @@ class RunTimeEvent extends RunTimeEventBase {
3293
3312
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3294
3313
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3295
3314
  }
3296
- set Control(value) {
3297
- this._ctrl = value;
3298
- }
3299
- set DisplayLine(value) {
3300
- this._displayLine = value;
3301
- }
3302
- get Control() {
3303
- return this._ctrl;
3304
- }
3305
- get ControlsList() {
3306
- return this._controlsList;
3307
- }
3308
- get Direction() {
3309
- return this._direction;
3310
- }
3311
3315
  constructor_5(taskRef) {
3312
3316
  this.init(taskRef);
3313
3317
  }
@@ -3637,7 +3641,17 @@ class FlowMonitorQueue {
3637
3641
  this._isRecompute = false;
3638
3642
  this._isTask = false;
3639
3643
  this._isTaskFlow = false;
3644
+ this._isDataView = false;
3640
3645
  this.ShouldSerialize = false;
3646
+ this.padRight = (string, length, character = ' ') => {
3647
+ let result = "";
3648
+ let totalLength = length - string.length;
3649
+ for (let i = 0; i < totalLength; i++) {
3650
+ result = character + result;
3651
+ }
3652
+ result = result + string;
3653
+ return result;
3654
+ };
3641
3655
  }
3642
3656
  static get Instance() {
3643
3657
  if (FlowMonitorQueue._instance === null)
@@ -3695,6 +3709,9 @@ class FlowMonitorQueue {
3695
3709
  case ConstInterface.MG_ATTR_TASKFLW:
3696
3710
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3697
3711
  break;
3712
+ case ConstInterface.MG_TAG_DATAVIEW:
3713
+ this._isDataView = XmlParser.getBoolean(valueStr);
3714
+ break;
3698
3715
  case ConstInterface.MG_ATTR_RECOMP:
3699
3716
  this._isRecompute = XmlParser.getBoolean(valueStr);
3700
3717
  break;
@@ -3752,6 +3769,96 @@ class FlowMonitorQueue {
3752
3769
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3753
3770
  }
3754
3771
  }
3772
+ appendVirtualsAndParameters(currentValues) {
3773
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3774
+ act.setInfo(currentValues);
3775
+ this._queue.put(act);
3776
+ }
3777
+ addDataViewFlow(task) {
3778
+ if (this._isDataView) {
3779
+ let fldTab = task.DataView.GetFieldsTab();
3780
+ let preparedDisplayString = "";
3781
+ let finaldisplayData = "\n";
3782
+ let fldValue;
3783
+ let data = "";
3784
+ for (let i = 0; i < fldTab.getSize(); i++) {
3785
+ let fldDef = fldTab.getField(i);
3786
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3787
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3788
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3789
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3790
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3791
+ }
3792
+ }
3793
+ this.appendVirtualsAndParameters(finaldisplayData);
3794
+ }
3795
+ }
3796
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3797
+ switch (Storagetype) {
3798
+ case StorageAttribute.DOTNET:
3799
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3800
+ break;
3801
+ case StorageAttribute.BLOB:
3802
+ {
3803
+ if (BlobType.isValidBlob(data)) {
3804
+ let contentType = BlobType.getContentType(data);
3805
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3806
+ data = data != null ? BlobType.getString(data) : "";
3807
+ else
3808
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3809
+ }
3810
+ else
3811
+ data = "";
3812
+ }
3813
+ break;
3814
+ case StorageAttribute.NUMERIC:
3815
+ case StorageAttribute.DATE:
3816
+ case StorageAttribute.TIME:
3817
+ let conv = DisplayConvertor.Instance;
3818
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3819
+ break;
3820
+ case StorageAttribute.BLOB_VECTOR:
3821
+ let vecOutData;
3822
+ if (data == null) {
3823
+ vecOutData = "[]";
3824
+ }
3825
+ else {
3826
+ let cellAtt = vecCellType;
3827
+ let vector = new VectorType(data);
3828
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3829
+ vecOutData = "[]";
3830
+ else {
3831
+ let vecSize = VectorType.getVecSize(data);
3832
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3833
+ vecOutData = "[";
3834
+ for (let i = 0; i < vecSize; i++) {
3835
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3836
+ vecOutData += i < vecSize - 1 ? "," : "]";
3837
+ }
3838
+ }
3839
+ }
3840
+ data = vecOutData;
3841
+ break;
3842
+ case StorageAttribute.BOOLEAN:
3843
+ data = data == "1" ? "TRUE" : "FALSE";
3844
+ break;
3845
+ }
3846
+ return data;
3847
+ }
3848
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3849
+ let str = "";
3850
+ let finalStringToDisplay = "";
3851
+ if (addDoubleQuotes)
3852
+ finalStringToDisplay = finalStringToDisplay + "\"";
3853
+ finalStringToDisplay = finalStringToDisplay + name;
3854
+ if (addDoubleQuotes)
3855
+ finalStringToDisplay = finalStringToDisplay + "\"";
3856
+ let paddedName = this.padRight(name, 34);
3857
+ let formatOfStringVirtual = `Virtual`;
3858
+ let formatOfStringParameter = `Parameter`;
3859
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3860
+ return str;
3861
+ }
3755
3862
  addTaskFlowRec(id, state, taskInfo) {
3756
3863
  if (this._enabled && this._isTaskFlow) {
3757
3864
  let info;
@@ -3918,6 +4025,7 @@ class FlowMonitorQueue {
3918
4025
  }
3919
4026
  }
3920
4027
  FlowMonitorQueue._instance = null;
4028
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3921
4029
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3922
4030
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3923
4031
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3979,6 +4087,15 @@ class TimerObjectCollection {
3979
4087
  }
3980
4088
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3981
4089
  class RCTimer extends MgTimer {
4090
+ get TimerIntervalMiliSeconds() {
4091
+ return this._timerIntervalMilliSeconds;
4092
+ }
4093
+ set IsIdleTimer(value) {
4094
+ this._isIdle = value;
4095
+ }
4096
+ get IsIdleTimer() {
4097
+ return this._isIdle;
4098
+ }
3982
4099
  constructor(mgData, milliseconds, isIdle) {
3983
4100
  super(milliseconds);
3984
4101
  this._mgData = null;
@@ -3990,15 +4107,6 @@ class RCTimer extends MgTimer {
3990
4107
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3991
4108
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3992
4109
  }
3993
- get TimerIntervalMiliSeconds() {
3994
- return this._timerIntervalMilliSeconds;
3995
- }
3996
- set IsIdleTimer(value) {
3997
- this._isIdle = value;
3998
- }
3999
- get IsIdleTimer() {
4000
- return this._isIdle;
4001
- }
4002
4110
  GetMgdata() {
4003
4111
  return this._mgData;
4004
4112
  }
@@ -4144,6 +4252,9 @@ class ExecutionStack {
4144
4252
  }
4145
4253
 
4146
4254
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4255
+ get CommandTypeAttribute() {
4256
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4257
+ }
4147
4258
  constructor() {
4148
4259
  super();
4149
4260
  this.ExecutionStack = null;
@@ -4157,9 +4268,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4157
4268
  this.CheckOnly = false;
4158
4269
  this.DitIdx = Int32.MinValue;
4159
4270
  }
4160
- get CommandTypeAttribute() {
4161
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4162
- }
4163
4271
  SerializeCommandData() {
4164
4272
  let helper = new CommandSerializationHelper();
4165
4273
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4640,13 +4748,6 @@ class HttpClientAsync extends HttpClientBase {
4640
4748
  }
4641
4749
 
4642
4750
  class HttpManager {
4643
- constructor() {
4644
- this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4645
- this._httpClientAsync = null;
4646
- this._isAbortingMagicEngine = false;
4647
- this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4648
- this.RegisterBasicDelegates();
4649
- }
4650
4751
  getHttpClient() {
4651
4752
  if (this.IsAbortingMagicEngine)
4652
4753
  return new HttpClientSync();
@@ -4666,6 +4767,13 @@ class HttpManager {
4666
4767
  }
4667
4768
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4668
4769
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4770
+ constructor() {
4771
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4772
+ this._httpClientAsync = null;
4773
+ this._isAbortingMagicEngine = false;
4774
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4775
+ this.RegisterBasicDelegates();
4776
+ }
4669
4777
  RegisterBasicDelegates() {
4670
4778
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4671
4779
  }
@@ -5223,6 +5331,12 @@ var RequestStatus;
5223
5331
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5224
5332
  })(RequestStatus || (RequestStatus = {}));
5225
5333
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5334
+ static GetInstance() {
5335
+ if (RemoteCommandsProcessor._instance === null) {
5336
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5337
+ }
5338
+ return RemoteCommandsProcessor._instance;
5339
+ }
5226
5340
  constructor() {
5227
5341
  super();
5228
5342
  this._lastRequestTime = 0;
@@ -5233,12 +5347,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5233
5347
  HttpManager.GetInstance();
5234
5348
  this.RegisterDelegates();
5235
5349
  }
5236
- static GetInstance() {
5237
- if (RemoteCommandsProcessor._instance === null) {
5238
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5239
- }
5240
- return RemoteCommandsProcessor._instance;
5241
- }
5242
5350
  CheckAndSetSessionCounter(newSessionCounter) {
5243
5351
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5244
5352
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5274,10 +5382,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5274
5382
  return __awaiter(this, void 0, void 0, function* () {
5275
5383
  let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
5276
5384
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5385
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5277
5386
  let dataStorage = window.localStorage;
5278
5387
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5279
5388
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5280
5389
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5390
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5281
5391
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5282
5392
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5283
5393
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5514,6 +5624,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5514
5624
  let reqBuf;
5515
5625
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5516
5626
  let globalParamsString = null;
5627
+ let envVarsString = null;
5517
5628
  if (this.DelayCommandExecution)
5518
5629
  return;
5519
5630
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5539,12 +5650,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5539
5650
  let buffer = new StringBuilder();
5540
5651
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5541
5652
  buffer.Append(reqBuf);
5542
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5653
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5543
5654
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5544
- else
5655
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5656
+ }
5657
+ else {
5545
5658
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5659
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5660
+ }
5546
5661
  changes.Append(globalParamsString);
5547
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5662
+ changes.Append(envVarsString);
5548
5663
  if (changes.Length > 0) {
5549
5664
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5550
5665
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5583,13 +5698,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5583
5698
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5584
5699
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5585
5700
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5701
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5586
5702
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5587
5703
  }
5588
5704
  }
5589
5705
  FlowMonitorQueue.Instance.enable(false);
5590
5706
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5591
5707
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5592
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5708
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5709
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5593
5710
  let dataStorage = window.localStorage;
5594
5711
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5595
5712
  if (ctxRemoved === "1") {
@@ -5687,12 +5804,23 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5687
5804
  }
5688
5805
  }
5689
5806
  }
5690
- window.localStorage.clear();
5807
+ this.clearLocalStorage();
5691
5808
  throw ex;
5692
5809
  }
5693
5810
  return response;
5694
5811
  });
5695
5812
  }
5813
+ clearLocalStorage() {
5814
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
5815
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
5816
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
5817
+ window.localStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5818
+ window.localStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5819
+ window.localStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5820
+ window.localStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5821
+ window.localStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5822
+ window.localStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5823
+ }
5696
5824
  HandleErrorResponse(response) {
5697
5825
  try {
5698
5826
  Logger.Instance.WriteServerMessagesToLog("MESSAGE FROM SERVER: " + response);
@@ -5906,21 +6034,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5906
6034
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5907
6035
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5908
6036
  class HandshakeResponse {
5909
- constructor(responseXML) {
5910
- this._scrambleMessages = true;
5911
- this._contextId = null;
5912
- this._privateSessionId = null;
5913
- this._inputPassword = false;
5914
- this._httpTimeout = 0;
5915
- this._systemLogin = null;
5916
- this._maxInternalLogLevel = null;
5917
- try {
5918
- JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5919
- }
5920
- catch (ex) {
5921
- Logger.Instance.WriteExceptionToLog(ex, responseXML);
5922
- }
5923
- }
5924
6037
  get ScrambleMessages() {
5925
6038
  return this._scrambleMessages;
5926
6039
  }
@@ -5942,6 +6055,21 @@ class HandshakeResponse {
5942
6055
  get MaxInternalLogLevel() {
5943
6056
  return this._maxInternalLogLevel;
5944
6057
  }
6058
+ constructor(responseXML) {
6059
+ this._scrambleMessages = true;
6060
+ this._contextId = null;
6061
+ this._privateSessionId = null;
6062
+ this._inputPassword = false;
6063
+ this._httpTimeout = 0;
6064
+ this._systemLogin = null;
6065
+ this._maxInternalLogLevel = null;
6066
+ try {
6067
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
6068
+ }
6069
+ catch (ex) {
6070
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
6071
+ }
6072
+ }
5945
6073
  FillFromJSON(error, result) {
5946
6074
  if (error != null) {
5947
6075
  throw error;
@@ -6918,7 +7046,7 @@ ExpressionDict.expDesc = [
6918
7046
  null,
6919
7047
  new ExpDesc('N', 0, 0, 0, "", false),
6920
7048
  null,
6921
- new ExpDesc('B', 0, 2, 2, "BN", false),
7049
+ null,
6922
7050
  new ExpDesc('B', 0, 2, 2, "V ", false),
6923
7051
  null,
6924
7052
  null,
@@ -7367,12 +7495,12 @@ ExpressionDict.expDesc = [
7367
7495
  null,
7368
7496
  new ExpDesc('A', 0, 1, 1, "A", false),
7369
7497
  new ExpDesc('N', 0, 2, 2, "AA", false),
7370
- new ExpDesc('B', 0, -2, -2, "V ", false),
7371
- new ExpDesc('B', 0, 1, 1, "N", false),
7372
- new ExpDesc('B', 0, -2, -2, "V ", false),
7373
- new ExpDesc('B', 0, 1, 1, "N", false),
7374
- new ExpDesc('B', 0, 2, 2, "VB", false),
7375
- new ExpDesc('B', 0, 1, 1, "N", false),
7498
+ null,
7499
+ null,
7500
+ null,
7501
+ null,
7502
+ null,
7503
+ null,
7376
7504
  new ExpDesc('N', 0, 1, 1, "N", false),
7377
7505
  null,
7378
7506
  null,
@@ -7459,48 +7587,6 @@ ExpressionDict.expDesc = [
7459
7587
  new ExpDesc('U', 0, 0, 0, '', false),
7460
7588
  ];
7461
7589
 
7462
- var DataViewCommandType;
7463
- (function (DataViewCommandType) {
7464
- DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7465
- DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7466
- DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7467
- DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7468
- DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7469
- DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7470
- DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7471
- DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7472
- DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7473
- DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7474
- DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7475
- DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7476
- DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7477
- DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7478
- DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7479
- DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7480
- DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7481
- DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7482
- DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7483
- DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7484
- DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7485
- })(DataViewCommandType || (DataViewCommandType = {}));
7486
- class DataviewCommand extends ClientOriginatedCommandTaskTag {
7487
- constructor() {
7488
- super();
7489
- this.CommandType = 0;
7490
- this.TaskTag = null;
7491
- }
7492
- get CommandTypeAttribute() {
7493
- throw new NotImplementedException();
7494
- }
7495
- SerializeCommandData() {
7496
- Debug.Assert(false, "Dataview commands need not be serialized");
7497
- return null;
7498
- }
7499
- get ShouldSerialize() {
7500
- return false;
7501
- }
7502
- }
7503
-
7504
7590
  class EventHandlerPosition {
7505
7591
  constructor() {
7506
7592
  this._handlerIdx = 0;
@@ -7557,6 +7643,9 @@ class EventHandlerPosition {
7557
7643
  case InternalInterface.MG_ACT_REC_SUFFIX:
7558
7644
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7559
7645
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7646
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7647
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7648
+ }
7560
7649
  if (this._handlerIdx === -1) {
7561
7650
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7562
7651
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7697,6 +7786,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7697
7786
  EventHandlerPosition.PHASE_GLOBAL = 3;
7698
7787
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7699
7788
 
7789
+ var DataViewCommandType;
7790
+ (function (DataViewCommandType) {
7791
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7792
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7793
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7794
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7795
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7796
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7797
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7798
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7799
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7800
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7801
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7802
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7803
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7804
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7805
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7806
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7807
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7808
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7809
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7810
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7811
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7812
+ })(DataViewCommandType || (DataViewCommandType = {}));
7813
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7814
+ get CommandTypeAttribute() {
7815
+ throw new NotImplementedException();
7816
+ }
7817
+ SerializeCommandData() {
7818
+ Debug.Assert(false, "Dataview commands need not be serialized");
7819
+ return null;
7820
+ }
7821
+ get ShouldSerialize() {
7822
+ return false;
7823
+ }
7824
+ constructor() {
7825
+ super();
7826
+ this.CommandType = 0;
7827
+ this.TaskTag = null;
7828
+ }
7829
+ }
7830
+
7700
7831
  class AddUserRangeDataviewCommand extends DataviewCommand {
7701
7832
  constructor() {
7702
7833
  super();
@@ -7916,12 +8047,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7916
8047
  }
7917
8048
 
7918
8049
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7919
- constructor() {
7920
- super();
7921
- this.TaskTag = null;
7922
- this.FldId = 0;
7923
- this.IgnoreSubformRecompute = false;
7924
- }
7925
8050
  get CommandTypeAttribute() {
7926
8051
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7927
8052
  }
@@ -7933,17 +8058,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7933
8058
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7934
8059
  return helper.GetString();
7935
8060
  }
8061
+ constructor() {
8062
+ super();
8063
+ this.TaskTag = null;
8064
+ this.FldId = 0;
8065
+ this.IgnoreSubformRecompute = false;
8066
+ }
7936
8067
  getCommandInfo() {
7937
8068
  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());
7938
8069
  }
7939
8070
  }
7940
8071
 
7941
8072
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7942
- constructor() {
7943
- super();
7944
- this.TaskTag = null;
7945
- this.ReversibleExit = false;
7946
- }
7947
8073
  get CommandTypeAttribute() {
7948
8074
  return ConstInterface.MG_ATTR_VAL_TRANS;
7949
8075
  }
@@ -7957,6 +8083,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7957
8083
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7958
8084
  return helper.GetString();
7959
8085
  }
8086
+ constructor() {
8087
+ super();
8088
+ this.TaskTag = null;
8089
+ this.ReversibleExit = false;
8090
+ }
7960
8091
  getCommandInfo() {
7961
8092
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7962
8093
  }
@@ -7975,6 +8106,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7975
8106
  }
7976
8107
 
7977
8108
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
8109
+ get CommandTypeAttribute() {
8110
+ return ConstInterface.MG_ATTR_VAL_EVAL;
8111
+ }
7978
8112
  constructor() {
7979
8113
  super();
7980
8114
  this.TaskTag = null;
@@ -7983,9 +8117,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7983
8117
  this.MprgCreator = null;
7984
8118
  this.LengthExpVal = Int32.MinValue;
7985
8119
  }
7986
- get CommandTypeAttribute() {
7987
- return ConstInterface.MG_ATTR_VAL_EVAL;
7988
- }
7989
8120
  SerializeCommandData() {
7990
8121
  let helper = new CommandSerializationHelper();
7991
8122
  helper.SerializeTaskTag(this.TaskTag);
@@ -8030,13 +8161,9 @@ class GlobalParamsQueryCommand extends QueryCommand {
8030
8161
  constructor() {
8031
8162
  super();
8032
8163
  }
8033
- }
8034
-
8035
- class IniputForceWriteCommand extends ClientOriginatedCommand {
8036
- constructor() {
8037
- super();
8038
- this.Text = null;
8039
- }
8164
+ }
8165
+
8166
+ class IniputForceWriteCommand extends ClientOriginatedCommand {
8040
8167
  get CommandTypeAttribute() {
8041
8168
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
8042
8169
  }
@@ -8046,6 +8173,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
8046
8173
  SerializeCommandData() {
8047
8174
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
8048
8175
  }
8176
+ constructor() {
8177
+ super();
8178
+ this.Text = null;
8179
+ }
8049
8180
  getCommandInfo() {
8050
8181
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
8051
8182
  }
@@ -8336,13 +8467,6 @@ class CommandFactory {
8336
8467
  }
8337
8468
  }
8338
8469
 
8339
- class Sort {
8340
- constructor() {
8341
- this.fldIdx = 0;
8342
- this.dir = false;
8343
- }
8344
- }
8345
-
8346
8470
  var ParamParseResult;
8347
8471
  (function (ParamParseResult) {
8348
8472
  ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
@@ -8352,10 +8476,6 @@ var ParamParseResult;
8352
8476
  })(ParamParseResult || (ParamParseResult = {}));
8353
8477
 
8354
8478
  class PrmMap {
8355
- constructor() {
8356
- this.values = null;
8357
- this.values = new Dictionary();
8358
- }
8359
8479
  getvalue(s) {
8360
8480
  if (this.values.ContainsKey(s))
8361
8481
  return this.values.get_Item(s);
@@ -8368,6 +8488,10 @@ class PrmMap {
8368
8488
  remove(s) {
8369
8489
  this.values.Remove(s);
8370
8490
  }
8491
+ constructor() {
8492
+ this.values = null;
8493
+ this.values = new Dictionary();
8494
+ }
8371
8495
  }
8372
8496
  class MirrorPrmMap extends PrmMap {
8373
8497
  constructor(type) {
@@ -8448,7 +8572,7 @@ class MirrorPrmMap extends PrmMap {
8448
8572
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8449
8573
  }
8450
8574
  }
8451
- RestoreGlobalParams(xml) {
8575
+ RestoreParams(xml) {
8452
8576
  let parser = new XmlParser(xml);
8453
8577
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8454
8578
  }
@@ -8523,6 +8647,7 @@ class Environment {
8523
8647
  this._debugMode = 0;
8524
8648
  this._significantNumSize = 0;
8525
8649
  this._specialAnsiExpression = false;
8650
+ this._specialImmediatehandlerEnd = false;
8526
8651
  this._specialShowStatusBarPanes = false;
8527
8652
  this._specialRouteToRootProgOnContextRecreation = false;
8528
8653
  this._specialCancelOnCreate = false;
@@ -8676,6 +8801,9 @@ class Environment {
8676
8801
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8677
8802
  this._localFlags = valueStr;
8678
8803
  break;
8804
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8805
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8806
+ break;
8679
8807
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8680
8808
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8681
8809
  break;
@@ -8882,6 +9010,9 @@ class Environment {
8882
9010
  GetLocalFlag(f) {
8883
9011
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8884
9012
  }
9013
+ getSpecialImmediateHandlerEnd() {
9014
+ return this._specialImmediatehandlerEnd;
9015
+ }
8885
9016
  getSpecialAnsiExpression() {
8886
9017
  return this._specialAnsiExpression;
8887
9018
  }
@@ -8951,6 +9082,12 @@ class Environment {
8951
9082
  }
8952
9083
  Environment.Instance = new Environment();
8953
9084
  class EnvironmentDetails {
9085
+ set UpdateInQueryMode(value) {
9086
+ this._updateInQueryMode = value;
9087
+ }
9088
+ set CreateInModifyMode(value) {
9089
+ this._createInModifyMode = value;
9090
+ }
8954
9091
  constructor() {
8955
9092
  this._createInModifyMode = false;
8956
9093
  this._updateInQueryMode = false;
@@ -8961,12 +9098,6 @@ class EnvironmentDetails {
8961
9098
  this.ProjDir = null;
8962
9099
  this.CompIdx = 0;
8963
9100
  }
8964
- set UpdateInQueryMode(value) {
8965
- this._updateInQueryMode = value;
8966
- }
8967
- set CreateInModifyMode(value) {
8968
- this._createInModifyMode = value;
8969
- }
8970
9101
  allowUpdateInQueryMode() {
8971
9102
  return this._updateInQueryMode;
8972
9103
  }
@@ -9054,17 +9185,6 @@ class GlobalParams extends MirrorPrmMap {
9054
9185
  GlobalParams.Instance = new GlobalParams();
9055
9186
 
9056
9187
  class UserDetails {
9057
- constructor() {
9058
- this.UserName = null;
9059
- this.UserID = null;
9060
- this.UserInfo = null;
9061
- this.Password = null;
9062
- this.IsLoggedIn = false;
9063
- this.UserName = NString.Empty;
9064
- this.UserInfo = NString.Empty;
9065
- this.IsLoggedIn = false;
9066
- this.setUserID(NString.Empty);
9067
- }
9068
9188
  setIsLoggedIn(value) {
9069
9189
  this.IsLoggedIn = value;
9070
9190
  }
@@ -9084,6 +9204,17 @@ class UserDetails {
9084
9204
  UserDetails._instance = new UserDetails();
9085
9205
  return UserDetails._instance;
9086
9206
  }
9207
+ constructor() {
9208
+ this.UserName = null;
9209
+ this.UserID = null;
9210
+ this.UserInfo = null;
9211
+ this.Password = null;
9212
+ this.IsLoggedIn = false;
9213
+ this.UserName = NString.Empty;
9214
+ this.UserInfo = NString.Empty;
9215
+ this.IsLoggedIn = false;
9216
+ this.setUserID(NString.Empty);
9217
+ }
9087
9218
  fillData(parser) {
9088
9219
  let tokensVector;
9089
9220
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9920,8 +10051,7 @@ class MirrorString {
9920
10051
  this._reserved = false;
9921
10052
  }
9922
10053
  mirrorToXML() {
9923
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9924
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
10054
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9925
10055
  }
9926
10056
  init(name, xmlParser) {
9927
10057
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -11497,11 +11627,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11497
11627
  val1 = valStack.pop();
11498
11628
  this.eval_op_eoy(resVal, val1);
11499
11629
  break;
11500
- case ExpressionInterface.EXP_OP_ROLLBACK:
11501
- val2 = valStack.pop();
11502
- val1 = valStack.pop();
11503
- yield this.eval_op_rollback(resVal);
11504
- break;
11505
11630
  case ExpressionInterface.EXP_OP_VARSET:
11506
11631
  val2 = valStack.pop();
11507
11632
  val1 = valStack.pop();
@@ -11866,41 +11991,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11866
11991
  val1 = valStack.pop();
11867
11992
  this.eval_op_taskType(resVal, val1);
11868
11993
  break;
11869
- case ExpressionInterface.EXP_OP_RANGE_ADD:
11870
- nArgs = valStack.pop();
11871
- if (nArgs > 0) {
11872
- Exp_params = new Array(nArgs);
11873
- for (j = 0; j < nArgs; j++)
11874
- Exp_params[nArgs - 1 - j] = valStack.pop();
11875
- yield this.eval_op_range_add(resVal, Exp_params);
11876
- }
11877
- break;
11878
- case ExpressionInterface.EXP_OP_RANGE_RESET:
11879
- val1 = valStack.pop();
11880
- yield this.eval_op_range_reset(resVal, val1);
11881
- break;
11882
- case ExpressionInterface.EXP_OP_LOCATE_ADD:
11883
- nArgs = valStack.pop();
11884
- if (nArgs > 0) {
11885
- Exp_params = new Array(nArgs);
11886
- for (j = 0; j < nArgs; j++)
11887
- Exp_params[nArgs - 1 - j] = valStack.pop();
11888
- yield this.eval_op_locate_add(resVal, Exp_params);
11889
- }
11890
- break;
11891
- case ExpressionInterface.EXP_OP_LOCATE_RESET:
11892
- val1 = valStack.pop();
11893
- yield this.eval_op_locate_reset(resVal, val1);
11894
- break;
11895
- case ExpressionInterface.EXP_OP_SORT_ADD:
11896
- val2 = valStack.pop();
11897
- val1 = valStack.pop();
11898
- yield this.eval_op_sort_add(resVal, val1, val2);
11899
- break;
11900
- case ExpressionInterface.EXP_OP_SORT_RESET:
11901
- val1 = valStack.pop();
11902
- yield this.eval_op_sort_reset(resVal, val1);
11903
- break;
11904
11994
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11905
11995
  val1 = valStack.pop();
11906
11996
  this.eval_op_tsk_instance(resVal, val1);
@@ -11929,7 +12019,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11929
12019
  Exp_params = new Array(nArgs);
11930
12020
  for (j = 0; j < nArgs; j++)
11931
12021
  Exp_params[nArgs - 1 - j] = valStack.pop();
11932
- this.eval_op_CallJS(this.ExpTask, valStack.pop().StrVal, Exp_params, resVal);
12022
+ yield this.eval_op_CallJS(this.ExpTask, valStack.pop().StrVal, Exp_params, resVal);
11933
12023
  }
11934
12024
  break;
11935
12025
  case ExpressionInterface.EXP_OP_SET_COOKIE:
@@ -13569,14 +13659,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13569
13659
  yield fld.updateDisplay();
13570
13660
  });
13571
13661
  }
13572
- eval_op_rollback(resVal) {
13573
- return __awaiter(this, void 0, void 0, function* () {
13574
- let task = this.ExpTask.GetContextTask() || this.ExpTask;
13575
- yield AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_ROLLBACK);
13576
- resVal.Attr = StorageAttribute.BOOLEAN;
13577
- resVal.BoolVal = true;
13578
- });
13579
- }
13580
13662
  eval_op_like(source, maskOrg, resVal) {
13581
13663
  let i;
13582
13664
  let j;
@@ -14137,75 +14219,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14137
14219
  resultStr.Replace('\\@', '@');
14138
14220
  resVal.StrVal = resultStr.ToString();
14139
14221
  }
14140
- eval_op_range_add(resVal, Exp_params) {
14141
- return __awaiter(this, void 0, void 0, function* () {
14142
- resVal.Attr = StorageAttribute.BOOLEAN;
14143
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, false);
14144
- });
14145
- }
14146
- eval_op_range_reset(resVal, parent) {
14147
- const _super = Object.create(null, {
14148
- GetContextTask: { get: () => super.GetContextTask }
14149
- });
14150
- return __awaiter(this, void 0, void 0, function* () {
14151
- resVal.Attr = StorageAttribute.BOOLEAN;
14152
- let iParent = parent.MgNumVal.NUM_2_LONG();
14153
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14154
- let task = _super.GetContextTask.call(this, iParent);
14155
- if (task !== null) {
14156
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserRange);
14157
- yield task.DataviewManager.Execute(command);
14158
- resVal.BoolVal = true;
14159
- }
14160
- }
14161
- });
14162
- }
14163
- eval_op_locate_add(resVal, Exp_params) {
14164
- return __awaiter(this, void 0, void 0, function* () {
14165
- resVal.Attr = StorageAttribute.BOOLEAN;
14166
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, true);
14167
- });
14168
- }
14169
- eval_op_locate_reset(resVal, parent) {
14170
- const _super = Object.create(null, {
14171
- GetContextTask: { get: () => super.GetContextTask }
14172
- });
14173
- return __awaiter(this, void 0, void 0, function* () {
14174
- resVal.Attr = StorageAttribute.BOOLEAN;
14175
- let iParent = parent.MgNumVal.NUM_2_LONG();
14176
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14177
- let task = _super.GetContextTask.call(this, iParent);
14178
- if (task !== null) {
14179
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserLocate);
14180
- yield task.DataviewManager.Execute(command);
14181
- resVal.BoolVal = true;
14182
- }
14183
- }
14184
- });
14185
- }
14186
- eval_op_sort_add(resVal, varnum, dir) {
14187
- return __awaiter(this, void 0, void 0, function* () {
14188
- resVal.Attr = StorageAttribute.BOOLEAN;
14189
- resVal.BoolVal = yield this.add_sort(varnum, dir);
14190
- });
14191
- }
14192
- eval_op_sort_reset(resVal, parent) {
14193
- const _super = Object.create(null, {
14194
- GetContextTask: { get: () => super.GetContextTask }
14195
- });
14196
- return __awaiter(this, void 0, void 0, function* () {
14197
- resVal.Attr = StorageAttribute.BOOLEAN;
14198
- let iParent = parent.MgNumVal.NUM_2_LONG();
14199
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14200
- let task = _super.GetContextTask.call(this, iParent);
14201
- if (task !== null) {
14202
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserSort);
14203
- yield task.DataviewManager.Execute(command);
14204
- resVal.BoolVal = true;
14205
- }
14206
- }
14207
- });
14208
- }
14209
14222
  eval_op_tsk_instance(resVal, Parent) {
14210
14223
  let tag = 0;
14211
14224
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -14219,88 +14232,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14219
14232
  resVal.MgNumVal = new NUM_TYPE();
14220
14233
  resVal.MgNumVal.NUM_4_LONG(tag);
14221
14234
  }
14222
- add_sort(varnum, dir) {
14223
- return __awaiter(this, void 0, void 0, function* () {
14224
- if (varnum.MgNumVal === null)
14225
- return false;
14226
- let itm = varnum.MgNumVal.NUM_2_LONG();
14227
- if (itm === 0)
14228
- return false;
14229
- let fld = this.GetFieldOfContextTask(itm);
14230
- if (fld === null)
14231
- return false;
14232
- let task = fld.getTask();
14233
- let vee_idx = fld.getId() + 1;
14234
- let expr_64 = new Sort();
14235
- expr_64.fldIdx = vee_idx;
14236
- expr_64.dir = dir.BoolVal;
14237
- let sort = expr_64;
14238
- let command = CommandFactory.CreateAddUserSortDataviewCommand(task.getTaskTag(), sort);
14239
- yield task.DataviewManager.Execute(command);
14240
- return true;
14241
- });
14242
- }
14243
- add_rt_ranges(Exp_params, locate) {
14244
- return __awaiter(this, void 0, void 0, function* () {
14245
- let varnum = Exp_params[0];
14246
- let min = Exp_params[1];
14247
- if (varnum.MgNumVal === null)
14248
- return false;
14249
- let itm = varnum.MgNumVal.NUM_2_LONG();
14250
- if (itm === 0)
14251
- return false;
14252
- let fld = this.GetFieldOfContextTask(itm);
14253
- if (fld === null)
14254
- return false;
14255
- let task = fld.getTask();
14256
- let vee_idx = fld.getId() + 1;
14257
- let expr_78 = new UserRange();
14258
- expr_78.veeIdx = vee_idx;
14259
- let rng = expr_78;
14260
- if (min.IsNull)
14261
- rng.nullMin = true;
14262
- if (!rng.nullMin && (min.Attr === StorageAttribute.ALPHA || min.Attr === StorageAttribute.UNICODE) && min.StrVal.length === 0)
14263
- rng.discardMin = true;
14264
- else {
14265
- if (!rng.nullMin) {
14266
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), min.Attr))
14267
- return false;
14268
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), min.Attr))
14269
- this.ConvertExpVal(min, fld.getType());
14270
- rng.min = min.ToMgVal();
14271
- }
14272
- }
14273
- if (Exp_params.length === 3) {
14274
- let max = Exp_params[2];
14275
- if (max.IsNull)
14276
- rng.nullMax = true;
14277
- if (!rng.nullMax && (max.Attr === StorageAttribute.ALPHA || max.Attr === StorageAttribute.UNICODE) && max.StrVal.length === 0)
14278
- rng.discardMax = true;
14279
- else {
14280
- if (!rng.nullMax) {
14281
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), max.Attr))
14282
- return false;
14283
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), max.Attr))
14284
- this.ConvertExpVal(max, fld.getType());
14285
- rng.max = max.ToMgVal();
14286
- }
14287
- }
14288
- }
14289
- else
14290
- rng.discardMax = true;
14291
- if (!rng.discardMin || !rng.discardMax) {
14292
- if (locate) {
14293
- let command = CommandFactory.CreateAddUserLocateDataviewCommand(task.getTaskTag(), rng);
14294
- yield task.DataviewManager.Execute(command);
14295
- }
14296
- else {
14297
- let command2 = CommandFactory.CreateAddUserRangeDataviewCommand(task.getTaskTag(), rng);
14298
- yield task.DataviewManager.Execute(command2);
14299
- }
14300
- }
14301
- return true;
14302
- });
14303
- }
14304
14235
  eval_op_getParam(resVal, name) {
14305
14236
  Debug.Assert(!name.IsNull && name.StrVal !== null);
14306
14237
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14507,18 +14438,24 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14507
14438
  });
14508
14439
  }
14509
14440
  eval_op_CallJS(task, methodName, expVal, resVal) {
14510
- resVal.Attr = StorageAttribute.ALPHA;
14511
- resVal.StrVal = '';
14512
- if (task.isMainProg()) {
14513
- console.error("CallJS cannot be used in Main Program");
14514
- return;
14515
- }
14516
- let form = task.getForm();
14517
- let args = this.params2arguments(expVal, 0, expVal.length);
14518
- if (!isNullOrUndefined(args)) {
14519
- resVal.StrVal = Commands.addCallJS(form, form.UniqueName, methodName, args);
14441
+ return __awaiter(this, void 0, void 0, function* () {
14520
14442
  resVal.Attr = StorageAttribute.ALPHA;
14521
- }
14443
+ resVal.StrVal = '';
14444
+ if (task.isMainProg()) {
14445
+ console.error("CallJS cannot be used in Main Program");
14446
+ return;
14447
+ }
14448
+ let form = task.getForm();
14449
+ let args = this.params2arguments(expVal, 0, expVal.length);
14450
+ if (!isNullOrUndefined(args)) {
14451
+ if (task.isFirstRecordCycle()) {
14452
+ Commands.invoke();
14453
+ yield Thread.Sleep(10);
14454
+ }
14455
+ resVal.StrVal = Commands.addCallJS(form, form.UniqueName, methodName, args);
14456
+ resVal.Attr = StorageAttribute.ALPHA;
14457
+ }
14458
+ });
14522
14459
  }
14523
14460
  eval_op_set_cookie(cookieName, expVal, resVal) {
14524
14461
  resVal.Attr = StorageAttribute.BOOLEAN;
@@ -14824,6 +14761,12 @@ class DataViewBase extends GuiDataViewBase {
14824
14761
  }
14825
14762
 
14826
14763
  class Record {
14764
+ get InCompute() {
14765
+ return this._inCompute;
14766
+ }
14767
+ get InRecompute() {
14768
+ return this._inRecompute;
14769
+ }
14827
14770
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14828
14771
  this._id = Int32.MinValue;
14829
14772
  this.dbViewRowIdx = 0;
@@ -14841,12 +14784,6 @@ class Record {
14841
14784
  else
14842
14785
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14843
14786
  }
14844
- get InCompute() {
14845
- return this._inCompute;
14846
- }
14847
- get InRecompute() {
14848
- return this._inRecompute;
14849
- }
14850
14787
  constructor_0(dvOrTableCache) {
14851
14788
  if (dvOrTableCache instanceof DataViewBase)
14852
14789
  this._dataview = dvOrTableCache;
@@ -15642,14 +15579,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15642
15579
  Record.INCREASE = true;
15643
15580
  Record.DECREASE = false;
15644
15581
  class DcValuesReference extends ObjectReferenceBase {
15582
+ get DcValues() {
15583
+ return this.Referent;
15584
+ }
15645
15585
  constructor(controlId, referencedDcValues) {
15646
15586
  super(referencedDcValues);
15647
15587
  this.ditIdx = 0;
15648
15588
  this.ditIdx = controlId;
15649
15589
  }
15650
- get DcValues() {
15651
- return this.Referent;
15652
- }
15653
15590
  Clone() {
15654
15591
  return new DcValuesReference(this.ditIdx, this.Referent);
15655
15592
  }
@@ -15925,21 +15862,6 @@ class RecordsTable {
15925
15862
  RecordsTable.REC_NOT_FOUND = -1;
15926
15863
 
15927
15864
  class DataviewHeaderBase {
15928
- constructor(task) {
15929
- this._cond = null;
15930
- this._task = null;
15931
- this.Loc = null;
15932
- this._dir = '\0';
15933
- this._id = 0;
15934
- this._keyIdx = 0;
15935
- this._retVal = null;
15936
- this.returnfield = null;
15937
- this.LinkStartAfterField = 0;
15938
- this.KeyExpression = 0;
15939
- this._task = task;
15940
- this._keyIdx = -1;
15941
- this._cond = new YesNoExp(true);
15942
- }
15943
15865
  get ReturnField() {
15944
15866
  if (this.returnfield === null && this._retVal !== null)
15945
15867
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15960,6 +15882,21 @@ class DataviewHeaderBase {
15960
15882
  get LinkEvaluateCondition() {
15961
15883
  return this._linkEvalCondition;
15962
15884
  }
15885
+ constructor(task) {
15886
+ this._cond = null;
15887
+ this._task = null;
15888
+ this.Loc = null;
15889
+ this._dir = '\0';
15890
+ this._id = 0;
15891
+ this._keyIdx = 0;
15892
+ this._retVal = null;
15893
+ this.returnfield = null;
15894
+ this.LinkStartAfterField = 0;
15895
+ this.KeyExpression = 0;
15896
+ this._task = task;
15897
+ this._keyIdx = -1;
15898
+ this._cond = new YesNoExp(true);
15899
+ }
15963
15900
  SetAttributes(attributes) {
15964
15901
  let keys = attributes.Keys;
15965
15902
  keys.forEach((text) => {
@@ -17297,16 +17234,16 @@ class RecordOutOfDataViewException extends ApplicationException {
17297
17234
  }
17298
17235
 
17299
17236
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17237
+ set SerializedDCVals(value) {
17238
+ this.parser.setXMLdata(value);
17239
+ this.parser.setCurrIndex(0);
17240
+ }
17300
17241
  constructor() {
17301
17242
  super();
17302
17243
  this.dcv = null;
17303
17244
  this.parser = null;
17304
17245
  this.parser = new XmlParser();
17305
17246
  }
17306
- set SerializedDCVals(value) {
17307
- this.parser.setXMLdata(value);
17308
- this.parser.setCurrIndex(0);
17309
- }
17310
17247
  Build() {
17311
17248
  this.dcv = null;
17312
17249
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -17386,6 +17323,39 @@ const RECOVERY_ACT_NONE = 'N';
17386
17323
  const TRANS_STAT_CLOSED = 'C';
17387
17324
  const TRANS_STAT_OPENED = 'O';
17388
17325
  class DataView extends DataViewBase {
17326
+ set InsertAt(value) {
17327
+ this._insertAt = value;
17328
+ }
17329
+ get InsertAt() {
17330
+ return this._insertAt;
17331
+ }
17332
+ get CurrRec() {
17333
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17334
+ }
17335
+ set CurrRec(value) {
17336
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17337
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17338
+ }
17339
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17340
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17341
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17342
+ }
17343
+ }
17344
+ get FlushUpdates() {
17345
+ return this._flushUpdates;
17346
+ }
17347
+ get HasMainTable() {
17348
+ return this._hasMainTable;
17349
+ }
17350
+ get CurrentRecId() {
17351
+ return this._currRecId;
17352
+ }
17353
+ get FirstRecord() {
17354
+ return this._recordsTab.getRecByIdx(0);
17355
+ }
17356
+ get LastRecord() {
17357
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17358
+ }
17389
17359
  constructor(taskOrDataView) {
17390
17360
  super();
17391
17361
  this._cacheLruTimeStamp = 0;
@@ -17437,39 +17407,6 @@ class DataView extends DataViewBase {
17437
17407
  Object.assign(this, taskOrDataView);
17438
17408
  }
17439
17409
  }
17440
- set InsertAt(value) {
17441
- this._insertAt = value;
17442
- }
17443
- get InsertAt() {
17444
- return this._insertAt;
17445
- }
17446
- get CurrRec() {
17447
- return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17448
- }
17449
- set CurrRec(value) {
17450
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17451
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17452
- }
17453
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17454
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17455
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17456
- }
17457
- }
17458
- get FlushUpdates() {
17459
- return this._flushUpdates;
17460
- }
17461
- get HasMainTable() {
17462
- return this._hasMainTable;
17463
- }
17464
- get CurrentRecId() {
17465
- return this._currRecId;
17466
- }
17467
- get FirstRecord() {
17468
- return this._recordsTab.getRecByIdx(0);
17469
- }
17470
- get LastRecord() {
17471
- return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17472
- }
17473
17410
  Init() {
17474
17411
  this.init();
17475
17412
  }
@@ -19099,6 +19036,12 @@ class ReturnResultBase {
19099
19036
  }
19100
19037
 
19101
19038
  class ReturnResult extends ReturnResultBase {
19039
+ get Success() {
19040
+ return this.success;
19041
+ }
19042
+ get ErrorDescription() {
19043
+ return this.errorDescription;
19044
+ }
19102
19045
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
19103
19046
  super();
19104
19047
  this.errorDescription = null;
@@ -19113,12 +19056,6 @@ class ReturnResult extends ReturnResultBase {
19113
19056
  else
19114
19057
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
19115
19058
  }
19116
- get Success() {
19117
- return this.success;
19118
- }
19119
- get ErrorDescription() {
19120
- return this.errorDescription;
19121
- }
19122
19059
  constructor_00(errorDescriptionCode) {
19123
19060
  this.success = false;
19124
19061
  this.ErrorId = errorDescriptionCode;
@@ -19222,13 +19159,13 @@ class Transaction {
19222
19159
  }
19223
19160
 
19224
19161
  class TaskTransactionManager {
19162
+ get isClosingTopmostTask() {
19163
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19164
+ }
19225
19165
  constructor(task) {
19226
19166
  this.task = null;
19227
19167
  this.task = task;
19228
19168
  }
19229
- get isClosingTopmostTask() {
19230
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19231
- }
19232
19169
  AllowTransaction(transBegin, forLocal) {
19233
19170
  let result;
19234
19171
  if (forLocal)
@@ -19609,12 +19546,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19609
19546
  }
19610
19547
 
19611
19548
  class DataviewManager extends DataviewManagerBase {
19612
- constructor(task) {
19613
- super(task);
19614
- this.RemoteDataviewManager = null;
19615
- this.HasRemoteData = true;
19616
- this.RemoteDataviewManager = new RemoteDataviewManager(task);
19617
- }
19618
19549
  get TaskService() {
19619
19550
  return this.Task.TaskService;
19620
19551
  }
@@ -19629,6 +19560,12 @@ class DataviewManager extends DataviewManagerBase {
19629
19560
  get VirtualDataviewManager() {
19630
19561
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19631
19562
  }
19563
+ constructor(task) {
19564
+ super(task);
19565
+ this.RemoteDataviewManager = null;
19566
+ this.HasRemoteData = true;
19567
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19568
+ }
19632
19569
  Execute(command) {
19633
19570
  return __awaiter(this, void 0, void 0, function* () {
19634
19571
  return yield this.CurrentDataviewManager.Execute(command);
@@ -19636,6 +19573,13 @@ class DataviewManager extends DataviewManagerBase {
19636
19573
  }
19637
19574
  }
19638
19575
 
19576
+ class Sort {
19577
+ constructor() {
19578
+ this.fldIdx = 0;
19579
+ this.dir = false;
19580
+ }
19581
+ }
19582
+
19639
19583
  class SortCollection {
19640
19584
  constructor() {
19641
19585
  this._sortTab = null;
@@ -19764,23 +19708,9 @@ class MgForm extends MgFormBase {
19764
19708
  dv = this._task.DataView;
19765
19709
  return (dv);
19766
19710
  }
19767
- moveInView(unit, direction, returnToCtrl) {
19768
- return __awaiter(this, void 0, void 0, function* () {
19769
- if (isNullOrUndefined(returnToCtrl))
19770
- yield this.moveInView_0(unit, direction);
19771
- else
19772
- yield this.moveInView_1(unit, direction, returnToCtrl);
19773
- });
19774
- }
19775
- moveInView_0(unit, direction) {
19776
- return __awaiter(this, void 0, void 0, function* () {
19777
- yield this.moveInView(unit, direction, true);
19778
- });
19779
- }
19780
- moveInView_1(unit, direction, returnToCtrl) {
19711
+ moveInView(unit, direction) {
19781
19712
  return __awaiter(this, void 0, void 0, function* () {
19782
19713
  let oldRecId = Int32.MinValue;
19783
- let lastParkedCtrl;
19784
19714
  let currRec = this.GetDataview().getCurrRec();
19785
19715
  let oldTaskMode = ' ';
19786
19716
  let returnToVisibleLine = false;
@@ -19871,11 +19801,7 @@ class MgForm extends MgFormBase {
19871
19801
  this.GetDataview().setTopRecIdxModified(true);
19872
19802
  try {
19873
19803
  this._suffixDone = false;
19874
- let newDisplayLine = this.GetDataview().getCurrRecIdx() + size;
19875
- if (unit === Constants.MOVE_UNIT_PAGE && this.isLineMode())
19876
- if (newDisplayLine > this.GetDataview().getSize() - 1)
19877
- visibleLine -= newDisplayLine - (this.GetDataview().getSize() - 1);
19878
- yield this.setCurrRowByDisplayLine(newDisplayLine, true, false);
19804
+ yield this.setCurrRowByDisplayLine(this.GetDataview().getCurrRecIdx() + size, true, false);
19879
19805
  this.GetDataview().setTopRecIdxModified(false);
19880
19806
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19881
19807
  }
@@ -19915,6 +19841,7 @@ class MgForm extends MgFormBase {
19915
19841
  try {
19916
19842
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19917
19843
  yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
19844
+ visibleLine = this.getLastValidRow();
19918
19845
  }
19919
19846
  catch (Exception) {
19920
19847
  }
@@ -20038,15 +19965,6 @@ class MgForm extends MgFormBase {
20038
19965
  else
20039
19966
  this.SetTableTopIndex();
20040
19967
  yield AccessHelper.eventsManager.handleInternalEventWithTask(this._task, InternalInterface.MG_ACT_REC_PREFIX);
20041
- if (returnToCtrl) {
20042
- lastParkedCtrl = this._task.getLastParkedCtrl();
20043
- if (lastParkedCtrl != null) {
20044
- let cursorMoved = yield lastParkedCtrl.invoke();
20045
- if (!cursorMoved) {
20046
- yield AccessHelper.eventsManager.HandleNonParkableControls(this._task);
20047
- }
20048
- }
20049
- }
20050
19968
  }
20051
19969
  catch (e) {
20052
19970
  if (e instanceof RecordOutOfDataViewException) {
@@ -20635,8 +20553,13 @@ class MgForm extends MgFormBase {
20635
20553
  finally {
20636
20554
  this._inRefreshDisp = false;
20637
20555
  }
20638
- if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed))
20556
+ if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed)) {
20639
20557
  this.FormRefreshed = true;
20558
+ if (this._task.isFirstRecordCycle() || AccessHelper.eventsManager.getIsInViewRefresh()) {
20559
+ Commands.addNoParameters(CommandType.SET_WC_IDLE, this);
20560
+ AccessHelper.eventsManager.setIsInViewRefresh(false);
20561
+ }
20562
+ }
20640
20563
  return true;
20641
20564
  });
20642
20565
  }
@@ -22094,8 +22017,12 @@ class EventHandler {
22094
22017
  continue;
22095
22018
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
22096
22019
  continue;
22097
- if (!taskEnd)
22098
- yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
22020
+ if (!taskEnd) {
22021
+ let mainLevel = this._task.getMainLevel().toLowerCase();
22022
+ if ((yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE)) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
22023
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
22024
+ break;
22025
+ }
22099
22026
  if (this._taskMgdID !== mgdID)
22100
22027
  isChangedCurrWndRef.value = true;
22101
22028
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22906,13 +22833,6 @@ class UserEventsTable {
22906
22833
  }
22907
22834
 
22908
22835
  class FormsTable {
22909
- constructor(task, parentForm) {
22910
- this._task = null;
22911
- this._parentForm = null;
22912
- this._formsStringXml = null;
22913
- this._task = task;
22914
- this._parentForm = parentForm;
22915
- }
22916
22836
  get Count() {
22917
22837
  return this._formsStringXml.length;
22918
22838
  }
@@ -22921,6 +22841,13 @@ class FormsTable {
22921
22841
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22922
22842
  return null;
22923
22843
  }
22844
+ constructor(task, parentForm) {
22845
+ this._task = null;
22846
+ this._parentForm = null;
22847
+ this._formsStringXml = null;
22848
+ this._task = task;
22849
+ this._parentForm = parentForm;
22850
+ }
22924
22851
  fillData() {
22925
22852
  return __awaiter(this, void 0, void 0, function* () {
22926
22853
  this._formsStringXml = new List();
@@ -23116,6 +23043,47 @@ var Task_Direction;
23116
23043
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
23117
23044
  })(Task_Direction || (Task_Direction = {}));
23118
23045
  class Task extends TaskBase {
23046
+ get ParentTask() {
23047
+ return this._parentTask;
23048
+ }
23049
+ set TryingToCommit(value) {
23050
+ this._tryingToCommit = value;
23051
+ }
23052
+ get TryingToCommit() {
23053
+ return this._tryingToCommit;
23054
+ }
23055
+ get TaskService() {
23056
+ if (this._taskService == null)
23057
+ this._taskService = new RemoteTaskService();
23058
+ return this._taskService;
23059
+ }
23060
+ static get CommandsProcessor() {
23061
+ return CommandsProcessorManager.GetCommandsProcessor();
23062
+ }
23063
+ get LogicalStudioParentTask() {
23064
+ if (this.StudioParentTask === null && !super.isMainProg()) {
23065
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23066
+ }
23067
+ return this.StudioParentTask;
23068
+ }
23069
+ get KnownToServer() {
23070
+ return this._knownToServer;
23071
+ }
23072
+ set Transaction(value) {
23073
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
23074
+ }
23075
+ get Transaction() {
23076
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
23077
+ }
23078
+ get TaskDefinitionId() {
23079
+ if (this.taskDefinitionId === null) {
23080
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23081
+ }
23082
+ return this.taskDefinitionId;
23083
+ }
23084
+ static get IsBlockingBatch() {
23085
+ return false;
23086
+ }
23119
23087
  constructor(parent) {
23120
23088
  super();
23121
23089
  this._dvCache = null;
@@ -23184,47 +23152,6 @@ class Task extends TaskBase {
23184
23152
  }
23185
23153
  this.constructor_1(parent);
23186
23154
  }
23187
- get ParentTask() {
23188
- return this._parentTask;
23189
- }
23190
- set TryingToCommit(value) {
23191
- this._tryingToCommit = value;
23192
- }
23193
- get TryingToCommit() {
23194
- return this._tryingToCommit;
23195
- }
23196
- get TaskService() {
23197
- if (this._taskService == null)
23198
- this._taskService = new RemoteTaskService();
23199
- return this._taskService;
23200
- }
23201
- static get CommandsProcessor() {
23202
- return CommandsProcessorManager.GetCommandsProcessor();
23203
- }
23204
- get LogicalStudioParentTask() {
23205
- if (this.StudioParentTask === null && !super.isMainProg()) {
23206
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23207
- }
23208
- return this.StudioParentTask;
23209
- }
23210
- get KnownToServer() {
23211
- return this._knownToServer;
23212
- }
23213
- set Transaction(value) {
23214
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
23215
- }
23216
- get Transaction() {
23217
- return this.DataviewManager.CurrentDataviewManager.Transaction;
23218
- }
23219
- get TaskDefinitionId() {
23220
- if (this.taskDefinitionId === null) {
23221
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23222
- }
23223
- return this.taskDefinitionId;
23224
- }
23225
- static get IsBlockingBatch() {
23226
- return false;
23227
- }
23228
23155
  constructor_0() {
23229
23156
  this.ActionManager = new ActionManager();
23230
23157
  this.DataView = new DataView(this);
@@ -25103,6 +25030,7 @@ class Task extends TaskBase {
25103
25030
  this.ActionManager.enable(InternalInterface.MG_ACT_SORT_RECORDS, enable);
25104
25031
  enable = yield this.checkProp(PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX, true);
25105
25032
  this.ActionManager.enable(InternalInterface.MG_ACT_VIEW_BY_KEY, enable);
25033
+ this.ActionManager.enable(InternalInterface.MG_ACT_DUMP_ENVIRONMENT, true);
25106
25034
  });
25107
25035
  }
25108
25036
  setEnableZoomHandler() {
@@ -25722,6 +25650,9 @@ class CompMainPrgTable {
25722
25650
  }
25723
25651
 
25724
25652
  class MGData {
25653
+ get ForceModal() {
25654
+ return this.forceModal;
25655
+ }
25725
25656
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
25726
25657
  this._expHandlers = null;
25727
25658
  this._id = 0;
@@ -25742,9 +25673,6 @@ class MGData {
25742
25673
  else
25743
25674
  this.constructor_1(id, parent, isModal, forceModal);
25744
25675
  }
25745
- get ForceModal() {
25746
- return this.forceModal;
25747
- }
25748
25676
  constructor_0(id, parent, isModal) {
25749
25677
  this._timerHandlers = new HandlersTable();
25750
25678
  this._expHandlers = new HandlersTable();
@@ -26357,6 +26285,7 @@ class EventsManager {
26357
26285
  this.confirmationDialogTitle = 'Session is about to be terminated!';
26358
26286
  this._lastFailedFocusedControl = null;
26359
26287
  this.isSpinnerShown = false;
26288
+ this.isInViewRefresh = false;
26360
26289
  this.SpinnerStopped = new Subject();
26361
26290
  this._rtEvents = new Stack();
26362
26291
  this._eventsQueue = new MgPriorityBlockingQueue();
@@ -26577,7 +26506,7 @@ class EventsManager {
26577
26506
  if (raiseAt === RaiseAt.TaskInFocus)
26578
26507
  mgControl.setRtEvtTask(LastFocusedManager.Instance.getLastFocusedTask());
26579
26508
  }
26580
- yield this.handleFocus(mgControl, line, produceClick);
26509
+ yield this.handleFocus(mgControl, line, produceClick, false);
26581
26510
  currTask.setCancelWasRaised(cancelWasRaised);
26582
26511
  if (this._stopExecution)
26583
26512
  return;
@@ -27193,7 +27122,7 @@ class EventsManager {
27193
27122
  this.setLastSavedRouteEvent(aRtEvt);
27194
27123
  }
27195
27124
  }
27196
- handleFocus(ctrl, line, onClick) {
27125
+ handleFocus(ctrl, line, onClick, shouldHandleZoom) {
27197
27126
  return __awaiter(this, void 0, void 0, function* () {
27198
27127
  try {
27199
27128
  if (ctrl.isStatic())
@@ -27212,6 +27141,10 @@ class EventsManager {
27212
27141
  let prevCtrl = LastFocusedManager.getLastFocusedControl();
27213
27142
  if (ctrl === prevCtrl && !ctrl.isRepeatable()) {
27214
27143
  yield ctrl.getForm().bringRecordToPage();
27144
+ yield this.HandleZoomIfNeeded(ctrl, line, shouldHandleZoom);
27145
+ let rtEvnt = this.getLastRtEvent();
27146
+ if (rtEvnt != null && rtEvnt.ShouldHandleZoom)
27147
+ FocusManager.SetFocus(ctrl, -1);
27215
27148
  return;
27216
27149
  }
27217
27150
  let prevTask = LastFocusedManager.Instance.getLastFocusedTask();
@@ -27251,8 +27184,10 @@ class EventsManager {
27251
27184
  }
27252
27185
  else
27253
27186
  yield this.HandleNonParkableControls(ctrl.getForm().getTask());
27254
- if (!this._stopExecution && MgControl.ReturnToCtrl === ctrl)
27187
+ if (!this._stopExecution && MgControl.ReturnToCtrl === ctrl) {
27255
27188
  LastFocusedManager.setLastFocusedControl(ctrl.getForm().getTask(), ctrl);
27189
+ yield this.HandleZoomIfNeeded(ctrl, line, shouldHandleZoom);
27190
+ }
27256
27191
  return;
27257
27192
  }
27258
27193
  finally {
@@ -27318,6 +27253,15 @@ class EventsManager {
27318
27253
  }
27319
27254
  });
27320
27255
  }
27256
+ HandleZoomIfNeeded(ctrl, line, shouldHandleZoom) {
27257
+ return __awaiter(this, void 0, void 0, function* () {
27258
+ if (shouldHandleZoom) {
27259
+ var rtEvt = new RunTimeEvent(ctrl, line, true);
27260
+ rtEvt.setInternal(InternalInterface.MG_ACT_ZOOM);
27261
+ yield this.handleEvent(rtEvt, false);
27262
+ }
27263
+ });
27264
+ }
27321
27265
  canGoToControl(ctrl, onClick) {
27322
27266
  if (onClick && (ctrl.Type === MgControlType.CTRL_TYPE_SUBFORM || ctrl.Type === MgControlType.CTRL_TYPE_BROWSER))
27323
27267
  return false;
@@ -27565,7 +27509,7 @@ class EventsManager {
27565
27509
  case InternalInterface.MG_ACT_WEB_ON_DBLICK:
27566
27510
  break;
27567
27511
  case InternalInterface.MG_ACT_CTRL_FOCUS:
27568
- yield this.handleFocus(ctrl, displayLine, evt.isProduceClick());
27512
+ yield this.handleFocus(ctrl, displayLine, evt.isProduceClick(), evt.ShouldHandleZoom);
27569
27513
  return false;
27570
27514
  case InternalInterface.MG_ACT_CTRL_FOCUS_ON_NON_MAGIC_CONTROL:
27571
27515
  yield this.handleFocusOnNonMagicControl(ctrl);
@@ -28275,6 +28219,7 @@ class EventsManager {
28275
28219
  }
28276
28220
  break;
28277
28221
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
28222
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
28278
28223
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
28279
28224
  cmdsToServer.Add(cmd);
28280
28225
  yield CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -28610,6 +28555,7 @@ class EventsManager {
28610
28555
  else if (intEvtCode === InternalInterface.MG_ACT_RT_REFRESH_SCREEN && task.getMode() !== Constants.TASK_MODE_QUERY && !task.getAfterRetry()) {
28611
28556
  yield dv.currRecCompute(true);
28612
28557
  }
28558
+ this.setIsInViewRefresh(true);
28613
28559
  yield this.handleInternalEventWithTask(task, InternalInterface.MG_ACT_REC_PREFIX);
28614
28560
  if (!this.GetStopExecutionFlag() && !task.getPreventControlChange()) {
28615
28561
  if (!(task === LastFocusedManager.Instance.getLastFocusedTask() || !task.pathContains(LastFocusedManager.Instance.getLastFocusedTask())))
@@ -29364,6 +29310,12 @@ class EventsManager {
29364
29310
  return false;
29365
29311
  return true;
29366
29312
  }
29313
+ getIsInViewRefresh() {
29314
+ return this.isInViewRefresh;
29315
+ }
29316
+ setIsInViewRefresh(inViewRefresh) {
29317
+ this.isInViewRefresh = inViewRefresh;
29318
+ }
29367
29319
  }
29368
29320
  EventsManager.REAL_ONLY = true;
29369
29321
  EventsManager.MAX_OPER = 9999;
@@ -29472,15 +29424,15 @@ class GuiEventsProcessor extends EventsProcessor {
29472
29424
  }
29473
29425
  static processSelection(val, guiMgCtrl, line, produceClick) {
29474
29426
  let mgControl = guiMgCtrl;
29475
- if (mgControl.Type === MgControlType.CTRL_TYPE_BUTTON && mgControl.getForm().getTask().getLastParkedCtrl() !== mgControl)
29476
- produceClick = true;
29477
29427
  if (guiMgCtrl.ConnectedControl) {
29478
29428
  let rtEvt = new RunTimeEvent(mgControl, +line, true);
29479
- rtEvt.setInternal(InternalInterface.MG_ACT_ZOOM);
29480
- rtEvt.setProduceClick(produceClick);
29429
+ rtEvt.setInternal(InternalInterface.MG_ACT_CTRL_FOCUS);
29430
+ rtEvt.ShouldHandleZoom = true;
29481
29431
  EventsManager.Instance.addToTail(rtEvt);
29482
29432
  }
29483
29433
  else {
29434
+ if (mgControl.Type === MgControlType.CTRL_TYPE_BUTTON && mgControl.getForm().getTask().getLastParkedCtrl() !== mgControl)
29435
+ produceClick = true;
29484
29436
  let rtEvt = new RunTimeEvent(mgControl, +line, true);
29485
29437
  rtEvt.setInternal(InternalInterface.MG_ACT_SELECTION);
29486
29438
  rtEvt.setValue(val);
@@ -29886,13 +29838,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29886
29838
  }
29887
29839
 
29888
29840
  class EnhancedVerifyCommand extends VerifyCommand {
29889
- constructor() {
29890
- super();
29891
- this._buttonsID = '\0';
29892
- this._image = '\0';
29893
- this._returnValStr = null;
29894
- this._returnVal = null;
29895
- }
29896
29841
  ProcessMessageBoxResponse(task, returnValue) {
29897
29842
  return __awaiter(this, void 0, void 0, function* () {
29898
29843
  if (task !== null)
@@ -29925,6 +29870,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29925
29870
  break;
29926
29871
  }
29927
29872
  }
29873
+ constructor() {
29874
+ super();
29875
+ this._buttonsID = '\0';
29876
+ this._image = '\0';
29877
+ this._returnValStr = null;
29878
+ this._returnVal = null;
29879
+ }
29928
29880
  }
29929
29881
 
29930
29882
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -30029,12 +29981,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
30029
29981
  }
30030
29982
 
30031
29983
  class ResultCommand extends ClientTargetedCommandBase {
30032
- constructor() {
30033
- super();
30034
- this._isNull = false;
30035
- this._attr = StorageAttribute.NONE;
30036
- this._val = null;
30037
- }
30038
29984
  Execute(res) {
30039
29985
  return __awaiter(this, void 0, void 0, function* () {
30040
29986
  if (this._isNull)
@@ -30062,6 +30008,12 @@ class ResultCommand extends ClientTargetedCommandBase {
30062
30008
  break;
30063
30009
  }
30064
30010
  }
30011
+ constructor() {
30012
+ super();
30013
+ this._isNull = false;
30014
+ this._attr = StorageAttribute.NONE;
30015
+ this._val = null;
30016
+ }
30065
30017
  }
30066
30018
 
30067
30019
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -30432,19 +30384,9 @@ class CommandsTable {
30432
30384
  }
30433
30385
  }
30434
30386
 
30435
- let CurrentClientVersion = '4.1000.0-dev4100.43';
30387
+ let CurrentClientVersion = '4.1000.0-dev4100.431';
30436
30388
 
30437
30389
  class ClientManager {
30438
- constructor() {
30439
- this._globalUniqueSessionId = null;
30440
- this._buttonIsClicked = false;
30441
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30442
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30443
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30444
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30445
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30446
- this.RegisterDelegates();
30447
- }
30448
30390
  static get Instance() {
30449
30391
  if (ClientManager._instance === null)
30450
30392
  ClientManager._instance = new ClientManager();
@@ -30470,7 +30412,7 @@ class ClientManager {
30470
30412
  }
30471
30413
  break;
30472
30414
  case "mousedown":
30473
- if (control.isButton()) {
30415
+ if (control.isButton() || (control.ConnectedControl && guiEvent.fromButton)) {
30474
30416
  this._buttonIsClicked = true;
30475
30417
  }
30476
30418
  else if (!control.isSubform())
@@ -30489,7 +30431,7 @@ class ClientManager {
30489
30431
  }
30490
30432
  break;
30491
30433
  case "focus":
30492
- if (this._buttonIsClicked)
30434
+ if (this._buttonIsClicked || (control.ConnectedControl && guiEvent.fromButton))
30493
30435
  return;
30494
30436
  Events.OnFocus(control, lineIdx, true, false);
30495
30437
  break;
@@ -30505,6 +30447,9 @@ class ClientManager {
30505
30447
  case "setexternalvalue":
30506
30448
  EventsManager.Instance.AddExternalValueEvent(control, guiEvent.externalValue, guiEvent.param);
30507
30449
  break;
30450
+ case "setAsThreeState":
30451
+ control.setAsThreeState();
30452
+ break;
30508
30453
  default:
30509
30454
  break;
30510
30455
  }
@@ -30646,6 +30591,16 @@ class ClientManager {
30646
30591
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
30647
30592
  }
30648
30593
  }
30594
+ constructor() {
30595
+ this._globalUniqueSessionId = null;
30596
+ this._buttonIsClicked = false;
30597
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30598
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30599
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30600
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30601
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30602
+ this.RegisterDelegates();
30603
+ }
30649
30604
  InitGuiManager() {
30650
30605
  Manager.EventsManager = EventsManager.Instance;
30651
30606
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -30701,7 +30656,7 @@ class ClientManager {
30701
30656
  yield MGDataCollection.Instance.addMGData(mgd, 0, true);
30702
30657
  yield ClientManager.Instance.WorkThreadExecution();
30703
30658
  if (Logger.Instance.ShouldLog()) {
30704
- Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, "dd/MM/yyyy", Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
30659
+ Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_DATE_FORMAT, Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
30705
30660
  }
30706
30661
  }
30707
30662
  else {