@magic-xpa/engine 4.1000.0-dev4100.27 → 4.1000.0-dev4100.272

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 (50) 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/DataviewCommand.mjs +6 -6
  5. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +4 -4
  6. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +8 -8
  7. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +4 -4
  8. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +5 -5
  9. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +7 -7
  10. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +6 -6
  11. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +8 -8
  12. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +7 -7
  13. package/esm2020/src/data/DataView.mjs +34 -34
  14. package/esm2020/src/data/DataviewManager.mjs +7 -7
  15. package/esm2020/src/data/Record.mjs +10 -10
  16. package/esm2020/src/data/TaskTransactionManager.mjs +4 -4
  17. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +5 -5
  18. package/esm2020/src/env/Environment.mjs +14 -7
  19. package/esm2020/src/env/MirrorString.mjs +2 -3
  20. package/esm2020/src/event/EventHandler.mjs +8 -3
  21. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  22. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  23. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  24. package/esm2020/src/exp/ExpressionEvaluator.mjs +4 -178
  25. package/esm2020/src/gui/FormsTable.mjs +8 -8
  26. package/esm2020/src/gui/MgControl.mjs +10 -13
  27. package/esm2020/src/gui/MgForm.mjs +4 -22
  28. package/esm2020/src/http/HttpManager.mjs +8 -8
  29. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +35 -26
  30. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  31. package/esm2020/src/security/UserDetails.mjs +12 -12
  32. package/esm2020/src/tasks/MGData.mjs +4 -4
  33. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  34. package/esm2020/src/tasks/Task.mjs +42 -42
  35. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  36. package/esm2020/src/util/PrmMap.mjs +6 -6
  37. package/esm2020/src/util/ReturnResult.mjs +7 -7
  38. package/fesm2015/magic-xpa-engine.mjs +482 -583
  39. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  40. package/fesm2020/magic-xpa-engine.mjs +481 -546
  41. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  42. package/package.json +6 -6
  43. package/src/ConstInterface.d.ts +2 -0
  44. package/src/env/Environment.d.ts +2 -0
  45. package/src/exp/ExpressionEvaluator.d.ts +0 -9
  46. package/src/gui/MgControl.d.ts +0 -1
  47. package/src/gui/MgForm.d.ts +1 -3
  48. package/src/util/FlowMonitorQueue.d.ts +8 -0
  49. package/src/util/PrmMap.d.ts +1 -1
  50. 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
  }
@@ -3232,6 +3226,21 @@ class MgPriorityBlockingQueue {
3232
3226
  }
3233
3227
 
