@magic-xpa/engine 4.1000.0-dev4100.3 → 4.1000.0-dev4100.300

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 (54) 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/Event.mjs +4 -1
  22. package/esm2020/src/event/EventHandler.mjs +8 -3
  23. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  24. package/esm2020/src/event/EventsManager.mjs +2 -1
  25. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  26. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  27. package/esm2020/src/exp/ExpressionEvaluator.mjs +24 -176
  28. package/esm2020/src/gui/FormsTable.mjs +8 -8
  29. package/esm2020/src/gui/MgControl.mjs +10 -13
  30. package/esm2020/src/gui/MgForm.mjs +7 -23
  31. package/esm2020/src/http/HttpManager.mjs +8 -8
  32. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +35 -26
  33. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  34. package/esm2020/src/security/UserDetails.mjs +12 -12
  35. package/esm2020/src/tasks/MGData.mjs +4 -4
  36. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  37. package/esm2020/src/tasks/Task.mjs +43 -42
  38. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  39. package/esm2020/src/util/PrmMap.mjs +6 -6
  40. package/esm2020/src/util/ReturnResult.mjs +7 -7
  41. package/fesm2015/magic-xpa-engine.mjs +506 -566
  42. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  43. package/fesm2020/magic-xpa-engine.mjs +501 -530
  44. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  45. package/package.json +6 -6
  46. package/src/ConstInterface.d.ts +2 -0
  47. package/src/commands/ClientToServer/CommandFactory.d.ts +3 -0
  48. package/src/env/Environment.d.ts +2 -0
  49. package/src/exp/ExpressionEvaluator.d.ts +1 -9
  50. package/src/gui/MgControl.d.ts +0 -1
  51. package/src/gui/MgForm.d.ts +1 -3
  52. package/src/util/FlowMonitorQueue.d.ts +8 -0
  53. package/src/util/PrmMap.d.ts +1 -1
  54. package/magic-xpa-engine.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, HashUtils, DateTime, Dictionary, Stack, NChar, isNullOrUndefined, WebException, Thread, Encoding, Exception, isUndefined, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
3
3
  import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
4
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
4
+ import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, VectorType, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
5
5
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
6
6
  import { timer, Subject } from 'rxjs';
7
7
 
@@ -272,6 +272,7 @@ ConstInterface.MG_ATTR_LOCAL_AS400SET = "local_as400set";
272
272
  ConstInterface.MG_ATTR_LOCAL_EXTRA_GENGO = "local_extraGengo";
273
273
  ConstInterface.MG_ATTR_LOCAL_FLAGS = "local_flags";
274
274
  ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP = "SpecialAnsiExpression";
275
+ ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END = "SpecialImmediateHandlerEnd";
275
276
  ConstInterface.MG_ATTR_SPECIAL_SHOW_STATUSBAR_PANES = "SpecialShowStatusBarPanes";
276
277
  ConstInterface.MG_ATTR_SPECIAL_ROUTE_TO_ROOT_PROG_ON_CONTEXT_RECREATION = "SpecialRouteToRootProgramOnContextRecreation";
277
278
  ConstInterface.MG_ATTR_SPECIAL_SPECIAL_EDIT_LEFT_ALIGN = "SpecialEditLeftAlign";
@@ -476,6 +477,7 @@ ConstInterface.RC_TOKEN_DATA = "DATA=";
476
477
  ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
477
478
  ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
478
479
  ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
480
+ ConstInterface.ENV_VAR_LIST = "EnvVarList";
479
481
  ConstInterface.LAST_EXCEPTION = "LastException";
480
482
  ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
481
483
  ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
@@ -641,13 +643,6 @@ class CommandSerializationHelper {
641
643
  }
642
644
 
643
645
  class EventCommand extends ClientOriginatedCommandTaskTag {
644
- constructor(magicEvent) {
645
- super();
646
- this.TaskTag = null;
647
- this.MagicEvent = 0;
648
- this.ClientRecId = 0;
649
- this.MagicEvent = magicEvent;
650
- }
651
646
  get CommandTypeAttribute() {
652
647
  return ConstInterface.MG_ATTR_VAL_EVENT;
653
648
  }
@@ -663,6 +658,13 @@ class EventCommand extends ClientOriginatedCommandTaskTag {
663
658
  return false;
664
659
  return true;
665
660
  }
661
+ constructor(magicEvent) {
662
+ super();
663
+ this.TaskTag = null;
664
+ this.MagicEvent = 0;
665
+ this.ClientRecId = 0;
666
+ this.MagicEvent = magicEvent;
667
+ }
666
668
  SerializeCommandData() {
667
669
  let helper = new CommandSerializationHelper();
668
670
  helper.SerializeTaskTag(this.TaskTag);
@@ -1202,15 +1204,6 @@ class OpeningTaskDetails {
1202
1204
  }
1203
1205
 
1204
1206
  class MgControl extends MgControlBase {
1205
- constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1206
- if (arguments.length === 0)
1207
- super();
1208
- else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1209
- super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1210
- else
1211
- super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1212
- this.initialize();
1213
- }
1214
1207
  initialize() {
1215
1208
  this._focusedStopExecution = false;
1216
1209
  this._inControlSuffix = false;
@@ -1223,6 +1216,15 @@ class MgControl extends MgControlBase {
1223
1216
  this.HasZoomHandler = false;
1224
1217
  this.ArgList = null;
1225
1218
  }
1219
+ constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1220
+ if (arguments.length === 0)
1221
+ super();
1222
+ else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1223
+ super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1224
+ else
1225
+ super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1226
+ this.initialize();
1227
+ }
1226
1228
  GetVarIndex() {
1227
1229
  return super.getForm().getTask().DataView.Dvcount + this.veeIndx;
1228
1230
  }
@@ -1547,14 +1549,6 @@ class MgControl extends MgControlBase {
1547
1549
  }
1548
1550
  });
1549
1551
  }
1550
- refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1551
- const _super = Object.create(null, {
1552
- refreshAndSetItemsListForRadioButton: { get: () => super.refreshAndSetItemsListForRadioButton }
1553
- });
1554
- return __awaiter(this, void 0, void 0, function* () {
1555
- yield _super.refreshAndSetItemsListForRadioButton.call(this, line, execComputeChoice);
1556
- });
1557
- }
1558
1552
  getSubformTask() {
1559
1553
  return this._subformTask;
1560
1554
  }
