@magic-xpa/engine 4.901.0-dev491.4 → 4.1000.0-Time24h-dev4100.351

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 (57) hide show
  1. package/esm2020/src/ClientManager.mjs +12 -12
  2. package/esm2020/src/ConstInterface.mjs +3 -2
  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 +10 -1
  25. package/esm2020/src/event/IEventsManager.mjs +1 -1
  26. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  27. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  28. package/esm2020/src/exp/ExpressionEvaluator.mjs +24 -176
  29. package/esm2020/src/gui/FormsTable.mjs +8 -8
  30. package/esm2020/src/gui/MgControl.mjs +10 -13
  31. package/esm2020/src/gui/MgForm.mjs +7 -2
  32. package/esm2020/src/http/HttpManager.mjs +8 -8
  33. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +47 -27
  34. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  35. package/esm2020/src/security/UserDetails.mjs +12 -12
  36. package/esm2020/src/tasks/MGData.mjs +4 -4
  37. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  38. package/esm2020/src/tasks/Task.mjs +43 -42
  39. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  40. package/esm2020/src/util/PrmMap.mjs +6 -6
  41. package/esm2020/src/util/ReturnResult.mjs +7 -7
  42. package/fesm2015/magic-xpa-engine.mjs +550 -567
  43. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  44. package/fesm2020/magic-xpa-engine.mjs +551 -541
  45. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  46. package/package.json +6 -6
  47. package/src/ConstInterface.d.ts +2 -1
  48. package/src/commands/ClientToServer/CommandFactory.d.ts +3 -0
  49. package/src/env/Environment.d.ts +2 -0
  50. package/src/event/EventsManager.d.ts +3 -0
  51. package/src/event/IEventsManager.d.ts +2 -0
  52. package/src/exp/ExpressionEvaluator.d.ts +1 -9
  53. package/src/gui/MgControl.d.ts +0 -1
  54. package/src/remote/RemoteCommandsProcessor.d.ts +1 -0
  55. package/src/util/FlowMonitorQueue.d.ts +8 -0
  56. package/src/util/PrmMap.d.ts +1 -1
  57. package/magic-xpa-engine.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, HashUtils, DateTime, Dictionary, Stack, NChar, isNullOrUndefined, WebException, Thread, Encoding, Exception, isUndefined, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
2
2
  import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
3
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
3
+ import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, VectorType, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
4
4
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
5
5
  import { timer, Subject } from 'rxjs';
6
6
 
@@ -38,7 +38,6 @@ var ClientTargetedCommandType;
38
38
  })(ClientTargetedCommandType || (ClientTargetedCommandType = {}));
39
39
 
40
40
  class ConstInterface {
41
- ;
42
41
  }
43
42
  ConstInterface.MG_TAG_CONTEXT = "context";
44
43
  ConstInterface.MG_TAG_ENV = "env";
@@ -272,6 +271,7 @@ ConstInterface.MG_ATTR_LOCAL_AS400SET = "local_as400set";
272
271
  ConstInterface.MG_ATTR_LOCAL_EXTRA_GENGO = "local_extraGengo";
273
272
  ConstInterface.MG_ATTR_LOCAL_FLAGS = "local_flags";
274
273
  ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP = "SpecialAnsiExpression";
274
+ ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END = "SpecialImmediateHandlerEnd";
275
275
  ConstInterface.MG_ATTR_SPECIAL_SHOW_STATUSBAR_PANES = "SpecialShowStatusBarPanes";
276
276
  ConstInterface.MG_ATTR_SPECIAL_ROUTE_TO_ROOT_PROG_ON_CONTEXT_RECREATION = "SpecialRouteToRootProgramOnContextRecreation";
277
277
  ConstInterface.MG_ATTR_SPECIAL_SPECIAL_EDIT_LEFT_ALIGN = "SpecialEditLeftAlign";
@@ -476,6 +476,7 @@ ConstInterface.RC_TOKEN_DATA = "DATA=";
476
476
  ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
477
477
  ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
478
478
  ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
479
+ ConstInterface.ENV_VAR_LIST = "EnvVarList";
479
480
  ConstInterface.LAST_EXCEPTION = "LastException";
480
481
  ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
481
482
  ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
@@ -641,13 +642,6 @@ class CommandSerializationHelper {
641
642
  }
642
643
 
643
644
  class EventCommand extends ClientOriginatedCommandTaskTag {
644
- constructor(magicEvent) {
645
- super();
646
- this.TaskTag = null;
647
- this.MagicEvent = 0;
648
- this.ClientRecId = 0;
649
- this.MagicEvent = magicEvent;
650
- }
651
645
  get CommandTypeAttribute() {
652
646
  return ConstInterface.MG_ATTR_VAL_EVENT;
653
647
  }
@@ -663,6 +657,13 @@ class EventCommand extends ClientOriginatedCommandTaskTag {
663
657
  return false;
664
658
  return true;
665
659
  }
660
+ constructor(magicEvent) {
661
+ super();
662
+ this.TaskTag = null;
663
+ this.MagicEvent = 0;
664
+ this.ClientRecId = 0;
665
+ this.MagicEvent = magicEvent;
666
+ }
666
667
  SerializeCommandData() {
667
668
  let helper = new CommandSerializationHelper();
668
669
  helper.SerializeTaskTag(this.TaskTag);
@@ -1172,15 +1173,6 @@ class OpeningTaskDetails {
1172
1173
  }
1173
1174
 
1174
1175
  class MgControl extends MgControlBase {
1175
- constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1176
- if (arguments.length === 0)
1177
- super();
1178
- else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1179
- super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1180
- else
1181
- super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1182
- this.initialize();
1183
- }
1184
1176
  initialize() {
1185
1177
  this._focusedStopExecution = false;
1186
1178
  this._inControlSuffix = false;
@@ -1193,6 +1185,15 @@ class MgControl extends MgControlBase {
1193
1185
  this.HasZoomHandler = false;
1194
1186
  this.ArgList = null;
1195
1187
  }
1188
+ constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1189
+ if (arguments.length === 0)
1190
+ super();
1191
+ else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1192
+ super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1193
+ else
1194
+ super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1195
+ this.initialize();
1196
+ }
1196
1197
  GetVarIndex() {
1197
1198
  return super.getForm().getTask().DataView.Dvcount + this.veeIndx;
1198
1199
  }
@@ -1459,9 +1460,6 @@ class MgControl extends MgControlBase {
1459
1460
  this.KeyStrokeOn = false;
1460
1461
  }
1461
1462
  }
1462
- async refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1463
- await super.refreshAndSetItemsListForRadioButton(line, execComputeChoice);
1464
- }
1465
1463
  getSubformTask() {
1466
1464
  return this._subformTask;
1467
1465
  }