3234
3228
  class RunTimeEvent extends RunTimeEventBase {
3229
+ set Control(value) {
3230
+ this._ctrl = value;
3231
+ }
3232
+ set DisplayLine(value) {
3233
+ this._displayLine = value;
3234
+ }
3235
+ get Control() {
3236
+ return this._ctrl;
3237
+ }
3238
+ get ControlsList() {
3239
+ return this._controlsList;
3240
+ }
3241
+ get Direction() {
3242
+ return this._direction;
3243
+ }
3235
3244
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3236
3245
  super();
3237
3246
  this._controlsList = null;
@@ -3293,21 +3302,6 @@ class RunTimeEvent extends RunTimeEventBase {
3293
3302
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3294
3303
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3295
3304
  }
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
3305
  constructor_5(taskRef) {
3312
3306
  this.init(taskRef);
3313
3307
  }
@@ -3637,7 +3631,17 @@ class FlowMonitorQueue {
3637
3631
  this._isRecompute = false;
3638
3632
  this._isTask = false;
3639
3633
  this._isTaskFlow = false;
3634
+ this._isDataView = false;
3640
3635
  this.ShouldSerialize = false;
3636
+ this.padRight = (string, length, character = ' ') => {
3637
+ let result = "";
3638
+ let totalLength = length - string.length;
3639
+ for (let i = 0; i < totalLength; i++) {
3640
+ result = character + result;
3641
+ }
3642
+ result = result + string;
3643
+ return result;
3644
+ };
3641
3645
  }
3642
3646
  static get Instance() {
3643
3647
  if (FlowMonitorQueue._instance === null)
@@ -3695,6 +3699,9 @@ class FlowMonitorQueue {
3695
3699
  case ConstInterface.MG_ATTR_TASKFLW:
3696
3700
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3697
3701
  break;
3702
+ case ConstInterface.MG_TAG_DATAVIEW:
3703
+ this._isDataView = XmlParser.getBoolean(valueStr);
3704
+ break;
3698
3705
  case ConstInterface.MG_ATTR_RECOMP:
3699
3706
  this._isRecompute = XmlParser.getBoolean(valueStr);
3700
3707
  break;
@@ -3752,6 +3759,96 @@ class FlowMonitorQueue {
3752
3759
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3753
3760
  }
3754
3761
  }
3762
+ appendVirtualsAndParameters(currentValues) {
3763
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3764
+ act.setInfo(currentValues);
3765
+ this._queue.put(act);
3766
+ }
3767
+ addDataViewFlow(task) {
3768
+ if (this._isDataView) {
3769
+ let fldTab = task.DataView.GetFieldsTab();
3770
+ let preparedDisplayString = "";
3771
+ let finaldisplayData = "\n";
3772
+ let fldValue;
3773
+ let data = "";
3774
+ for (let i = 0; i < fldTab.getSize(); i++) {
3775
+ let fldDef = fldTab.getField(i);
3776
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3777
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3778
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3779
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3780
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3781
+ }
3782
+ }
3783
+ this.appendVirtualsAndParameters(finaldisplayData);
3784
+ }
3785
+ }
3786
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3787
+ switch (Storagetype) {
3788
+ case StorageAttribute.DOTNET:
3789
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3790
+ break;
3791
+ case StorageAttribute.BLOB:
3792
+ {
3793
+ if (BlobType.isValidBlob(data)) {
3794
+ let contentType = BlobType.getContentType(data);
3795
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3796
+ data = data != null ? BlobType.getString(data) : "";
3797
+ else
3798
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3799
+ }
3800
+ else
3801
+ data = "";
3802
+ }
3803
+ break;
3804
+ case StorageAttribute.NUMERIC:
3805
+ case StorageAttribute.DATE:
3806
+ case StorageAttribute.TIME:
3807
+ let conv = DisplayConvertor.Instance;
3808
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3809
+ break;
3810
+ case StorageAttribute.BLOB_VECTOR:
3811
+ let vecOutData;
3812
+ if (data == null) {
3813
+ vecOutData = "[]";
3814
+ }
3815
+ else {
3816
+ let cellAtt = vecCellType;
3817
+ let vector = new VectorType(data);
3818
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3819
+ vecOutData = "[]";
3820
+ else {
3821
+ let vecSize = VectorType.getVecSize(data);
3822
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3823
+ vecOutData = "[";
3824
+ for (let i = 0; i < vecSize; i++) {
3825
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3826
+ vecOutData += i < vecSize - 1 ? "," : "]";
3827
+ }
3828
+ }
3829
+ }
3830
+ data = vecOutData;
3831
+ break;
3832
+ case StorageAttribute.BOOLEAN:
3833
+ data = data == "1" ? "TRUE" : "FALSE";
3834
+ break;
3835
+ }
3836
+ return data;
3837
+ }
3838
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3839
+ let str = "";
3840
+ let finalStringToDisplay = "";
3841
+ if (addDoubleQuotes)
3842
+ finalStringToDisplay = finalStringToDisplay + "\"";
3843
+ finalStringToDisplay = finalStringToDisplay + name;
3844
+ if (addDoubleQuotes)
3845
+ finalStringToDisplay = finalStringToDisplay + "\"";
3846
+ let paddedName = this.padRight(name, 34);
3847
+ let formatOfStringVirtual = `Virtual`;
3848
+ let formatOfStringParameter = `Parameter`;
3849
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3850
+ return str;
3851
+ }
3755
3852
  addTaskFlowRec(id, state, taskInfo) {
3756
3853
  if (this._enabled && this._isTaskFlow) {
3757
3854
  let info;
@@ -3918,6 +4015,7 @@ class FlowMonitorQueue {
3918
4015
  }
3919
4016
  }
3920
4017
  FlowMonitorQueue._instance = null;
4018
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3921
4019
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3922
4020
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3923
4021
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3979,6 +4077,15 @@ class TimerObjectCollection {
3979
4077
  }
3980
4078
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3981
4079
  class RCTimer extends MgTimer {
4080
+ get TimerIntervalMiliSeconds() {
4081
+ return this._timerIntervalMilliSeconds;
4082
+ }
4083
+ set IsIdleTimer(value) {
4084
+ this._isIdle = value;
4085
+ }
4086
+ get IsIdleTimer() {
4087
+ return this._isIdle;
4088
+ }
3982
4089
  constructor(mgData, milliseconds, isIdle) {
3983
4090
  super(milliseconds);
3984
4091
  this._mgData = null;
@@ -3990,15 +4097,6 @@ class RCTimer extends MgTimer {
3990
4097
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3991
4098
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3992
4099
  }
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
4100
  GetMgdata() {
4003
4101
  return this._mgData;
4004
4102
  }
@@ -4144,6 +4242,9 @@ class ExecutionStack {
4144
4242
  }
4145
4243
 
4146
4244
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4245
+ get CommandTypeAttribute() {
4246
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4247
+ }
4147
4248
  constructor() {
4148
4249
  super();
4149
4250
  this.ExecutionStack = null;
@@ -4157,9 +4258,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4157
4258
  this.CheckOnly = false;
4158
4259
  this.DitIdx = Int32.MinValue;
4159
4260
  }
4160
- get CommandTypeAttribute() {
4161
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4162
- }
4163
4261
  SerializeCommandData() {
4164
4262
  let helper = new CommandSerializationHelper();
4165
4263
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4640,13 +4738,6 @@ class HttpClientAsync extends HttpClientBase {
4640
4738
  }
4641
4739
 
4642
4740
  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
4741
  getHttpClient() {
4651
4742
  if (this.IsAbortingMagicEngine)
4652
4743
  return new HttpClientSync();
@@ -4666,6 +4757,13 @@ class HttpManager {
4666
4757
  }
4667
4758
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4668
4759
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4760
+ constructor() {
4761
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4762
+ this._httpClientAsync = null;
4763
+ this._isAbortingMagicEngine = false;
4764
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4765
+ this.RegisterBasicDelegates();
4766
+ }
4669
4767
  RegisterBasicDelegates() {
4670
4768
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4671
4769
  }
@@ -5223,6 +5321,12 @@ var RequestStatus;
5223
5321
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5224
5322
  })(RequestStatus || (RequestStatus = {}));
5225
5323
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5324
+ static GetInstance() {
5325
+ if (RemoteCommandsProcessor._instance === null) {
5326
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5327
+ }
5328
+ return RemoteCommandsProcessor._instance;
5329
+ }
5226
5330
  constructor() {
5227
5331
  super();
5228
5332
  this._lastRequestTime = 0;
@@ -5233,12 +5337,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5233
5337
  HttpManager.GetInstance();
5234
5338
  this.RegisterDelegates();
5235
5339
  }
5236
- static GetInstance() {
5237
- if (RemoteCommandsProcessor._instance === null) {
5238
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5239
- }
5240
- return RemoteCommandsProcessor._instance;
5241
- }
5242
5340
  CheckAndSetSessionCounter(newSessionCounter) {
5243
5341
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5244
5342
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5274,10 +5372,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5274
5372
  return __awaiter(this, void 0, void 0, function* () {
5275
5373
  let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
5276
5374
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5375
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5277
5376
  let dataStorage = window.localStorage;
5278
5377
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5279
5378
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5280
5379
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5380
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5281
5381
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5282
5382
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5283
5383
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5514,6 +5614,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5514
5614
  let reqBuf;
5515
5615
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5516
5616
  let globalParamsString = null;
5617
+ let envVarsString = null;
5517
5618
  if (this.DelayCommandExecution)
5518
5619
  return;
5519
5620
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5539,12 +5640,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5539
5640
  let buffer = new StringBuilder();
5540
5641
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5541
5642
  buffer.Append(reqBuf);
5542
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5643
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5543
5644
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5544
- else
5645
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5646
+ }
5647
+ else {
5545
5648
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5649
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5650
+ }
5546
5651
  changes.Append(globalParamsString);
5547
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5652
+ changes.Append(envVarsString);
5548
5653
  if (changes.Length > 0) {
5549
5654
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5550
5655
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5583,13 +5688,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5583
5688
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5584
5689
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5585
5690
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5691
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5586
5692
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5587
5693
  }
5588
5694
  }
5589
5695
  FlowMonitorQueue.Instance.enable(false);
5590
5696
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5591
5697
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5592
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5698
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5699
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5593
5700
  let dataStorage = window.localStorage;
5594
5701
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5595
5702
  if (ctxRemoved === "1") {
@@ -5906,21 +6013,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5906
6013
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5907
6014
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5908
6015
  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
6016
  get ScrambleMessages() {
5925
6017
  return this._scrambleMessages;
5926
6018
  }
@@ -5942,6 +6034,21 @@ class HandshakeResponse {
5942
6034
  get MaxInternalLogLevel() {
5943
6035
  return this._maxInternalLogLevel;
5944
6036
  }
6037
+ constructor(responseXML) {
6038
+ this._scrambleMessages = true;
6039
+ this._contextId = null;
6040
+ this._privateSessionId = null;
6041
+ this._inputPassword = false;
6042
+ this._httpTimeout = 0;
6043
+ this._systemLogin = null;
6044
+ this._maxInternalLogLevel = null;
6045
+ try {
6046
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
6047
+ }
6048
+ catch (ex) {
6049
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
6050
+ }
6051
+ }
5945
6052
  FillFromJSON(error, result) {
5946
6053
  if (error != null) {
5947
6054
  throw error;
@@ -6918,7 +7025,7 @@ ExpressionDict.expDesc = [
6918
7025
  null,
6919
7026
  new ExpDesc('N', 0, 0, 0, "", false),
6920
7027
  null,
6921
- new ExpDesc('B', 0, 2, 2, "BN", false),
7028
+ null,
6922
7029
  new ExpDesc('B', 0, 2, 2, "V ", false),
6923
7030
  null,
6924
7031
  null,
@@ -7367,12 +7474,12 @@ ExpressionDict.expDesc = [
7367
7474
  null,
7368
7475
  new ExpDesc('A', 0, 1, 1, "A", false),
7369
7476
  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),
7477
+ null,
7478
+ null,
7479
+ null,
7480
+ null,
7481
+ null,
7482
+ null,
7376
7483
  new ExpDesc('N', 0, 1, 1, "N", false),
7377
7484
  null,
7378
7485
  null,
@@ -7459,48 +7566,6 @@ ExpressionDict.expDesc = [
7459
7566
  new ExpDesc('U', 0, 0, 0, '', false),
7460
7567
  ];
7461
7568
 
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
7569
  class EventHandlerPosition {
7505
7570
  constructor() {
7506
7571
  this._handlerIdx = 0;
@@ -7557,6 +7622,9 @@ class EventHandlerPosition {
7557
7622
  case InternalInterface.MG_ACT_REC_SUFFIX:
7558
7623
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7559
7624
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7625
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7626
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7627
+ }
7560
7628
  if (this._handlerIdx === -1) {
7561
7629
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7562
7630
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7697,6 +7765,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7697
7765
  EventHandlerPosition.PHASE_GLOBAL = 3;
7698
7766
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7699
7767
 
7768
+ var DataViewCommandType;
7769
+ (function (DataViewCommandType) {
7770
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7771
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7772
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7773
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7774
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7775
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7776
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7777
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7778
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7779
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7780
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7781
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7782
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7783
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7784
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7785
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7786
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7787
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7788
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7789
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7790
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7791
+ })(DataViewCommandType || (DataViewCommandType = {}));
7792
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7793
+ get CommandTypeAttribute() {
7794
+ throw new NotImplementedException();
7795
+ }
7796
+ SerializeCommandData() {
7797
+ Debug.Assert(false, "Dataview commands need not be serialized");
7798
+ return null;
7799
+ }
7800
+ get ShouldSerialize() {
7801
+ return false;
7802
+ }
7803
+ constructor() {
7804
+ super();
7805
+ this.CommandType = 0;
7806
+ this.TaskTag = null;
7807
+ }
7808
+ }
7809
+
7700
7810
  class AddUserRangeDataviewCommand extends DataviewCommand {
7701
7811
  constructor() {
7702
7812
  super();
@@ -7916,12 +8026,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7916
8026
  }
7917
8027
 
7918
8028
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7919
- constructor() {
7920
- super();
7921
- this.TaskTag = null;
7922
- this.FldId = 0;
7923
- this.IgnoreSubformRecompute = false;
7924
- }
7925
8029
  get CommandTypeAttribute() {
7926
8030
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7927
8031
  }
@@ -7933,17 +8037,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7933
8037
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7934
8038
  return helper.GetString();
7935
8039
  }
8040
+ constructor() {
8041
+ super();
8042
+ this.TaskTag = null;
8043
+ this.FldId = 0;
8044
+ this.IgnoreSubformRecompute = false;
8045
+ }
7936
8046
  getCommandInfo() {
7937
8047
  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
8048
  }
7939
8049
  }
7940
8050
 
7941
8051
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7942
- constructor() {
7943
- super();
7944
- this.TaskTag = null;
7945
- this.ReversibleExit = false;
7946
- }
7947
8052
  get CommandTypeAttribute() {
7948
8053
  return ConstInterface.MG_ATTR_VAL_TRANS;
7949
8054
  }
@@ -7957,6 +8062,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7957
8062
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7958
8063
  return helper.GetString();
7959
8064
  }
8065
+ constructor() {
8066
+ super();
8067
+ this.TaskTag = null;
8068
+ this.ReversibleExit = false;
8069
+ }
7960
8070
  getCommandInfo() {
7961
8071
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7962
8072
  }
@@ -7975,6 +8085,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7975
8085
  }
7976
8086
 
7977
8087
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
8088
+ get CommandTypeAttribute() {
8089
+ return ConstInterface.MG_ATTR_VAL_EVAL;
8090
+ }
7978
8091
  constructor() {
7979
8092
  super();
7980
8093
  this.TaskTag = null;
@@ -7983,9 +8096,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7983
8096
  this.MprgCreator = null;
7984
8097
  this.LengthExpVal = Int32.MinValue;
7985
8098
  }
7986
- get CommandTypeAttribute() {
7987
- return ConstInterface.MG_ATTR_VAL_EVAL;
7988
- }
7989
8099
  SerializeCommandData() {
7990
8100
  let helper = new CommandSerializationHelper();
7991
8101
  helper.SerializeTaskTag(this.TaskTag);
@@ -8033,10 +8143,6 @@ class GlobalParamsQueryCommand extends QueryCommand {
8033
8143
  }
8034
8144
 
8035
8145
  class IniputForceWriteCommand extends ClientOriginatedCommand {
8036
- constructor() {
8037
- super();
8038
- this.Text = null;
8039
- }
8040
8146
  get CommandTypeAttribute() {
8041
8147
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
8042
8148
  }
@@ -8046,6 +8152,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
8046
8152
  SerializeCommandData() {
8047
8153
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
8048
8154
  }
8155
+ constructor() {
8156
+ super();
8157
+ this.Text = null;
8158
+ }
8049
8159
  getCommandInfo() {
8050
8160
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
8051
8161
  }
@@ -8336,13 +8446,6 @@ class CommandFactory {
8336
8446
  }
8337
8447
  }
8338
8448
 
8339
- class Sort {
8340
- constructor() {
8341
- this.fldIdx = 0;
8342
- this.dir = false;
8343
- }
8344
- }
8345
-
8346
8449
  var ParamParseResult;
8347
8450
  (function (ParamParseResult) {
8348
8451
  ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
@@ -8351,11 +8454,7 @@ var ParamParseResult;
8351
8454
  ParamParseResult[ParamParseResult["FAILED"] = 3] = "FAILED";
8352
8455
  })(ParamParseResult || (ParamParseResult = {}));
8353
8456
 
8354
- class PrmMap {
8355
- constructor() {
8356
- this.values = null;
8357
- this.values = new Dictionary();
8358
- }
8457
+ class PrmMap {
8359
8458
  getvalue(s) {
8360
8459
  if (this.values.ContainsKey(s))
8361
8460
  return this.values.get_Item(s);
@@ -8368,6 +8467,10 @@ class PrmMap {
8368
8467
  remove(s) {
8369
8468
  this.values.Remove(s);
8370
8469
  }
8470
+ constructor() {
8471
+ this.values = null;
8472
+ this.values = new Dictionary();
8473
+ }
8371
8474
  }
8372
8475
  class MirrorPrmMap extends PrmMap {
8373
8476
  constructor(type) {
@@ -8448,7 +8551,7 @@ class MirrorPrmMap extends PrmMap {
8448
8551
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8449
8552
  }
8450
8553
  }
8451
- RestoreGlobalParams(xml) {
8554
+ RestoreParams(xml) {
8452
8555
  let parser = new XmlParser(xml);
8453
8556
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8454
8557
  }
@@ -8523,6 +8626,7 @@ class Environment {
8523
8626
  this._debugMode = 0;
8524
8627
  this._significantNumSize = 0;
8525
8628
  this._specialAnsiExpression = false;
8629
+ this._specialImmediatehandlerEnd = false;
8526
8630
  this._specialShowStatusBarPanes = false;
8527
8631
  this._specialRouteToRootProgOnContextRecreation = false;
8528
8632
  this._specialCancelOnCreate = false;
@@ -8676,6 +8780,9 @@ class Environment {
8676
8780
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8677
8781
  this._localFlags = valueStr;
8678
8782
  break;
8783
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8784
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8785
+ break;
8679
8786
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8680
8787
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8681
8788
  break;
@@ -8882,6 +8989,9 @@ class Environment {
8882
8989
  GetLocalFlag(f) {
8883
8990
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8884
8991
  }
8992
+ getSpecialImmediateHandlerEnd() {
8993
+ return this._specialImmediatehandlerEnd;
8994
+ }
8885
8995
  getSpecialAnsiExpression() {
8886
8996
  return this._specialAnsiExpression;
8887
8997
  }
@@ -8951,6 +9061,12 @@ class Environment {
8951
9061
  }
8952
9062
  Environment.Instance = new Environment();
8953
9063
  class EnvironmentDetails {
9064
+ set UpdateInQueryMode(value) {
9065
+ this._updateInQueryMode = value;
9066
+ }
9067
+ set CreateInModifyMode(value) {
9068
+ this._createInModifyMode = value;
9069
+ }
8954
9070
  constructor() {
8955
9071
  this._createInModifyMode = false;
8956
9072
  this._updateInQueryMode = false;
@@ -8961,12 +9077,6 @@ class EnvironmentDetails {
8961
9077
  this.ProjDir = null;
8962
9078
  this.CompIdx = 0;
8963
9079
  }
8964
- set UpdateInQueryMode(value) {
8965
- this._updateInQueryMode = value;
8966
- }
8967
- set CreateInModifyMode(value) {
8968
- this._createInModifyMode = value;
8969
- }
8970
9080
  allowUpdateInQueryMode() {
8971
9081
  return this._updateInQueryMode;
8972
9082
  }
@@ -9054,17 +9164,6 @@ class GlobalParams extends MirrorPrmMap {
9054
9164
  GlobalParams.Instance = new GlobalParams();
9055
9165
 
9056
9166
  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
9167
  setIsLoggedIn(value) {
9069
9168
  this.IsLoggedIn = value;
9070
9169
  }
@@ -9084,6 +9183,17 @@ class UserDetails {
9084
9183
  UserDetails._instance = new UserDetails();
9085
9184
  return UserDetails._instance;
9086
9185
  }
9186
+ constructor() {
9187
+ this.UserName = null;
9188
+ this.UserID = null;
9189
+ this.UserInfo = null;
9190
+ this.Password = null;
9191
+ this.IsLoggedIn = false;
9192
+ this.UserName = NString.Empty;
9193
+ this.UserInfo = NString.Empty;
9194
+ this.IsLoggedIn = false;
9195
+ this.setUserID(NString.Empty);
9196
+ }
9087
9197
  fillData(parser) {
9088
9198
  let tokensVector;
9089
9199
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9920,8 +10030,7 @@ class MirrorString {
9920
10030
  this._reserved = false;
9921
10031
  }
9922
10032
  mirrorToXML() {
9923
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9924
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
10033
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9925
10034
  }
9926
10035
  init(name, xmlParser) {
9927
10036
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -11107,7 +11216,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11107
11216
  case ExpressionInterface.EXP_OP_CONTROL_ITEMS_REFRESH:
11108
11217
  val2 = valStack.pop();
11109
11218
  val1 = valStack.pop();
11110
- this.eval_op_controlItemRefresh(val1, val2, resVal);
11219
+ yield this.eval_op_controlItemRefresh(val1, val2, resVal);
11111
11220
  break;
11112
11221
  case ExpressionInterface.EXP_OP_VARCONTROLID:
11113
11222
  val1 = valStack.pop();
@@ -11497,11 +11606,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11497
11606
  val1 = valStack.pop();
11498
11607
  this.eval_op_eoy(resVal, val1);
11499
11608
  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
11609
  case ExpressionInterface.EXP_OP_VARSET:
11506
11610
  val2 = valStack.pop();
11507
11611
  val1 = valStack.pop();
@@ -11866,41 +11970,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11866
11970
  val1 = valStack.pop();
11867
11971
  this.eval_op_taskType(resVal, val1);
11868
11972
  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
11973
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11905
11974
  val1 = valStack.pop();
11906
11975
  this.eval_op_tsk_instance(resVal, val1);
@@ -13263,7 +13332,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13263
13332
  resVal.Attr = StorageAttribute.BOOLEAN;
13264
13333
  if ((parent >= 0 && parent < (this.ExpTask.getTaskDepth(false))) || parent === ExpressionEvaluator.TRIGGER_TASK) {
13265
13334
  let tsk = _super.GetContextTask.call(this, parent);
13266
- if (tsk != null) {
13335
+ if (tsk != null && tsk.getForm() != null) {
13267
13336
  let control = tsk.getForm().GetCtrl(val1.StrVal);
13268
13337
  if (control != null && control.isChoiceControl() && control.isDataCtrl()) {
13269
13338
  let command = CommandFactory.CreateControlItemsRefreshCommand(tsk.getTaskTag(), control);
@@ -13569,14 +13638,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13569
13638
  yield fld.updateDisplay();
13570
13639
  });
13571
13640
  }
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
13641
  eval_op_like(source, maskOrg, resVal) {
13581
13642
  let i;
13582
13643
  let j;
@@ -14137,75 +14198,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14137
14198
  resultStr.Replace('\\@', '@');
14138
14199
  resVal.StrVal = resultStr.ToString();
14139
14200
  }
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
14201
  eval_op_tsk_instance(resVal, Parent) {
14210
14202
  let tag = 0;
14211
14203
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -14219,88 +14211,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14219
14211
  resVal.MgNumVal = new NUM_TYPE();
14220
14212
  resVal.MgNumVal.NUM_4_LONG(tag);
14221
14213
  }
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
14214
  eval_op_getParam(resVal, name) {
14305
14215
  Debug.Assert(!name.IsNull && name.StrVal !== null);
14306
14216
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14824,6 +14734,12 @@ class DataViewBase extends GuiDataViewBase {
14824
14734
  }
14825
14735
 
14826
14736
  class Record {
14737
+ get InCompute() {
14738
+ return this._inCompute;
14739
+ }
14740
+ get InRecompute() {
14741
+ return this._inRecompute;
14742
+ }
14827
14743
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14828
14744
  this._id = Int32.MinValue;
14829
14745
  this.dbViewRowIdx = 0;
@@ -14841,12 +14757,6 @@ class Record {
14841
14757
  else
14842
14758
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14843
14759
  }
14844
- get InCompute() {
14845
- return this._inCompute;
14846
- }
14847
- get InRecompute() {
14848
- return this._inRecompute;
14849
- }
14850
14760
  constructor_0(dvOrTableCache) {
14851
14761
  if (dvOrTableCache instanceof DataViewBase)
14852
14762
  this._dataview = dvOrTableCache;
@@ -15642,14 +15552,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15642
15552
  Record.INCREASE = true;
15643
15553
  Record.DECREASE = false;
15644
15554
  class DcValuesReference extends ObjectReferenceBase {
15555
+ get DcValues() {
15556
+ return this.Referent;
15557
+ }
15645
15558
  constructor(controlId, referencedDcValues) {
15646
15559
  super(referencedDcValues);
15647
15560
  this.ditIdx = 0;
15648
15561
  this.ditIdx = controlId;
15649
15562
  }
15650
- get DcValues() {
15651
- return this.Referent;
15652
- }
15653
15563
  Clone() {
15654
15564
  return new DcValuesReference(this.ditIdx, this.Referent);
15655
15565
  }
@@ -15925,21 +15835,6 @@ class RecordsTable {
15925
15835
  RecordsTable.REC_NOT_FOUND = -1;
15926
15836
 
15927
15837
  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
15838
  get ReturnField() {
15944
15839
  if (this.returnfield === null && this._retVal !== null)
15945
15840
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15960,6 +15855,21 @@ class DataviewHeaderBase {
15960
15855
  get LinkEvaluateCondition() {
15961
15856
  return this._linkEvalCondition;
15962
15857
  }
15858
+ constructor(task) {
15859
+ this._cond = null;
15860
+ this._task = null;
15861
+ this.Loc = null;
15862
+ this._dir = '\0';
15863
+ this._id = 0;
15864
+ this._keyIdx = 0;
15865
+ this._retVal = null;
15866
+ this.returnfield = null;
15867
+ this.LinkStartAfterField = 0;
15868
+ this.KeyExpression = 0;
15869
+ this._task = task;
15870
+ this._keyIdx = -1;
15871
+ this._cond = new YesNoExp(true);
15872
+ }
15963
15873
  SetAttributes(attributes) {
15964
15874
  let keys = attributes.Keys;
15965
15875
  keys.forEach((text) => {
@@ -17297,16 +17207,16 @@ class RecordOutOfDataViewException extends ApplicationException {
17297
17207
  }
17298
17208
 
17299
17209
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17210
+ set SerializedDCVals(value) {
17211
+ this.parser.setXMLdata(value);
17212
+ this.parser.setCurrIndex(0);
17213
+ }
17300
17214
  constructor() {
17301
17215
  super();
17302
17216
  this.dcv = null;
17303
17217
  this.parser = null;
17304
17218
  this.parser = new XmlParser();
17305
17219
  }
17306
- set SerializedDCVals(value) {
17307
- this.parser.setXMLdata(value);
17308
- this.parser.setCurrIndex(0);
17309
- }
17310
17220
  Build() {
17311
17221
  this.dcv = null;
17312
17222
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -17364,28 +17274,61 @@ class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17364
17274
  }
17365
17275
  return super.ParseValues(valueStr, dataType, useHex);
17366
17276
  }
17367
- }
17368
-
17369
- const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
17370
- const COMPUTE_NEWREC_ON_CLIENT = 'C';
17371
- const UNKNOWN_RCMPS_NOT_INITED = 'M';
17372
- const UNKNOWN_RCMPS_FOUND = 'Y';
17373
- const INVOKED_FROM_OFFLINE_TASK = '-99999';
17374
- const CHUNK_CACHE_NEXT = 'N';
17375
- const CHUNK_CACHE_PREV = 'P';
17376
- const CHUNK_DV_BOTTOM = 'B';
17377
- const CHUNK_DV_TOP = 'T';
17378
- const COMPUTE_FLUSH_UPDATES = 'H';
17379
- const COMPUTE_NEWREC_ON_SERVER = 'S';
17380
- const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
17381
- const RECOVERY_ACT_BEGIN_SCREEN = 'S';
17382
- const RECOVERY_ACT_BEGIN_TABLE = 'T';
17383
- const RECOVERY_ACT_CANCEL = 'C';
17384
- const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
17385
- const RECOVERY_ACT_NONE = 'N';
17386
- const TRANS_STAT_CLOSED = 'C';
17387
- const TRANS_STAT_OPENED = 'O';
17388
- class DataView extends DataViewBase {
17277
+ }
17278
+
17279
+ const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
17280
+ const COMPUTE_NEWREC_ON_CLIENT = 'C';
17281
+ const UNKNOWN_RCMPS_NOT_INITED = 'M';
17282
+ const UNKNOWN_RCMPS_FOUND = 'Y';
17283
+ const INVOKED_FROM_OFFLINE_TASK = '-99999';
17284
+ const CHUNK_CACHE_NEXT = 'N';
17285
+ const CHUNK_CACHE_PREV = 'P';
17286
+ const CHUNK_DV_BOTTOM = 'B';
17287
+ const CHUNK_DV_TOP = 'T';
17288
+ const COMPUTE_FLUSH_UPDATES = 'H';
17289
+ const COMPUTE_NEWREC_ON_SERVER = 'S';
17290
+ const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
17291
+ const RECOVERY_ACT_BEGIN_SCREEN = 'S';
17292
+ const RECOVERY_ACT_BEGIN_TABLE = 'T';
17293
+ const RECOVERY_ACT_CANCEL = 'C';
17294
+ const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
17295
+ const RECOVERY_ACT_NONE = 'N';
17296
+ const TRANS_STAT_CLOSED = 'C';
17297
+ const TRANS_STAT_OPENED = 'O';
17298
+ class DataView extends DataViewBase {
17299
+ set InsertAt(value) {
17300
+ this._insertAt = value;
17301
+ }
17302
+ get InsertAt() {
17303
+ return this._insertAt;
17304
+ }
17305
+ get CurrRec() {
17306
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17307
+ }
17308
+ set CurrRec(value) {
17309
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17310
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17311
+ }
17312
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17313
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17314
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17315
+ }
17316
+ }
17317
+ get FlushUpdates() {
17318
+ return this._flushUpdates;
17319
+ }
17320
+ get HasMainTable() {
17321
+ return this._hasMainTable;
17322
+ }
17323
+ get CurrentRecId() {
17324
+ return this._currRecId;
17325
+ }
17326
+ get FirstRecord() {
17327
+ return this._recordsTab.getRecByIdx(0);
17328
+ }
17329
+ get LastRecord() {
17330
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17331
+ }
17389
17332
  constructor(taskOrDataView) {
17390
17333
  super();
17391
17334
  this._cacheLruTimeStamp = 0;
@@ -17437,39 +17380,6 @@ class DataView extends DataViewBase {
17437
17380
  Object.assign(this, taskOrDataView);
17438
17381
  }
17439
17382
  }
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
17383
  Init() {
17474
17384
  this.init();
17475
17385
  }
@@ -19099,6 +19009,12 @@ class ReturnResultBase {
19099
19009
  }
19100
19010
 
19101
19011
  class ReturnResult extends ReturnResultBase {
19012
+ get Success() {
19013
+ return this.success;
19014
+ }
19015
+ get ErrorDescription() {
19016
+ return this.errorDescription;
19017
+ }
19102
19018
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
19103
19019
  super();
19104
19020
  this.errorDescription = null;
@@ -19113,12 +19029,6 @@ class ReturnResult extends ReturnResultBase {
19113
19029
  else
19114
19030
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
19115
19031
  }
19116
- get Success() {
19117
- return this.success;
19118
- }
19119
- get ErrorDescription() {
19120
- return this.errorDescription;
19121
- }
19122
19032
  constructor_00(errorDescriptionCode) {
19123
19033
  this.success = false;
19124
19034
  this.ErrorId = errorDescriptionCode;
@@ -19222,13 +19132,13 @@ class Transaction {
19222
19132
  }
19223
19133
 
19224
19134
  class TaskTransactionManager {
19135
+ get isClosingTopmostTask() {
19136
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19137
+ }
19225
19138
  constructor(task) {
19226
19139
  this.task = null;
19227
19140
  this.task = task;
19228
19141
  }
19229
- get isClosingTopmostTask() {
19230
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19231
- }
19232
19142
  AllowTransaction(transBegin, forLocal) {
19233
19143
  let result;
19234
19144
  if (forLocal)
@@ -19609,12 +19519,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19609
19519
  }
19610
19520
 
19611
19521
  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
19522
  get TaskService() {
19619
19523
  return this.Task.TaskService;
19620
19524
  }
@@ -19629,6 +19533,12 @@ class DataviewManager extends DataviewManagerBase {
19629
19533
  get VirtualDataviewManager() {
19630
19534
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19631
19535
  }
19536
+ constructor(task) {
19537
+ super(task);
19538
+ this.RemoteDataviewManager = null;
19539
+ this.HasRemoteData = true;
19540
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19541
+ }
19632
19542
  Execute(command) {
19633
19543
  return __awaiter(this, void 0, void 0, function* () {
19634
19544
  return yield this.CurrentDataviewManager.Execute(command);
@@ -19636,6 +19546,13 @@ class DataviewManager extends DataviewManagerBase {
19636
19546
  }
19637
19547
  }
19638
19548
 
19549
+ class Sort {
19550
+ constructor() {
19551
+ this.fldIdx = 0;
19552
+ this.dir = false;
19553
+ }
19554
+ }
19555
+
19639
19556
  class SortCollection {
19640
19557
  constructor() {
19641
19558
  this._sortTab = null;
@@ -19764,23 +19681,9 @@ class MgForm extends MgFormBase {
19764
19681
  dv = this._task.DataView;
19765
19682
  return (dv);
19766
19683
  }
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) {
19684
+ moveInView(unit, direction) {
19781
19685
  return __awaiter(this, void 0, void 0, function* () {
19782
19686
  let oldRecId = Int32.MinValue;
19783
- let lastParkedCtrl;
19784
19687
  let currRec = this.GetDataview().getCurrRec();
19785
19688
  let oldTaskMode = ' ';
19786
19689
  let returnToVisibleLine = false;
@@ -19911,6 +19814,7 @@ class MgForm extends MgFormBase {
19911
19814
  try {
19912
19815
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19913
19816
  yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
19817
+ visibleLine = this.getLastValidRow();
19914
19818
  }
19915
19819
  catch (Exception) {
19916
19820
  }
@@ -20034,15 +19938,6 @@ class MgForm extends MgFormBase {
20034
19938
  else
20035
19939
  this.SetTableTopIndex();
20036
19940
  yield AccessHelper.eventsManager.handleInternalEventWithTask(this._task, InternalInterface.MG_ACT_REC_PREFIX);
20037
- if (returnToCtrl) {
20038
- lastParkedCtrl = this._task.getLastParkedCtrl();
20039
- if (lastParkedCtrl != null) {
20040
- let cursorMoved = yield lastParkedCtrl.invoke();
20041
- if (!cursorMoved) {
20042
- yield AccessHelper.eventsManager.HandleNonParkableControls(this._task);
20043
- }
20044
- }
20045
- }
20046
19941
  }
20047
19942
  catch (e) {
20048
19943
  if (e instanceof RecordOutOfDataViewException) {
@@ -22090,8 +21985,12 @@ class EventHandler {
22090
21985
  continue;
22091
21986
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
22092
21987
  continue;
22093
- if (!taskEnd)
22094
- yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
21988
+ if (!taskEnd) {
21989
+ let mainLevel = this._task.getMainLevel().toLowerCase();
21990
+ if ((yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE)) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
21991
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
21992
+ break;
21993
+ }
22095
21994
  if (this._taskMgdID !== mgdID)
22096
21995
  isChangedCurrWndRef.value = true;
22097
21996
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22902,13 +22801,6 @@ class UserEventsTable {
22902
22801
  }
22903
22802
 
22904
22803
  class FormsTable {
22905
- constructor(task, parentForm) {
22906
- this._task = null;
22907
- this._parentForm = null;
22908
- this._formsStringXml = null;
22909
- this._task = task;
22910
- this._parentForm = parentForm;
22911
- }
22912
22804
  get Count() {
22913
22805
  return this._formsStringXml.length;
22914
22806
  }
@@ -22917,6 +22809,13 @@ class FormsTable {
22917
22809
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22918
22810
  return null;
22919
22811
  }
22812
+ constructor(task, parentForm) {
22813
+ this._task = null;
22814
+ this._parentForm = null;
22815
+ this._formsStringXml = null;
22816
+ this._task = task;
22817
+ this._parentForm = parentForm;
22818
+ }
22920
22819
  fillData() {
22921
22820
  return __awaiter(this, void 0, void 0, function* () {
22922
22821
  this._formsStringXml = new List();
@@ -23112,6 +23011,47 @@ var Task_Direction;
23112
23011
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
23113
23012
  })(Task_Direction || (Task_Direction = {}));
23114
23013
  class Task extends TaskBase {
23014
+ get ParentTask() {
23015
+ return this._parentTask;
23016
+ }
23017
+ set TryingToCommit(value) {
23018
+ this._tryingToCommit = value;
23019
+ }
23020
+ get TryingToCommit() {
23021
+ return this._tryingToCommit;
23022
+ }
23023
+ get TaskService() {
23024
+ if (this._taskService == null)
23025
+ this._taskService = new RemoteTaskService();
23026
+ return this._taskService;
23027
+ }
23028
+ static get CommandsProcessor() {
23029
+ return CommandsProcessorManager.GetCommandsProcessor();
23030
+ }
23031
+ get LogicalStudioParentTask() {
23032
+ if (this.StudioParentTask === null && !super.isMainProg()) {
23033
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23034
+ }
23035
+ return this.StudioParentTask;
23036
+ }
23037
+ get KnownToServer() {
23038
+ return this._knownToServer;
23039
+ }
23040
+ set Transaction(value) {
23041
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
23042
+ }
23043
+ get Transaction() {
23044
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
23045
+ }
23046
+ get TaskDefinitionId() {
23047
+ if (this.taskDefinitionId === null) {
23048
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23049
+ }
23050
+ return this.taskDefinitionId;
23051
+ }
23052
+ static get IsBlockingBatch() {
23053
+ return false;
23054
+ }
23115
23055
  constructor(parent) {
23116
23056
  super();
23117
23057
  this._dvCache = null;
@@ -23180,47 +23120,6 @@ class Task extends TaskBase {
23180
23120
  }
23181
23121
  this.constructor_1(parent);
23182
23122
  }
23183
- get ParentTask() {
23184
- return this._parentTask;
23185
- }
23186
- set TryingToCommit(value) {
23187
- this._tryingToCommit = value;
23188
- }
23189
- get TryingToCommit() {
23190
- return this._tryingToCommit;
23191
- }
23192
- get TaskService() {
23193
- if (this._taskService == null)
23194
- this._taskService = new RemoteTaskService();
23195
- return this._taskService;
23196
- }
23197
- static get CommandsProcessor() {
23198
- return CommandsProcessorManager.GetCommandsProcessor();
23199
- }
23200
- get LogicalStudioParentTask() {
23201
- if (this.StudioParentTask === null && !super.isMainProg()) {
23202
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23203
- }
23204
- return this.StudioParentTask;
23205
- }
23206
- get KnownToServer() {
23207
- return this._knownToServer;
23208
- }
23209
- set Transaction(value) {
23210
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
23211
- }
23212
- get Transaction() {
23213
- return this.DataviewManager.CurrentDataviewManager.Transaction;
23214
- }
23215
- get TaskDefinitionId() {
23216
- if (this.taskDefinitionId === null) {
23217
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23218
- }
23219
- return this.taskDefinitionId;
23220
- }
23221
- static get IsBlockingBatch() {
23222
- return false;
23223
- }
23224
23123
  constructor_0() {
23225
23124
  this.ActionManager = new ActionManager();
23226
23125
  this.DataView = new DataView(this);
@@ -25718,6 +25617,9 @@ class CompMainPrgTable {
25718
25617
  }
25719
25618
 
25720
25619
  class MGData {
25620
+ get ForceModal() {
25621
+ return this.forceModal;
25622
+ }
25721
25623
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
25722
25624
  this._expHandlers = null;
25723
25625
  this._id = 0;
@@ -25738,9 +25640,6 @@ class MGData {
25738
25640
  else
25739
25641
  this.constructor_1(id, parent, isModal, forceModal);
25740
25642
  }
25741
- get ForceModal() {
25742
- return this.forceModal;
25743
- }
25744
25643
  constructor_0(id, parent, isModal) {
25745
25644
  this._timerHandlers = new HandlersTable();
25746
25645
  this._expHandlers = new HandlersTable();
@@ -29882,13 +29781,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29882
29781
  }
29883
29782
 
29884
29783
  class EnhancedVerifyCommand extends VerifyCommand {
29885
- constructor() {
29886
- super();
29887
- this._buttonsID = '\0';
29888
- this._image = '\0';
29889
- this._returnValStr = null;
29890
- this._returnVal = null;
29891
- }
29892
29784
  ProcessMessageBoxResponse(task, returnValue) {
29893
29785
  return __awaiter(this, void 0, void 0, function* () {
29894
29786
  if (task !== null)
@@ -29921,6 +29813,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29921
29813
  break;
29922
29814
  }
29923
29815
  }
29816
+ constructor() {
29817
+ super();
29818
+ this._buttonsID = '\0';
29819
+ this._image = '\0';
29820
+ this._returnValStr = null;
29821
+ this._returnVal = null;
29822
+ }
29924
29823
  }
29925
29824
 
29926
29825
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -30025,12 +29924,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
30025
29924
  }
30026
29925
 
30027
29926
  class ResultCommand extends ClientTargetedCommandBase {
30028
- constructor() {
30029
- super();
30030
- this._isNull = false;
30031
- this._attr = StorageAttribute.NONE;
30032
- this._val = null;
30033
- }
30034
29927
  Execute(res) {
30035
29928
  return __awaiter(this, void 0, void 0, function* () {
30036
29929
  if (this._isNull)
@@ -30058,6 +29951,12 @@ class ResultCommand extends ClientTargetedCommandBase {
30058
29951
  break;
30059
29952
  }
30060
29953
  }
29954
+ constructor() {
29955
+ super();
29956
+ this._isNull = false;
29957
+ this._attr = StorageAttribute.NONE;
29958
+ this._val = null;
29959
+ }
30061
29960
  }
30062
29961
 
30063
29962
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -30428,19 +30327,9 @@ class CommandsTable {
30428
30327
  }
30429
30328
  }
30430
30329
 
30431
- let CurrentClientVersion = '4.1000.0-dev4100.27';
30330
+ let CurrentClientVersion = '4.1000.0-dev4100.272';
30432
30331
 
30433
30332
  class ClientManager {
30434
- constructor() {
30435
- this._globalUniqueSessionId = null;
30436
- this._buttonIsClicked = false;
30437
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30438
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30439
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30440
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30441
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30442
- this.RegisterDelegates();
30443
- }
30444
30333
  static get Instance() {
30445
30334
  if (ClientManager._instance === null)
30446
30335
  ClientManager._instance = new ClientManager();
@@ -30642,6 +30531,16 @@ class ClientManager {
30642
30531
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
30643
30532
  }
30644
30533
  }
30534
+ constructor() {
30535
+ this._globalUniqueSessionId = null;
30536
+ this._buttonIsClicked = false;
30537
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30538
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30539
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30540
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30541
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30542
+ this.RegisterDelegates();
30543
+ }
30645
30544
  InitGuiManager() {
30646
30545
  Manager.EventsManager = EventsManager.Instance;
30647
30546
  Manager.DefaultServerName = ServerConfig.Instance.getServer();