@@ -2923,6 +2917,9 @@ class Event {
2923
2917
  case InternalInterface.MG_ACT_INDEX_CHANGE:
2924
2918
  description = 'Index Change';
2925
2919
  break;
2920
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
2921
+ description = 'Dump Environment';
2922
+ break;
2926
2923
  default:
2927
2924
  description = '';
2928
2925
  break;
@@ -3232,6 +3229,21 @@ class MgPriorityBlockingQueue {
3232
3229
  }
3233
3230
 
3234
3231
  class RunTimeEvent extends RunTimeEventBase {
3232
+ set Control(value) {
3233
+ this._ctrl = value;
3234
+ }
3235
+ set DisplayLine(value) {
3236
+ this._displayLine = value;
3237
+ }
3238
+ get Control() {
3239
+ return this._ctrl;
3240
+ }
3241
+ get ControlsList() {
3242
+ return this._controlsList;
3243
+ }
3244
+ get Direction() {
3245
+ return this._direction;
3246
+ }
3235
3247
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3236
3248
  super();
3237
3249
  this._controlsList = null;
@@ -3293,21 +3305,6 @@ class RunTimeEvent extends RunTimeEventBase {
3293
3305
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3294
3306
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3295
3307
  }
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
3308
  constructor_5(taskRef) {
3312
3309
  this.init(taskRef);
3313
3310
  }
@@ -3637,7 +3634,17 @@ class FlowMonitorQueue {
3637
3634
  this._isRecompute = false;
3638
3635
  this._isTask = false;
3639
3636
  this._isTaskFlow = false;
3637
+ this._isDataView = false;
3640
3638
  this.ShouldSerialize = false;
3639
+ this.padRight = (string, length, character = ' ') => {
3640
+ let result = "";
3641
+ let totalLength = length - string.length;
3642
+ for (let i = 0; i < totalLength; i++) {
3643
+ result = character + result;
3644
+ }
3645
+ result = result + string;
3646
+ return result;
3647
+ };
3641
3648
  }
3642
3649
  static get Instance() {
3643
3650
  if (FlowMonitorQueue._instance === null)
@@ -3695,6 +3702,9 @@ class FlowMonitorQueue {
3695
3702
  case ConstInterface.MG_ATTR_TASKFLW:
3696
3703
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3697
3704
  break;
3705
+ case ConstInterface.MG_TAG_DATAVIEW:
3706
+ this._isDataView = XmlParser.getBoolean(valueStr);
3707
+ break;
3698
3708
  case ConstInterface.MG_ATTR_RECOMP:
3699
3709
  this._isRecompute = XmlParser.getBoolean(valueStr);
3700
3710
  break;
@@ -3752,6 +3762,96 @@ class FlowMonitorQueue {
3752
3762
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3753
3763
  }
3754
3764
  }
3765
+ appendVirtualsAndParameters(currentValues) {
3766
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3767
+ act.setInfo(currentValues);
3768
+ this._queue.put(act);
3769
+ }
3770
+ addDataViewFlow(task) {
3771
+ if (this._isDataView) {
3772
+ let fldTab = task.DataView.GetFieldsTab();
3773
+ let preparedDisplayString = "";
3774
+ let finaldisplayData = "\n";
3775
+ let fldValue;
3776
+ let data = "";
3777
+ for (let i = 0; i < fldTab.getSize(); i++) {
3778
+ let fldDef = fldTab.getField(i);
3779
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3780
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3781
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3782
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3783
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3784
+ }
3785
+ }
3786
+ this.appendVirtualsAndParameters(finaldisplayData);
3787
+ }
3788
+ }
3789
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3790
+ switch (Storagetype) {
3791
+ case StorageAttribute.DOTNET:
3792
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3793
+ break;
3794
+ case StorageAttribute.BLOB:
3795
+ {
3796
+ if (BlobType.isValidBlob(data)) {
3797
+ let contentType = BlobType.getContentType(data);
3798
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3799
+ data = data != null ? BlobType.getString(data) : "";
3800
+ else
3801
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3802
+ }
3803
+ else
3804
+ data = "";
3805
+ }
3806
+ break;
3807
+ case StorageAttribute.NUMERIC:
3808
+ case StorageAttribute.DATE:
3809
+ case StorageAttribute.TIME:
3810
+ let conv = DisplayConvertor.Instance;
3811
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3812
+ break;
3813
+ case StorageAttribute.BLOB_VECTOR:
3814
+ let vecOutData;
3815
+ if (data == null) {
3816
+ vecOutData = "[]";
3817
+ }
3818
+ else {
3819
+ let cellAtt = vecCellType;
3820
+ let vector = new VectorType(data);
3821
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3822
+ vecOutData = "[]";
3823
+ else {
3824
+ let vecSize = VectorType.getVecSize(data);
3825
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3826
+ vecOutData = "[";
3827
+ for (let i = 0; i < vecSize; i++) {
3828
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3829
+ vecOutData += i < vecSize - 1 ? "," : "]";
3830
+ }
3831
+ }
3832
+ }
3833
+ data = vecOutData;
3834
+ break;
3835
+ case StorageAttribute.BOOLEAN:
3836
+ data = data == "1" ? "TRUE" : "FALSE";
3837
+ break;
3838
+ }
3839
+ return data;
3840
+ }
3841
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3842
+ let str = "";
3843
+ let finalStringToDisplay = "";
3844
+ if (addDoubleQuotes)
3845
+ finalStringToDisplay = finalStringToDisplay + "\"";
3846
+ finalStringToDisplay = finalStringToDisplay + name;
3847
+ if (addDoubleQuotes)
3848
+ finalStringToDisplay = finalStringToDisplay + "\"";
3849
+ let paddedName = this.padRight(name, 34);
3850
+ let formatOfStringVirtual = `Virtual`;
3851
+ let formatOfStringParameter = `Parameter`;
3852
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3853
+ return str;
3854
+ }
3755
3855
  addTaskFlowRec(id, state, taskInfo) {
3756
3856
  if (this._enabled && this._isTaskFlow) {
3757
3857
  let info;
@@ -3918,6 +4018,7 @@ class FlowMonitorQueue {
3918
4018
  }
3919
4019
  }
3920
4020
  FlowMonitorQueue._instance = null;
4021
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3921
4022
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3922
4023
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3923
4024
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3979,6 +4080,15 @@ class TimerObjectCollection {
3979
4080
  }
3980
4081
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3981
4082
  class RCTimer extends MgTimer {
4083
+ get TimerIntervalMiliSeconds() {
4084
+ return this._timerIntervalMilliSeconds;
4085
+ }
4086
+ set IsIdleTimer(value) {
4087
+ this._isIdle = value;
4088
+ }
4089
+ get IsIdleTimer() {
4090
+ return this._isIdle;
4091
+ }
3982
4092
  constructor(mgData, milliseconds, isIdle) {
3983
4093
  super(milliseconds);
3984
4094
  this._mgData = null;
@@ -3990,15 +4100,6 @@ class RCTimer extends MgTimer {
3990
4100
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3991
4101
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3992
4102
  }
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
4103
  GetMgdata() {
4003
4104
  return this._mgData;
4004
4105
  }
@@ -4144,6 +4245,9 @@ class ExecutionStack {
4144
4245
  }
4145
4246
 
4146
4247
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4248
+ get CommandTypeAttribute() {
4249
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4250
+ }
4147
4251
  constructor() {
4148
4252
  super();
4149
4253
  this.ExecutionStack = null;
@@ -4157,9 +4261,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4157
4261
  this.CheckOnly = false;
4158
4262
  this.DitIdx = Int32.MinValue;
4159
4263
  }
4160
- get CommandTypeAttribute() {
4161
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4162
- }
4163
4264
  SerializeCommandData() {
4164
4265
  let helper = new CommandSerializationHelper();
4165
4266
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4640,13 +4741,6 @@ class HttpClientAsync extends HttpClientBase {
4640
4741
  }
4641
4742
 
4642
4743
  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
4744
  getHttpClient() {
4651
4745
  if (this.IsAbortingMagicEngine)
4652
4746
  return new HttpClientSync();
@@ -4666,6 +4760,13 @@ class HttpManager {
4666
4760
  }
4667
4761
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4668
4762
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4763
+ constructor() {
4764
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4765
+ this._httpClientAsync = null;
4766
+ this._isAbortingMagicEngine = false;
4767
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4768
+ this.RegisterBasicDelegates();
4769
+ }
4669
4770
  RegisterBasicDelegates() {
4670
4771
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4671
4772
  }
@@ -5223,6 +5324,12 @@ var RequestStatus;
5223
5324
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5224
5325
  })(RequestStatus || (RequestStatus = {}));
5225
5326
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5327
+ static GetInstance() {
5328
+ if (RemoteCommandsProcessor._instance === null) {
5329
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5330
+ }
5331
+ return RemoteCommandsProcessor._instance;
5332
+ }
5226
5333
  constructor() {
5227
5334
  super();
5228
5335
  this._lastRequestTime = 0;
@@ -5233,12 +5340,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5233
5340
  HttpManager.GetInstance();
5234
5341
  this.RegisterDelegates();
5235
5342
  }
5236
- static GetInstance() {
5237
- if (RemoteCommandsProcessor._instance === null) {
5238
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5239
- }
5240
- return RemoteCommandsProcessor._instance;
5241
- }
5242
5343
  CheckAndSetSessionCounter(newSessionCounter) {
5243
5344
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5244
5345
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5274,10 +5375,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5274
5375
  return __awaiter(this, void 0, void 0, function* () {
5275
5376
  let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
5276
5377
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5378
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5277
5379
  let dataStorage = window.localStorage;
5278
5380
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5279
5381
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5280
5382
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5383
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5281
5384
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5282
5385
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5283
5386
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5514,6 +5617,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5514
5617
  let reqBuf;
5515
5618
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5516
5619
  let globalParamsString = null;
5620
+ let envVarsString = null;
5517
5621
  if (this.DelayCommandExecution)
5518
5622
  return;
5519
5623
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5539,12 +5643,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5539
5643
  let buffer = new StringBuilder();
5540
5644
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5541
5645
  buffer.Append(reqBuf);
5542
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5646
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5543
5647
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5544
- else
5648
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5649
+ }
5650
+ else {
5545
5651
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5652
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5653
+ }
5546
5654
  changes.Append(globalParamsString);
5547
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5655
+ changes.Append(envVarsString);
5548
5656
  if (changes.Length > 0) {
5549
5657
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5550
5658
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5583,13 +5691,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5583
5691
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5584
5692
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5585
5693
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5694
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5586
5695
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5587
5696
  }
5588
5697
  }
5589
5698
  FlowMonitorQueue.Instance.enable(false);
5590
5699
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5591
5700
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5592
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5701
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5702
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5593
5703
  let dataStorage = window.localStorage;
5594
5704
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5595
5705
  if (ctxRemoved === "1") {
@@ -5906,21 +6016,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5906
6016
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5907
6017
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5908
6018
  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
6019
  get ScrambleMessages() {
5925
6020
  return this._scrambleMessages;
5926
6021
  }
@@ -5942,6 +6037,21 @@ class HandshakeResponse {
5942
6037
  get MaxInternalLogLevel() {
5943
6038
  return this._maxInternalLogLevel;
5944
6039
  }
6040
+ constructor(responseXML) {
6041
+ this._scrambleMessages = true;
6042
+ this._contextId = null;
6043
+ this._privateSessionId = null;
6044
+ this._inputPassword = false;
6045
+ this._httpTimeout = 0;
6046
+ this._systemLogin = null;
6047
+ this._maxInternalLogLevel = null;
6048
+ try {
6049
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
6050
+ }
6051
+ catch (ex) {
6052
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
6053
+ }
6054
+ }
5945
6055
  FillFromJSON(error, result) {
5946
6056
  if (error != null) {
5947
6057
  throw error;
@@ -6918,7 +7028,7 @@ ExpressionDict.expDesc = [
6918
7028
  null,
6919
7029
  new ExpDesc('N', 0, 0, 0, "", false),
6920
7030
  null,
6921
- new ExpDesc('B', 0, 2, 2, "BN", false),
7031
+ null,
6922
7032
  new ExpDesc('B', 0, 2, 2, "V ", false),
6923
7033
  null,
6924
7034
  null,
@@ -7367,12 +7477,12 @@ ExpressionDict.expDesc = [
7367
7477
  null,
7368
7478
  new ExpDesc('A', 0, 1, 1, "A", false),
7369
7479
  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),
7480
+ null,
7481
+ null,
7482
+ null,
7483
+ null,
7484
+ null,
7485
+ null,
7376
7486
  new ExpDesc('N', 0, 1, 1, "N", false),
7377
7487
  null,
7378
7488
  null,
@@ -7459,48 +7569,6 @@ ExpressionDict.expDesc = [
7459
7569
  new ExpDesc('U', 0, 0, 0, '', false),
7460
7570
  ];
7461
7571
 
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
7572
  class EventHandlerPosition {
7505
7573
  constructor() {
7506
7574
  this._handlerIdx = 0;
@@ -7557,6 +7625,9 @@ class EventHandlerPosition {
7557
7625
  case InternalInterface.MG_ACT_REC_SUFFIX:
7558
7626
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7559
7627
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7628
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7629
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7630
+ }
7560
7631
  if (this._handlerIdx === -1) {
7561
7632
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7562
7633
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7697,6 +7768,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7697
7768
  EventHandlerPosition.PHASE_GLOBAL = 3;
7698
7769
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7699
7770
 
7771
+ var DataViewCommandType;
7772
+ (function (DataViewCommandType) {
7773
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7774
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7775
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7776
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7777
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7778
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7779
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7780
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7781
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7782
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7783
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7784
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7785
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7786
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7787
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7788
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7789
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7790
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7791
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7792
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7793
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7794
+ })(DataViewCommandType || (DataViewCommandType = {}));
7795
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7796
+ get CommandTypeAttribute() {
7797
+ throw new NotImplementedException();
7798
+ }
7799
+ SerializeCommandData() {
7800
+ Debug.Assert(false, "Dataview commands need not be serialized");
7801
+ return null;
7802
+ }
7803
+ get ShouldSerialize() {
7804
+ return false;
7805
+ }
7806
+ constructor() {
7807
+ super();
7808
+ this.CommandType = 0;
7809
+ this.TaskTag = null;
7810
+ }
7811
+ }
7812
+
7700
7813
  class AddUserRangeDataviewCommand extends DataviewCommand {
7701
7814
  constructor() {
7702
7815
  super();
@@ -7916,12 +8029,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7916
8029
  }
7917
8030
 
7918
8031
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7919
- constructor() {
7920
- super();
7921
- this.TaskTag = null;
7922
- this.FldId = 0;
7923
- this.IgnoreSubformRecompute = false;
7924
- }
7925
8032
  get CommandTypeAttribute() {
7926
8033
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7927
8034
  }
@@ -7933,17 +8040,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7933
8040
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7934
8041
  return helper.GetString();
7935
8042
  }
8043
+ constructor() {
8044
+ super();
8045
+ this.TaskTag = null;
8046
+ this.FldId = 0;
8047
+ this.IgnoreSubformRecompute = false;
8048
+ }
7936
8049
  getCommandInfo() {
7937
8050
  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
8051
  }
7939
8052
  }
7940
8053
 
7941
8054
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7942
- constructor() {
7943
- super();
7944
- this.TaskTag = null;
7945
- this.ReversibleExit = false;
7946
- }
7947
8055
  get CommandTypeAttribute() {
7948
8056
  return ConstInterface.MG_ATTR_VAL_TRANS;
7949
8057
  }
@@ -7957,6 +8065,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7957
8065
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7958
8066
  return helper.GetString();
7959
8067
  }
8068
+ constructor() {
8069
+ super();
8070
+ this.TaskTag = null;
8071
+ this.ReversibleExit = false;
8072
+ }
7960
8073
  getCommandInfo() {
7961
8074
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7962
8075
  }
@@ -7975,6 +8088,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7975
8088
  }
7976
8089
 
7977
8090
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
8091
+ get CommandTypeAttribute() {
8092
+ return ConstInterface.MG_ATTR_VAL_EVAL;
8093
+ }
7978
8094
  constructor() {
7979
8095
  super();
7980
8096
  this.TaskTag = null;
@@ -7983,9 +8099,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7983
8099
  this.MprgCreator = null;
7984
8100
  this.LengthExpVal = Int32.MinValue;
7985
8101
  }
7986
- get CommandTypeAttribute() {
7987
- return ConstInterface.MG_ATTR_VAL_EVAL;
7988
- }
7989
8102
  SerializeCommandData() {
7990
8103
  let helper = new CommandSerializationHelper();
7991
8104
  helper.SerializeTaskTag(this.TaskTag);
@@ -8033,10 +8146,6 @@ class GlobalParamsQueryCommand extends QueryCommand {
8033
8146
  }
8034
8147
 
8035
8148
  class IniputForceWriteCommand extends ClientOriginatedCommand {
8036
- constructor() {
8037
- super();
8038
- this.Text = null;
8039
- }
8040
8149
  get CommandTypeAttribute() {
8041
8150
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
8042
8151
  }
@@ -8046,6 +8155,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
8046
8155
  SerializeCommandData() {
8047
8156
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
8048
8157
  }
8158
+ constructor() {
8159
+ super();
8160
+ this.Text = null;
8161
+ }
8049
8162
  getCommandInfo() {
8050
8163
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
8051
8164
  }
@@ -8095,6 +8208,13 @@ class SelectProgramCommand extends ExecOperCommand {
8095
8208
  }
8096
8209
  }
8097
8210
 
8211
+ class ControlItemsRefreshCommand extends DataviewCommand {
8212
+ constructor() {
8213
+ super();
8214
+ this.Control = null;
8215
+ }
8216
+ }
8217
+
8098
8218
  class CommandFactory {
8099
8219
  static CreateEventCommand(taskTag, magicEvent) {
8100
8220
  let eventCommand = new EventCommand(magicEvent);
@@ -8113,6 +8233,13 @@ class CommandFactory {
8113
8233
  dataviewCommand.TaskTag = taskId;
8114
8234
  return dataviewCommand;
8115
8235
  }
8236
+ static CreateControlItemsRefreshCommand(taskId, control) {
8237
+ let command = new ControlItemsRefreshCommand();
8238
+ command.CommandType = DataViewCommandType.ControlItemsRefresh;
8239
+ command.TaskTag = taskId;
8240
+ command.Control = control;
8241
+ return command;
8242
+ }
8116
8243
  static CreateAddUserRangeDataviewCommand(taskId, userRange) {
8117
8244
  let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
8118
8245
  addUserRangeDataviewCommand.TaskTag = taskId;
@@ -8322,13 +8449,6 @@ class CommandFactory {
8322
8449
  }
8323
8450
  }
8324
8451
 
8325
- class Sort {
8326
- constructor() {
8327
- this.fldIdx = 0;
8328
- this.dir = false;
8329
- }
8330
- }
8331
-
8332
8452
  var ParamParseResult;
8333
8453
  (function (ParamParseResult) {
8334
8454
  ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
@@ -8338,10 +8458,6 @@ var ParamParseResult;
8338
8458
  })(ParamParseResult || (ParamParseResult = {}));
8339
8459
 
8340
8460
  class PrmMap {
8341
- constructor() {
8342
- this.values = null;
8343
- this.values = new Dictionary();
8344
- }
8345
8461
  getvalue(s) {
8346
8462
  if (this.values.ContainsKey(s))
8347
8463
  return this.values.get_Item(s);
@@ -8354,6 +8470,10 @@ class PrmMap {
8354
8470
  remove(s) {
8355
8471
  this.values.Remove(s);
8356
8472
  }
8473
+ constructor() {
8474
+ this.values = null;
8475
+ this.values = new Dictionary();
8476
+ }
8357
8477
  }
8358
8478
  class MirrorPrmMap extends PrmMap {
8359
8479
  constructor(type) {
@@ -8434,7 +8554,7 @@ class MirrorPrmMap extends PrmMap {
8434
8554
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8435
8555
  }
8436
8556
  }
8437
- RestoreGlobalParams(xml) {
8557
+ RestoreParams(xml) {
8438
8558
  let parser = new XmlParser(xml);
8439
8559
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8440
8560
  }
@@ -8509,6 +8629,7 @@ class Environment {
8509
8629
  this._debugMode = 0;
8510
8630
  this._significantNumSize = 0;
8511
8631
  this._specialAnsiExpression = false;
8632
+ this._specialImmediatehandlerEnd = false;
8512
8633
  this._specialShowStatusBarPanes = false;
8513
8634
  this._specialRouteToRootProgOnContextRecreation = false;
8514
8635
  this._specialCancelOnCreate = false;
@@ -8662,6 +8783,9 @@ class Environment {
8662
8783
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8663
8784
  this._localFlags = valueStr;
8664
8785
  break;
8786
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8787
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8788
+ break;
8665
8789
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8666
8790
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8667
8791
  break;
@@ -8868,6 +8992,9 @@ class Environment {
8868
8992
  GetLocalFlag(f) {
8869
8993
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8870
8994
  }
8995
+ getSpecialImmediateHandlerEnd() {
8996
+ return this._specialImmediatehandlerEnd;
8997
+ }
8871
8998
  getSpecialAnsiExpression() {
8872
8999
  return this._specialAnsiExpression;
8873
9000
  }
@@ -8937,6 +9064,12 @@ class Environment {
8937
9064
  }
8938
9065
  Environment.Instance = new Environment();
8939
9066
  class EnvironmentDetails {
9067
+ set UpdateInQueryMode(value) {
9068
+ this._updateInQueryMode = value;
9069
+ }
9070
+ set CreateInModifyMode(value) {
9071
+ this._createInModifyMode = value;
9072
+ }
8940
9073
  constructor() {
8941
9074
  this._createInModifyMode = false;
8942
9075
  this._updateInQueryMode = false;
@@ -8947,12 +9080,6 @@ class EnvironmentDetails {
8947
9080
  this.ProjDir = null;
8948
9081
  this.CompIdx = 0;
8949
9082
  }
8950
- set UpdateInQueryMode(value) {
8951
- this._updateInQueryMode = value;
8952
- }
8953
- set CreateInModifyMode(value) {
8954
- this._createInModifyMode = value;
8955
- }
8956
9083
  allowUpdateInQueryMode() {
8957
9084
  return this._updateInQueryMode;
8958
9085
  }
@@ -9040,17 +9167,6 @@ class GlobalParams extends MirrorPrmMap {
9040
9167
  GlobalParams.Instance = new GlobalParams();
9041
9168
 
9042
9169
  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
9170
  setIsLoggedIn(value) {
9055
9171
  this.IsLoggedIn = value;
9056
9172
  }
@@ -9070,6 +9186,17 @@ class UserDetails {
9070
9186
  UserDetails._instance = new UserDetails();
9071
9187
  return UserDetails._instance;
9072
9188
  }
9189
+ constructor() {
9190
+ this.UserName = null;
9191
+ this.UserID = null;
9192
+ this.UserInfo = null;
9193
+ this.Password = null;
9194
+ this.IsLoggedIn = false;
9195
+ this.UserName = NString.Empty;
9196
+ this.UserInfo = NString.Empty;
9197
+ this.IsLoggedIn = false;
9198
+ this.setUserID(NString.Empty);
9199
+ }
9073
9200
  fillData(parser) {
9074
9201
  let tokensVector;
9075
9202
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9906,8 +10033,7 @@ class MirrorString {
9906
10033
  this._reserved = false;
9907
10034
  }
9908
10035
  mirrorToXML() {
9909
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9910
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
10036
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9911
10037
  }
9912
10038
  init(name, xmlParser) {
9913
10039
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -11090,6 +11216,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11090
11216
  this.eval_op_VarDisplayName(resVal, val1);
11091
11217
  expStrTracker.resetNullResult();
11092
11218
  break;
11219
+ case ExpressionInterface.EXP_OP_CONTROL_ITEMS_REFRESH:
11220
+ val2 = valStack.pop();
11221
+ val1 = valStack.pop();
11222
+ yield this.eval_op_controlItemRefresh(val1, val2, resVal);
11223
+ break;
11093
11224
  case ExpressionInterface.EXP_OP_VARCONTROLID:
11094
11225
  val1 = valStack.pop();
11095
11226
  this.eval_op_VarControlID(resVal, val1);
@@ -11478,11 +11609,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11478
11609
  val1 = valStack.pop();
11479
11610
  this.eval_op_eoy(resVal, val1);
11480
11611
  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
11612
  case ExpressionInterface.EXP_OP_VARSET:
11487
11613
  val2 = valStack.pop();
11488
11614
  val1 = valStack.pop();
@@ -11847,41 +11973,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11847
11973
  val1 = valStack.pop();
11848
11974
  this.eval_op_taskType(resVal, val1);
11849
11975
  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
11976
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11886
11977
  val1 = valStack.pop();
11887
11978
  this.eval_op_tsk_instance(resVal, val1);
@@ -13234,6 +13325,28 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13234
13325
  resVal.StrVal = fld.VarDisplayName;
13235
13326
  }
13236
13327
  }
13328
+ eval_op_controlItemRefresh(val1, val2, resVal) {
13329
+ const _super = Object.create(null, {
13330
+ GetContextTask: { get: () => super.GetContextTask }
13331
+ });
13332
+ return __awaiter(this, void 0, void 0, function* () {
13333
+ let success = false;
13334
+ let parent = val2.MgNumVal.NUM_2_LONG();
13335
+ resVal.Attr = StorageAttribute.BOOLEAN;
13336
+ if ((parent >= 0 && parent < (this.ExpTask.getTaskDepth(false))) || parent === ExpressionEvaluator.TRIGGER_TASK) {
13337
+ let tsk = _super.GetContextTask.call(this, parent);
13338
+ if (tsk != null && tsk.getForm() != null) {
13339
+ let control = tsk.getForm().GetCtrl(val1.StrVal);
13340
+ if (control != null && control.isChoiceControl() && control.isDataCtrl()) {
13341
+ let command = CommandFactory.CreateControlItemsRefreshCommand(tsk.getTaskTag(), control);
13342
+ yield tsk.DataviewManager.CurrentDataviewManager.Execute(command);
13343
+ success = true;
13344
+ }
13345
+ }
13346
+ }
13347
+ resVal.BoolVal = success;
13348
+ });
13349
+ }
13237
13350
  eval_op_VarControlID(resVal, val1) {
13238
13351
  let ret = 0;
13239
13352
  if (val1.MgNumVal !== null) {
@@ -13528,14 +13641,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13528
13641
  yield fld.updateDisplay();
13529
13642
  });
13530
13643
  }
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
13644
  eval_op_like(source, maskOrg, resVal) {
13540
13645
  let i;
13541
13646
  let j;
@@ -14096,75 +14201,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14096
14201
  resultStr.Replace('\\@', '@');
14097
14202
  resVal.StrVal = resultStr.ToString();
14098
14203
  }
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
14204
  eval_op_tsk_instance(resVal, Parent) {
14169
14205
  let tag = 0;
14170
14206
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -14178,88 +14214,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14178
14214
  resVal.MgNumVal = new NUM_TYPE();
14179
14215
  resVal.MgNumVal.NUM_4_LONG(tag);
14180
14216
  }
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
14217
  eval_op_getParam(resVal, name) {
14264
14218
  Debug.Assert(!name.IsNull && name.StrVal !== null);
14265
14219
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14783,6 +14737,12 @@ class DataViewBase extends GuiDataViewBase {
14783
14737
  }
14784
14738
 
14785
14739
  class Record {
14740
+ get InCompute() {
14741
+ return this._inCompute;
14742
+ }
14743
+ get InRecompute() {
14744
+ return this._inRecompute;
14745
+ }
14786
14746
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14787
14747
  this._id = Int32.MinValue;
14788
14748
  this.dbViewRowIdx = 0;
@@ -14800,12 +14760,6 @@ class Record {
14800
14760
  else
14801
14761
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14802
14762
  }
14803
- get InCompute() {
14804
- return this._inCompute;
14805
- }
14806
- get InRecompute() {
14807
- return this._inRecompute;
14808
- }
14809
14763
  constructor_0(dvOrTableCache) {
14810
14764
  if (dvOrTableCache instanceof DataViewBase)
14811
14765
  this._dataview = dvOrTableCache;
@@ -15601,14 +15555,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15601
15555
  Record.INCREASE = true;
15602
15556
  Record.DECREASE = false;
15603
15557
  class DcValuesReference extends ObjectReferenceBase {
15558
+ get DcValues() {
15559
+ return this.Referent;
15560
+ }
15604
15561
  constructor(controlId, referencedDcValues) {
15605
15562
  super(referencedDcValues);
15606
15563
  this.ditIdx = 0;
15607
15564
  this.ditIdx = controlId;
15608
15565
  }
15609
- get DcValues() {
15610
- return this.Referent;
15611
- }
15612
15566
  Clone() {
15613
15567
  return new DcValuesReference(this.ditIdx, this.Referent);
15614
15568
  }
@@ -15884,21 +15838,6 @@ class RecordsTable {
15884
15838
  RecordsTable.REC_NOT_FOUND = -1;
15885
15839
 
15886
15840
  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
15841
  get ReturnField() {
15903
15842
  if (this.returnfield === null && this._retVal !== null)
15904
15843
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15919,6 +15858,21 @@ class DataviewHeaderBase {
15919
15858
  get LinkEvaluateCondition() {
15920
15859
  return this._linkEvalCondition;
15921
15860
  }
15861
+ constructor(task) {
15862
+ this._cond = null;
15863
+ this._task = null;
15864
+ this.Loc = null;
15865
+ this._dir = '\0';
15866
+ this._id = 0;
15867
+ this._keyIdx = 0;
15868
+ this._retVal = null;
15869
+ this.returnfield = null;
15870
+ this.LinkStartAfterField = 0;
15871
+ this.KeyExpression = 0;
15872
+ this._task = task;
15873
+ this._keyIdx = -1;
15874
+ this._cond = new YesNoExp(true);
15875
+ }
15922
15876
  SetAttributes(attributes) {
15923
15877
  let keys = attributes.Keys;
15924
15878
  keys.forEach((text) => {
@@ -17256,16 +17210,16 @@ class RecordOutOfDataViewException extends ApplicationException {
17256
17210
  }
17257
17211
 
17258
17212
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17213
+ set SerializedDCVals(value) {
17214
+ this.parser.setXMLdata(value);
17215
+ this.parser.setCurrIndex(0);
17216
+ }
17259
17217
  constructor() {
17260
17218
  super();
17261
17219
  this.dcv = null;
17262
17220
  this.parser = null;
17263
17221
  this.parser = new XmlParser();
17264
17222
  }
17265
- set SerializedDCVals(value) {
17266
- this.parser.setXMLdata(value);
17267
- this.parser.setCurrIndex(0);
17268
- }
17269
17223
  Build() {
17270
17224
  this.dcv = null;
17271
17225
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -17345,6 +17299,39 @@ const RECOVERY_ACT_NONE = 'N';
17345
17299
  const TRANS_STAT_CLOSED = 'C';
17346
17300
  const TRANS_STAT_OPENED = 'O';
17347
17301
  class DataView extends DataViewBase {
17302
+ set InsertAt(value) {
17303
+ this._insertAt = value;
17304
+ }
17305
+ get InsertAt() {
17306
+ return this._insertAt;
17307
+ }
17308
+ get CurrRec() {
17309
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17310
+ }
17311
+ set CurrRec(value) {
17312
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17313
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17314
+ }
17315
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17316
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17317
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17318
+ }
17319
+ }
17320
+ get FlushUpdates() {
17321
+ return this._flushUpdates;
17322
+ }
17323
+ get HasMainTable() {
17324
+ return this._hasMainTable;
17325
+ }
17326
+ get CurrentRecId() {
17327
+ return this._currRecId;
17328
+ }
17329
+ get FirstRecord() {
17330
+ return this._recordsTab.getRecByIdx(0);
17331
+ }
17332
+ get LastRecord() {
17333
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17334
+ }
17348
17335
  constructor(taskOrDataView) {
17349
17336
  super();
17350
17337
  this._cacheLruTimeStamp = 0;
@@ -17396,39 +17383,6 @@ class DataView extends DataViewBase {
17396
17383
  Object.assign(this, taskOrDataView);
17397
17384
  }
17398
17385
  }
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
17386
  Init() {
17433
17387
  this.init();
17434
17388
  }
@@ -19058,6 +19012,12 @@ class ReturnResultBase {
19058
19012
  }
19059
19013
 
19060
19014
  class ReturnResult extends ReturnResultBase {
19015
+ get Success() {
19016
+ return this.success;
19017
+ }
19018
+ get ErrorDescription() {
19019
+ return this.errorDescription;
19020
+ }
19061
19021
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
19062
19022
  super();
19063
19023
  this.errorDescription = null;
@@ -19072,12 +19032,6 @@ class ReturnResult extends ReturnResultBase {
19072
19032
  else
19073
19033
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
19074
19034
  }
19075
- get Success() {
19076
- return this.success;
19077
- }
19078
- get ErrorDescription() {
19079
- return this.errorDescription;
19080
- }
19081
19035
  constructor_00(errorDescriptionCode) {
19082
19036
  this.success = false;
19083
19037
  this.ErrorId = errorDescriptionCode;
@@ -19181,13 +19135,13 @@ class Transaction {
19181
19135
  }
19182
19136
 
19183
19137
  class TaskTransactionManager {
19138
+ get isClosingTopmostTask() {
19139
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19140
+ }
19184
19141
  constructor(task) {
19185
19142
  this.task = null;
19186
19143
  this.task = task;
19187
19144
  }
19188
- get isClosingTopmostTask() {
19189
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19190
- }
19191
19145
  AllowTransaction(transBegin, forLocal) {
19192
19146
  let result;
19193
19147
  if (forLocal)
@@ -19568,12 +19522,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19568
19522
  }
19569
19523
 
19570
19524
  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
19525
  get TaskService() {
19578
19526
  return this.Task.TaskService;
19579
19527
  }
@@ -19588,6 +19536,12 @@ class DataviewManager extends DataviewManagerBase {
19588
19536
  get VirtualDataviewManager() {
19589
19537
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19590
19538
  }
19539
+ constructor(task) {
19540
+ super(task);
19541
+ this.RemoteDataviewManager = null;
19542
+ this.HasRemoteData = true;
19543
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19544
+ }
19591
19545
  Execute(command) {
19592
19546
  return __awaiter(this, void 0, void 0, function* () {
19593
19547
  return yield this.CurrentDataviewManager.Execute(command);
@@ -19595,6 +19549,13 @@ class DataviewManager extends DataviewManagerBase {
19595
19549
  }
19596
19550
  }
19597
19551
 
19552
+ class Sort {
19553
+ constructor() {
19554
+ this.fldIdx = 0;
19555
+ this.dir = false;
19556
+ }
19557
+ }
19558
+
19598
19559
  class SortCollection {
19599
19560
  constructor() {
19600
19561
  this._sortTab = null;
@@ -19723,23 +19684,9 @@ class MgForm extends MgFormBase {
19723
19684
  dv = this._task.DataView;
19724
19685
  return (dv);
19725
19686
  }
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) {
19687
+ moveInView(unit, direction) {
19740
19688
  return __awaiter(this, void 0, void 0, function* () {
19741
19689
  let oldRecId = Int32.MinValue;
19742
- let lastParkedCtrl;
19743
19690
  let currRec = this.GetDataview().getCurrRec();
19744
19691
  let oldTaskMode = ' ';
19745
19692
  let returnToVisibleLine = false;
@@ -19870,6 +19817,7 @@ class MgForm extends MgFormBase {
19870
19817
  try {
19871
19818
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19872
19819
  yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
19820
+ visibleLine = this.getLastValidRow();
19873
19821
  }
19874
19822
  catch (Exception) {
19875
19823
  }
@@ -19993,15 +19941,6 @@ class MgForm extends MgFormBase {
19993
19941
  else
19994
19942
  this.SetTableTopIndex();
19995
19943
  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
19944
  }
20006
19945
  catch (e) {
20007
19946
  if (e instanceof RecordOutOfDataViewException) {
@@ -20590,8 +20529,10 @@ class MgForm extends MgFormBase {
20590
20529
  finally {
20591
20530
  this._inRefreshDisp = false;
20592
20531
  }
20593
- if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed))
20532
+ if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed)) {
20594
20533
  this.FormRefreshed = true;
20534
+ Commands.addNoParameters(CommandType.SET_WC_IDLE, this);
20535
+ }
20595
20536
  return true;
20596
20537
  });
20597
20538
  }
@@ -22049,8 +21990,12 @@ class EventHandler {
22049
21990
  continue;
22050
21991
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
22051
21992
  continue;
22052
- if (!taskEnd)
22053
- yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
21993
+ if (!taskEnd) {
21994
+ let mainLevel = this._task.getMainLevel().toLowerCase();
21995
+ if ((yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE)) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
21996
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
21997
+ break;
21998
+ }
22054
21999
  if (this._taskMgdID !== mgdID)
22055
22000
  isChangedCurrWndRef.value = true;
22056
22001
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22861,13 +22806,6 @@ class UserEventsTable {
22861
22806
  }
22862
22807
 
22863
22808
  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
22809
  get Count() {
22872
22810
  return this._formsStringXml.length;
22873
22811
  }
@@ -22876,6 +22814,13 @@ class FormsTable {
22876
22814
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22877
22815
  return null;
22878
22816
  }
22817
+ constructor(task, parentForm) {
22818
+ this._task = null;
22819
+ this._parentForm = null;
22820
+ this._formsStringXml = null;
22821
+ this._task = task;
22822
+ this._parentForm = parentForm;
22823
+ }
22879
22824
  fillData() {
22880
22825
  return __awaiter(this, void 0, void 0, function* () {
22881
22826
  this._formsStringXml = new List();
@@ -23071,6 +23016,47 @@ var Task_Direction;
23071
23016
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
23072
23017
  })(Task_Direction || (Task_Direction = {}));
23073
23018
  class Task extends TaskBase {
23019
+ get ParentTask() {
23020
+ return this._parentTask;
23021
+ }
23022
+ set TryingToCommit(value) {
23023
+ this._tryingToCommit = value;
23024
+ }
23025
+ get TryingToCommit() {
23026
+ return this._tryingToCommit;
23027
+ }
23028
+ get TaskService() {
23029
+ if (this._taskService == null)
23030
+ this._taskService = new RemoteTaskService();
23031
+ return this._taskService;
23032
+ }
23033
+ static get CommandsProcessor() {
23034
+ return CommandsProcessorManager.GetCommandsProcessor();
23035
+ }
23036
+ get LogicalStudioParentTask() {
23037
+ if (this.StudioParentTask === null && !super.isMainProg()) {
23038
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23039
+ }
23040
+ return this.StudioParentTask;
23041
+ }
23042
+ get KnownToServer() {
23043
+ return this._knownToServer;
23044
+ }
23045
+ set Transaction(value) {
23046
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
23047
+ }
23048
+ get Transaction() {
23049
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
23050
+ }
23051
+ get TaskDefinitionId() {
23052
+ if (this.taskDefinitionId === null) {
23053
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23054
+ }
23055
+ return this.taskDefinitionId;
23056
+ }
23057
+ static get IsBlockingBatch() {
23058
+ return false;
23059
+ }
23074
23060
  constructor(parent) {
23075
23061
  super();
23076
23062
  this._dvCache = null;
@@ -23139,47 +23125,6 @@ class Task extends TaskBase {
23139
23125
  }
23140
23126
  this.constructor_1(parent);
23141
23127
  }
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
23128
  constructor_0() {
23184
23129
  this.ActionManager = new ActionManager();
23185
23130
  this.DataView = new DataView(this);
@@ -25058,6 +25003,7 @@ class Task extends TaskBase {
25058
25003
  this.ActionManager.enable(InternalInterface.MG_ACT_SORT_RECORDS, enable);
25059
25004
  enable = yield this.checkProp(PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX, true);
25060
25005
  this.ActionManager.enable(InternalInterface.MG_ACT_VIEW_BY_KEY, enable);
25006
+ this.ActionManager.enable(InternalInterface.MG_ACT_DUMP_ENVIRONMENT, true);
25061
25007
  });
25062
25008
  }
25063
25009
  setEnableZoomHandler() {
@@ -25677,6 +25623,9 @@ class CompMainPrgTable {
25677
25623
  }
25678
25624
 
25679
25625
  class MGData {
25626
+ get ForceModal() {
25627
+ return this.forceModal;
25628
+ }
25680
25629
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
25681
25630
  this._expHandlers = null;
25682
25631
  this._id = 0;
@@ -25697,9 +25646,6 @@ class MGData {
25697
25646
  else
25698
25647
  this.constructor_1(id, parent, isModal, forceModal);
25699
25648
  }
25700
- get ForceModal() {
25701
- return this.forceModal;
25702
- }
25703
25649
  constructor_0(id, parent, isModal) {
25704
25650
  this._timerHandlers = new HandlersTable();
25705
25651
  this._expHandlers = new HandlersTable();
@@ -28230,6 +28176,7 @@ class EventsManager {
28230
28176
  }
28231
28177
  break;
28232
28178
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
28179
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
28233
28180
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
28234
28181
  cmdsToServer.Add(cmd);
28235
28182
  yield CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -29841,13 +29788,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29841
29788
  }
29842
29789
 
29843
29790
  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
29791
  ProcessMessageBoxResponse(task, returnValue) {
29852
29792
  return __awaiter(this, void 0, void 0, function* () {
29853
29793
  if (task !== null)
@@ -29880,6 +29820,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29880
29820
  break;
29881
29821
  }
29882
29822
  }
29823
+ constructor() {
29824
+ super();
29825
+ this._buttonsID = '\0';
29826
+ this._image = '\0';
29827
+ this._returnValStr = null;
29828
+ this._returnVal = null;
29829
+ }
29883
29830
  }
29884
29831
 
29885
29832
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -29984,12 +29931,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
29984
29931
  }
29985
29932
 
29986
29933
  class ResultCommand extends ClientTargetedCommandBase {
29987
- constructor() {
29988
- super();
29989
- this._isNull = false;
29990
- this._attr = StorageAttribute.NONE;
29991
- this._val = null;
29992
- }
29993
29934
  Execute(res) {
29994
29935
  return __awaiter(this, void 0, void 0, function* () {
29995
29936
  if (this._isNull)
@@ -30017,6 +29958,12 @@ class ResultCommand extends ClientTargetedCommandBase {
30017
29958
  break;
30018
29959
  }
30019
29960
  }
29961
+ constructor() {
29962
+ super();
29963
+ this._isNull = false;
29964
+ this._attr = StorageAttribute.NONE;
29965
+ this._val = null;
29966
+ }
30020
29967
  }
30021
29968
 
30022
29969
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -30387,19 +30334,9 @@ class CommandsTable {
30387
30334
  }
30388
30335
  }
30389
30336
 
30390
- let CurrentClientVersion = '4.1000.0-dev4100.3';
30337
+ let CurrentClientVersion = '4.1000.0-dev4100.300';
30391
30338
 
30392
30339
  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
30340
  static get Instance() {
30404
30341
  if (ClientManager._instance === null)
30405
30342
  ClientManager._instance = new ClientManager();
@@ -30601,6 +30538,16 @@ class ClientManager {
30601
30538
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
30602
30539
  }
30603
30540
  }
30541
+ constructor() {
30542
+ this._globalUniqueSessionId = null;
30543
+ this._buttonIsClicked = false;
30544
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30545
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30546
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30547
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30548
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30549
+ this.RegisterDelegates();
30550
+ }
30604
30551
  InitGuiManager() {
30605
30552
  Manager.EventsManager = EventsManager.Instance;
30606
30553
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -30828,13 +30775,6 @@ class MagicBridge {
30828
30775
  }
30829
30776
  }
30830
30777
 
30831
- class ControlItemsRefreshCommand extends DataviewCommand {
30832
- constructor() {
30833
- super();
30834
- this.Control = null;
30835
- }
30836
- }
30837
-
30838
30778
  class DataViewOutputCommand extends DataviewCommand {
30839
30779
  constructor(OutputCommandType) {
30840
30780
  super();