@@ -2818,6 +2816,9 @@ class Event {
2818
2816
  case InternalInterface.MG_ACT_INDEX_CHANGE:
2819
2817
  description = 'Index Change';
2820
2818
  break;
2819
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
2820
+ description = 'Dump Environment';
2821
+ break;
2821
2822
  default:
2822
2823
  description = '';
2823
2824
  break;
@@ -3125,6 +3126,21 @@ class MgPriorityBlockingQueue {
3125
3126
  }
3126
3127
 
3127
3128
  class RunTimeEvent extends RunTimeEventBase {
3129
+ set Control(value) {
3130
+ this._ctrl = value;
3131
+ }
3132
+ set DisplayLine(value) {
3133
+ this._displayLine = value;
3134
+ }
3135
+ get Control() {
3136
+ return this._ctrl;
3137
+ }
3138
+ get ControlsList() {
3139
+ return this._controlsList;
3140
+ }
3141
+ get Direction() {
3142
+ return this._direction;
3143
+ }
3128
3144
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3129
3145
  super();
3130
3146
  this._controlsList = null;
@@ -3186,21 +3202,6 @@ class RunTimeEvent extends RunTimeEventBase {
3186
3202
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3187
3203
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3188
3204
  }
3189
- set Control(value) {
3190
- this._ctrl = value;
3191
- }
3192
- set DisplayLine(value) {
3193
- this._displayLine = value;
3194
- }
3195
- get Control() {
3196
- return this._ctrl;
3197
- }
3198
- get ControlsList() {
3199
- return this._controlsList;
3200
- }
3201
- get Direction() {
3202
- return this._direction;
3203
- }
3204
3205
  constructor_5(taskRef) {
3205
3206
  this.init(taskRef);
3206
3207
  }
@@ -3530,7 +3531,17 @@ class FlowMonitorQueue {
3530
3531
  this._isRecompute = false;
3531
3532
  this._isTask = false;
3532
3533
  this._isTaskFlow = false;
3534
+ this._isDataView = false;
3533
3535
  this.ShouldSerialize = false;
3536
+ this.padRight = (string, length, character = ' ') => {
3537
+ let result = "";
3538
+ let totalLength = length - string.length;
3539
+ for (let i = 0; i < totalLength; i++) {
3540
+ result = character + result;
3541
+ }
3542
+ result = result + string;
3543
+ return result;
3544
+ };
3534
3545
  }
3535
3546
  static get Instance() {
3536
3547
  if (FlowMonitorQueue._instance === null)
@@ -3588,6 +3599,9 @@ class FlowMonitorQueue {
3588
3599
  case ConstInterface.MG_ATTR_TASKFLW:
3589
3600
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3590
3601
  break;
3602
+ case ConstInterface.MG_TAG_DATAVIEW:
3603
+ this._isDataView = XmlParser.getBoolean(valueStr);
3604
+ break;
3591
3605
  case ConstInterface.MG_ATTR_RECOMP:
3592
3606
  this._isRecompute = XmlParser.getBoolean(valueStr);
3593
3607
  break;
@@ -3645,6 +3659,96 @@ class FlowMonitorQueue {
3645
3659
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3646
3660
  }
3647
3661
  }
3662
+ appendVirtualsAndParameters(currentValues) {
3663
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3664
+ act.setInfo(currentValues);
3665
+ this._queue.put(act);
3666
+ }
3667
+ addDataViewFlow(task) {
3668
+ if (this._isDataView) {
3669
+ let fldTab = task.DataView.GetFieldsTab();
3670
+ let preparedDisplayString = "";
3671
+ let finaldisplayData = "\n";
3672
+ let fldValue;
3673
+ let data = "";
3674
+ for (let i = 0; i < fldTab.getSize(); i++) {
3675
+ let fldDef = fldTab.getField(i);
3676
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3677
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3678
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3679
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3680
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3681
+ }
3682
+ }
3683
+ this.appendVirtualsAndParameters(finaldisplayData);
3684
+ }
3685
+ }
3686
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3687
+ switch (Storagetype) {
3688
+ case StorageAttribute.DOTNET:
3689
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3690
+ break;
3691
+ case StorageAttribute.BLOB:
3692
+ {
3693
+ if (BlobType.isValidBlob(data)) {
3694
+ let contentType = BlobType.getContentType(data);
3695
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3696
+ data = data != null ? BlobType.getString(data) : "";
3697
+ else
3698
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3699
+ }
3700
+ else
3701
+ data = "";
3702
+ }
3703
+ break;
3704
+ case StorageAttribute.NUMERIC:
3705
+ case StorageAttribute.DATE:
3706
+ case StorageAttribute.TIME:
3707
+ let conv = DisplayConvertor.Instance;
3708
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3709
+ break;
3710
+ case StorageAttribute.BLOB_VECTOR:
3711
+ let vecOutData;
3712
+ if (data == null) {
3713
+ vecOutData = "[]";
3714
+ }
3715
+ else {
3716
+ let cellAtt = vecCellType;
3717
+ let vector = new VectorType(data);
3718
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3719
+ vecOutData = "[]";
3720
+ else {
3721
+ let vecSize = VectorType.getVecSize(data);
3722
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3723
+ vecOutData = "[";
3724
+ for (let i = 0; i < vecSize; i++) {
3725
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3726
+ vecOutData += i < vecSize - 1 ? "," : "]";
3727
+ }
3728
+ }
3729
+ }
3730
+ data = vecOutData;
3731
+ break;
3732
+ case StorageAttribute.BOOLEAN:
3733
+ data = data == "1" ? "TRUE" : "FALSE";
3734
+ break;
3735
+ }
3736
+ return data;
3737
+ }
3738
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3739
+ let str = "";
3740
+ let finalStringToDisplay = "";
3741
+ if (addDoubleQuotes)
3742
+ finalStringToDisplay = finalStringToDisplay + "\"";
3743
+ finalStringToDisplay = finalStringToDisplay + name;
3744
+ if (addDoubleQuotes)
3745
+ finalStringToDisplay = finalStringToDisplay + "\"";
3746
+ let paddedName = this.padRight(name, 34);
3747
+ let formatOfStringVirtual = `Virtual`;
3748
+ let formatOfStringParameter = `Parameter`;
3749
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3750
+ return str;
3751
+ }
3648
3752
  addTaskFlowRec(id, state, taskInfo) {
3649
3753
  if (this._enabled && this._isTaskFlow) {
3650
3754
  let info;
@@ -3809,6 +3913,7 @@ class FlowMonitorQueue {
3809
3913
  }
3810
3914
  }
3811
3915
  FlowMonitorQueue._instance = null;
3916
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3812
3917
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3813
3918
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3814
3919
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3870,6 +3975,15 @@ class TimerObjectCollection {
3870
3975
  }
3871
3976
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3872
3977
  class RCTimer extends MgTimer {
3978
+ get TimerIntervalMiliSeconds() {
3979
+ return this._timerIntervalMilliSeconds;
3980
+ }
3981
+ set IsIdleTimer(value) {
3982
+ this._isIdle = value;
3983
+ }
3984
+ get IsIdleTimer() {
3985
+ return this._isIdle;
3986
+ }
3873
3987
  constructor(mgData, milliseconds, isIdle) {
3874
3988
  super(milliseconds);
3875
3989
  this._mgData = null;
@@ -3881,15 +3995,6 @@ class RCTimer extends MgTimer {
3881
3995
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3882
3996
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3883
3997
  }
3884
- get TimerIntervalMiliSeconds() {
3885
- return this._timerIntervalMilliSeconds;
3886
- }
3887
- set IsIdleTimer(value) {
3888
- this._isIdle = value;
3889
- }
3890
- get IsIdleTimer() {
3891
- return this._isIdle;
3892
- }
3893
3998
  GetMgdata() {
3894
3999
  return this._mgData;
3895
4000
  }
@@ -4035,6 +4140,9 @@ class ExecutionStack {
4035
4140
  }
4036
4141
 
4037
4142
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4143
+ get CommandTypeAttribute() {
4144
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4145
+ }
4038
4146
  constructor() {
4039
4147
  super();
4040
4148
  this.ExecutionStack = null;
@@ -4048,9 +4156,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4048
4156
  this.CheckOnly = false;
4049
4157
  this.DitIdx = Int32.MinValue;
4050
4158
  }
4051
- get CommandTypeAttribute() {
4052
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4053
- }
4054
4159
  SerializeCommandData() {
4055
4160
  let helper = new CommandSerializationHelper();
4056
4161
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4505,13 +4610,6 @@ class HttpClientAsync extends HttpClientBase {
4505
4610
  }
4506
4611
 
4507
4612
  class HttpManager {
4508
- constructor() {
4509
- this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4510
- this._httpClientAsync = null;
4511
- this._isAbortingMagicEngine = false;
4512
- this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4513
- this.RegisterBasicDelegates();
4514
- }
4515
4613
  getHttpClient() {
4516
4614
  if (this.IsAbortingMagicEngine)
4517
4615
  return new HttpClientSync();
@@ -4531,6 +4629,13 @@ class HttpManager {
4531
4629
  }
4532
4630
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4533
4631
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4632
+ constructor() {
4633
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4634
+ this._httpClientAsync = null;
4635
+ this._isAbortingMagicEngine = false;
4636
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4637
+ this.RegisterBasicDelegates();
4638
+ }
4534
4639
  RegisterBasicDelegates() {
4535
4640
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4536
4641
  }
@@ -5076,6 +5181,12 @@ var RequestStatus;
5076
5181
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5077
5182
  })(RequestStatus || (RequestStatus = {}));
5078
5183
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5184
+ static GetInstance() {
5185
+ if (RemoteCommandsProcessor._instance === null) {
5186
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5187
+ }
5188
+ return RemoteCommandsProcessor._instance;
5189
+ }
5079
5190
  constructor() {
5080
5191
  super();
5081
5192
  this._lastRequestTime = 0;
@@ -5086,12 +5197,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5086
5197
  HttpManager.GetInstance();
5087
5198
  this.RegisterDelegates();
5088
5199
  }
5089
- static GetInstance() {
5090
- if (RemoteCommandsProcessor._instance === null) {
5091
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5092
- }
5093
- return RemoteCommandsProcessor._instance;
5094
- }
5095
5200
  CheckAndSetSessionCounter(newSessionCounter) {
5096
5201
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5097
5202
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5124,10 +5229,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5124
5229
  async StoreSessionReInitializingDataOnLocalStorage() {
5125
5230
  let mainPrgViewStringForServer = await this.BuildXMLForMainProgramDataView();
5126
5231
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5232
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5127
5233
  let dataStorage = window.localStorage;
5128
5234
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5129
5235
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5130
5236
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5237
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5131
5238
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5132
5239
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5133
5240
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5354,6 +5461,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5354
5461
  let reqBuf;
5355
5462
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5356
5463
  let globalParamsString = null;
5464
+ let envVarsString = null;
5357
5465
  if (this.DelayCommandExecution)
5358
5466
  return;
5359
5467
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5379,12 +5487,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5379
5487
  let buffer = new StringBuilder();
5380
5488
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5381
5489
  buffer.Append(reqBuf);
5382
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5490
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5383
5491
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5384
- else
5492
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5493
+ }
5494
+ else {
5385
5495
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5496
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5497
+ }
5386
5498
  changes.Append(globalParamsString);
5387
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5499
+ changes.Append(envVarsString);
5388
5500
  if (changes.Length > 0) {
5389
5501
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5390
5502
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5423,13 +5535,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5423
5535
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5424
5536
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5425
5537
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5538
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5426
5539
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5427
5540
  }
5428
5541
  }
5429
5542
  FlowMonitorQueue.Instance.enable(false);
5430
5543
  await this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5431
5544
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5432
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5545
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5546
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5433
5547
  let dataStorage = window.localStorage;
5434
5548
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5435
5549
  if (ctxRemoved === "1") {
@@ -5525,11 +5639,22 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5525
5639
  }
5526
5640
  }
5527
5641
  }
5528
- window.localStorage.clear();
5642
+ this.clearLocalStorage();
5529
5643
  throw ex;
5530
5644
  }
5531
5645
  return response;
5532
5646
  }
