@magic-xpa/engine 4.1000.0-dev4100.20 → 4.1000.0-dev4100.201

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 (51) hide show
  1. package/esm2020/src/ClientManager.mjs +11 -11
  2. package/esm2020/src/ConstInterface.mjs +3 -1
  3. package/esm2020/src/CurrentClientVersion.mjs +2 -2
  4. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +10 -2
  5. package/esm2020/src/commands/ClientToServer/DataviewCommand.mjs +6 -6
  6. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +4 -4
  7. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +8 -8
  8. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +4 -4
  9. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +5 -5
  10. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +7 -7
  11. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +6 -6
  12. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +8 -8
  13. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +7 -7
  14. package/esm2020/src/data/DataView.mjs +34 -34
  15. package/esm2020/src/data/DataviewManager.mjs +7 -7
  16. package/esm2020/src/data/Record.mjs +10 -10
  17. package/esm2020/src/data/TaskTransactionManager.mjs +4 -4
  18. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +5 -5
  19. package/esm2020/src/env/Environment.mjs +14 -7
  20. package/esm2020/src/env/MirrorString.mjs +2 -3
  21. package/esm2020/src/event/EventHandler.mjs +8 -3
  22. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  23. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  24. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  25. package/esm2020/src/exp/ExpressionEvaluator.mjs +24 -176
  26. package/esm2020/src/gui/FormsTable.mjs +8 -8
  27. package/esm2020/src/gui/MgControl.mjs +10 -10
  28. package/esm2020/src/gui/MgForm.mjs +4 -22
  29. package/esm2020/src/http/HttpManager.mjs +8 -8
  30. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +35 -26
  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 +42 -42
  36. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  37. package/esm2020/src/util/PrmMap.mjs +6 -6
  38. package/esm2020/src/util/ReturnResult.mjs +7 -7
  39. package/fesm2015/magic-xpa-engine.mjs +499 -558
  40. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  41. package/fesm2020/magic-xpa-engine.mjs +518 -551
  42. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  43. package/package.json +6 -6
  44. package/src/ConstInterface.d.ts +2 -0
  45. package/src/commands/ClientToServer/CommandFactory.d.ts +3 -0
  46. package/src/env/Environment.d.ts +2 -0
  47. package/src/exp/ExpressionEvaluator.d.ts +1 -9
  48. package/src/gui/MgForm.d.ts +1 -3
  49. package/src/util/FlowMonitorQueue.d.ts +8 -0
  50. package/src/util/PrmMap.d.ts +1 -1
  51. 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
  }
@@ -3232,6 +3234,21 @@ class MgPriorityBlockingQueue {
3232
3234
  }
3233
3235
 