5647
+ clearLocalStorage() {
5648
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
5649
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
5650
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
5651
+ window.localStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5652
+ window.localStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5653
+ window.localStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5654
+ window.localStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5655
+ window.localStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5656
+ window.localStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5657
+ }
5533
5658
  HandleErrorResponse(response) {
5534
5659
  try {
5535
5660
  Logger.Instance.WriteServerMessagesToLog("MESSAGE FROM SERVER: " + response);
@@ -5731,21 +5856,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5731
5856
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5732
5857
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5733
5858
  class HandshakeResponse {
5734
- constructor(responseXML) {
5735
- this._scrambleMessages = true;
5736
- this._contextId = null;
5737
- this._privateSessionId = null;
5738
- this._inputPassword = false;
5739
- this._httpTimeout = 0;
5740
- this._systemLogin = null;
5741
- this._maxInternalLogLevel = null;
5742
- try {
5743
- JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5744
- }
5745
- catch (ex) {
5746
- Logger.Instance.WriteExceptionToLog(ex, responseXML);
5747
- }
5748
- }
5749
5859
  get ScrambleMessages() {
5750
5860
  return this._scrambleMessages;
5751
5861
  }
@@ -5767,6 +5877,21 @@ class HandshakeResponse {
5767
5877
  get MaxInternalLogLevel() {
5768
5878
  return this._maxInternalLogLevel;
5769
5879
  }
5880
+ constructor(responseXML) {
5881
+ this._scrambleMessages = true;
5882
+ this._contextId = null;
5883
+ this._privateSessionId = null;
5884
+ this._inputPassword = false;
5885
+ this._httpTimeout = 0;
5886
+ this._systemLogin = null;
5887
+ this._maxInternalLogLevel = null;
5888
+ try {
5889
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5890
+ }
5891
+ catch (ex) {
5892
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
5893
+ }
5894
+ }
5770
5895
  FillFromJSON(error, result) {
5771
5896
  if (error != null) {
5772
5897
  throw error;
@@ -6723,7 +6848,7 @@ ExpressionDict.expDesc = [
6723
6848
  null,
6724
6849
  new ExpDesc('N', 0, 0, 0, "", false),
6725
6850
  null,
6726
- new ExpDesc('B', 0, 2, 2, "BN", false),
6851
+ null,
6727
6852
  new ExpDesc('B', 0, 2, 2, "V ", false),
6728
6853
  null,
6729
6854
  null,
@@ -7172,12 +7297,12 @@ ExpressionDict.expDesc = [
7172
7297
  null,
7173
7298
  new ExpDesc('A', 0, 1, 1, "A", false),
7174
7299
  new ExpDesc('N', 0, 2, 2, "AA", false),
7175
- new ExpDesc('B', 0, -2, -2, "V ", false),
7176
- new ExpDesc('B', 0, 1, 1, "N", false),
7177
- new ExpDesc('B', 0, -2, -2, "V ", false),
7178
- new ExpDesc('B', 0, 1, 1, "N", false),
7179
- new ExpDesc('B', 0, 2, 2, "VB", false),
7180
- new ExpDesc('B', 0, 1, 1, "N", false),
7300
+ null,
7301
+ null,
7302
+ null,
7303
+ null,
7304
+ null,
7305
+ null,
7181
7306
  new ExpDesc('N', 0, 1, 1, "N", false),
7182
7307
  null,
7183
7308
  null,
@@ -7264,48 +7389,6 @@ ExpressionDict.expDesc = [
7264
7389
  new ExpDesc('U', 0, 0, 0, '', false),
7265
7390
  ];
7266
7391
 
7267
- var DataViewCommandType;
7268
- (function (DataViewCommandType) {
7269
- DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7270
- DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7271
- DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7272
- DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7273
- DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7274
- DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7275
- DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7276
- DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7277
- DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7278
- DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7279
- DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7280
- DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7281
- DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7282
- DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7283
- DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7284
- DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7285
- DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7286
- DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7287
- DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7288
- DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7289
- DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7290
- })(DataViewCommandType || (DataViewCommandType = {}));
7291
- class DataviewCommand extends ClientOriginatedCommandTaskTag {
7292
- constructor() {
7293
- super();
7294
- this.CommandType = 0;
7295
- this.TaskTag = null;
7296
- }
7297
- get CommandTypeAttribute() {
7298
- throw new NotImplementedException();
7299
- }
7300
- SerializeCommandData() {
7301
- Debug.Assert(false, "Dataview commands need not be serialized");
7302
- return null;
7303
- }
7304
- get ShouldSerialize() {
7305
- return false;
7306
- }
7307
- }
7308
-
7309
7392
  class EventHandlerPosition {
7310
7393
  constructor() {
7311
7394
  this._handlerIdx = 0;
@@ -7362,6 +7445,9 @@ class EventHandlerPosition {
7362
7445
  case InternalInterface.MG_ACT_REC_SUFFIX:
7363
7446
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7364
7447
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7448
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7449
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7450
+ }
7365
7451
  if (this._handlerIdx === -1) {
7366
7452
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7367
7453
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7502,6 +7588,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7502
7588
  EventHandlerPosition.PHASE_GLOBAL = 3;
7503
7589
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7504
7590
 
7591
+ var DataViewCommandType;
7592
+ (function (DataViewCommandType) {
7593
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7594
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7595
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7596
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7597
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7598
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7599
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7600
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7601
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7602
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7603
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7604
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7605
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7606
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7607
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7608
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7609
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7610
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7611
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7612
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7613
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7614
+ })(DataViewCommandType || (DataViewCommandType = {}));
7615
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7616
+ get CommandTypeAttribute() {
7617
+ throw new NotImplementedException();
7618
+ }
7619
+ SerializeCommandData() {
7620
+ Debug.Assert(false, "Dataview commands need not be serialized");
7621
+ return null;
7622
+ }
7623
+ get ShouldSerialize() {
7624
+ return false;
7625
+ }
7626
+ constructor() {
7627
+ super();
7628
+ this.CommandType = 0;
7629
+ this.TaskTag = null;
7630
+ }
7631
+ }
7632
+
7505
7633
  class AddUserRangeDataviewCommand extends DataviewCommand {
7506
7634
  constructor() {
7507
7635
  super();
@@ -7721,12 +7849,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7721
7849
  }
7722
7850
 
7723
7851
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7724
- constructor() {
7725
- super();
7726
- this.TaskTag = null;
7727
- this.FldId = 0;
7728
- this.IgnoreSubformRecompute = false;
7729
- }
7730
7852
  get CommandTypeAttribute() {
7731
7853
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7732
7854
  }
@@ -7738,17 +7860,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7738
7860
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7739
7861
  return helper.GetString();
7740
7862
  }
7863
+ constructor() {
7864
+ super();
7865
+ this.TaskTag = null;
7866
+ this.FldId = 0;
7867
+ this.IgnoreSubformRecompute = false;
7868
+ }
7741
7869
  getCommandInfo() {
7742
7870
  return NString.Format('[{0} in {1} for Field {2}]', this.CommandTypeAttribute.charAt(0).toUpperCase() + this.CommandTypeAttribute.substr(1, this.CommandTypeAttribute.length), this.Task.getTaskInfo(), this.Task.getFieldDef(this.FldId).getName());
7743
7871
  }
7744
7872
  }
7745
7873
 
7746
7874
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7747
- constructor() {
7748
- super();
7749
- this.TaskTag = null;
7750
- this.ReversibleExit = false;
7751
- }
7752
7875
  get CommandTypeAttribute() {
7753
7876
  return ConstInterface.MG_ATTR_VAL_TRANS;
7754
7877
  }
@@ -7762,6 +7885,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7762
7885
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7763
7886
  return helper.GetString();
7764
7887
  }
7888
+ constructor() {
7889
+ super();
7890
+ this.TaskTag = null;
7891
+ this.ReversibleExit = false;
7892
+ }
7765
7893
  getCommandInfo() {
7766
7894
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7767
7895
  }
@@ -7780,6 +7908,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7780
7908
  }
7781
7909
 
7782
7910
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7911
+ get CommandTypeAttribute() {
7912
+ return ConstInterface.MG_ATTR_VAL_EVAL;
7913
+ }
7783
7914
  constructor() {
7784
7915
  super();
7785
7916
  this.TaskTag = null;
@@ -7788,9 +7919,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7788
7919
  this.MprgCreator = null;
7789
7920
  this.LengthExpVal = Int32.MinValue;
7790
7921
  }
7791
- get CommandTypeAttribute() {
7792
- return ConstInterface.MG_ATTR_VAL_EVAL;
7793
- }
7794
7922
  SerializeCommandData() {
7795
7923
  let helper = new CommandSerializationHelper();
7796
7924
  helper.SerializeTaskTag(this.TaskTag);
@@ -7838,10 +7966,6 @@ class GlobalParamsQueryCommand extends QueryCommand {
7838
7966
  }
7839
7967
 
7840
7968
  class IniputForceWriteCommand extends ClientOriginatedCommand {
7841
- constructor() {
7842
- super();
7843
- this.Text = null;
7844
- }
7845
7969
  get CommandTypeAttribute() {
7846
7970
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
7847
7971
  }
@@ -7851,6 +7975,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
7851
7975
  SerializeCommandData() {
7852
7976
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
7853
7977
  }
7978
+ constructor() {
7979
+ super();
7980
+ this.Text = null;
7981
+ }
7854
7982
  getCommandInfo() {
7855
7983
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
7856
7984
  }
@@ -7900,6 +8028,13 @@ class SelectProgramCommand extends ExecOperCommand {
7900
8028
  }
7901
8029
  }
7902
8030
 
8031
+ class ControlItemsRefreshCommand extends DataviewCommand {
8032
+ constructor() {
8033
+ super();
8034
+ this.Control = null;
8035
+ }
8036
+ }
8037
+
7903
8038
  class CommandFactory {
7904
8039
  static CreateEventCommand(taskTag, magicEvent) {
7905
8040
  let eventCommand = new EventCommand(magicEvent);
@@ -7918,6 +8053,13 @@ class CommandFactory {
7918
8053
  dataviewCommand.TaskTag = taskId;
7919
8054
  return dataviewCommand;
7920
8055
  }
8056
+ static CreateControlItemsRefreshCommand(taskId, control) {
8057
+ let command = new ControlItemsRefreshCommand();
8058
+ command.CommandType = DataViewCommandType.ControlItemsRefresh;
8059
+ command.TaskTag = taskId;
8060
+ command.Control = control;
8061
+ return command;
8062
+ }
7921
8063
  static CreateAddUserRangeDataviewCommand(taskId, userRange) {
7922
8064
  let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
7923
8065
  addUserRangeDataviewCommand.TaskTag = taskId;
@@ -8114,19 +8256,12 @@ class CommandFactory {
8114
8256
  return evaluateCommand;
8115
8257
  }
8116
8258
  static CreateQueryGlobalParamsCommand() {
8117
- return new GlobalParamsQueryCommand();
8118
- }
8119
- static CreateIniputForceWriteCommand(param) {
8120
- let iniputForceWriteCommand = new IniputForceWriteCommand();
8121
- iniputForceWriteCommand.Text = param;
8122
- return iniputForceWriteCommand;
8123
- }
8124
- }
8125
-
8126
- class Sort {
8127
- constructor() {
8128
- this.fldIdx = 0;
8129
- this.dir = false;
8259
+ return new GlobalParamsQueryCommand();
8260
+ }
8261
+ static CreateIniputForceWriteCommand(param) {
8262
+ let iniputForceWriteCommand = new IniputForceWriteCommand();
8263
+ iniputForceWriteCommand.Text = param;
8264
+ return iniputForceWriteCommand;
8130
8265
  }
8131
8266
  }
8132
8267
 
@@ -8139,10 +8274,6 @@ var ParamParseResult;
8139
8274
  })(ParamParseResult || (ParamParseResult = {}));
8140
8275
 
8141
8276
  class PrmMap {
8142
- constructor() {
8143
- this.values = null;
8144
- this.values = new Dictionary();
8145
- }
8146
8277
  getvalue(s) {
8147
8278
  if (this.values.ContainsKey(s))
8148
8279
  return this.values.get_Item(s);
@@ -8155,6 +8286,10 @@ class PrmMap {
8155
8286
  remove(s) {
8156
8287
  this.values.Remove(s);
8157
8288
  }
8289
+ constructor() {
8290
+ this.values = null;
8291
+ this.values = new Dictionary();
8292
+ }
8158
8293
  }
8159
8294
  class MirrorPrmMap extends PrmMap {
8160
8295
  constructor(type) {
@@ -8235,7 +8370,7 @@ class MirrorPrmMap extends PrmMap {
8235
8370
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8236
8371
  }
8237
8372
  }
8238
- RestoreGlobalParams(xml) {
8373
+ RestoreParams(xml) {
8239
8374
  let parser = new XmlParser(xml);
8240
8375
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8241
8376
  }
@@ -8310,6 +8445,7 @@ class Environment {
8310
8445
  this._debugMode = 0;
8311
8446
  this._significantNumSize = 0;
8312
8447
  this._specialAnsiExpression = false;
8448
+ this._specialImmediatehandlerEnd = false;
8313
8449
  this._specialShowStatusBarPanes = false;
8314
8450
  this._specialRouteToRootProgOnContextRecreation = false;
8315
8451
  this._specialCancelOnCreate = false;
@@ -8463,6 +8599,9 @@ class Environment {
8463
8599
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8464
8600
  this._localFlags = valueStr;
8465
8601
  break;
8602
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8603
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8604
+ break;
8466
8605
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8467
8606
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8468
8607
  break;
@@ -8667,6 +8806,9 @@ class Environment {
8667
8806
  GetLocalFlag(f) {
8668
8807
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8669
8808
  }
8809
+ getSpecialImmediateHandlerEnd() {
8810
+ return this._specialImmediatehandlerEnd;
8811
+ }
8670
8812
  getSpecialAnsiExpression() {
8671
8813
  return this._specialAnsiExpression;
8672
8814
  }
@@ -8736,6 +8878,12 @@ class Environment {
8736
8878
  }
8737
8879
  Environment.Instance = new Environment();
8738
8880
  class EnvironmentDetails {
8881
+ set UpdateInQueryMode(value) {
8882
+ this._updateInQueryMode = value;
8883
+ }
8884
+ set CreateInModifyMode(value) {
8885
+ this._createInModifyMode = value;
8886
+ }
8739
8887
  constructor() {
8740
8888
  this._createInModifyMode = false;
8741
8889
  this._updateInQueryMode = false;
@@ -8746,12 +8894,6 @@ class EnvironmentDetails {
8746
8894
  this.ProjDir = null;
8747
8895
  this.CompIdx = 0;
8748
8896
  }
8749
- set UpdateInQueryMode(value) {
8750
- this._updateInQueryMode = value;
8751
- }
8752
- set CreateInModifyMode(value) {
8753
- this._createInModifyMode = value;
8754
- }
8755
8897
  allowUpdateInQueryMode() {
8756
8898
  return this._updateInQueryMode;
8757
8899
  }
@@ -8839,17 +8981,6 @@ class GlobalParams extends MirrorPrmMap {
8839
8981
  GlobalParams.Instance = new GlobalParams();
8840
8982
 
8841
8983
  class UserDetails {
8842
- constructor() {
8843
- this.UserName = null;
8844
- this.UserID = null;
8845
- this.UserInfo = null;
8846
- this.Password = null;
8847
- this.IsLoggedIn = false;
8848
- this.UserName = NString.Empty;
8849
- this.UserInfo = NString.Empty;
8850
- this.IsLoggedIn = false;
8851
- this.setUserID(NString.Empty);
8852
- }
8853
8984
  setIsLoggedIn(value) {
8854
8985
  this.IsLoggedIn = value;
8855
8986
  }
@@ -8869,6 +9000,17 @@ class UserDetails {
8869
9000
  UserDetails._instance = new UserDetails();
8870
9001
  return UserDetails._instance;
8871
9002
  }
9003
+ constructor() {
9004
+ this.UserName = null;
9005
+ this.UserID = null;
9006
+ this.UserInfo = null;
9007
+ this.Password = null;
9008
+ this.IsLoggedIn = false;
9009
+ this.UserName = NString.Empty;
9010
+ this.UserInfo = NString.Empty;
9011
+ this.IsLoggedIn = false;
9012
+ this.setUserID(NString.Empty);
9013
+ }
8872
9014
  fillData(parser) {
8873
9015
  let tokensVector;
8874
9016
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9677,8 +9819,7 @@ class MirrorString {
9677
9819
  this._reserved = false;
9678
9820
  }
9679
9821
  mirrorToXML() {
9680
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9681
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
9822
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9682
9823
  }
9683
9824
  init(name, xmlParser) {
9684
9825
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -10851,6 +10992,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
10851
10992
  this.eval_op_VarDisplayName(resVal, val1);
10852
10993
  expStrTracker.resetNullResult();
10853
10994
  break;
10995
+ case ExpressionInterface.EXP_OP_CONTROL_ITEMS_REFRESH:
10996
+ val2 = valStack.pop();
10997
+ val1 = valStack.pop();
10998
+ await this.eval_op_controlItemRefresh(val1, val2, resVal);
10999
+ break;
10854
11000
  case ExpressionInterface.EXP_OP_VARCONTROLID:
10855
11001
  val1 = valStack.pop();
10856
11002
  this.eval_op_VarControlID(resVal, val1);
@@ -11239,11 +11385,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11239
11385
  val1 = valStack.pop();
11240
11386
  this.eval_op_eoy(resVal, val1);
11241
11387
  break;
11242
- case ExpressionInterface.EXP_OP_ROLLBACK:
11243
- val2 = valStack.pop();
11244
- val1 = valStack.pop();
11245
- await this.eval_op_rollback(resVal);
11246
- break;
11247
11388
  case ExpressionInterface.EXP_OP_VARSET:
11248
11389
  val2 = valStack.pop();
11249
11390
  val1 = valStack.pop();
@@ -11608,41 +11749,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11608
11749
  val1 = valStack.pop();
11609
11750
  this.eval_op_taskType(resVal, val1);
11610
11751
  break;
11611
- case ExpressionInterface.EXP_OP_RANGE_ADD:
11612
- nArgs = valStack.pop();
11613
- if (nArgs > 0) {
11614
- Exp_params = new Array(nArgs);
11615
- for (j = 0; j < nArgs; j++)
11616
- Exp_params[nArgs - 1 - j] = valStack.pop();
11617
- await this.eval_op_range_add(resVal, Exp_params);
11618
- }
11619
- break;
11620
- case ExpressionInterface.EXP_OP_RANGE_RESET:
11621
- val1 = valStack.pop();
11622
- await this.eval_op_range_reset(resVal, val1);
11623
- break;
11624
- case ExpressionInterface.EXP_OP_LOCATE_ADD:
11625
- nArgs = valStack.pop();
11626
- if (nArgs > 0) {
11627
- Exp_params = new Array(nArgs);
11628
- for (j = 0; j < nArgs; j++)
11629
- Exp_params[nArgs - 1 - j] = valStack.pop();
11630
- await this.eval_op_locate_add(resVal, Exp_params);
11631
- }
11632
- break;
11633
- case ExpressionInterface.EXP_OP_LOCATE_RESET:
11634
- val1 = valStack.pop();
11635
- await this.eval_op_locate_reset(resVal, val1);
11636
- break;
11637
- case ExpressionInterface.EXP_OP_SORT_ADD:
11638
- val2 = valStack.pop();
11639
- val1 = valStack.pop();
11640
- await this.eval_op_sort_add(resVal, val1, val2);
11641
- break;
11642
- case ExpressionInterface.EXP_OP_SORT_RESET:
11643
- val1 = valStack.pop();
11644
- await this.eval_op_sort_reset(resVal, val1);
11645
- break;
11646
11752
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11647
11753
  val1 = valStack.pop();
11648
11754
  this.eval_op_tsk_instance(resVal, val1);
@@ -12979,6 +13085,23 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
12979
13085
  resVal.StrVal = fld.VarDisplayName;
12980
13086
  }
12981
13087
  }
13088
+ async eval_op_controlItemRefresh(val1, val2, resVal) {
13089
+ let success = false;
13090
+ let parent = val2.MgNumVal.NUM_2_LONG();
13091
+ resVal.Attr = StorageAttribute.BOOLEAN;
13092
+ if ((parent >= 0 && parent < (this.ExpTask.getTaskDepth(false))) || parent === ExpressionEvaluator.TRIGGER_TASK) {
13093
+ let tsk = super.GetContextTask(parent);
13094
+ if (tsk != null && tsk.getForm() != null) {
13095
+ let control = tsk.getForm().GetCtrl(val1.StrVal);
13096
+ if (control != null && control.isChoiceControl() && control.isDataCtrl()) {
13097
+ let command = CommandFactory.CreateControlItemsRefreshCommand(tsk.getTaskTag(), control);
13098
+ await tsk.DataviewManager.CurrentDataviewManager.Execute(command);
13099
+ success = true;
13100
+ }
13101
+ }
13102
+ }
13103
+ resVal.BoolVal = success;
13104
+ }
12982
13105
  eval_op_VarControlID(resVal, val1) {
12983
13106
  let ret = 0;
12984
13107
  if (val1.MgNumVal !== null) {
@@ -13264,12 +13387,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13264
13387
  await fld.setValueAndStartRecompute(bufptr, val.IsNull, true, setRecordUpdated, false);
13265
13388
  await fld.updateDisplay();
13266
13389
  }
13267
- async eval_op_rollback(resVal) {
13268
- let task = this.ExpTask.GetContextTask() || this.ExpTask;
13269
- await AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_ROLLBACK);
13270
- resVal.Attr = StorageAttribute.BOOLEAN;
13271
- resVal.BoolVal = true;
13272
- }
13273
13390
  eval_op_like(source, maskOrg, resVal) {
13274
13391
  let i;
13275
13392
  let j;
@@ -13826,54 +13943,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13826
13943
  resultStr.Replace('\\@', '@');
13827
13944
  resVal.StrVal = resultStr.ToString();
13828
13945
  }
13829
- async eval_op_range_add(resVal, Exp_params) {
13830
- resVal.Attr = StorageAttribute.BOOLEAN;
13831
- resVal.BoolVal = await this.add_rt_ranges(Exp_params, false);
13832
- }
13833
- async eval_op_range_reset(resVal, parent) {
13834
- resVal.Attr = StorageAttribute.BOOLEAN;
13835
- let iParent = parent.MgNumVal.NUM_2_LONG();
13836
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
13837
- let task = super.GetContextTask(iParent);
13838
- if (task !== null) {
13839
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserRange);
13840
- await task.DataviewManager.Execute(command);
13841
- resVal.BoolVal = true;
13842
- }
13843
- }
13844
- }
13845
- async eval_op_locate_add(resVal, Exp_params) {
13846
- resVal.Attr = StorageAttribute.BOOLEAN;
13847
- resVal.BoolVal = await this.add_rt_ranges(Exp_params, true);
13848
- }
13849
- async eval_op_locate_reset(resVal, parent) {
13850
- resVal.Attr = StorageAttribute.BOOLEAN;
13851
- let iParent = parent.MgNumVal.NUM_2_LONG();
13852
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
13853
- let task = super.GetContextTask(iParent);
13854
- if (task !== null) {
13855
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserLocate);
13856
- await task.DataviewManager.Execute(command);
13857
- resVal.BoolVal = true;
13858
- }
13859
- }
13860
- }
13861
- async eval_op_sort_add(resVal, varnum, dir) {
13862
- resVal.Attr = StorageAttribute.BOOLEAN;
13863
- resVal.BoolVal = await this.add_sort(varnum, dir);
13864
- }
13865
- async eval_op_sort_reset(resVal, parent) {
13866
- resVal.Attr = StorageAttribute.BOOLEAN;
13867
- let iParent = parent.MgNumVal.NUM_2_LONG();
13868
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
13869
- let task = super.GetContextTask(iParent);
13870
- if (task !== null) {
13871
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserSort);
13872
- await task.DataviewManager.Execute(command);
13873
- resVal.BoolVal = true;
13874
- }
13875
- }
13876
- }
13877
13946
  eval_op_tsk_instance(resVal, Parent) {
13878
13947
  let tag = 0;
13879
13948
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -13887,84 +13956,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13887
13956
  resVal.MgNumVal = new NUM_TYPE();
13888
13957
  resVal.MgNumVal.NUM_4_LONG(tag);
13889
13958
  }
13890
- async add_sort(varnum, dir) {
13891
- if (varnum.MgNumVal === null)
13892
- return false;
13893
- let itm = varnum.MgNumVal.NUM_2_LONG();
13894
- if (itm === 0)
13895
- return false;
13896
- let fld = this.GetFieldOfContextTask(itm);
13897
- if (fld === null)
13898
- return false;
13899
- let task = fld.getTask();
13900
- let vee_idx = fld.getId() + 1;
13901
- let expr_64 = new Sort();
13902
- expr_64.fldIdx = vee_idx;
13903
- expr_64.dir = dir.BoolVal;
13904
- let sort = expr_64;
13905
- let command = CommandFactory.CreateAddUserSortDataviewCommand(task.getTaskTag(), sort);
13906
- await task.DataviewManager.Execute(command);
13907
- return true;
13908
- }
13909
- async add_rt_ranges(Exp_params, locate) {
13910
- let varnum = Exp_params[0];
13911
- let min = Exp_params[1];
13912
- if (varnum.MgNumVal === null)
13913
- return false;
13914
- let itm = varnum.MgNumVal.NUM_2_LONG();
13915
- if (itm === 0)
13916
- return false;
13917
- let fld = this.GetFieldOfContextTask(itm);
13918
- if (fld === null)
13919
- return false;
13920
- let task = fld.getTask();
13921
- let vee_idx = fld.getId() + 1;
13922
- let expr_78 = new UserRange();
13923
- expr_78.veeIdx = vee_idx;
13924
- let rng = expr_78;
13925
- if (min.IsNull)
13926
- rng.nullMin = true;
13927
- if (!rng.nullMin && (min.Attr === StorageAttribute.ALPHA || min.Attr === StorageAttribute.UNICODE) && min.StrVal.length === 0)
13928
- rng.discardMin = true;
13929
- else {
13930
- if (!rng.nullMin) {
13931
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), min.Attr))
13932
- return false;
13933
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), min.Attr))
13934
- this.ConvertExpVal(min, fld.getType());
13935
- rng.min = min.ToMgVal();
13936
- }
13937
- }
13938
- if (Exp_params.length === 3) {
13939
- let max = Exp_params[2];
13940
- if (max.IsNull)
13941
- rng.nullMax = true;
13942
- if (!rng.nullMax && (max.Attr === StorageAttribute.ALPHA || max.Attr === StorageAttribute.UNICODE) && max.StrVal.length === 0)
13943
- rng.discardMax = true;
13944
- else {
13945
- if (!rng.nullMax) {
13946
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), max.Attr))
13947
- return false;
13948
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), max.Attr))
13949
- this.ConvertExpVal(max, fld.getType());
13950
- rng.max = max.ToMgVal();
13951
- }
13952
- }
13953
- }
13954
- else
13955
- rng.discardMax = true;
13956
- if (!rng.discardMin || !rng.discardMax) {
13957
- if (locate) {
13958
- let command = CommandFactory.CreateAddUserLocateDataviewCommand(task.getTaskTag(), rng);
13959
- await task.DataviewManager.Execute(command);
13960
- }
13961
- else {
13962
- let command2 = CommandFactory.CreateAddUserRangeDataviewCommand(task.getTaskTag(), rng);
13963
- await task.DataviewManager.Execute(command2);
13964
- }
13965
- }
13966
- return true;
13967
- }
13968
13959
  eval_op_getParam(resVal, name) {
13969
13960
  Debug.Assert(!name.IsNull && name.StrVal !== null);
13970
13961
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14482,6 +14473,12 @@ class DataViewBase extends GuiDataViewBase {
14482
14473
  }
14483
14474
 
14484
14475
  class Record {
14476
+ get InCompute() {
14477
+ return this._inCompute;
14478
+ }
14479
+ get InRecompute() {
14480
+ return this._inRecompute;
14481
+ }
14485
14482
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14486
14483
  this._id = Int32.MinValue;
14487
14484
  this.dbViewRowIdx = 0;
@@ -14499,12 +14496,6 @@ class Record {
14499
14496
  else
14500
14497
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14501
14498
  }
14502
- get InCompute() {
14503
- return this._inCompute;
14504
- }
14505
- get InRecompute() {
14506
- return this._inRecompute;
14507
- }
14508
14499
  constructor_0(dvOrTableCache) {
14509
14500
  if (dvOrTableCache instanceof DataViewBase)
14510
14501
  this._dataview = dvOrTableCache;
@@ -15300,14 +15291,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15300
15291
  Record.INCREASE = true;
15301
15292
  Record.DECREASE = false;
15302
15293
  class DcValuesReference extends ObjectReferenceBase {
15294
+ get DcValues() {
15295
+ return this.Referent;
15296
+ }
15303
15297
  constructor(controlId, referencedDcValues) {
15304
15298
  super(referencedDcValues);
15305
15299
  this.ditIdx = 0;
15306
15300
  this.ditIdx = controlId;
15307
15301
  }
15308
- get DcValues() {
15309
- return this.Referent;
15310
- }
15311
15302
  Clone() {
15312
15303
  return new DcValuesReference(this.ditIdx, this.Referent);
15313
15304
  }
@@ -15583,21 +15574,6 @@ class RecordsTable {
15583
15574
  RecordsTable.REC_NOT_FOUND = -1;
15584
15575
 
15585
15576
  class DataviewHeaderBase {
15586
- constructor(task) {
15587
- this._cond = null;
15588
- this._task = null;
15589
- this.Loc = null;
15590
- this._dir = '\0';
15591
- this._id = 0;
15592
- this._keyIdx = 0;
15593
- this._retVal = null;
15594
- this.returnfield = null;
15595
- this.LinkStartAfterField = 0;
15596
- this.KeyExpression = 0;
15597
- this._task = task;
15598
- this._keyIdx = -1;
15599
- this._cond = new YesNoExp(true);
15600
- }
15601
15577
  get ReturnField() {
15602
15578
  if (this.returnfield === null && this._retVal !== null)
15603
15579
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15618,6 +15594,21 @@ class DataviewHeaderBase {
15618
15594
  get LinkEvaluateCondition() {
15619
15595
  return this._linkEvalCondition;
15620
15596
  }
15597
+ constructor(task) {
15598
+ this._cond = null;
15599
+ this._task = null;
15600
+ this.Loc = null;
15601
+ this._dir = '\0';
15602
+ this._id = 0;
15603
+ this._keyIdx = 0;
15604
+ this._retVal = null;
15605
+ this.returnfield = null;
15606
+ this.LinkStartAfterField = 0;
15607
+ this.KeyExpression = 0;
15608
+ this._task = task;
15609
+ this._keyIdx = -1;
15610
+ this._cond = new YesNoExp(true);
15611
+ }
15621
15612
  SetAttributes(attributes) {
15622
15613
  let keys = attributes.Keys;
15623
15614
  keys.forEach((text) => {
@@ -16908,16 +16899,16 @@ class RecordOutOfDataViewException extends ApplicationException {
16908
16899
  }
16909
16900
 
16910
16901
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
16902
+ set SerializedDCVals(value) {
16903
+ this.parser.setXMLdata(value);
16904
+ this.parser.setCurrIndex(0);
16905
+ }
16911
16906
  constructor() {
16912
16907
  super();
16913
16908
  this.dcv = null;
16914
16909
  this.parser = null;
16915
16910
  this.parser = new XmlParser();
16916
16911
  }
16917
- set SerializedDCVals(value) {
16918
- this.parser.setXMLdata(value);
16919
- this.parser.setCurrIndex(0);
16920
- }
16921
16912
  Build() {
16922
16913
  this.dcv = null;
16923
16914
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -16975,28 +16966,61 @@ class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
16975
16966
  }
16976
16967
  return super.ParseValues(valueStr, dataType, useHex);
16977
16968
  }
16978
- }
16979
-
16980
- const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
16981
- const COMPUTE_NEWREC_ON_CLIENT = 'C';
16982
- const UNKNOWN_RCMPS_NOT_INITED = 'M';
16983
- const UNKNOWN_RCMPS_FOUND = 'Y';
16984
- const INVOKED_FROM_OFFLINE_TASK = '-99999';
16985
- const CHUNK_CACHE_NEXT = 'N';
16986
- const CHUNK_CACHE_PREV = 'P';
16987
- const CHUNK_DV_BOTTOM = 'B';
16988
- const CHUNK_DV_TOP = 'T';
16989
- const COMPUTE_FLUSH_UPDATES = 'H';
16990
- const COMPUTE_NEWREC_ON_SERVER = 'S';
16991
- const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
16992
- const RECOVERY_ACT_BEGIN_SCREEN = 'S';
16993
- const RECOVERY_ACT_BEGIN_TABLE = 'T';
16994
- const RECOVERY_ACT_CANCEL = 'C';
16995
- const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
16996
- const RECOVERY_ACT_NONE = 'N';
16997
- const TRANS_STAT_CLOSED = 'C';
16998
- const TRANS_STAT_OPENED = 'O';
16999
- class DataView extends DataViewBase {
16969
+ }
16970
+
16971
+ const SET_DISPLAYLINE_BY_DV = Int32.MinValue;
16972
+ const COMPUTE_NEWREC_ON_CLIENT = 'C';
16973
+ const UNKNOWN_RCMPS_NOT_INITED = 'M';
16974
+ const UNKNOWN_RCMPS_FOUND = 'Y';
16975
+ const INVOKED_FROM_OFFLINE_TASK = '-99999';
16976
+ const CHUNK_CACHE_NEXT = 'N';
16977
+ const CHUNK_CACHE_PREV = 'P';
16978
+ const CHUNK_DV_BOTTOM = 'B';
16979
+ const CHUNK_DV_TOP = 'T';
16980
+ const COMPUTE_FLUSH_UPDATES = 'H';
16981
+ const COMPUTE_NEWREC_ON_SERVER = 'S';
16982
+ const END_DV_TAG = '</' + ConstInterface.MG_TAG_DATAVIEW + '>';
16983
+ const RECOVERY_ACT_BEGIN_SCREEN = 'S';
16984
+ const RECOVERY_ACT_BEGIN_TABLE = 'T';
16985
+ const RECOVERY_ACT_CANCEL = 'C';
16986
+ const RECOVERY_ACT_MOVE_DIRECTION_BEGIN = 'B';
16987
+ const RECOVERY_ACT_NONE = 'N';
16988
+ const TRANS_STAT_CLOSED = 'C';
16989
+ const TRANS_STAT_OPENED = 'O';
16990
+ class DataView extends DataViewBase {
16991
+ set InsertAt(value) {
16992
+ this._insertAt = value;
16993
+ }
16994
+ get InsertAt() {
16995
+ return this._insertAt;
16996
+ }
16997
+ get CurrRec() {
16998
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
16999
+ }
17000
+ set CurrRec(value) {
17001
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17002
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17003
+ }
17004
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17005
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17006
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17007
+ }
17008
+ }
17009
+ get FlushUpdates() {
17010
+ return this._flushUpdates;
17011
+ }
17012
+ get HasMainTable() {
17013
+ return this._hasMainTable;
17014
+ }
17015
+ get CurrentRecId() {
17016
+ return this._currRecId;
17017
+ }
17018
+ get FirstRecord() {
17019
+ return this._recordsTab.getRecByIdx(0);
17020
+ }
17021
+ get LastRecord() {
17022
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17023
+ }
17000
17024
  constructor(taskOrDataView) {
17001
17025
  super();
17002
17026
  this._cacheLruTimeStamp = 0;
@@ -17048,39 +17072,6 @@ class DataView extends DataViewBase {
17048
17072
  Object.assign(this, taskOrDataView);
17049
17073
  }
17050
17074
  }
17051
- set InsertAt(value) {
17052
- this._insertAt = value;
17053
- }
17054
- get InsertAt() {
17055
- return this._insertAt;
17056
- }
17057
- get CurrRec() {
17058
- return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17059
- }
17060
- set CurrRec(value) {
17061
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17062
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17063
- }
17064
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17065
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17066
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17067
- }
17068
- }
17069
- get FlushUpdates() {
17070
- return this._flushUpdates;
17071
- }
17072
- get HasMainTable() {
17073
- return this._hasMainTable;
17074
- }
17075
- get CurrentRecId() {
17076
- return this._currRecId;
17077
- }
17078
- get FirstRecord() {
17079
- return this._recordsTab.getRecByIdx(0);
17080
- }
17081
- get LastRecord() {
17082
- return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17083
- }
17084
17075
  Init() {
17085
17076
  this.init();
17086
17077
  }
@@ -18653,6 +18644,12 @@ class ReturnResultBase {
18653
18644
  }
18654
18645
 
18655
18646
  class ReturnResult extends ReturnResultBase {
18647
+ get Success() {
18648
+ return this.success;
18649
+ }
18650
+ get ErrorDescription() {
18651
+ return this.errorDescription;
18652
+ }
18656
18653
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
18657
18654
  super();
18658
18655
  this.errorDescription = null;
@@ -18667,12 +18664,6 @@ class ReturnResult extends ReturnResultBase {
18667
18664
  else
18668
18665
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
18669
18666
  }
18670
- get Success() {
18671
- return this.success;
18672
- }
18673
- get ErrorDescription() {
18674
- return this.errorDescription;
18675
- }
18676
18667
  constructor_00(errorDescriptionCode) {
18677
18668
  this.success = false;
18678
18669
  this.ErrorId = errorDescriptionCode;
@@ -18772,13 +18763,13 @@ class Transaction {
18772
18763
  }
18773
18764
 
18774
18765
  class TaskTransactionManager {
18766
+ get isClosingTopmostTask() {
18767
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
18768
+ }
18775
18769
  constructor(task) {
18776
18770
  this.task = null;
18777
18771
  this.task = task;
18778
18772
  }
18779
- get isClosingTopmostTask() {
18780
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
18781
- }
18782
18773
  AllowTransaction(transBegin, forLocal) {
18783
18774
  let result;
18784
18775
  if (forLocal)
@@ -19122,12 +19113,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19122
19113
  }
19123
19114
 
19124
19115
  class DataviewManager extends DataviewManagerBase {
19125
- constructor(task) {
19126
- super(task);
19127
- this.RemoteDataviewManager = null;
19128
- this.HasRemoteData = true;
19129
- this.RemoteDataviewManager = new RemoteDataviewManager(task);
19130
- }
19131
19116
  get TaskService() {
19132
19117
  return this.Task.TaskService;
19133
19118
  }
@@ -19142,11 +19127,24 @@ class DataviewManager extends DataviewManagerBase {
19142
19127
  get VirtualDataviewManager() {
19143
19128
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19144
19129
  }
19130
+ constructor(task) {
19131
+ super(task);
19132
+ this.RemoteDataviewManager = null;
19133
+ this.HasRemoteData = true;
19134
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19135
+ }
19145
19136
  async Execute(command) {
19146
19137
  return await this.CurrentDataviewManager.Execute(command);
19147
19138
  }
19148
19139
  }
19149
19140
 
19141
+ class Sort {
19142
+ constructor() {
19143
+ this.fldIdx = 0;
19144
+ this.dir = false;
19145
+ }
19146
+ }
19147
+
19150
19148
  class SortCollection {
19151
19149
  constructor() {
19152
19150
  this._sortTab = null;
@@ -20060,8 +20058,13 @@ class MgForm extends MgFormBase {
20060
20058
  finally {
20061
20059
  this._inRefreshDisp = false;
20062
20060
  }
20063
- if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!super.isLineMode() || this._tableRefreshed))
20061
+ if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!super.isLineMode() || this._tableRefreshed)) {
20064
20062
  this.FormRefreshed = true;
20063
+ if (this._task.isFirstRecordCycle() || AccessHelper.eventsManager.getIsInViewRefresh()) {
20064
+ Commands.addNoParameters(CommandType.SET_WC_IDLE, this);
20065
+ AccessHelper.eventsManager.setIsInViewRefresh(false);
20066
+ }
20067
+ }
20065
20068
  return true;
20066
20069
  }
20067
20070
  RefreshUI() {
@@ -21469,8 +21472,12 @@ class EventHandler {
21469
21472
  continue;
21470
21473
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
21471
21474
  continue;
21472
- if (!taskEnd)
21473
- await this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
21475
+ if (!taskEnd) {
21476
+ let mainLevel = this._task.getMainLevel().toLowerCase();
21477
+ if (await this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
21478
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
21479
+ break;
21480
+ }
21474
21481
  if (this._taskMgdID !== mgdID)
21475
21482
  isChangedCurrWndRef.value = true;
21476
21483
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22264,13 +22271,6 @@ class UserEventsTable {
22264
22271
  }
22265
22272
 
22266
22273
  class FormsTable {
22267
- constructor(task, parentForm) {
22268
- this._task = null;
22269
- this._parentForm = null;
22270
- this._formsStringXml = null;
22271
- this._task = task;
22272
- this._parentForm = parentForm;
22273
- }
22274
22274
  get Count() {
22275
22275
  return this._formsStringXml.length;
22276
22276
  }
@@ -22279,6 +22279,13 @@ class FormsTable {
22279
22279
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22280
22280
  return null;
22281
22281
  }
22282
+ constructor(task, parentForm) {
22283
+ this._task = null;
22284
+ this._parentForm = null;
22285
+ this._formsStringXml = null;
22286
+ this._task = task;
22287
+ this._parentForm = parentForm;
22288
+ }
22282
22289
  async fillData() {
22283
22290
  this._formsStringXml = new List();
22284
22291
  let parser = Manager.GetCurrentRuntimeContext().Parser;
@@ -22468,6 +22475,47 @@ var Task_Direction;
22468
22475
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
22469
22476
  })(Task_Direction || (Task_Direction = {}));
22470
22477
  class Task extends TaskBase {
22478
+ get ParentTask() {
22479
+ return this._parentTask;
22480
+ }
22481
+ set TryingToCommit(value) {
22482
+ this._tryingToCommit = value;
22483
+ }
22484
+ get TryingToCommit() {
22485
+ return this._tryingToCommit;
22486
+ }
22487
+ get TaskService() {
22488
+ if (this._taskService == null)
22489
+ this._taskService = new RemoteTaskService();
22490
+ return this._taskService;
22491
+ }
22492
+ static get CommandsProcessor() {
22493
+ return CommandsProcessorManager.GetCommandsProcessor();
22494
+ }
22495
+ get LogicalStudioParentTask() {
22496
+ if (this.StudioParentTask === null && !super.isMainProg()) {
22497
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
22498
+ }
22499
+ return this.StudioParentTask;
22500
+ }
22501
+ get KnownToServer() {
22502
+ return this._knownToServer;
22503
+ }
22504
+ set Transaction(value) {
22505
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
22506
+ }
22507
+ get Transaction() {
22508
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
22509
+ }
22510
+ get TaskDefinitionId() {
22511
+ if (this.taskDefinitionId === null) {
22512
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
22513
+ }
22514
+ return this.taskDefinitionId;
22515
+ }
22516
+ static get IsBlockingBatch() {
22517
+ return false;
22518
+ }
22471
22519
  constructor(parent) {
22472
22520
  super();
22473
22521
  this._dvCache = null;
@@ -22536,47 +22584,6 @@ class Task extends TaskBase {
22536
22584
  }
22537
22585
  this.constructor_1(parent);
22538
22586
  }
22539
- get ParentTask() {
22540
- return this._parentTask;
22541
- }
22542
- set TryingToCommit(value) {
22543
- this._tryingToCommit = value;
22544
- }
22545
- get TryingToCommit() {
22546
- return this._tryingToCommit;
22547
- }
22548
- get TaskService() {
22549
- if (this._taskService == null)
22550
- this._taskService = new RemoteTaskService();
22551
- return this._taskService;
22552
- }
22553
- static get CommandsProcessor() {
22554
- return CommandsProcessorManager.GetCommandsProcessor();
22555
- }
22556
- get LogicalStudioParentTask() {
22557
- if (this.StudioParentTask === null && !super.isMainProg()) {
22558
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
22559
- }
22560
- return this.StudioParentTask;
22561
- }
22562
- get KnownToServer() {
22563
- return this._knownToServer;
22564
- }
22565
- set Transaction(value) {
22566
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
22567
- }
22568
- get Transaction() {
22569
- return this.DataviewManager.CurrentDataviewManager.Transaction;
22570
- }
22571
- get TaskDefinitionId() {
22572
- if (this.taskDefinitionId === null) {
22573
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
22574
- }
22575
- return this.taskDefinitionId;
22576
- }
22577
- static get IsBlockingBatch() {
22578
- return false;
22579
- }
22580
22587
  constructor_0() {
22581
22588
  this.ActionManager = new ActionManager();
22582
22589
  this.DataView = new DataView(this);
@@ -24387,6 +24394,7 @@ class Task extends TaskBase {
24387
24394
  this.ActionManager.enable(InternalInterface.MG_ACT_SORT_RECORDS, enable);
24388
24395
  enable = await this.checkProp(PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX, true);
24389
24396
  this.ActionManager.enable(InternalInterface.MG_ACT_VIEW_BY_KEY, enable);
24397
+ this.ActionManager.enable(InternalInterface.MG_ACT_DUMP_ENVIRONMENT, true);
24390
24398
  }
24391
24399
  setEnableZoomHandler() {
24392
24400
  this._enableZoomHandler = true;
@@ -24973,6 +24981,9 @@ class CompMainPrgTable {
24973
24981
  }
24974
24982
 
24975
24983
  class MGData {
24984
+ get ForceModal() {
24985
+ return this.forceModal;
24986
+ }
24976
24987
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
24977
24988
  this._expHandlers = null;
24978
24989
  this._id = 0;
@@ -24993,9 +25004,6 @@ class MGData {
24993
25004
  else
24994
25005
  this.constructor_1(id, parent, isModal, forceModal);
24995
25006
  }
24996
- get ForceModal() {
24997
- return this.forceModal;
24998
- }
24999
25007
  constructor_0(id, parent, isModal) {
25000
25008
  this._timerHandlers = new HandlersTable();
25001
25009
  this._expHandlers = new HandlersTable();
@@ -25594,6 +25602,7 @@ class EventsManager {
25594
25602
  this.confirmationDialogTitle = 'Session is about to be terminated!';
25595
25603
  this._lastFailedFocusedControl = null;
25596
25604
  this.isSpinnerShown = false;
25605
+ this.isInViewRefresh = false;
25597
25606
  this.SpinnerStopped = new Subject();
25598
25607
  this._rtEvents = new Stack();
25599
25608
  this._eventsQueue = new MgPriorityBlockingQueue();
@@ -27433,6 +27442,7 @@ class EventsManager {
27433
27442
  }
27434
27443
  break;
27435
27444
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
27445
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
27436
27446
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
27437
27447
  cmdsToServer.Add(cmd);
27438
27448
  await CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -27752,6 +27762,7 @@ class EventsManager {
27752
27762
  else if (intEvtCode === InternalInterface.MG_ACT_RT_REFRESH_SCREEN && task.getMode() !== Constants.TASK_MODE_QUERY && !task.getAfterRetry()) {
27753
27763
  await dv.currRecCompute(true);
27754
27764
  }
27765
+ this.setIsInViewRefresh(true);
27755
27766
  await this.handleInternalEventWithTask(task, InternalInterface.MG_ACT_REC_PREFIX);
27756
27767
  if (!this.GetStopExecutionFlag() && !task.getPreventControlChange()) {
27757
27768
  if (!(task === LastFocusedManager.Instance.getLastFocusedTask() || !task.pathContains(LastFocusedManager.Instance.getLastFocusedTask())))
@@ -28481,6 +28492,12 @@ class EventsManager {
28481
28492
  return false;
28482
28493
  return true;
28483
28494
  }
28495
+ getIsInViewRefresh() {
28496
+ return this.isInViewRefresh;
28497
+ }
28498
+ setIsInViewRefresh(inViewRefresh) {
28499
+ this.isInViewRefresh = inViewRefresh;
28500
+ }
28484
28501
  }
28485
28502
  EventsManager.REAL_ONLY = true;
28486
28503
  EventsManager.MAX_OPER = 9999;
@@ -28997,13 +29014,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
28997
29014
  }
28998
29015
 
28999
29016
  class EnhancedVerifyCommand extends VerifyCommand {
29000
- constructor() {
29001
- super();
29002
- this._buttonsID = '\0';
29003
- this._image = '\0';
29004
- this._returnValStr = null;
29005
- this._returnVal = null;
29006
- }
29007
29017
  async ProcessMessageBoxResponse(task, returnValue) {
29008
29018
  if (task !== null)
29009
29019
  await Operation.setoperVerifyReturnValue(returnValue, this._returnVal);
@@ -29034,6 +29044,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29034
29044
  break;
29035
29045
  }
29036
29046
  }
29047
+ constructor() {
29048
+ super();
29049
+ this._buttonsID = '\0';
29050
+ this._image = '\0';
29051
+ this._returnValStr = null;
29052
+ this._returnVal = null;
29053
+ }
29037
29054
  }
29038
29055
 
29039
29056
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -29130,12 +29147,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
29130
29147
  }
29131
29148
 
29132
29149
  class ResultCommand extends ClientTargetedCommandBase {
29133
- constructor() {
29134
- super();
29135
- this._isNull = false;
29136
- this._attr = StorageAttribute.NONE;
29137
- this._val = null;
29138
- }
29139
29150
  async Execute(res) {
29140
29151
  if (this._isNull)
29141
29152
  res.SetResultValue(null, StorageAttribute.NONE);
@@ -29161,6 +29172,12 @@ class ResultCommand extends ClientTargetedCommandBase {
29161
29172
  break;
29162
29173
  }
29163
29174
  }
29175
+ constructor() {
29176
+ super();
29177
+ this._isNull = false;
29178
+ this._attr = StorageAttribute.NONE;
29179
+ this._val = null;
29180
+ }
29164
29181
  }
29165
29182
 
29166
29183
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -29525,19 +29542,9 @@ class CommandsTable {
29525
29542
  }
29526
29543
  }
29527
29544
 
29528
- let CurrentClientVersion = '4.901.0-dev491.4';
29545
+ let CurrentClientVersion = '4.1000.0-Time24h-dev4100.351';
29529
29546
 
29530
29547
  class ClientManager {
29531
- constructor() {
29532
- this._globalUniqueSessionId = null;
29533
- this._buttonIsClicked = false;
29534
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
29535
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
29536
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
29537
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
29538
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
29539
- this.RegisterDelegates();
29540
- }
29541
29548
  static get Instance() {
29542
29549
  if (ClientManager._instance === null)
29543
29550
  ClientManager._instance = new ClientManager();
@@ -29737,6 +29744,16 @@ class ClientManager {
29737
29744
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
29738
29745
  }
29739
29746
  }
29747
+ constructor() {
29748
+ this._globalUniqueSessionId = null;
29749
+ this._buttonIsClicked = false;
29750
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
29751
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
29752
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
29753
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
29754
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
29755
+ this.RegisterDelegates();
29756
+ }
29740
29757
  InitGuiManager() {
29741
29758
  Manager.EventsManager = EventsManager.Instance;
29742
29759
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -29789,7 +29806,7 @@ class ClientManager {
29789
29806
  await MGDataCollection.Instance.addMGData(mgd, 0, true);
29790
29807
  await ClientManager.Instance.WorkThreadExecution();
29791
29808
  if (Logger.Instance.ShouldLog()) {
29792
- Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, "dd/MM/yyyy", Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
29809
+ Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_DATE_FORMAT, Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
29793
29810
  }
29794
29811
  }
29795
29812
  else {
@@ -29956,13 +29973,6 @@ class MagicBridge {
29956
29973
  }
29957
29974
  }
29958
29975
 
29959
- class ControlItemsRefreshCommand extends DataviewCommand {
29960
- constructor() {
29961
- super();
29962
- this.Control = null;
29963
- }
29964
- }
29965
-
29966
29976
  class DataViewOutputCommand extends DataviewCommand {
29967
29977
  constructor(OutputCommandType) {
29968
29978
  super();