3234
3236
  class RunTimeEvent extends RunTimeEventBase {
3237
+ set Control(value) {
3238
+ this._ctrl = value;
3239
+ }
3240
+ set DisplayLine(value) {
3241
+ this._displayLine = value;
3242
+ }
3243
+ get Control() {
3244
+ return this._ctrl;
3245
+ }
3246
+ get ControlsList() {
3247
+ return this._controlsList;
3248
+ }
3249
+ get Direction() {
3250
+ return this._direction;
3251
+ }
3235
3252
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3236
3253
  super();
3237
3254
  this._controlsList = null;
@@ -3293,21 +3310,6 @@ class RunTimeEvent extends RunTimeEventBase {
3293
3310
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3294
3311
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3295
3312
  }
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
3313
  constructor_5(taskRef) {
3312
3314
  this.init(taskRef);
3313
3315
  }
@@ -3637,7 +3639,17 @@ class FlowMonitorQueue {
3637
3639
  this._isRecompute = false;
3638
3640
  this._isTask = false;
3639
3641
  this._isTaskFlow = false;
3642
+ this._isDataView = false;
3640
3643
  this.ShouldSerialize = false;
3644
+ this.padRight = (string, length, character = ' ') => {
3645
+ let result = "";
3646
+ let totalLength = length - string.length;
3647
+ for (let i = 0; i < totalLength; i++) {
3648
+ result = character + result;
3649
+ }
3650
+ result = result + string;
3651
+ return result;
3652
+ };
3641
3653
  }
3642
3654
  static get Instance() {
3643
3655
  if (FlowMonitorQueue._instance === null)
@@ -3695,6 +3707,9 @@ class FlowMonitorQueue {
3695
3707
  case ConstInterface.MG_ATTR_TASKFLW:
3696
3708
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3697
3709
  break;
3710
+ case ConstInterface.MG_TAG_DATAVIEW:
3711
+ this._isDataView = XmlParser.getBoolean(valueStr);
3712
+ break;
3698
3713
  case ConstInterface.MG_ATTR_RECOMP:
3699
3714
  this._isRecompute = XmlParser.getBoolean(valueStr);
3700
3715
  break;
@@ -3752,6 +3767,96 @@ class FlowMonitorQueue {
3752
3767
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3753
3768
  }
3754
3769
  }
3770
+ appendVirtualsAndParameters(currentValues) {
3771
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3772
+ act.setInfo(currentValues);
3773
+ this._queue.put(act);
3774
+ }
3775
+ addDataViewFlow(task) {
3776
+ if (this._isDataView) {
3777
+ let fldTab = task.DataView.GetFieldsTab();
3778
+ let preparedDisplayString = "";
3779
+ let finaldisplayData = "\n";
3780
+ let fldValue;
3781
+ let data = "";
3782
+ for (let i = 0; i < fldTab.getSize(); i++) {
3783
+ let fldDef = fldTab.getField(i);
3784
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3785
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3786
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3787
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3788
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3789
+ }
3790
+ }
3791
+ this.appendVirtualsAndParameters(finaldisplayData);
3792
+ }
3793
+ }
3794
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3795
+ switch (Storagetype) {
3796
+ case StorageAttribute.DOTNET:
3797
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3798
+ break;
3799
+ case StorageAttribute.BLOB:
3800
+ {
3801
+ if (BlobType.isValidBlob(data)) {
3802
+ let contentType = BlobType.getContentType(data);
3803
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3804
+ data = data != null ? BlobType.getString(data) : "";
3805
+ else
3806
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3807
+ }
3808
+ else
3809
+ data = "";
3810
+ }
3811
+ break;
3812
+ case StorageAttribute.NUMERIC:
3813
+ case StorageAttribute.DATE:
3814
+ case StorageAttribute.TIME:
3815
+ let conv = DisplayConvertor.Instance;
3816
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3817
+ break;
3818
+ case StorageAttribute.BLOB_VECTOR:
3819
+ let vecOutData;
3820
+ if (data == null) {
3821
+ vecOutData = "[]";
3822
+ }
3823
+ else {
3824
+ let cellAtt = vecCellType;
3825
+ let vector = new VectorType(data);
3826
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3827
+ vecOutData = "[]";
3828
+ else {
3829
+ let vecSize = VectorType.getVecSize(data);
3830
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3831
+ vecOutData = "[";
3832
+ for (let i = 0; i < vecSize; i++) {
3833
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3834
+ vecOutData += i < vecSize - 1 ? "," : "]";
3835
+ }
3836
+ }
3837
+ }
3838
+ data = vecOutData;
3839
+ break;
3840
+ case StorageAttribute.BOOLEAN:
3841
+ data = data == "1" ? "TRUE" : "FALSE";
3842
+ break;
3843
+ }
3844
+ return data;
3845
+ }
3846
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3847
+ let str = "";
3848
+ let finalStringToDisplay = "";
3849
+ if (addDoubleQuotes)
3850
+ finalStringToDisplay = finalStringToDisplay + "\"";
3851
+ finalStringToDisplay = finalStringToDisplay + name;
3852
+ if (addDoubleQuotes)
3853
+ finalStringToDisplay = finalStringToDisplay + "\"";
3854
+ let paddedName = this.padRight(name, 34);
3855
+ let formatOfStringVirtual = `Virtual`;
3856
+ let formatOfStringParameter = `Parameter`;
3857
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3858
+ return str;
3859
+ }
3755
3860
  addTaskFlowRec(id, state, taskInfo) {
3756
3861
  if (this._enabled && this._isTaskFlow) {
3757
3862
  let info;
@@ -3918,6 +4023,7 @@ class FlowMonitorQueue {
3918
4023
  }
3919
4024
  }
3920
4025
  FlowMonitorQueue._instance = null;
4026
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3921
4027
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3922
4028
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3923
4029
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3979,6 +4085,15 @@ class TimerObjectCollection {
3979
4085
  }
3980
4086
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3981
4087
  class RCTimer extends MgTimer {
4088
+ get TimerIntervalMiliSeconds() {
4089
+ return this._timerIntervalMilliSeconds;
4090
+ }
4091
+ set IsIdleTimer(value) {
4092
+ this._isIdle = value;
4093
+ }
4094
+ get IsIdleTimer() {
4095
+ return this._isIdle;
4096
+ }
3982
4097
  constructor(mgData, milliseconds, isIdle) {
3983
4098
  super(milliseconds);
3984
4099
  this._mgData = null;
@@ -3990,15 +4105,6 @@ class RCTimer extends MgTimer {
3990
4105
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3991
4106
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3992
4107
  }
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
4108
  GetMgdata() {
4003
4109
  return this._mgData;
4004
4110
  }
@@ -4144,6 +4250,9 @@ class ExecutionStack {
4144
4250
  }
4145
4251
 
4146
4252
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4253
+ get CommandTypeAttribute() {
4254
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4255
+ }
4147
4256
  constructor() {
4148
4257
  super();
4149
4258
  this.ExecutionStack = null;
@@ -4157,9 +4266,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4157
4266
  this.CheckOnly = false;
4158
4267
  this.DitIdx = Int32.MinValue;
4159
4268
  }
4160
- get CommandTypeAttribute() {
4161
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4162
- }
4163
4269
  SerializeCommandData() {
4164
4270
  let helper = new CommandSerializationHelper();
4165
4271
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4640,13 +4746,6 @@ class HttpClientAsync extends HttpClientBase {
4640
4746
  }
4641
4747
 
4642
4748
  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
4749
  getHttpClient() {
4651
4750
  if (this.IsAbortingMagicEngine)
4652
4751
  return new HttpClientSync();
@@ -4666,6 +4765,13 @@ class HttpManager {
4666
4765
  }
4667
4766
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4668
4767
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4768
+ constructor() {
4769
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4770
+ this._httpClientAsync = null;
4771
+ this._isAbortingMagicEngine = false;
4772
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4773
+ this.RegisterBasicDelegates();
4774
+ }
4669
4775
  RegisterBasicDelegates() {
4670
4776
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4671
4777
  }
@@ -5223,6 +5329,12 @@ var RequestStatus;
5223
5329
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5224
5330
  })(RequestStatus || (RequestStatus = {}));
5225
5331
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5332
+ static GetInstance() {
5333
+ if (RemoteCommandsProcessor._instance === null) {
5334
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5335
+ }
5336
+ return RemoteCommandsProcessor._instance;
5337
+ }
5226
5338
  constructor() {
5227
5339
  super();
5228
5340
  this._lastRequestTime = 0;
@@ -5233,12 +5345,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5233
5345
  HttpManager.GetInstance();
5234
5346
  this.RegisterDelegates();
5235
5347
  }
5236
- static GetInstance() {
5237
- if (RemoteCommandsProcessor._instance === null) {
5238
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5239
- }
5240
- return RemoteCommandsProcessor._instance;
5241
- }
5242
5348
  CheckAndSetSessionCounter(newSessionCounter) {
5243
5349
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5244
5350
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5274,10 +5380,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5274
5380
  return __awaiter(this, void 0, void 0, function* () {
5275
5381
  let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
5276
5382
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5383
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5277
5384
  let dataStorage = window.localStorage;
5278
5385
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5279
5386
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5280
5387
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5388
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5281
5389
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5282
5390
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5283
5391
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5514,6 +5622,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5514
5622
  let reqBuf;
5515
5623
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5516
5624
  let globalParamsString = null;
5625
+ let envVarsString = null;
5517
5626
  if (this.DelayCommandExecution)
5518
5627
  return;
5519
5628
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5539,12 +5648,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5539
5648
  let buffer = new StringBuilder();
5540
5649
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5541
5650
  buffer.Append(reqBuf);
5542
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5651
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5543
5652
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5544
- else
5653
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5654
+ }
5655
+ else {
5545
5656
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5657
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5658
+ }
5546
5659
  changes.Append(globalParamsString);
5547
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5660
+ changes.Append(envVarsString);
5548
5661
  if (changes.Length > 0) {
5549
5662
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5550
5663
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5583,13 +5696,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5583
5696
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5584
5697
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5585
5698
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5699
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5586
5700
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5587
5701
  }
5588
5702
  }
5589
5703
  FlowMonitorQueue.Instance.enable(false);
5590
5704
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5591
5705
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5592
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5706
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5707
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5593
5708
  let dataStorage = window.localStorage;
5594
5709
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5595
5710
  if (ctxRemoved === "1") {
@@ -5906,21 +6021,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5906
6021
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5907
6022
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5908
6023
  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
6024
  get ScrambleMessages() {
5925
6025
  return this._scrambleMessages;
5926
6026
  }
@@ -5942,6 +6042,21 @@ class HandshakeResponse {
5942
6042
  get MaxInternalLogLevel() {
5943
6043
  return this._maxInternalLogLevel;
5944
6044
  }
6045
+ constructor(responseXML) {
6046
+ this._scrambleMessages = true;
6047
+ this._contextId = null;
6048
+ this._privateSessionId = null;
6049
+ this._inputPassword = false;
6050
+ this._httpTimeout = 0;
6051
+ this._systemLogin = null;
6052
+ this._maxInternalLogLevel = null;
6053
+ try {
6054
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
6055
+ }
6056
+ catch (ex) {
6057
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
6058
+ }
6059
+ }
5945
6060
  FillFromJSON(error, result) {
5946
6061
  if (error != null) {
5947
6062
  throw error;
@@ -6918,7 +7033,7 @@ ExpressionDict.expDesc = [
6918
7033
  null,
6919
7034
  new ExpDesc('N', 0, 0, 0, "", false),
6920
7035
  null,
6921
- new ExpDesc('B', 0, 2, 2, "BN", false),
7036
+ null,
6922
7037
  new ExpDesc('B', 0, 2, 2, "V ", false),
6923
7038
  null,
6924
7039
  null,
@@ -7367,12 +7482,12 @@ ExpressionDict.expDesc = [
7367
7482
  null,
7368
7483
  new ExpDesc('A', 0, 1, 1, "A", false),
7369
7484
  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),
7485
+ null,
7486
+ null,
7487
+ null,
7488
+ null,
7489
+ null,
7490
+ null,
7376
7491
  new ExpDesc('N', 0, 1, 1, "N", false),
7377
7492
  null,
7378
7493
  null,
@@ -7459,48 +7574,6 @@ ExpressionDict.expDesc = [
7459
7574
  new ExpDesc('U', 0, 0, 0, '', false),
7460
7575
  ];
7461
7576
 
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
7577
  class EventHandlerPosition {
7505
7578
  constructor() {
7506
7579
  this._handlerIdx = 0;
@@ -7557,6 +7630,9 @@ class EventHandlerPosition {
7557
7630
  case InternalInterface.MG_ACT_REC_SUFFIX:
7558
7631
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7559
7632
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7633
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7634
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7635
+ }
7560
7636
  if (this._handlerIdx === -1) {
7561
7637
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7562
7638
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7697,6 +7773,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7697
7773
  EventHandlerPosition.PHASE_GLOBAL = 3;
7698
7774
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7699
7775
 
7776
+ var DataViewCommandType;
7777
+ (function (DataViewCommandType) {
7778
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7779
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7780
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7781
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7782
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7783
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7784
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7785
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7786
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7787
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7788
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7789
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7790
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7791
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7792
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7793
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7794
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7795
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7796
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7797
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7798
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7799
+ })(DataViewCommandType || (DataViewCommandType = {}));
7800
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7801
+ get CommandTypeAttribute() {
7802
+ throw new NotImplementedException();
7803
+ }
7804
+ SerializeCommandData() {
7805
+ Debug.Assert(false, "Dataview commands need not be serialized");
7806
+ return null;
7807
+ }
7808
+ get ShouldSerialize() {
7809
+ return false;
7810
+ }
7811
+ constructor() {
7812
+ super();
7813
+ this.CommandType = 0;
7814
+ this.TaskTag = null;
7815
+ }
7816
+ }
7817
+
7700
7818
  class AddUserRangeDataviewCommand extends DataviewCommand {
7701
7819
  constructor() {
7702
7820
  super();
@@ -7916,12 +8034,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7916
8034
  }
7917
8035
 
7918
8036
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7919
- constructor() {
7920
- super();
7921
- this.TaskTag = null;
7922
- this.FldId = 0;
7923
- this.IgnoreSubformRecompute = false;
7924
- }
7925
8037
  get CommandTypeAttribute() {
7926
8038
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7927
8039
  }
@@ -7933,17 +8045,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7933
8045
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7934
8046
  return helper.GetString();
7935
8047
  }
8048
+ constructor() {
8049
+ super();
8050
+ this.TaskTag = null;
8051
+ this.FldId = 0;
8052
+ this.IgnoreSubformRecompute = false;
8053
+ }
7936
8054
  getCommandInfo() {
7937
8055
  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
8056
  }
7939
8057
  }
7940
8058
 
7941
8059
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7942
- constructor() {
7943
- super();
7944
- this.TaskTag = null;
7945
- this.ReversibleExit = false;
7946
- }
7947
8060
  get CommandTypeAttribute() {
7948
8061
  return ConstInterface.MG_ATTR_VAL_TRANS;
7949
8062
  }
@@ -7957,6 +8070,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7957
8070
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7958
8071
  return helper.GetString();
7959
8072
  }
8073
+ constructor() {
8074
+ super();
8075
+ this.TaskTag = null;
8076
+ this.ReversibleExit = false;
8077
+ }
7960
8078
  getCommandInfo() {
7961
8079
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7962
8080
  }
@@ -7975,6 +8093,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7975
8093
  }
7976
8094
 
7977
8095
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
8096
+ get CommandTypeAttribute() {
8097
+ return ConstInterface.MG_ATTR_VAL_EVAL;
8098
+ }
7978
8099
  constructor() {
7979
8100
  super();
7980
8101
  this.TaskTag = null;
@@ -7983,9 +8104,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7983
8104
  this.MprgCreator = null;
7984
8105
  this.LengthExpVal = Int32.MinValue;
7985
8106
  }
7986
- get CommandTypeAttribute() {
7987
- return ConstInterface.MG_ATTR_VAL_EVAL;
7988
- }
7989
8107
  SerializeCommandData() {
7990
8108
  let helper = new CommandSerializationHelper();
7991
8109
  helper.SerializeTaskTag(this.TaskTag);
@@ -8032,11 +8150,7 @@ class GlobalParamsQueryCommand extends QueryCommand {
8032
8150
  }
8033
8151
  }
8034
8152
 
8035
- class IniputForceWriteCommand extends ClientOriginatedCommand {
8036
- constructor() {
8037
- super();
8038
- this.Text = null;
8039
- }
8153
+ class IniputForceWriteCommand extends ClientOriginatedCommand {
8040
8154
  get CommandTypeAttribute() {
8041
8155
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
8042
8156
  }
@@ -8046,6 +8160,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
8046
8160
  SerializeCommandData() {
8047
8161
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
8048
8162
  }
8163
+ constructor() {
8164
+ super();
8165
+ this.Text = null;
8166
+ }
8049
8167
  getCommandInfo() {
8050
8168
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
8051
8169
  }
@@ -8095,6 +8213,13 @@ class SelectProgramCommand extends ExecOperCommand {
8095
8213
  }
8096
8214
  }
8097
8215
 
8216
+ class ControlItemsRefreshCommand extends DataviewCommand {
8217
+ constructor() {
8218
+ super();
8219
+ this.Control = null;
8220
+ }
8221
+ }
8222
+
8098
8223
  class CommandFactory {
8099
8224
  static CreateEventCommand(taskTag, magicEvent) {
8100
8225
  let eventCommand = new EventCommand(magicEvent);
@@ -8113,6 +8238,13 @@ class CommandFactory {
8113
8238
  dataviewCommand.TaskTag = taskId;
8114
8239
  return dataviewCommand;
8115
8240
  }
8241
+ static CreateControlItemsRefreshCommand(taskId, control) {
8242
+ let command = new ControlItemsRefreshCommand();
8243
+ command.CommandType = DataViewCommandType.ControlItemsRefresh;
8244
+ command.TaskTag = taskId;
8245
+ command.Control = control;
8246
+ return command;
8247
+ }
8116
8248
  static CreateAddUserRangeDataviewCommand(taskId, userRange) {
8117
8249
  let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
8118
8250
  addUserRangeDataviewCommand.TaskTag = taskId;
@@ -8322,13 +8454,6 @@ class CommandFactory {
8322
8454
  }
8323
8455
  }
8324
8456
 
8325
- class Sort {
8326
- constructor() {
8327
- this.fldIdx = 0;
8328
- this.dir = false;
8329
- }
8330
- }
8331
-
8332
8457
  var ParamParseResult;
8333
8458
  (function (ParamParseResult) {
8334
8459
  ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
@@ -8338,10 +8463,6 @@ var ParamParseResult;
8338
8463
  })(ParamParseResult || (ParamParseResult = {}));
8339
8464
 
8340
8465
  class PrmMap {
8341
- constructor() {
8342
- this.values = null;
8343
- this.values = new Dictionary();
8344
- }
8345
8466
  getvalue(s) {
8346
8467
  if (this.values.ContainsKey(s))
8347
8468
  return this.values.get_Item(s);
@@ -8354,6 +8475,10 @@ class PrmMap {
8354
8475
  remove(s) {
8355
8476
  this.values.Remove(s);
8356
8477
  }
8478
+ constructor() {
8479
+ this.values = null;
8480
+ this.values = new Dictionary();
8481
+ }
8357
8482
  }
8358
8483
  class MirrorPrmMap extends PrmMap {
8359
8484
  constructor(type) {
@@ -8434,7 +8559,7 @@ class MirrorPrmMap extends PrmMap {
8434
8559
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8435
8560
  }
8436
8561
  }
8437
- RestoreGlobalParams(xml) {
8562
+ RestoreParams(xml) {
8438
8563
  let parser = new XmlParser(xml);
8439
8564
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8440
8565
  }
@@ -8509,6 +8634,7 @@ class Environment {
8509
8634
  this._debugMode = 0;
8510
8635
  this._significantNumSize = 0;
8511
8636
  this._specialAnsiExpression = false;
8637
+ this._specialImmediatehandlerEnd = false;
8512
8638
  this._specialShowStatusBarPanes = false;
8513
8639
  this._specialRouteToRootProgOnContextRecreation = false;
8514
8640
  this._specialCancelOnCreate = false;
@@ -8662,6 +8788,9 @@ class Environment {
8662
8788
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8663
8789
  this._localFlags = valueStr;
8664
8790
  break;
8791
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8792
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8793
+ break;
8665
8794
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8666
8795
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8667
8796
  break;
@@ -8868,6 +8997,9 @@ class Environment {
8868
8997
  GetLocalFlag(f) {
8869
8998
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8870
8999
  }
9000
+ getSpecialImmediateHandlerEnd() {
9001
+ return this._specialImmediatehandlerEnd;
9002
+ }
8871
9003
  getSpecialAnsiExpression() {
8872
9004
  return this._specialAnsiExpression;
8873
9005
  }
@@ -8937,6 +9069,12 @@ class Environment {
8937
9069
  }
8938
9070
  Environment.Instance = new Environment();
8939
9071
  class EnvironmentDetails {
9072
+ set UpdateInQueryMode(value) {
9073
+ this._updateInQueryMode = value;
9074
+ }
9075
+ set CreateInModifyMode(value) {
9076
+ this._createInModifyMode = value;
9077
+ }
8940
9078
  constructor() {
8941
9079
  this._createInModifyMode = false;
8942
9080
  this._updateInQueryMode = false;
@@ -8947,12 +9085,6 @@ class EnvironmentDetails {
8947
9085
  this.ProjDir = null;
8948
9086
  this.CompIdx = 0;
8949
9087
  }
8950
- set UpdateInQueryMode(value) {
8951
- this._updateInQueryMode = value;
8952
- }
8953
- set CreateInModifyMode(value) {
8954
- this._createInModifyMode = value;
8955
- }
8956
9088
  allowUpdateInQueryMode() {
8957
9089
  return this._updateInQueryMode;
8958
9090
  }
@@ -9040,17 +9172,6 @@ class GlobalParams extends MirrorPrmMap {
9040
9172
  GlobalParams.Instance = new GlobalParams();
9041
9173
 
9042
9174
  class UserDetails {
9043
- constructor() {
9044
- this.UserName = null;
9045
- this.UserID = null;
9046
- this.UserInfo = null;
9047
- this.Password = null;
9048
- this.IsLoggedIn = false;
9049
- this.UserName = NString.Empty;
9050
- this.UserInfo = NString.Empty;
9051
- this.IsLoggedIn = false;
9052
- this.setUserID(NString.Empty);
9053
- }
9054
9175
  setIsLoggedIn(value) {
9055
9176
  this.IsLoggedIn = value;
9056
9177
  }
@@ -9070,6 +9191,17 @@ class UserDetails {
9070
9191
  UserDetails._instance = new UserDetails();
9071
9192
  return UserDetails._instance;
9072
9193
  }
9194
+ constructor() {
9195
+ this.UserName = null;
9196
+ this.UserID = null;
9197
+ this.UserInfo = null;
9198
+ this.Password = null;
9199
+ this.IsLoggedIn = false;
9200
+ this.UserName = NString.Empty;
9201
+ this.UserInfo = NString.Empty;
9202
+ this.IsLoggedIn = false;
9203
+ this.setUserID(NString.Empty);
9204
+ }
9073
9205
  fillData(parser) {
9074
9206
  let tokensVector;
9075
9207
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9906,8 +10038,7 @@ class MirrorString {
9906
10038
  this._reserved = false;
9907
10039
  }
9908
10040
  mirrorToXML() {
9909
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9910
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
10041
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9911
10042
  }
9912
10043
  init(name, xmlParser) {
9913
10044
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -11090,6 +11221,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11090
11221
  this.eval_op_VarDisplayName(resVal, val1);
11091
11222
  expStrTracker.resetNullResult();
11092
11223
  break;
11224
+ case ExpressionInterface.EXP_OP_CONTROL_ITEMS_REFRESH:
11225
+ val2 = valStack.pop();
11226
+ val1 = valStack.pop();
11227
+ yield this.eval_op_controlItemRefresh(val1, val2, resVal);
11228
+ break;
11093
11229
  case ExpressionInterface.EXP_OP_VARCONTROLID:
11094
11230
  val1 = valStack.pop();
11095
11231
  this.eval_op_VarControlID(resVal, val1);
@@ -11478,11 +11614,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11478
11614
  val1 = valStack.pop();
11479
11615
  this.eval_op_eoy(resVal, val1);
11480
11616
  break;
11481
- case ExpressionInterface.EXP_OP_ROLLBACK:
11482
- val2 = valStack.pop();
11483
- val1 = valStack.pop();
11484
- yield this.eval_op_rollback(resVal);
11485
- break;
11486
11617
  case ExpressionInterface.EXP_OP_VARSET:
11487
11618
  val2 = valStack.pop();
11488
11619
  val1 = valStack.pop();
@@ -11847,41 +11978,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11847
11978
  val1 = valStack.pop();
11848
11979
  this.eval_op_taskType(resVal, val1);
11849
11980
  break;
11850
- case ExpressionInterface.EXP_OP_RANGE_ADD:
11851
- nArgs = valStack.pop();
11852
- if (nArgs > 0) {
11853
- Exp_params = new Array(nArgs);
11854
- for (j = 0; j < nArgs; j++)
11855
- Exp_params[nArgs - 1 - j] = valStack.pop();
11856
- yield this.eval_op_range_add(resVal, Exp_params);
11857
- }
11858
- break;
11859
- case ExpressionInterface.EXP_OP_RANGE_RESET:
11860
- val1 = valStack.pop();
11861
- yield this.eval_op_range_reset(resVal, val1);
11862
- break;
11863
- case ExpressionInterface.EXP_OP_LOCATE_ADD:
11864
- nArgs = valStack.pop();
11865
- if (nArgs > 0) {
11866
- Exp_params = new Array(nArgs);
11867
- for (j = 0; j < nArgs; j++)
11868
- Exp_params[nArgs - 1 - j] = valStack.pop();
11869
- yield this.eval_op_locate_add(resVal, Exp_params);
11870
- }
11871
- break;
11872
- case ExpressionInterface.EXP_OP_LOCATE_RESET:
11873
- val1 = valStack.pop();
11874
- yield this.eval_op_locate_reset(resVal, val1);
11875
- break;
11876
- case ExpressionInterface.EXP_OP_SORT_ADD:
11877
- val2 = valStack.pop();
11878
- val1 = valStack.pop();
11879
- yield this.eval_op_sort_add(resVal, val1, val2);
11880
- break;
11881
- case ExpressionInterface.EXP_OP_SORT_RESET:
11882
- val1 = valStack.pop();
11883
- yield this.eval_op_sort_reset(resVal, val1);
11884
- break;
11885
11981
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11886
11982
  val1 = valStack.pop();
11887
11983
  this.eval_op_tsk_instance(resVal, val1);
@@ -13234,6 +13330,28 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13234
13330
  resVal.StrVal = fld.VarDisplayName;
13235
13331
  }
13236
13332
  }
13333
+ eval_op_controlItemRefresh(val1, val2, resVal) {
13334
+ const _super = Object.create(null, {
13335
+ GetContextTask: { get: () => super.GetContextTask }
13336
+ });
13337
+ return __awaiter(this, void 0, void 0, function* () {
13338
+ let success = false;
13339
+ let parent = val2.MgNumVal.NUM_2_LONG();
13340
+ resVal.Attr = StorageAttribute.BOOLEAN;
13341
+ if ((parent >= 0 && parent < (this.ExpTask.getTaskDepth(false))) || parent === ExpressionEvaluator.TRIGGER_TASK) {
13342
+ let tsk = _super.GetContextTask.call(this, parent);
13343
+ if (tsk != null && tsk.getForm() != null) {
13344
+ let control = tsk.getForm().GetCtrl(val1.StrVal);
13345
+ if (control != null && control.isChoiceControl() && control.isDataCtrl()) {
13346
+ let command = CommandFactory.CreateControlItemsRefreshCommand(tsk.getTaskTag(), control);
13347
+ yield tsk.DataviewManager.CurrentDataviewManager.Execute(command);
13348
+ success = true;
13349
+ }
13350
+ }
13351
+ }
13352
+ resVal.BoolVal = success;
13353
+ });
13354
+ }
13237
13355
  eval_op_VarControlID(resVal, val1) {
13238
13356
  let ret = 0;
13239
13357
  if (val1.MgNumVal !== null) {
@@ -13528,14 +13646,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13528
13646
  yield fld.updateDisplay();
13529
13647
  });
13530
13648
  }
13531
- eval_op_rollback(resVal) {
13532
- return __awaiter(this, void 0, void 0, function* () {
13533
- let task = this.ExpTask.GetContextTask() || this.ExpTask;
13534
- yield AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_ROLLBACK);
13535
- resVal.Attr = StorageAttribute.BOOLEAN;
13536
- resVal.BoolVal = true;
13537
- });
13538
- }
13539
13649
  eval_op_like(source, maskOrg, resVal) {
13540
13650
  let i;
13541
13651
  let j;
@@ -14096,75 +14206,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14096
14206
  resultStr.Replace('\\@', '@');
14097
14207
  resVal.StrVal = resultStr.ToString();
14098
14208
  }
14099
- eval_op_range_add(resVal, Exp_params) {
14100
- return __awaiter(this, void 0, void 0, function* () {
14101
- resVal.Attr = StorageAttribute.BOOLEAN;
14102
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, false);
14103
- });
14104
- }
14105
- eval_op_range_reset(resVal, parent) {
14106
- const _super = Object.create(null, {
14107
- GetContextTask: { get: () => super.GetContextTask }
14108
- });
14109
- return __awaiter(this, void 0, void 0, function* () {
14110
- resVal.Attr = StorageAttribute.BOOLEAN;
14111
- let iParent = parent.MgNumVal.NUM_2_LONG();
14112
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14113
- let task = _super.GetContextTask.call(this, iParent);
14114
- if (task !== null) {
14115
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserRange);
14116
- yield task.DataviewManager.Execute(command);
14117
- resVal.BoolVal = true;
14118
- }
14119
- }
14120
- });
14121
- }
14122
- eval_op_locate_add(resVal, Exp_params) {
14123
- return __awaiter(this, void 0, void 0, function* () {
14124
- resVal.Attr = StorageAttribute.BOOLEAN;
14125
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, true);
14126
- });
14127
- }
14128
- eval_op_locate_reset(resVal, parent) {
14129
- const _super = Object.create(null, {
14130
- GetContextTask: { get: () => super.GetContextTask }
14131
- });
14132
- return __awaiter(this, void 0, void 0, function* () {
14133
- resVal.Attr = StorageAttribute.BOOLEAN;
14134
- let iParent = parent.MgNumVal.NUM_2_LONG();
14135
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14136
- let task = _super.GetContextTask.call(this, iParent);
14137
- if (task !== null) {
14138
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserLocate);
14139
- yield task.DataviewManager.Execute(command);
14140
- resVal.BoolVal = true;
14141
- }
14142
- }
14143
- });
14144
- }
14145
- eval_op_sort_add(resVal, varnum, dir) {
14146
- return __awaiter(this, void 0, void 0, function* () {
14147
- resVal.Attr = StorageAttribute.BOOLEAN;
14148
- resVal.BoolVal = yield this.add_sort(varnum, dir);
14149
- });
14150
- }
14151
- eval_op_sort_reset(resVal, parent) {
14152
- const _super = Object.create(null, {
14153
- GetContextTask: { get: () => super.GetContextTask }
14154
- });
14155
- return __awaiter(this, void 0, void 0, function* () {
14156
- resVal.Attr = StorageAttribute.BOOLEAN;
14157
- let iParent = parent.MgNumVal.NUM_2_LONG();
14158
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14159
- let task = _super.GetContextTask.call(this, iParent);
14160
- if (task !== null) {
14161
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserSort);
14162
- yield task.DataviewManager.Execute(command);
14163
- resVal.BoolVal = true;
14164
- }
14165
- }
14166
- });
14167
- }
14168
14209
  eval_op_tsk_instance(resVal, Parent) {
14169
14210
  let tag = 0;
14170
14211
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -14178,88 +14219,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14178
14219
  resVal.MgNumVal = new NUM_TYPE();
14179
14220
  resVal.MgNumVal.NUM_4_LONG(tag);
14180
14221
  }
14181
- add_sort(varnum, dir) {
14182
- return __awaiter(this, void 0, void 0, function* () {
14183
- if (varnum.MgNumVal === null)
14184
- return false;
14185
- let itm = varnum.MgNumVal.NUM_2_LONG();
14186
- if (itm === 0)
14187
- return false;
14188
- let fld = this.GetFieldOfContextTask(itm);
14189
- if (fld === null)
14190
- return false;
14191
- let task = fld.getTask();
14192
- let vee_idx = fld.getId() + 1;
14193
- let expr_64 = new Sort();
14194
- expr_64.fldIdx = vee_idx;
14195
- expr_64.dir = dir.BoolVal;
14196
- let sort = expr_64;
14197
- let command = CommandFactory.CreateAddUserSortDataviewCommand(task.getTaskTag(), sort);
14198
- yield task.DataviewManager.Execute(command);
14199
- return true;
14200
- });
14201
- }
14202
- add_rt_ranges(Exp_params, locate) {
14203
- return __awaiter(this, void 0, void 0, function* () {
14204
- let varnum = Exp_params[0];
14205
- let min = Exp_params[1];
14206
- if (varnum.MgNumVal === null)
14207
- return false;
14208
- let itm = varnum.MgNumVal.NUM_2_LONG();
14209
- if (itm === 0)
14210
- return false;
14211
- let fld = this.GetFieldOfContextTask(itm);
14212
- if (fld === null)
14213
- return false;
14214
- let task = fld.getTask();
14215
- let vee_idx = fld.getId() + 1;
14216
- let expr_78 = new UserRange();
14217
- expr_78.veeIdx = vee_idx;
14218
- let rng = expr_78;
14219
- if (min.IsNull)
14220
- rng.nullMin = true;
14221
- if (!rng.nullMin && (min.Attr === StorageAttribute.ALPHA || min.Attr === StorageAttribute.UNICODE) && min.StrVal.length === 0)
14222
- rng.discardMin = true;
14223
- else {
14224
- if (!rng.nullMin) {
14225
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), min.Attr))
14226
- return false;
14227
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), min.Attr))
14228
- this.ConvertExpVal(min, fld.getType());
14229
- rng.min = min.ToMgVal();
14230
- }
14231
- }
14232
- if (Exp_params.length === 3) {
14233
- let max = Exp_params[2];
14234
- if (max.IsNull)
14235
- rng.nullMax = true;
14236
- if (!rng.nullMax && (max.Attr === StorageAttribute.ALPHA || max.Attr === StorageAttribute.UNICODE) && max.StrVal.length === 0)
14237
- rng.discardMax = true;
14238
- else {
14239
- if (!rng.nullMax) {
14240
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), max.Attr))
14241
- return false;
14242
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), max.Attr))
14243
- this.ConvertExpVal(max, fld.getType());
14244
- rng.max = max.ToMgVal();
14245
- }
14246
- }
14247
- }
14248
- else
14249
- rng.discardMax = true;
14250
- if (!rng.discardMin || !rng.discardMax) {
14251
- if (locate) {
14252
- let command = CommandFactory.CreateAddUserLocateDataviewCommand(task.getTaskTag(), rng);
14253
- yield task.DataviewManager.Execute(command);
14254
- }
14255
- else {
14256
- let command2 = CommandFactory.CreateAddUserRangeDataviewCommand(task.getTaskTag(), rng);
14257
- yield task.DataviewManager.Execute(command2);
14258
- }
14259
- }
14260
- return true;
14261
- });
14262
- }
14263
14222
  eval_op_getParam(resVal, name) {
14264
14223
  Debug.Assert(!name.IsNull && name.StrVal !== null);
14265
14224
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14783,6 +14742,12 @@ class DataViewBase extends GuiDataViewBase {
14783
14742
  }
14784
14743
 
14785
14744
  class Record {
14745
+ get InCompute() {
14746
+ return this._inCompute;
14747
+ }
14748
+ get InRecompute() {
14749
+ return this._inRecompute;
14750
+ }
14786
14751
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14787
14752
  this._id = Int32.MinValue;
14788
14753
  this.dbViewRowIdx = 0;
@@ -14800,12 +14765,6 @@ class Record {
14800
14765
  else
14801
14766
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14802
14767
  }
14803
- get InCompute() {
14804
- return this._inCompute;
14805
- }
14806
- get InRecompute() {
14807
- return this._inRecompute;
14808
- }
14809
14768
  constructor_0(dvOrTableCache) {
14810
14769
  if (dvOrTableCache instanceof DataViewBase)
14811
14770
  this._dataview = dvOrTableCache;
@@ -15601,14 +15560,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15601
15560
  Record.INCREASE = true;
15602
15561
  Record.DECREASE = false;
15603
15562
  class DcValuesReference extends ObjectReferenceBase {
15563
+ get DcValues() {
15564
+ return this.Referent;
15565
+ }
15604
15566
  constructor(controlId, referencedDcValues) {
15605
15567
  super(referencedDcValues);
15606
15568
  this.ditIdx = 0;
15607
15569
  this.ditIdx = controlId;
15608
15570
  }
15609
- get DcValues() {
15610
- return this.Referent;
15611
- }
15612
15571
  Clone() {
15613
15572
  return new DcValuesReference(this.ditIdx, this.Referent);
15614
15573
  }
@@ -15884,21 +15843,6 @@ class RecordsTable {
15884
15843
  RecordsTable.REC_NOT_FOUND = -1;
15885
15844
 
15886
15845
  class DataviewHeaderBase {
15887
- constructor(task) {
15888
- this._cond = null;
15889
- this._task = null;
15890
- this.Loc = null;
15891
- this._dir = '\0';
15892
- this._id = 0;
15893
- this._keyIdx = 0;
15894
- this._retVal = null;
15895
- this.returnfield = null;
15896
- this.LinkStartAfterField = 0;
15897
- this.KeyExpression = 0;
15898
- this._task = task;
15899
- this._keyIdx = -1;
15900
- this._cond = new YesNoExp(true);
15901
- }
15902
15846
  get ReturnField() {
15903
15847
  if (this.returnfield === null && this._retVal !== null)
15904
15848
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15919,6 +15863,21 @@ class DataviewHeaderBase {
15919
15863
  get LinkEvaluateCondition() {
15920
15864
  return this._linkEvalCondition;
15921
15865
  }
15866
+ constructor(task) {
15867
+ this._cond = null;
15868
+ this._task = null;
15869
+ this.Loc = null;
15870
+ this._dir = '\0';
15871
+ this._id = 0;
15872
+ this._keyIdx = 0;
15873
+ this._retVal = null;
15874
+ this.returnfield = null;
15875
+ this.LinkStartAfterField = 0;
15876
+ this.KeyExpression = 0;
15877
+ this._task = task;
15878
+ this._keyIdx = -1;
15879
+ this._cond = new YesNoExp(true);
15880
+ }
15922
15881
  SetAttributes(attributes) {
15923
15882
  let keys = attributes.Keys;
15924
15883
  keys.forEach((text) => {
@@ -17256,16 +17215,16 @@ class RecordOutOfDataViewException extends ApplicationException {
17256
17215
  }
17257
17216
 
17258
17217
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17218
+ set SerializedDCVals(value) {
17219
+ this.parser.setXMLdata(value);
17220
+ this.parser.setCurrIndex(0);
17221
+ }
17259
17222
  constructor() {
17260
17223
  super();
17261
17224
  this.dcv = null;
17262
17225
  this.parser = null;
17263
17226
  this.parser = new XmlParser();
17264
17227
  }
17265
- set SerializedDCVals(value) {
17266
- this.parser.setXMLdata(value);
17267
- this.parser.setCurrIndex(0);
17268
- }
17269
17228
  Build() {
17270
17229
  this.dcv = null;
17271
17230
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -17345,6 +17304,39 @@ const RECOVERY_ACT_NONE = 'N';
17345
17304
  const TRANS_STAT_CLOSED = 'C';
17346
17305
  const TRANS_STAT_OPENED = 'O';
17347
17306
  class DataView extends DataViewBase {
17307
+ set InsertAt(value) {
17308
+ this._insertAt = value;
17309
+ }
17310
+ get InsertAt() {
17311
+ return this._insertAt;
17312
+ }
17313
+ get CurrRec() {
17314
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17315
+ }
17316
+ set CurrRec(value) {
17317
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17318
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17319
+ }
17320
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17321
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17322
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17323
+ }
17324
+ }
17325
+ get FlushUpdates() {
17326
+ return this._flushUpdates;
17327
+ }
17328
+ get HasMainTable() {
17329
+ return this._hasMainTable;
17330
+ }
17331
+ get CurrentRecId() {
17332
+ return this._currRecId;
17333
+ }
17334
+ get FirstRecord() {
17335
+ return this._recordsTab.getRecByIdx(0);
17336
+ }
17337
+ get LastRecord() {
17338
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17339
+ }
17348
17340
  constructor(taskOrDataView) {
17349
17341
  super();
17350
17342
  this._cacheLruTimeStamp = 0;
@@ -17396,39 +17388,6 @@ class DataView extends DataViewBase {
17396
17388
  Object.assign(this, taskOrDataView);
17397
17389
  }
17398
17390
  }
17399
- set InsertAt(value) {
17400
- this._insertAt = value;
17401
- }
17402
- get InsertAt() {
17403
- return this._insertAt;
17404
- }
17405
- get CurrRec() {
17406
- return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17407
- }
17408
- set CurrRec(value) {
17409
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17410
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17411
- }
17412
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17413
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17414
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17415
- }
17416
- }
17417
- get FlushUpdates() {
17418
- return this._flushUpdates;
17419
- }
17420
- get HasMainTable() {
17421
- return this._hasMainTable;
17422
- }
17423
- get CurrentRecId() {
17424
- return this._currRecId;
17425
- }
17426
- get FirstRecord() {
17427
- return this._recordsTab.getRecByIdx(0);
17428
- }
17429
- get LastRecord() {
17430
- return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17431
- }
17432
17391
  Init() {
17433
17392
  this.init();
17434
17393
  }
@@ -19058,6 +19017,12 @@ class ReturnResultBase {
19058
19017
  }
19059
19018
 
19060
19019
  class ReturnResult extends ReturnResultBase {
19020
+ get Success() {
19021
+ return this.success;
19022
+ }
19023
+ get ErrorDescription() {
19024
+ return this.errorDescription;
19025
+ }
19061
19026
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
19062
19027
  super();
19063
19028
  this.errorDescription = null;
@@ -19072,12 +19037,6 @@ class ReturnResult extends ReturnResultBase {
19072
19037
  else
19073
19038
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
19074
19039
  }
19075
- get Success() {
19076
- return this.success;
19077
- }
19078
- get ErrorDescription() {
19079
- return this.errorDescription;
19080
- }
19081
19040
  constructor_00(errorDescriptionCode) {
19082
19041
  this.success = false;
19083
19042
  this.ErrorId = errorDescriptionCode;
@@ -19181,13 +19140,13 @@ class Transaction {
19181
19140
  }
19182
19141
 
19183
19142
  class TaskTransactionManager {
19143
+ get isClosingTopmostTask() {
19144
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19145
+ }
19184
19146
  constructor(task) {
19185
19147
  this.task = null;
19186
19148
  this.task = task;
19187
19149
  }
19188
- get isClosingTopmostTask() {
19189
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19190
- }
19191
19150
  AllowTransaction(transBegin, forLocal) {
19192
19151
  let result;
19193
19152
  if (forLocal)
@@ -19568,12 +19527,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19568
19527
  }
19569
19528
 
19570
19529
  class DataviewManager extends DataviewManagerBase {
19571
- constructor(task) {
19572
- super(task);
19573
- this.RemoteDataviewManager = null;
19574
- this.HasRemoteData = true;
19575
- this.RemoteDataviewManager = new RemoteDataviewManager(task);
19576
- }
19577
19530
  get TaskService() {
19578
19531
  return this.Task.TaskService;
19579
19532
  }
@@ -19588,6 +19541,12 @@ class DataviewManager extends DataviewManagerBase {
19588
19541
  get VirtualDataviewManager() {
19589
19542
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19590
19543
  }
19544
+ constructor(task) {
19545
+ super(task);
19546
+ this.RemoteDataviewManager = null;
19547
+ this.HasRemoteData = true;
19548
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19549
+ }
19591
19550
  Execute(command) {
19592
19551
  return __awaiter(this, void 0, void 0, function* () {
19593
19552
  return yield this.CurrentDataviewManager.Execute(command);
@@ -19595,6 +19554,13 @@ class DataviewManager extends DataviewManagerBase {
19595
19554
  }
19596
19555
  }
19597
19556
 
19557
+ class Sort {
19558
+ constructor() {
19559
+ this.fldIdx = 0;
19560
+ this.dir = false;
19561
+ }
19562
+ }
19563
+
19598
19564
  class SortCollection {
19599
19565
  constructor() {
19600
19566
  this._sortTab = null;
@@ -19723,23 +19689,9 @@ class MgForm extends MgFormBase {
19723
19689
  dv = this._task.DataView;
19724
19690
  return (dv);
19725
19691
  }
19726
- moveInView(unit, direction, returnToCtrl) {
19727
- return __awaiter(this, void 0, void 0, function* () {
19728
- if (isNullOrUndefined(returnToCtrl))
19729
- yield this.moveInView_0(unit, direction);
19730
- else
19731
- yield this.moveInView_1(unit, direction, returnToCtrl);
19732
- });
19733
- }
19734
- moveInView_0(unit, direction) {
19735
- return __awaiter(this, void 0, void 0, function* () {
19736
- yield this.moveInView(unit, direction, true);
19737
- });
19738
- }
19739
- moveInView_1(unit, direction, returnToCtrl) {
19692
+ moveInView(unit, direction) {
19740
19693
  return __awaiter(this, void 0, void 0, function* () {
19741
19694
  let oldRecId = Int32.MinValue;
19742
- let lastParkedCtrl;
19743
19695
  let currRec = this.GetDataview().getCurrRec();
19744
19696
  let oldTaskMode = ' ';
19745
19697
  let returnToVisibleLine = false;
@@ -19870,6 +19822,7 @@ class MgForm extends MgFormBase {
19870
19822
  try {
19871
19823
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19872
19824
  yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
19825
+ visibleLine = this.getLastValidRow();
19873
19826
  }
19874
19827
  catch (Exception) {
19875
19828
  }
@@ -19993,15 +19946,6 @@ class MgForm extends MgFormBase {
19993
19946
  else
19994
19947
  this.SetTableTopIndex();
19995
19948
  yield AccessHelper.eventsManager.handleInternalEventWithTask(this._task, InternalInterface.MG_ACT_REC_PREFIX);
19996
- if (returnToCtrl) {
19997
- lastParkedCtrl = this._task.getLastParkedCtrl();
19998
- if (lastParkedCtrl != null) {
19999
- let cursorMoved = yield lastParkedCtrl.invoke();
20000
- if (!cursorMoved) {
20001
- yield AccessHelper.eventsManager.HandleNonParkableControls(this._task);
20002
- }
20003
- }
20004
- }
20005
19949
  }
20006
19950
  catch (e) {
20007
19951
  if (e instanceof RecordOutOfDataViewException) {
@@ -22049,8 +21993,12 @@ class EventHandler {
22049
21993
  continue;
22050
21994
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
22051
21995
  continue;
22052
- if (!taskEnd)
22053
- yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
21996
+ if (!taskEnd) {
21997
+ let mainLevel = this._task.getMainLevel().toLowerCase();
21998
+ if ((yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE)) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
21999
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
22000
+ break;
22001
+ }
22054
22002
  if (this._taskMgdID !== mgdID)
22055
22003
  isChangedCurrWndRef.value = true;
22056
22004
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22861,13 +22809,6 @@ class UserEventsTable {
22861
22809
  }
22862
22810
 
22863
22811
  class FormsTable {
22864
- constructor(task, parentForm) {
22865
- this._task = null;
22866
- this._parentForm = null;
22867
- this._formsStringXml = null;
22868
- this._task = task;
22869
- this._parentForm = parentForm;
22870
- }
22871
22812
  get Count() {
22872
22813
  return this._formsStringXml.length;
22873
22814
  }
@@ -22876,6 +22817,13 @@ class FormsTable {
22876
22817
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22877
22818
  return null;
22878
22819
  }
22820
+ constructor(task, parentForm) {
22821
+ this._task = null;
22822
+ this._parentForm = null;
22823
+ this._formsStringXml = null;
22824
+ this._task = task;
22825
+ this._parentForm = parentForm;
22826
+ }
22879
22827
  fillData() {
22880
22828
  return __awaiter(this, void 0, void 0, function* () {
22881
22829
  this._formsStringXml = new List();
@@ -23071,6 +23019,47 @@ var Task_Direction;
23071
23019
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
23072
23020
  })(Task_Direction || (Task_Direction = {}));
23073
23021
  class Task extends TaskBase {
23022
+ get ParentTask() {
23023
+ return this._parentTask;
23024
+ }
23025
+ set TryingToCommit(value) {
23026
+ this._tryingToCommit = value;
23027
+ }
23028
+ get TryingToCommit() {
23029
+ return this._tryingToCommit;
23030
+ }
23031
+ get TaskService() {
23032
+ if (this._taskService == null)
23033
+ this._taskService = new RemoteTaskService();
23034
+ return this._taskService;
23035
+ }
23036
+ static get CommandsProcessor() {
23037
+ return CommandsProcessorManager.GetCommandsProcessor();
23038
+ }
23039
+ get LogicalStudioParentTask() {
23040
+ if (this.StudioParentTask === null && !super.isMainProg()) {
23041
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23042
+ }
23043
+ return this.StudioParentTask;
23044
+ }
23045
+ get KnownToServer() {
23046
+ return this._knownToServer;
23047
+ }
23048
+ set Transaction(value) {
23049
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
23050
+ }
23051
+ get Transaction() {
23052
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
23053
+ }
23054
+ get TaskDefinitionId() {
23055
+ if (this.taskDefinitionId === null) {
23056
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23057
+ }
23058
+ return this.taskDefinitionId;
23059
+ }
23060
+ static get IsBlockingBatch() {
23061
+ return false;
23062
+ }
23074
23063
  constructor(parent) {
23075
23064
  super();
23076
23065
  this._dvCache = null;
@@ -23139,47 +23128,6 @@ class Task extends TaskBase {
23139
23128
  }
23140
23129
  this.constructor_1(parent);
23141
23130
  }
23142
- get ParentTask() {
23143
- return this._parentTask;
23144
- }
23145
- set TryingToCommit(value) {
23146
- this._tryingToCommit = value;
23147
- }
23148
- get TryingToCommit() {
23149
- return this._tryingToCommit;
23150
- }
23151
- get TaskService() {
23152
- if (this._taskService == null)
23153
- this._taskService = new RemoteTaskService();
23154
- return this._taskService;
23155
- }
23156
- static get CommandsProcessor() {
23157
- return CommandsProcessorManager.GetCommandsProcessor();
23158
- }
23159
- get LogicalStudioParentTask() {
23160
- if (this.StudioParentTask === null && !super.isMainProg()) {
23161
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23162
- }
23163
- return this.StudioParentTask;
23164
- }
23165
- get KnownToServer() {
23166
- return this._knownToServer;
23167
- }
23168
- set Transaction(value) {
23169
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
23170
- }
23171
- get Transaction() {
23172
- return this.DataviewManager.CurrentDataviewManager.Transaction;
23173
- }
23174
- get TaskDefinitionId() {
23175
- if (this.taskDefinitionId === null) {
23176
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23177
- }
23178
- return this.taskDefinitionId;
23179
- }
23180
- static get IsBlockingBatch() {
23181
- return false;
23182
- }
23183
23131
  constructor_0() {
23184
23132
  this.ActionManager = new ActionManager();
23185
23133
  this.DataView = new DataView(this);
@@ -25677,6 +25625,9 @@ class CompMainPrgTable {
25677
25625
  }
25678
25626
 
25679
25627
  class MGData {
25628
+ get ForceModal() {
25629
+ return this.forceModal;
25630
+ }
25680
25631
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
25681
25632
  this._expHandlers = null;
25682
25633
  this._id = 0;
@@ -25697,9 +25648,6 @@ class MGData {
25697
25648
  else
25698
25649
  this.constructor_1(id, parent, isModal, forceModal);
25699
25650
  }
25700
- get ForceModal() {
25701
- return this.forceModal;
25702
- }
25703
25651
  constructor_0(id, parent, isModal) {
25704
25652
  this._timerHandlers = new HandlersTable();
25705
25653
  this._expHandlers = new HandlersTable();
@@ -29841,13 +29789,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29841
29789
  }
29842
29790
 
29843
29791
  class EnhancedVerifyCommand extends VerifyCommand {
29844
- constructor() {
29845
- super();
29846
- this._buttonsID = '\0';
29847
- this._image = '\0';
29848
- this._returnValStr = null;
29849
- this._returnVal = null;
29850
- }
29851
29792
  ProcessMessageBoxResponse(task, returnValue) {
29852
29793
  return __awaiter(this, void 0, void 0, function* () {
29853
29794
  if (task !== null)
@@ -29880,6 +29821,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29880
29821
  break;
29881
29822
  }
29882
29823
  }
29824
+ constructor() {
29825
+ super();
29826
+ this._buttonsID = '\0';
29827
+ this._image = '\0';
29828
+ this._returnValStr = null;
29829
+ this._returnVal = null;
29830
+ }
29883
29831
  }
29884
29832
 
29885
29833
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -29984,12 +29932,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
29984
29932
  }
29985
29933
 
29986
29934
  class ResultCommand extends ClientTargetedCommandBase {
29987
- constructor() {
29988
- super();
29989
- this._isNull = false;
29990
- this._attr = StorageAttribute.NONE;
29991
- this._val = null;
29992
- }
29993
29935
  Execute(res) {
29994
29936
  return __awaiter(this, void 0, void 0, function* () {
29995
29937
  if (this._isNull)
@@ -30017,6 +29959,12 @@ class ResultCommand extends ClientTargetedCommandBase {
30017
29959
  break;
30018
29960
  }
30019
29961
  }
29962
+ constructor() {
29963
+ super();
29964
+ this._isNull = false;
29965
+ this._attr = StorageAttribute.NONE;
29966
+ this._val = null;
29967
+ }
30020
29968
  }
30021
29969
 
30022
29970
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -30387,19 +30335,9 @@ class CommandsTable {
30387
30335
  }
30388
30336
  }
30389
30337
 
30390
- let CurrentClientVersion = '4.1000.0-dev4100.20';
30338
+ let CurrentClientVersion = '4.1000.0-dev4100.201';
30391
30339
 
30392
30340
  class ClientManager {
30393
- constructor() {
30394
- this._globalUniqueSessionId = null;
30395
- this._buttonIsClicked = false;
30396
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30397
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30398
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30399
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30400
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30401
- this.RegisterDelegates();
30402
- }
30403
30341
  static get Instance() {
30404
30342
  if (ClientManager._instance === null)
30405
30343
  ClientManager._instance = new ClientManager();
@@ -30601,6 +30539,16 @@ class ClientManager {
30601
30539
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
30602
30540
  }
30603
30541
  }
30542
+ constructor() {
30543
+ this._globalUniqueSessionId = null;
30544
+ this._buttonIsClicked = false;
30545
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30546
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30547
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30548
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30549
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30550
+ this.RegisterDelegates();
30551
+ }
30604
30552
  InitGuiManager() {
30605
30553
  Manager.EventsManager = EventsManager.Instance;
30606
30554
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -30828,13 +30776,6 @@ class MagicBridge {
30828
30776
  }
30829
30777
  }
30830
30778
 
30831
- class ControlItemsRefreshCommand extends DataviewCommand {
30832
- constructor() {
30833
- super();
30834
- this.Control = null;
30835
- }
30836
- }
30837
-
30838
30779
  class DataViewOutputCommand extends DataviewCommand {
30839
30780
  constructor(OutputCommandType) {
30840
30781
  super();