@magic-xpa/engine 4.800.0-dev480.95 → 4.801.0-dev481.222

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 (46) hide show
  1. package/bundles/magic-xpa-engine.umd.js +1250 -1066
  2. package/bundles/magic-xpa-engine.umd.js.map +1 -1
  3. package/bundles/magic-xpa-engine.umd.min.js +2 -2
  4. package/bundles/magic-xpa-engine.umd.min.js.map +1 -1
  5. package/esm2015/index.js +2 -1
  6. package/esm2015/src/ClientManager.js +2 -2
  7. package/esm2015/src/ConstInterface.js +7 -3
  8. package/esm2015/src/CurrentClientVersion.js +2 -2
  9. package/esm2015/src/commands/ClientToServer/CommandFactory.js +15 -1
  10. package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +4 -1
  11. package/esm2015/src/commands/ClientToServer/SelectProgramCommand.js +15 -0
  12. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +1 -7
  13. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +2 -2
  14. package/esm2015/src/env/Environment.js +11 -1
  15. package/esm2015/src/event/ActionManager.js +3 -2
  16. package/esm2015/src/event/EventHandler.js +4 -4
  17. package/esm2015/src/event/EventsManager.js +120 -20
  18. package/esm2015/src/event/IEventsManager.js +1 -1
  19. package/esm2015/src/exp/ExpressionDict.js +3 -1
  20. package/esm2015/src/exp/ExpressionEvaluator.js +30 -19
  21. package/esm2015/src/gui/MgForm.js +16 -24
  22. package/esm2015/src/remote/RemoteCommandsProcessor.js +48 -21
  23. package/esm2015/src/rt/Operation.js +10 -30
  24. package/esm2015/src/tasks/MGData.js +11 -1
  25. package/esm2015/src/tasks/MGDataCollection.js +12 -2
  26. package/esm2015/src/tasks/Task.js +46 -45
  27. package/esm2015/src/util/PrmMap.js +11 -1
  28. package/fesm2015/magic-xpa-engine.js +345 -166
  29. package/fesm2015/magic-xpa-engine.js.map +1 -1
  30. package/index.d.ts +1 -0
  31. package/package.json +4 -4
  32. package/src/ConstInterface.d.ts +6 -2
  33. package/src/commands/ClientToServer/CommandFactory.d.ts +1 -0
  34. package/src/commands/ClientToServer/ExecOperCommand.d.ts +2 -1
  35. package/src/commands/ClientToServer/SelectProgramCommand.d.ts +6 -0
  36. package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +0 -1
  37. package/src/env/Environment.d.ts +3 -0
  38. package/src/event/EventsManager.d.ts +11 -1
  39. package/src/event/IEventsManager.d.ts +1 -0
  40. package/src/exp/ExpressionEvaluator.d.ts +1 -0
  41. package/src/gui/MgForm.d.ts +1 -1
  42. package/src/rt/Operation.d.ts +2 -3
  43. package/src/tasks/MGData.d.ts +2 -0
  44. package/src/tasks/MGDataCollection.d.ts +1 -0
  45. package/src/tasks/Task.d.ts +0 -1
  46. package/src/util/PrmMap.d.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, Exception, HashUtils, DateTime, Dictionary, Stack, NChar, WebException, Thread, Encoding, 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, CallOsShow, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
4
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, ControlTable, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, DateBreakParams, TimeBreakParams, 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, ControlTable, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, 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 { isNullOrUndefined, isUndefined } from 'util';
6
6
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
7
7
  import { timer, Subject } from 'rxjs';
@@ -166,8 +166,6 @@ ConstInterface.MG_ATTR_TITLE = "title";
166
166
  ConstInterface.MG_ATTR_TITLE_EXP = "titleExp";
167
167
  ConstInterface.MG_ATTR_IMAGE = "image";
168
168
  ConstInterface.MG_ATTR_BUTTONS = "buttons";
169
- ConstInterface.MG_ATTR_DEFAULT_BUTTON = "defaultButton";
170
- ConstInterface.MG_ATTR_DEFAULT_BUTTON_EXP = "defaultButtonExp";
171
169
  ConstInterface.MG_ATTR_RETURN_VAL = "returnVal";
172
170
  ConstInterface.MG_ATTR_ERR_LOG_APPEND = "errorLogAppend";
173
171
  ConstInterface.MG_ATTR_EVENTVALUE = "eventvalue";
@@ -277,6 +275,7 @@ ConstInterface.MG_ATTR_DEFAULT_COLOR = "defaultColor";
277
275
  ConstInterface.MG_ATTR_DEFAULT_FOCUS_COLOR = "defaultFocusColor";
278
276
  ConstInterface.MG_ATTR_DEFAULT_DISABLED_COLOR = "defaultDisabledColor";
279
277
  ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT = "ContextInactivityTimeout";
278
+ ConstInterface.MG_ATTR_CLIENT_CONTEXT_INACTIVITY_TIMEOUT = "ClientContextInactivityTimeout";
280
279
  ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT_LOWER = "contextinactivitytimeout";
281
280
  ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME = "ContextInactivityWarningTime";
282
281
  ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME_LOWER = "contextinactivitywarningtime";
@@ -626,6 +625,10 @@ ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
626
625
  ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
627
626
  ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
628
627
  ConstInterface.LAST_EXCEPTION = "LastException";
628
+ ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
629
+ ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
630
+ ConstInterface.LAST_ROUTE_EVENT_ARG_LIST = "LastRouteEventArgList";
631
+ ConstInterface.LAST_ROUTE_EVENT_SRC_TSK = "LastRouteEventSourceTask";
629
632
  ConstInterface.IS_SESSION_REINITIALIZING = "IsSessionReInitializing";
630
633
  ConstInterface.RC_AUTHENTICATION_REQUEST = "RCAUTHENTICATIONREQUEST=Y";
631
634
  ConstInterface.V24_RIA_ERROR_PREFIX = "<RIA_ERROR_RESPONSE>";
@@ -755,7 +758,8 @@ ConstInterface.MG_ATTR_VAL_SERVER_TRANS_CACHE_EMPTY = "serverTransCacheEmpty";
755
758
  ConstInterface.MG_ATTR_SPECIAL_ANSI_BLOB_CHECK_NULL = "SpecialAnsiBlobCheckNull";
756
759
  ConstInterface.MG_ATTR_SPECIAL_TABLE_REDUCE_TITLE_HEIGHT = "SpecialTableReduceTitleHeight";
757
760
  ConstInterface.MG_ATTR_SPECIAL_DOTNET_ALLOW_ZERO_DATE = "SpecialDotNetAllowZeroDate";
758
- ConstInterface.MG_ATTR_SPECIAL_REUSE_TABLE_EDITOR = "SpecialReuseTableEditor";
761
+ ConstInterface.MG_ATTR_SPECIAL_REUSE_TABLE_EDITOR = "SpecialReuseTableEditor";
762
+ ConstInterface.MG_TAG_LAST_ROUTE = "LastRoute";
759
763
 
760
764
  class ClientOriginatedCommand {
761
765
  get ShouldSerialize() {
@@ -4546,6 +4550,9 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4546
4550
  ' in ' + '[' + this.Operation.getEventHandler().getEventHandlerInfo() + ']' +
4547
4551
  ' on ' + '[' + this.Operation.Task.getTaskInfo() + ']';
4548
4552
  }
4553
+ getTask() {
4554
+ return this.Operation.Task;
4555
+ }
4549
4556
  }
4550
4557
 
4551
4558
  class Scrambler {
@@ -5309,6 +5316,7 @@ class MGDataCollection {
5309
5316
  this._iteratorTaskIdx = 0;
5310
5317
  this.currMgdID = 0;
5311
5318
  this.StartupMgData = null;
5319
+ this._lastRouteSentToServer = "";
5312
5320
  }
5313
5321
  GetTaskByID(id) {
5314
5322
  let task = null;
@@ -5425,6 +5433,13 @@ class MGDataCollection {
5425
5433
  }
5426
5434
  buildXML(message, serializeTasks) {
5427
5435
  return __awaiter(this, void 0, void 0, function* () {
5436
+ let lastRoute = Commands.getLastRoute();
5437
+ if (lastRoute !== this._lastRouteSentToServer) {
5438
+ message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_LAST_ROUTE);
5439
+ message.Append(" " + ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + lastRoute + "\"");
5440
+ message.Append(XMLConstants.TAG_TERM);
5441
+ this._lastRouteSentToServer = lastRoute;
5442
+ }
5428
5443
  for (let i = 0; i < this.getSize(); i = i + 1) {
5429
5444
  let mgd = this.getMGData(i);
5430
5445
  if (mgd !== null && !mgd.IsAborting) {
@@ -5601,7 +5616,9 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5601
5616
  return __awaiter(this, void 0, void 0, function* () {
5602
5617
  RemoteCommandsProcessor.IsSessionReInitializing = true;
5603
5618
  yield this.StoreSessionReInitializingDataOnLocalStorage();
5604
- let navigateRootRoute = Environment.Instance.getSpecialRouteToRootProgOnContextRecreation() ? true : false;
5619
+ let navigateRootRoute = false;
5620
+ if (!RuntimeContextBase.Instance.RemovedContextFromServer)
5621
+ navigateRootRoute = Environment.Instance.getSpecialRouteToRootProgOnContextRecreation() ? true : false;
5605
5622
  Commands.addRefreshPage(navigateRootRoute, RemoteCommandsProcessor.InitialUrl);
5606
5623
  throw new Exception('');
5607
5624
  });
@@ -5615,6 +5632,9 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5615
5632
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5616
5633
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5617
5634
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5635
+ if (RuntimeContextBase.Instance.RemovedContextFromServer)
5636
+ dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
5637
+ EventsManager.Instance.storeLastSavedRouteEventOnLocalStorage();
5618
5638
  });
5619
5639
  }
5620
5640
  RestoreSessionReInitializingDataFromLocalStorage(key) {
@@ -5797,7 +5817,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5797
5817
  if (cmdsToServer.getCmd(i) instanceof ExecOperCommand) {
5798
5818
  let operCmd = currMGData.CmdsToServer.getCmd(i);
5799
5819
  this._requestInfo.serverCallAt = operCmd.getCommandInfo();
5800
- this._requestInfo.runtimeTaskTree = this.GetTaskTree(operCmd.Operation.Task);
5820
+ this._requestInfo.runtimeTaskTree = this.GetTaskTree(operCmd.getTask());
5801
5821
  operExecution = true;
5802
5822
  break;
5803
5823
  }
@@ -5859,8 +5879,11 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5859
5879
  if (val === 'true') {
5860
5880
  RemoteCommandsProcessor.IsSessionReInitializing = (val === "true") ? true : false;
5861
5881
  RemoteCommandsProcessor.lastExceptionMessage = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.LAST_EXCEPTION);
5862
- Logger.Instance.WriteErrorToLog(RemoteCommandsProcessor.lastExceptionMessage);
5863
- Logger.Instance.WriteToLog("Session is reinitializing...", true);
5882
+ let ctxRemoved = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.CTX_REMOVED_FROM_SRVR);
5883
+ if (ctxRemoved !== '1') {
5884
+ Logger.Instance.WriteErrorToLog(RemoteCommandsProcessor.lastExceptionMessage);
5885
+ Logger.Instance.WriteToLog("Session is reinitializing...", true);
5886
+ }
5864
5887
  }
5865
5888
  }
5866
5889
  if (sendingInstruction === CommandsProcessorBase_SendingInstruction.NO_TASKS_OR_COMMANDS)
@@ -5897,8 +5920,13 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5897
5920
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5898
5921
  reqBuf = reqBuf + this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.MAIN_PROG_VIEW);
5899
5922
  }
5900
- respBuf = yield this.DispatchRequest(this.ServerUrl, reqBuf, sessionStage, requestStatus);
5901
- let success;
5923
+ if (RuntimeContextBase.Instance.RemovedContextFromServer)
5924
+ requestStatus.value = RequestStatus.Retry;
5925
+ else {
5926
+ if (RuntimeContextBase.Instance.RemovingContextFromServer)
5927
+ RuntimeContextBase.Instance.RemovedContextFromServer = true;
5928
+ respBuf = yield this.DispatchRequest(this.ServerUrl, reqBuf, sessionStage, requestStatus);
5929
+ }
5902
5930
  if (requestStatus.value == RequestStatus.Retry) {
5903
5931
  yield this.ReStartSession();
5904
5932
  }
@@ -5918,6 +5946,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5918
5946
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5919
5947
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5920
5948
  AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5949
+ let dataStorage = window.localStorage;
5950
+ let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5951
+ if (ctxRemoved === "1") {
5952
+ EventsManager.Instance.restoreLastSavedRouteEventFromLocalStorage();
5953
+ dataStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5954
+ dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
5955
+ dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
5956
+ dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
5957
+ }
5921
5958
  RemoteCommandsProcessor.IsSessionReInitializing = false;
5922
5959
  }
5923
5960
  if (sendingInstruction === CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS) {
@@ -5974,19 +6011,24 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5974
6011
  requestStatus.value = RequestStatus.Abort;
5975
6012
  if (sessionStage == CommandsProcessorBase_SessionStage.NORMAL) {
5976
6013
  if (ex.GetCode() == ServerError.ERR_CTX_NOT_FOUND || ex.GetCode() == ServerError.ERR_THREAD_ABORTED) {
5977
- switch (Environment.Instance.getWebClientReinitSession()) {
5978
- case 'Y':
5979
- requestStatus.value = RequestStatus.Retry;
5980
- break;
5981
- case 'A':
5982
- let retval = yield GUIManager.Instance.MessageBox("Error", "Unknown error occurred at server-side." +
5983
- " Would you like to reinitialize the session?", Styles.MSGBOX_BUTTON_YES_NO);
5984
- requestStatus.value = (retval == Styles.MSGBOX_RESULT_YES) ? RequestStatus.Retry : RequestStatus.Abort;
5985
- break;
5986
- case 'N':
5987
- default:
5988
- requestStatus.value = RequestStatus.Abort;
5989
- break;
6014
+ if (RuntimeContextBase.Instance.RemovedContextFromServer) {
6015
+ requestStatus.value = RequestStatus.Retry;
6016
+ }
6017
+ else {
6018
+ switch (Environment.Instance.getWebClientReinitSession()) {
6019
+ case 'Y':
6020
+ requestStatus.value = RequestStatus.Retry;
6021
+ break;
6022
+ case 'A':
6023
+ let retval = yield GUIManager.Instance.MessageBox("Error", "Unknown error occurred at server-side." +
6024
+ " Would you like to reinitialize the session?", Styles.MSGBOX_BUTTON_YES_NO);
6025
+ requestStatus.value = (retval == Styles.MSGBOX_RESULT_YES) ? RequestStatus.Retry : RequestStatus.Abort;
6026
+ break;
6027
+ case 'N':
6028
+ default:
6029
+ requestStatus.value = RequestStatus.Abort;
6030
+ break;
6031
+ }
5990
6032
  }
5991
6033
  if (requestStatus.value == RequestStatus.Abort) {
5992
6034
  Environment.Instance.setWebClientReinitSession('N');
@@ -6420,7 +6462,7 @@ class InteractiveCommunicationsFailureHandler {
6420
6462
  return __awaiter(this, void 0, void 0, function* () {
6421
6463
  let exceptionCaption = "";
6422
6464
  let exceptionMessage = url.split('?')[0] + OSEnvironment.EolSeq + OSEnvironment.EolSeq + ex.message + OSEnvironment.EolSeq + OSEnvironment.EolSeq;
6423
- this.ShouldRetryLastRequest = ((yield GUIManager.Instance.MessageBox(exceptionCaption, exceptionMessage + "Do you wish to retry connecting?", Styles.MSGBOX_BUTTON_YES_NO | Styles.MSGBOX_DEFAULT_BUTTON_2)) === Styles.MSGBOX_RESULT_YES);
6465
+ this.ShouldRetryLastRequest = ((yield GUIManager.Instance.MessageBox(exceptionCaption, exceptionMessage + "Do you wish to retry connecting?", Styles.MSGBOX_BUTTON_YES_NO)) === Styles.MSGBOX_RESULT_YES);
6424
6466
  });
6425
6467
  }
6426
6468
  }
@@ -7775,6 +7817,8 @@ ExpressionDict.expDesc = [
7775
7817
  new ExpDesc('B', 0, -2, -2, '*', false),
7776
7818
  new ExpDesc('*', 0, 1, 1, 'A', false),
7777
7819
  new ExpDesc('B', 0, 1, 1, 'A', false),
7820
+ null,
7821
+ new ExpDesc('U', 0, 0, 0, '', false),
7778
7822
  ];
7779
7823
 
7780
7824
  var DataViewCommandType;
@@ -8434,6 +8478,19 @@ class ContextTimeoutResetCommand extends EventCommand {
8434
8478
  }
8435
8479
  }
8436
8480
 
8481
+ class SelectProgramCommand extends ExecOperCommand {
8482
+ getCommandInfo() {
8483
+ let eventsManager = AccessHelper.eventsManager;
8484
+ let rtEvt = eventsManager.getLastRtEvent();
8485
+ return 'Select Program ' + 'on Control ' + rtEvt.Control.Name;
8486
+ }
8487
+ getTask() {
8488
+ let eventsManager = AccessHelper.eventsManager;
8489
+ let rtEvt = eventsManager.getLastRtEvent();
8490
+ return rtEvt.getTask();
8491
+ }
8492
+ }
8493
+
8437
8494
  class CommandFactory {
8438
8495
  static CreateEventCommand(taskTag, magicEvent) {
8439
8496
  let eventCommand = new EventCommand(magicEvent);
@@ -8651,6 +8708,19 @@ class CommandFactory {
8651
8708
  cmd.Val = value;
8652
8709
  return cmd;
8653
8710
  }
8711
+ static CreateSelectProgramCommand(taskTag, handlerId, operIdx, ditIdx, value) {
8712
+ let execOperCommand = new SelectProgramCommand();
8713
+ execOperCommand.OperIdx = operIdx;
8714
+ execOperCommand.TaskTag = taskTag;
8715
+ execOperCommand.HandlerId = handlerId;
8716
+ execOperCommand.DitIdx = ditIdx;
8717
+ let cmd = execOperCommand;
8718
+ if (value !== null && value.length === 0)
8719
+ cmd.Val = " ";
8720
+ else
8721
+ cmd.Val = value;
8722
+ return cmd;
8723
+ }
8654
8724
  static CreateEvaluateCommand(taskTag, expType, expIdx, expValLen, mprgCreator) {
8655
8725
  let evaluateCommand = new EvaluateCommand();
8656
8726
  evaluateCommand.TaskTag = taskTag;
@@ -8741,6 +8811,8 @@ class MirrorPrmMap extends PrmMap {
8741
8811
  if (this.values != null) {
8742
8812
  xml.Append("<" + this.mirroredID + ">");
8743
8813
  for (let key of this.values.Keys) {
8814
+ if (this.CheckIfSystemReservedParam(key))
8815
+ continue;
8744
8816
  xml.Append("<" + ConstInterface.MG_TAG_PARAM + " " +
8745
8817
  XMLConstants.MG_ATTR_NAME + "=\"" + XmlParser.escape(key) + "\" ");
8746
8818
  xml.Append(this.values.get_Item(key).mirrorToXML());
@@ -8750,6 +8822,14 @@ class MirrorPrmMap extends PrmMap {
8750
8822
  }
8751
8823
  return xml.ToString();
8752
8824
  }
8825
+ CheckIfSystemReservedParam(key) {
8826
+ if (key == "UTF8TRANS" || key === "REMOTE_HOST" || key === "REMOTE_ADDR" ||
8827
+ key === "CTX" || key === "MGARG0" || key === "DATA" || key === "MGCURRENTREQUESTID" ||
8828
+ key === "HTTP_MGXPARIAGLOBALUNIQUESESSIONID" || key === "MG_POST_BODY")
8829
+ return true;
8830
+ else
8831
+ return false;
8832
+ }
8753
8833
  mirrorToXML() {
8754
8834
  let xml = new StringBuilder();
8755
8835
  if (this.changes.length > 0) {
@@ -8826,6 +8906,7 @@ class Environment {
8826
8906
  constructor() {
8827
8907
  this._environments = new Hashtable();
8828
8908
  this._contextInactivityTimeout = 0;
8909
+ this._clientContextInactivityTimeout = 0;
8829
8910
  this._contextInactivityWarningTime = 0;
8830
8911
  this._toolitipTimeout = 0;
8831
8912
  this._contextUnloadTimeout = 0;
@@ -9005,6 +9086,9 @@ class Environment {
9005
9086
  case ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT:
9006
9087
  this._contextInactivityTimeout = XmlParser.getInt(valueStr);
9007
9088
  break;
9089
+ case ConstInterface.MG_ATTR_CLIENT_CONTEXT_INACTIVITY_TIMEOUT:
9090
+ this._clientContextInactivityTimeout = XmlParser.getInt(valueStr);
9091
+ break;
9008
9092
  case ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME:
9009
9093
  this._contextInactivityWarningTime = XmlParser.getInt(valueStr);
9010
9094
  break;
@@ -9208,6 +9292,9 @@ class Environment {
9208
9292
  CanReplaceDecimalSeparator() {
9209
9293
  return !this.IgnoreReplaceDecimalSeparator && this._canReplaceDecimalSeparator;
9210
9294
  }
9295
+ getClientContextInactivityTimeout() {
9296
+ return this._clientContextInactivityTimeout;
9297
+ }
9211
9298
  getContextInactivityTimeout() {
9212
9299
  return this._contextInactivityTimeout;
9213
9300
  }
@@ -9313,6 +9400,9 @@ class Environment {
9313
9400
  setContextInactivityTimeout(val) {
9314
9401
  this._contextInactivityTimeout = val;
9315
9402
  }
9403
+ setClientContextInactivityTimeout(val) {
9404
+ this._clientContextInactivityTimeout = val;
9405
+ }
9316
9406
  setContextInactivityWarningTime(val) {
9317
9407
  this._contextInactivityWarningTime = val;
9318
9408
  }
@@ -9565,8 +9655,6 @@ class Operation {
9565
9655
  this._buttons = '\0';
9566
9656
  this._checkByServer = false;
9567
9657
  this._cmdToServer = null;
9568
- this._defaultButton = 0;
9569
- this._defaultButtonExp = null;
9570
9658
  this._display = 'S';
9571
9659
  this._errLogAppend = false;
9572
9660
  this._evtHandler = null;
@@ -9771,13 +9859,6 @@ class Operation {
9771
9859
  case ConstInterface.MG_ATTR_BUTTONS:
9772
9860
  this._buttons = valueStr[0];
9773
9861
  break;
9774
- case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
9775
- this._defaultButton = XmlParser.getInt(valueStr);
9776
- break;
9777
- case ConstInterface.MG_ATTR_DEFAULT_BUTTON_EXP:
9778
- expId = XmlParser.getInt(valueStr);
9779
- this._defaultButtonExp = taskRef.getExpById(expId);
9780
- break;
9781
9862
  case ConstInterface.MG_ATTR_RETURN_VAL:
9782
9863
  this._returnVal = Operation.InitField(valueStr, this._task);
9783
9864
  break;
@@ -9915,8 +9996,10 @@ class Operation {
9915
9996
  if (subformTask != null) {
9916
9997
  let terminateTaskGracefully = true;
9917
9998
  let rtEvnt = AccessHelper.eventsManager.getLastRtEvent();
9918
- if (this._isRoute && rtEvnt !== null && rtEvnt.isGuiTriggeredEvent())
9999
+ if (this._isRoute && rtEvnt !== null && rtEvnt.isGuiTriggeredEvent()) {
9919
10000
  terminateTaskGracefully = false;
10001
+ AccessHelper.eventsManager.setStopExecution(true);
10002
+ }
9920
10003
  if (yield subformTask.endTask(true, false, !terminateTaskGracefully, true)) {
9921
10004
  let parentTask = destSubForm.getForm().getTask();
9922
10005
  parentTask.TaskService.RemoveRecomputes(parentTask, subformTask);
@@ -9985,10 +10068,9 @@ class Operation {
9985
10068
  if (!NString.IsNullOrEmpty(textToDisplay)) {
9986
10069
  let mlsTransTextToDisplay = LanguageData.Instance.translate(textToDisplay);
9987
10070
  let mlsTransTitleToDisplay = LanguageData.Instance.translate(titleToDisplay);
9988
- let tmpdefaultButton = this._defaultButtonExp == null ? this._defaultButton : (yield this._defaultButtonExp.evaluateWithResType(StorageAttribute.NUMERIC)).MgNumVal.NUM_2_LONG();
9989
10071
  let verifyMode = Operation.getButtons(this._buttons);
9990
10072
  verifyMode = verifyMode || Operation.getImage(this._image);
9991
- verifyMode = verifyMode || Operation.getDefaultButton(tmpdefaultButton);
10073
+ verifyMode = verifyMode;
9992
10074
  if (UtilStrByteMode.isLocaleDefLangJPN()) {
9993
10075
  let delimPos = mlsTransTextToDisplay.indexOf('|');
9994
10076
  if (0 <= delimPos && delimPos < mlsTransTextToDisplay.length) {
@@ -10059,23 +10141,6 @@ class Operation {
10059
10141
  }
10060
10142
  return tmpImage;
10061
10143
  }
10062
- static getDefaultButton(defaultButtonID) {
10063
- let tmpdefaultButton = 0;
10064
- switch (defaultButtonID) {
10065
- case 1:
10066
- tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_1;
10067
- break;
10068
- case 2:
10069
- tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_2;
10070
- break;
10071
- case 3:
10072
- tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_3;
10073
- break;
10074
- default:
10075
- break;
10076
- }
10077
- return tmpdefaultButton;
10078
- }
10079
10144
  static setoperVerifyReturnValue(returnValue, returnVal) {
10080
10145
  return __awaiter(this, void 0, void 0, function* () {
10081
10146
  if (returnVal !== null) {
@@ -10201,6 +10266,7 @@ class Operation {
10201
10266
  aRtEvt.setArgList(this._argList);
10202
10267
  if (aRtEvt.getTask().isMainProg())
10203
10268
  aRtEvt.setMainPrgCreator(mprgCreator);
10269
+ AccessHelper.eventsManager.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
10204
10270
  AccessHelper.eventsManager.pushExecStack(this._task.getTaskTag(), this._evtHandler.getId().toString(), this._serverId);
10205
10271
  yield AccessHelper.eventsManager.handleEvent(aRtEvt, returnedFromServer);
10206
10272
  AccessHelper.eventsManager.popExecStack();
@@ -10211,6 +10277,7 @@ class Operation {
10211
10277
  aRtEvt.setArgList(arglist);
10212
10278
  aRtEvt.setTask(null);
10213
10279
  AccessHelper.eventsManager.addToTail(aRtEvt);
10280
+ AccessHelper.eventsManager.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
10214
10281
  }
10215
10282
  });
10216
10283
  }
@@ -10327,6 +10394,9 @@ class Operation {
10327
10394
  toString() {
10328
10395
  return NString.Format("Executing operation number {0}", this._serverId + 1);
10329
10396
  }
10397
+ GetRuntimeEvent() {
10398
+ return this._rtEvt;
10399
+ }
10330
10400
  }
10331
10401
 
10332
10402
  class MirrorString {
@@ -12378,6 +12448,9 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
12378
12448
  resVal.IsNull = false;
12379
12449
  this.eval_op_delete_cookie(valStack.pop().StrVal, resVal);
12380
12450
  break;
12451
+ case ExpressionInterface.EXP_OP_ROUTEGET:
12452
+ this.eval_op_route_get(resVal);
12453
+ break;
12381
12454
  default:
12382
12455
  return;
12383
12456
  }
@@ -14930,27 +15003,30 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14930
15003
  resVal.Attr = StorageAttribute.BOOLEAN;
14931
15004
  resVal.StrVal = '';
14932
15005
  let args = this.params2arguments(expVal, 0, expVal.length);
14933
- var expires, path, domain, secure, sameSite;
14934
- expires = args[1];
15006
+ var expiresDate, path, domain, secure, sameSite;
15007
+ expiresDate = args[1];
15008
+ let expiresTime = args[2];
14935
15009
  let nativeDt;
14936
- if (expires) {
14937
- let breakParams = new DateBreakParams();
14938
- DisplayConvertor.Instance.date_break_datemode(breakParams, expires, false, 0);
14939
- if (breakParams.month > 0)
14940
- breakParams.month = breakParams.month - 1;
15010
+ if (expiresDate) {
15011
+ let breakParams = DisplayConvertor.Instance.getNewDateBreakParams();
15012
+ DisplayConvertor.Instance.date_break_datemode(breakParams, expiresDate, false, this.ExpTask.getCompIdx());
15013
+ let year = breakParams.year;
15014
+ let month = breakParams.month;
15015
+ let day = breakParams.day;
14941
15016
  if (breakParams.year == 0 && breakParams.month == 0 && breakParams.day == 0)
14942
15017
  return null;
14943
- nativeDt = new Date(breakParams.year, breakParams.month, breakParams.day);
14944
- let timeBreakParams = new TimeBreakParams();
14945
- DisplayConvertor.time_break(timeBreakParams, expires);
14946
- nativeDt.setHours(timeBreakParams.hour);
14947
- nativeDt.setMinutes(timeBreakParams.minute);
14948
- nativeDt.setSeconds(timeBreakParams.second);
14949
- }
14950
- path = args[2];
14951
- domain = args[3];
15018
+ nativeDt = new Date(breakParams.year, breakParams.month - 1, breakParams.day);
15019
+ if (expiresTime) {
15020
+ let timeBreakParams = DisplayConvertor.Instance.getNewTimeBreakParams();
15021
+ DisplayConvertor.time_break(timeBreakParams, expiresTime);
15022
+ nativeDt.setHours(timeBreakParams.hour);
15023
+ nativeDt.setMinutes(timeBreakParams.minute);
15024
+ nativeDt.setSeconds(timeBreakParams.second);
15025
+ }
15026
+ }
15027
+ path = args[3];
15028
+ domain = args[4];
14952
15029
  resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
14953
- ;
14954
15030
  }
14955
15031
  eval_op_get_cookie(cookieName, resVal) {
14956
15032
  resVal.StrVal = CookieService.getCookie(cookieName);
@@ -14960,6 +15036,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14960
15036
  resVal.BoolVal = CookieService.deleteCookie(cookieName);
14961
15037
  ;
14962
15038
  }
15039
+ eval_op_route_get(resVal) {
15040
+ resVal.Attr = StorageAttribute.UNICODE;
15041
+ resVal.IsNull = false;
15042
+ resVal.StrVal = Commands.getLastRoute();
15043
+ }
14963
15044
  params2arguments(Exp_params, startAt, count) {
14964
15045
  let NULL_STR = '';
14965
15046
  let attr = new Array();
@@ -20259,6 +20340,7 @@ class MgForm extends MgFormBase {
20259
20340
  super();
20260
20341
  this.IsMovingInView = false;
20261
20342
  this.PrevDisplayLine = 0;
20343
+ this.RefreshAllRows = false;
20262
20344
  this.IgnoreFirstRecordCycle = false;
20263
20345
  this.MovedToFirstControl = false;
20264
20346
  this._suffixDone = false;
@@ -20593,8 +20675,10 @@ class MgForm extends MgFormBase {
20593
20675
  let currLine = -1;
20594
20676
  if (!this._task.DataView.isEmptyDataview())
20595
20677
  currLine = this.getVisibleLine();
20596
- if (this.isTableWithAbsoluteScrollbar())
20678
+ if (this.isTableWithAbsoluteScrollbar()) {
20597
20679
  this.GetDataview().TotalRecordsCount += 1;
20680
+ this.RefreshAllRows = true;
20681
+ }
20598
20682
  let newRecIdx = yield this.GetDataview().addRecord(doSuffix, false, isCrelineAbove);
20599
20683
  if (newRecIdx > -1) {
20600
20684
  if (this.isLineMode()) {
@@ -20628,8 +20712,10 @@ class MgForm extends MgFormBase {
20628
20712
  yield this.RefreshDisplay(Constants.TASK_REFRESH_TABLE);
20629
20713
  }
20630
20714
  }
20631
- else if (this.isTableWithAbsoluteScrollbar())
20715
+ else if (this.isTableWithAbsoluteScrollbar()) {
20632
20716
  this.GetDataview().TotalRecordsCount -= 1;
20717
+ this.RefreshAllRows = false;
20718
+ }
20633
20719
  });
20634
20720
  }
20635
20721
  delCurrRec() {
@@ -20660,8 +20746,10 @@ class MgForm extends MgFormBase {
20660
20746
  this.GetDataview().setTopRecIdx(this.GetDataview().getCurrRecIdx());
20661
20747
  if (_super.isLineMode.call(this)) {
20662
20748
  if (_super.HasTable.call(this)) {
20663
- if (this.isTableWithAbsoluteScrollbar())
20749
+ if (this.isTableWithAbsoluteScrollbar()) {
20664
20750
  this.GetDataview().TotalRecordsCount--;
20751
+ this.RefreshAllRows = true;
20752
+ }
20665
20753
  this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
20666
20754
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
20667
20755
  }
@@ -20731,8 +20819,10 @@ class MgForm extends MgFormBase {
20731
20819
  throw ex;
20732
20820
  }
20733
20821
  if (_super.HasTable.call(this)) {
20734
- if (this.isTableWithAbsoluteScrollbar() && recRemoved)
20822
+ if (this.isTableWithAbsoluteScrollbar() && recRemoved) {
20735
20823
  this.GetDataview().TotalRecordsCount--;
20824
+ this.RefreshAllRows = true;
20825
+ }
20736
20826
  this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
20737
20827
  }
20738
20828
  }
@@ -20998,7 +21088,7 @@ class MgForm extends MgFormBase {
20998
21088
  let prevTopIdx = this.GetDataview().getTopRecIdx();
20999
21089
  try {
21000
21090
  index = idx + diffRef.value;
21001
- if (!this.isRowValidated(idx) || sendAll) {
21091
+ if (!this.isRowValidated(idx) || sendAll || this.RefreshAllRows) {
21002
21092
  if (index >= 0)
21003
21093
  _super.checkAndCreateRow.call(this, index);
21004
21094
  if (saveRowIdx + diffRef.value !== index) {
@@ -21025,6 +21115,7 @@ class MgForm extends MgFormBase {
21025
21115
  }
21026
21116
  }
21027
21117
  this.RefreshUI();
21118
+ this.RefreshAllRows = false;
21028
21119
  return updated;
21029
21120
  });
21030
21121
  }
@@ -21081,24 +21172,6 @@ class MgForm extends MgFormBase {
21081
21172
  getPrevLine(line) {
21082
21173
  return line - 1;
21083
21174
  }
21084
- getDefaultButton(checkVisibleEnable) {
21085
- const _super = Object.create(null, {
21086
- getProp: { get: () => super.getProp },
21087
- getCtrlByName: { get: () => super.getCtrlByName }
21088
- });
21089
- return __awaiter(this, void 0, void 0, function* () {
21090
- let defaultButton = null;
21091
- let prop = _super.getProp.call(this, PropInterface.PROP_TYPE_DEFAULT_BUTTON);
21092
- if (prop !== null) {
21093
- defaultButton = _super.getCtrlByName.call(this, yield prop.getValue(), MgControlType.CTRL_TYPE_BUTTON);
21094
- if (checkVisibleEnable && defaultButton !== null) {
21095
- if (!defaultButton.isVisible() || !defaultButton.isEnabled())
21096
- defaultButton = null;
21097
- }
21098
- }
21099
- return defaultButton;
21100
- });
21101
- }
21102
21175
  clearTableColumnSortMark(clearSortMark) {
21103
21176
  if (clearSortMark) {
21104
21177
  }
@@ -22751,10 +22824,10 @@ class EventHandler {
22751
22824
  returnedFromServer = false;
22752
22825
  }
22753
22826
  }
22754
- if (blockIfReturnedFromServer)
22755
- retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
22756
- else if (routeOperationExecuted)
22827
+ if (routeOperationExecuted)
22757
22828
  retvals = new RetVals(false, true);
22829
+ else if (blockIfReturnedFromServer)
22830
+ retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
22758
22831
  else
22759
22832
  retvals = null;
22760
22833
  return retvals;
@@ -23601,7 +23674,8 @@ ActionManager.actEnabled = [
23601
23674
  InternalInterface.MG_ACT_INDEX_CHANGE,
23602
23675
  InternalInterface.MG_ACT_WEBCLIENT_ROUTE,
23603
23676
  InternalInterface.MG_ACT_SET_EXTERNAL_VALUE,
23604
- InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER
23677
+ InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER,
23678
+ InternalInterface.MG_ACT_CONTEXT_REMOVE
23605
23679
  ];
23606
23680
  ActionManager.actNavigation = [
23607
23681
  InternalInterface.MG_ACT_TBL_PRVLINE,
@@ -24244,16 +24318,12 @@ class Task extends TaskBase {
24244
24318
  result = yield this.DataviewManager.Execute(dataViewCommand);
24245
24319
  if (!result.Success)
24246
24320
  return null;
24247
- this.ResumeSubformLayout();
24248
24321
  }
24249
24322
  nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
24250
24323
  this.InStartProcess = false;
24251
24324
  return nonInteractiveTask;
24252
24325
  });
24253
24326
  }
24254
- CanResumeSubformLayout() {
24255
- return this.DataViewWasRetrieved;
24256
- }
24257
24327
  InitializeExecution() {
24258
24328
  super.setBrkLevel(ConstInterface.BRK_LEVEL_REC_MAIN, -1);
24259
24329
  this._firstRecordCycle = true;
@@ -24296,20 +24366,9 @@ class Task extends TaskBase {
24296
24366
  this.ActionManager.enableList(actList, true, false);
24297
24367
  if (this.IsSubForm)
24298
24368
  this.ActionManager.enable(InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT, true);
24299
- if (this.Form != null && (yield this.Form.getDefaultButton(false)) != null)
24300
- this.ActionManager.enable(InternalInterface.MG_ACT_DEFAULT_BUTTON, true);
24301
24369
  yield this.enableModes();
24302
24370
  if (yield this.checkProp(PropInterface.PROP_TYPE_SELECTION, false)) {
24303
- if ((yield ((this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON))).getValue()) !== "") {
24304
- let defaultButtonName = yield (this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON)).getValue();
24305
- let ctrl = this.Form.getCtrlByCtrlName(defaultButtonName);
24306
- let aRtEvt = new RunTimeEvent(ctrl);
24307
- if (aRtEvt.getType() === ConstInterface.EVENT_TYPE_INTERNAL &&
24308
- aRtEvt.getInternalCode() === InternalInterface.MG_ACT_SELECT)
24309
- this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24310
- }
24311
- else
24312
- this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24371
+ this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24313
24372
  }
24314
24373
  let enablePrintdata = yield this.checkProp(PropInterface.PROP_TYPE_PRINT_DATA, false);
24315
24374
  this.ActionManager.enable(InternalInterface.MG_ACT_PRINT_DATA, enablePrintdata);
@@ -24991,9 +25050,9 @@ class Task extends TaskBase {
24991
25050
  if (this.hasSubTasks()) {
24992
25051
  if (!RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
24993
25052
  let pendingTransactions = true;
24994
- let clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
25053
+ let clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
24995
25054
  if (!clientOperExist) {
24996
- clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
25055
+ clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
24997
25056
  if (!clientOperExist)
24998
25057
  pendingTransactions = this.CheckIfPendingTransactions(this);
24999
25058
  }
@@ -25133,36 +25192,52 @@ class Task extends TaskBase {
25133
25192
  }
25134
25193
  }
25135
25194
  CheckIfClientOperationExistsInSubformTasks(task, eventCode) {
25136
- let clientOperationExist = false;
25137
- var rtEvt = new RunTimeEvent(task);
25138
- rtEvt.setInternal(eventCode);
25139
- let handler = null;
25140
- var evtHanPos = new EventHandlerPosition();
25141
- evtHanPos.init(rtEvt);
25142
- handler = evtHanPos.getNext();
25143
- let pendingTransactions = false;
25144
- if (eventCode == InternalInterface.MG_ACT_REC_SUFFIX) {
25145
- let currRecord = task.DataView.getCurrRec();
25146
- if (task.DataView.modifiedRecordsNumber() > 0 || (currRecord != null && currRecord.Modified))
25147
- pendingTransactions = true;
25148
- }
25149
- if (handler != null && pendingTransactions == true) {
25150
- let cnt = handler.getOperationTab().getSize();
25151
- for (let i = 0; i < cnt; i++) {
25152
- let oper = handler.getOperationTab().getOperation(i);
25153
- if (oper.getExecOnClient()) {
25195
+ return __awaiter(this, void 0, void 0, function* () {
25196
+ let clientOperationExist = false;
25197
+ var rtEvt = new RunTimeEvent(task);
25198
+ rtEvt.setInternal(eventCode);
25199
+ let handler = null;
25200
+ var evtHanPos = new EventHandlerPosition();
25201
+ evtHanPos.init(rtEvt);
25202
+ handler = evtHanPos.getNext();
25203
+ if (eventCode == InternalInterface.MG_ACT_REC_SUFFIX) {
25204
+ let currRecord = task.DataView.getCurrRec();
25205
+ if (task.DataView.modifiedRecordsNumber() > 0 || (currRecord != null && currRecord.Modified))
25154
25206
  clientOperationExist = true;
25155
- break;
25207
+ if (!clientOperationExist) {
25208
+ let forceSuffix = yield task.checkProp(PropInterface.PROP_TYPE_FORCE_SUFFIX, false);
25209
+ if (forceSuffix === true)
25210
+ if (task.IsInteractive || task.getMode() !== Constants.TASK_MODE_CREATE)
25211
+ clientOperationExist = true;
25212
+ }
25213
+ }
25214
+ if (handler != null && !clientOperationExist) {
25215
+ let cnt = handler.getOperationTab().getSize();
25216
+ for (let i = 0; i < cnt; i++) {
25217
+ let oper = handler.getOperationTab().getOperation(i);
25218
+ if (oper.getExecOnClient()) {
25219
+ clientOperationExist = true;
25220
+ break;
25221
+ }
25222
+ else {
25223
+ if (oper.getType() == ConstInterface.MG_OPER_RAISE_EVENT) {
25224
+ if (oper.GetRuntimeEvent().getType() == ConstInterface.EVENT_TYPE_INTERNAL &&
25225
+ oper.GetRuntimeEvent().getInternalCode() === InternalInterface.MG_ACT_RT_REFRESH_VIEW) {
25226
+ clientOperationExist = true;
25227
+ break;
25228
+ }
25229
+ }
25230
+ }
25156
25231
  }
25157
25232
  }
25158
- }
25159
- if (!clientOperationExist && task.hasSubTasks()) {
25160
- for (let i = 0; (!clientOperationExist && i < task.getSubTasks().getSize()); i++) {
25161
- let subTask = task.SubTasks.getTask(i);
25162
- clientOperationExist = this.CheckIfClientOperationExistsInSubformTasks(subTask, eventCode);
25233
+ if (!clientOperationExist && task.hasSubTasks()) {
25234
+ for (let i = 0; (!clientOperationExist && i < task.getSubTasks().getSize()); i++) {
25235
+ let subTask = task.SubTasks.getTask(i);
25236
+ clientOperationExist = yield this.CheckIfClientOperationExistsInSubformTasks(subTask, eventCode);
25237
+ }
25163
25238
  }
25164
- }
25165
- return clientOperationExist;
25239
+ return clientOperationExist;
25240
+ });
25166
25241
  }
25167
25242
  CheckIfPendingTransactions(task) {
25168
25243
  let pendingTransactions = false;
@@ -26657,6 +26732,16 @@ class MGData {
26657
26732
  }
26658
26733
  return false;
26659
26734
  }
26735
+ getTaskByTaskDefinitionID(taskDefinitionID) {
26736
+ let task;
26737
+ for (let i = 0; i < this._tasksTab.getSize(); i = i + 1) {
26738
+ task = this._tasksTab.getTask(i);
26739
+ if (task.TaskDefinitionId.Equals(taskDefinitionID)) {
26740
+ return task;
26741
+ }
26742
+ }
26743
+ return null;
26744
+ }
26660
26745
  getTimerHandlers() {
26661
26746
  return this._timerHandlers;
26662
26747
  }
@@ -26878,6 +26963,7 @@ class EventsManager {
26878
26963
  this._isHandlingForceExit = false;
26879
26964
  this._isNonReversibleExit = false;
26880
26965
  this._isInRecordFlushEvent = false;
26966
+ this.lastSavedRouteEvent = null;
26881
26967
  this._stopExecution = false;
26882
26968
  this._processingTopMostEndTask = false;
26883
26969
  this._stopExecutionCtrl = null;
@@ -26908,6 +26994,17 @@ class EventsManager {
26908
26994
  this.guiPendingEvent = guiEvent;
26909
26995
  }
26910
26996
  addToTail(rtEvt) {
26997
+ if (!rtEvt.isIdleTimer()) {
26998
+ if (EventsManager.clientInactivityTimerON) {
26999
+ EventsManager.clientContextInactivityTimerAborted = true;
27000
+ }
27001
+ }
27002
+ else {
27003
+ if (this.getLastSavedRouteEvent() != null) {
27004
+ this.addToTail(this.getLastSavedRouteEvent());
27005
+ this.setLastSavedRouteEvent(null);
27006
+ }
27007
+ }
26911
27008
  this._eventsQueue.put(rtEvt);
26912
27009
  }
26913
27010
  AddKeyboardEvent(mgForm, mgControl, modifier, keyCode, start, end, text, isActChar, suggestedValue, code) {
@@ -27256,6 +27353,17 @@ class EventsManager {
27256
27353
  rtEvt.setArgList(args);
27257
27354
  EventsManager.Instance.addToTail(rtEvt);
27258
27355
  }
27356
+ AddLastSavedRouteEvent(srcTask, args) {
27357
+ let rtEvt = new RunTimeEvent(LastFocusedManager.Instance.getLastFocusedTask(), true);
27358
+ rtEvt.setInternal(InternalInterface.MG_ACT_WEBCLIENT_ROUTE);
27359
+ if (srcTask != null) {
27360
+ rtEvt.setTask(srcTask);
27361
+ if (args != null) {
27362
+ rtEvt.setArgList(args);
27363
+ }
27364
+ this.setLastSavedRouteEvent(rtEvt);
27365
+ }
27366
+ }
27259
27367
  AddExternalValueEvent(ctrl, value, refreshDisplay) {
27260
27368
  let rtEvt = new RunTimeEvent(ctrl, 0, true);
27261
27369
  rtEvt.setInternal(InternalInterface.MG_ACT_SET_EXTERNAL_VALUE);
@@ -27309,6 +27417,21 @@ class EventsManager {
27309
27417
  isForceExitPreRecordUpdate(task) {
27310
27418
  return this._isHandlingForceExit && this.getForceExit() === ForceExit.PreRecordUpdate && task === this.getForceExitTask();
27311
27419
  }
27420
+ ExecuteClientContextInactivityTimer() {
27421
+ return __awaiter(this, void 0, void 0, function* () {
27422
+ let startTime = Misc.getSystemMilliseconds();
27423
+ let currTime;
27424
+ let clientCtxInactivityTimeout = Environment.Instance.getClientContextInactivityTimeout() * 100;
27425
+ EventsManager.clientInactivityTimerON = true;
27426
+ while (EventsManager.clientInactivityTimerON) {
27427
+ yield Thread.Sleep(1000);
27428
+ var timeLapsed = Misc.getSystemMilliseconds() - startTime;
27429
+ if (EventsManager.clientContextInactivityTimerAborted || timeLapsed >= clientCtxInactivityTimeout) {
27430
+ EventsManager.clientInactivityTimerON = false;
27431
+ }
27432
+ }
27433
+ });
27434
+ }
27312
27435
  CheckAndShowSpinner(show) {
27313
27436
  return __awaiter(this, void 0, void 0, function* () {
27314
27437
  let sendCommand = false;
@@ -27688,6 +27811,12 @@ class EventsManager {
27688
27811
  }
27689
27812
  });
27690
27813
  }
27814
+ checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt) {
27815
+ if (aRtEvt.getType() == ConstInterface.EVENT_TYPE_INTERNAL && aRtEvt.getInternalCode() ==
27816
+ InternalInterface.MG_ACT_WEBCLIENT_ROUTE && RuntimeContextBase.Instance.RemovedContextFromServer) {
27817
+ this.setLastSavedRouteEvent(aRtEvt);
27818
+ }
27819
+ }
27691
27820
  handleFocus(ctrl, line, onClick) {
27692
27821
  return __awaiter(this, void 0, void 0, function* () {
27693
27822
  try {
@@ -28008,7 +28137,6 @@ class EventsManager {
28008
28137
  task.ActionManager.enable(InternalInterface.MG_ACT_ZOOM, true);
28009
28138
  if (ctrl.isTextControl() || ctrl.isChoiceControl())
28010
28139
  ctrl.SetKeyboardLanguage(false);
28011
- yield ctrl.refreshDefaultButton();
28012
28140
  if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON)
28013
28141
  task.ActionManager.enable(InternalInterface.MG_ACT_BUTTON, true);
28014
28142
  yield task.setCreateDeleteActsEnableState();
@@ -28069,9 +28197,6 @@ class EventsManager {
28069
28197
  case InternalInterface.MG_ACT_CTRL_MOUSEUP:
28070
28198
  yield this.handleMouseUp(ctrl, displayLine, evt.isProduceClick());
28071
28199
  return false;
28072
- case InternalInterface.MG_ACT_DEFAULT_BUTTON:
28073
- yield this.onActDefaultButton(form, evt);
28074
- return false;
28075
28200
  case InternalInterface.MG_ACT_SELECTION:
28076
28201
  yield this.onActSelection(ctrl, form, evt);
28077
28202
  return false;
@@ -28167,9 +28292,9 @@ class EventsManager {
28167
28292
  }
28168
28293
  if (form.HasTable())
28169
28294
  yield form.bringRecordToPage();
28170
- yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
28171
28295
  if (task.getLevel() !== Constants.TASK_LEVEL_TASK)
28172
28296
  return false;
28297
+ yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
28173
28298
  Logger.Instance.WriteDevToLog("RECORD PREFIX: " + task.queryTaskPath());
28174
28299
  (dv.getCurrRec()).setForceSaveOrg(false);
28175
28300
  (dv.getCurrRec()).Synced = false;
@@ -28265,6 +28390,7 @@ class EventsManager {
28265
28390
  Manager.CleanMessagePane(task);
28266
28391
  ctrl.InControl = false;
28267
28392
  ctrl.ClipBoardDataExists = false;
28393
+ ctrl.ValidateControl = true;
28268
28394
  ctrl.setInControlSuffix(true);
28269
28395
  break;
28270
28396
  }
@@ -28289,7 +28415,7 @@ class EventsManager {
28289
28415
  mgVal = yield ctrl.getMgValue(value);
28290
28416
  var rec = task.DataView.getCurrRec();
28291
28417
  encodedVal = rec.getXMLForValue(ctrl.getField().getId(), mgVal);
28292
- cmd = CommandFactory.CreateExecOperCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
28418
+ cmd = CommandFactory.CreateSelectProgramCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
28293
28419
  task.getMGData().CmdsToServer.Add(cmd);
28294
28420
  let commandsProcessorServer = CommandsProcessorManager.GetCommandsProcessor();
28295
28421
  yield commandsProcessorServer.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -28336,14 +28462,6 @@ class EventsManager {
28336
28462
  yield this.handleSelection(ctrl, displayLine, evt.getValue());
28337
28463
  });
28338
28464
  }
28339
- onActDefaultButton(form, evt) {
28340
- return __awaiter(this, void 0, void 0, function* () {
28341
- let ctrl = yield form.getDefaultButton(true);
28342
- if (ctrl === null)
28343
- return;
28344
- yield this.onActSelection(ctrl, form, evt);
28345
- });
28346
- }
28347
28465
  onSubformClose(task, evt) {
28348
28466
  return __awaiter(this, void 0, void 0, function* () {
28349
28467
  if ((evt.getArgList() != null) && (evt.getArgList().getSize() === 1)) {
@@ -28458,9 +28576,6 @@ class EventsManager {
28458
28576
  case InternalInterface.MG_ACT_SUBFORM_CLOSE:
28459
28577
  yield this.onSubformClose(task, evt);
28460
28578
  break;
28461
- case InternalInterface.MG_ACT_DEFAULT_BUTTON:
28462
- yield this.onActDefaultButton(form, evt);
28463
- break;
28464
28579
  case InternalInterface.MG_ACT_BUTTON:
28465
28580
  case InternalInterface.MG_ACT_CTRL_HIT:
28466
28581
  if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON &&
@@ -28477,6 +28592,7 @@ class EventsManager {
28477
28592
  aRtEvt.setArgList(ctrl.ArgList);
28478
28593
  yield aRtEvt.setPublicName();
28479
28594
  this.addToTail(aRtEvt);
28595
+ this.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
28480
28596
  }
28481
28597
  }
28482
28598
  else if (ctrl.Type === MgControlType.CTRL_TYPE_TAB) {
@@ -28768,6 +28884,29 @@ class EventsManager {
28768
28884
  cmdsToServer.Add(cmd);
28769
28885
  yield server.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
28770
28886
  break;
28887
+ case InternalInterface.MG_ACT_CONTEXT_REMOVE:
28888
+ let currRecord = LastFocusedManager.Instance.getLastFocusedTask().DataView.getCurrRec();
28889
+ if (ClientManager.TransCacheExists() || (currRecord != null && currRecord.Modified)) {
28890
+ console.log('Pending transaction/record is modified, discarded \'Context Remove\' event.');
28891
+ }
28892
+ else {
28893
+ if (Environment.Instance.getClientContextInactivityTimeout() > 0) {
28894
+ yield this.ExecuteClientContextInactivityTimer();
28895
+ }
28896
+ if (!EventsManager.clientContextInactivityTimerAborted) {
28897
+ let contextTerminationEventCommand = CommandFactory.CreateContextTerminationEventCommand(MGDataCollection.Instance.StartupMgData.getFirstTask().getTaskTag());
28898
+ MGDataCollection.Instance.getCurrMGData().CmdsToServer.Add(contextTerminationEventCommand);
28899
+ RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.ONLY_COMMANDS);
28900
+ console.log('Removed context from server');
28901
+ RuntimeContextBase.Instance.RemovingContextFromServer = true;
28902
+ }
28903
+ else {
28904
+ console.log('Discarded \'Context Remove\' event as user event occurred.');
28905
+ EventsManager.clientContextInactivityTimerAborted = false;
28906
+ break;
28907
+ }
28908
+ }
28909
+ break;
28771
28910
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
28772
28911
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
28773
28912
  cmdsToServer.Add(cmd);
@@ -29266,6 +29405,10 @@ class EventsManager {
29266
29405
  yield fld.updateDisplay();
29267
29406
  task.setLevel(Constants.TASK_LEVEL_RECORD);
29268
29407
  ctrl.setInControlSuffix(false);
29408
+ ctrl.IsInteractiveUpdate = false;
29409
+ if (ctrl.PropertyExists(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS))
29410
+ yield ctrl.getProp(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS).RefreshDisplay(true);
29411
+ ctrl.ValidateControl = false;
29269
29412
  LastFocusedManager.setLastFocusedControl(task, null);
29270
29413
  if (yield task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE))
29271
29414
  yield task.endTask(true, false, false);
@@ -29496,6 +29639,45 @@ class EventsManager {
29496
29639
  return null;
29497
29640
  return this._rtEvents.pop();
29498
29641
  }
29642
+ storeLastSavedRouteEventOnLocalStorage() {
29643
+ let dataStorage = window.localStorage;
29644
+ if (this.getLastSavedRouteEvent() != null) {
29645
+ let rtEvt = this.getLastSavedRouteEvent();
29646
+ dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT, "1");
29647
+ dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK, JSON.stringify(rtEvt.getTask().TaskDefinitionId));
29648
+ if (rtEvt.getArgList().getSize() > 0) {
29649
+ let str = new StringBuilder();
29650
+ rtEvt.getArgList().buildXML(str);
29651
+ dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST, str.toString());
29652
+ }
29653
+ }
29654
+ }
29655
+ restoreLastSavedRouteEventFromLocalStorage() {
29656
+ let dataStorage = window.localStorage;
29657
+ let lastRouteEvent = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT);
29658
+ if (lastRouteEvent === "1") {
29659
+ let srcTaskDefinitionStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
29660
+ let routeArgListStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
29661
+ let taskDefinitionId = new TaskDefinitionId();
29662
+ taskDefinitionId.fromJSON(srcTaskDefinitionStr);
29663
+ let srcTask = MGDataCollection.Instance.getCurrMGData().getTaskByTaskDefinitionID(taskDefinitionId);
29664
+ let args = null;
29665
+ if (routeArgListStr != null) {
29666
+ args = new ArgumentsList();
29667
+ args.fillList(routeArgListStr, srcTask);
29668
+ }
29669
+ EventsManager.Instance.AddLastSavedRouteEvent(srcTask, args);
29670
+ }
29671
+ }
29672
+ getLastSavedRouteEvent() {
29673
+ return this.lastSavedRouteEvent;
29674
+ }
29675
+ setLastSavedRouteEvent(rtEvt) {
29676
+ if (rtEvt == null)
29677
+ this.lastSavedRouteEvent = null;
29678
+ else
29679
+ this.lastSavedRouteEvent = rtEvt.replicate();
29680
+ }
29499
29681
  getLastRtEvent() {
29500
29682
  if (this._rtEvents.count() === 0)
29501
29683
  return null;
@@ -29823,6 +30005,8 @@ EventsManager.Timer_Timeout_Infinite = -1;
29823
30005
  EventsManager.REAL_ONLY = true;
29824
30006
  EventsManager.MAX_OPER = 9999;
29825
30007
  EventsManager.userGrantedForContextActivity = true;
30008
+ EventsManager.clientInactivityTimerON = false;
30009
+ EventsManager.clientContextInactivityTimerAborted = false;
29826
30010
  EventsManager.Instance = new EventsManager();
29827
30011
  EventsManager.clientBusyTimeStart = 0;
29828
30012
 
@@ -30362,7 +30546,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30362
30546
  constructor() {
30363
30547
  super();
30364
30548
  this._buttonsID = '\0';
30365
- this._defaultButton = 0;
30366
30549
  this._image = '\0';
30367
30550
  this._returnValStr = null;
30368
30551
  this._returnVal = null;
@@ -30377,7 +30560,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30377
30560
  mlsTransTitle.value = LanguageData.Instance.translate(this._title);
30378
30561
  style.value = Operation.getButtons(this._buttonsID);
30379
30562
  style.value |= Operation.getImage(this._image);
30380
- style.value |= Operation.getDefaultButton(this._defaultButton);
30381
30563
  if (task !== null) {
30382
30564
  if (Task.isMainProgramField(this._returnValStr)) {
30383
30565
  this._returnVal = Operation.InitField(this._returnValStr, task);
@@ -30392,9 +30574,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30392
30574
  case ConstInterface.MG_ATTR_BUTTONS:
30393
30575
  this._buttonsID = value[0];
30394
30576
  break;
30395
- case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
30396
- this._defaultButton = XmlParser.getInt(value);
30397
- break;
30398
30577
  case ConstInterface.MG_ATTR_RETURN_VAL:
30399
30578
  this._returnValStr = value;
30400
30579
  break;
@@ -30911,7 +31090,7 @@ class CommandsTable {
30911
31090
  }
30912
31091
  }
30913
31092
 
30914
- let CurrentClientVersion = '4.800.0-dev480.95';
31093
+ let CurrentClientVersion = '4.801.0-dev481.222';
30915
31094
 
30916
31095
  class ClientManager {
30917
31096
  constructor() {
@@ -31021,7 +31200,7 @@ class ClientManager {
31021
31200
  case "getRows":
31022
31201
  dvRowIdx = lineIdx - task.DataView.RecordsBeforeCurrentView;
31023
31202
  let lastFocusedVal = { guiMgControl: task.getForm().getTableCtrl(), Line: dvRowIdx, Val: "" };
31024
- Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, false, lastFocusedVal);
31203
+ Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, true, lastFocusedVal);
31025
31204
  break;
31026
31205
  case "RouterNavigate":
31027
31206
  EventsManager.Instance.AddRouteEvent(task, InternalInterface.MG_ACT_WEBCLIENT_ROUTE, guiEvent.RouterPath, guiEvent.RouterOutletName, guiEvent.RouterParams);
@@ -31375,5 +31554,5 @@ class Process {
31375
31554
  }
31376
31555
  }
31377
31556
 
31378
- export { AbortCommand, AccessHelper, ActionManager, AddLocateCommand, AddRangeCommand, AddSortCommand, AddUserLocateDataViewCommand, AddUserLocateRemoteDataViewCommand, AddUserRangeDataviewCommand, AddUserRangeRemoteDataViewCommand, AddUserSortDataViewCommand, AddUserSortRemoteDataViewCommand, Argument, ArgumentsList, Boundary, BrowserEscEventCommand, ClientManager, ClientOriginatedCommand, ClientOriginatedCommandSerializer, ClientOriginatedCommandTaskTag, ClientRefreshCommand, ClientTargetedCommandBase, ClientTargetedCommandType, ColumnSortEventCommand, CommandFactory, CommandSerializationHelper, CommandsProcessorBase, CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage, CommandsProcessorManager, CommandsTable, CompMainPrgTable, ComputeEventCommand, ConstInterface, ConstUtils, ContextTerminationEventCommand, ContextTimeoutResetCommand, ControlItemsRefreshCommand, CookieService, CreatedFormVector, CurrentClientVersion, DataSourceIdKey, DataView, DataViewBase, DataViewCommandBase, DataViewCommandType, DataViewOutputCommand, DataviewCommand, DataviewHeaderBase, DataviewHeaderFactory, DataviewHeaders, DataviewHeadersSaxHandler, DataviewManager, DataviewManagerBase, DcValuesReference, DummyDataViewCommand, DvCache, EnhancedVerifyCommand, EnvParamsTable, Environment, EnvironmentDetails, EvaluateCommand, Event, EventCommand, EventHandler, EventHandlerPosition, EventSubType, EventsAllowedType, EventsManager, ExecOperCommand, ExecutionStack, ExecutionStackEntry, ExpDesc, ExpStrTracker, ExpTable, Expression, ExpressionDict, ExpressionEvaluator, ExpressionLocalJpn, Expression_ReturnValue, FetchDataControlValuesEventCommand, Field, FieldBase, FieldsTable as FieldsTableExt, FlowMonitorInterface, FlowMonitorQueue, FormsTable, GUIManager, GlobalCommandsManager, GlobalParams, GlobalParamsQueryCommand, GuiEventsProcessor, HandlersTable, HeapSort, HttpClientAsync, HttpClientBase, HttpClientEvents, HttpClientSync, HttpManager, HttpUtility, IClientTargetedCommand, IndexChangeEventCommand, IniputForceWriteCommand, InteractiveCommunicationsFailureHandler, Key, LanguageData, LastFocusedManager, MGData, MGDataCollection, MagicBridge, MenusDeserializer, MgControl, MgForm, MgPriorityBlockingQueue, MgPriorityQueue, MirrorExpVal, MirrorPrmMap, MirrorString, NonReversibleExitEventCommand, NullValueException, OpenURLCommand, OpeningTaskDetails, Operation, OperationTable, ParamParseResult, PrmMap, Process, QueryCommand, RCTimer, Recompute, RecomputeCommand, RecomputeTable, Recompute_RcmpBy, Record, RecordOutOfDataViewException, RecordOutOfDataViewException_ExceptionType, RecordsTable, RefreshEventCommand, RefreshScreenEventCommand, RemoteCommandsProcessor, RemoteControlItemsRefreshCommand, RemoteDataViewCommandBase, RemoteDataViewCommandFactory, RemoteDataViewCommandUpdateNonModifiable, RemoteDataviewHeader, RemoteDataviewManager, RemoteTaskService, RequestMethod, ResetLocateCommand, ResetRangeCommand, ResetSortCommand, ResetUserLocateRemoteDataviewCommand, ResetUserRangeRemoteDataviewCommand, ResetUserSortRemoteDataviewCommand, ResultCommand, ResultValue, RetVals, ReturnResult, ReturnResultBase, RollbackEventCommand, RollbackEventCommand_RollbackType, RunTimeEvent, RunTimeEventBase, SET_DISPLAYLINE_BY_DV, Scrambler, ServerConfig, ServerError, SetTransactionStateDataviewCommand, SetTransactionStateRemoteDataViewCommand, Sort, SortCollection, SubformOpenEventCommand, SubformRefreshEventCommand, TableCache, TableCacheManager, Task, TaskBase, TaskServiceBase, TaskTransactionManager, Task_Direction, Task_Flow, Task_SubformExecModeEnum, TasksTable, Transaction, TransactionCommand, UniqueIDUtils, UnloadCommand, UserDetails, UserEventsTable, UserRange, VerifyCommand, WriteMessageToServerLogCommand, XMLBasedCommandBuilder, XMLBasedDcValuesBuilder, YesNoExp, getGuiEventObj };
31557
+ export { AbortCommand, AccessHelper, ActionManager, AddLocateCommand, AddRangeCommand, AddSortCommand, AddUserLocateDataViewCommand, AddUserLocateRemoteDataViewCommand, AddUserRangeDataviewCommand, AddUserRangeRemoteDataViewCommand, AddUserSortDataViewCommand, AddUserSortRemoteDataViewCommand, Argument, ArgumentsList, Boundary, BrowserEscEventCommand, ClientManager, ClientOriginatedCommand, ClientOriginatedCommandSerializer, ClientOriginatedCommandTaskTag, ClientRefreshCommand, ClientTargetedCommandBase, ClientTargetedCommandType, ColumnSortEventCommand, CommandFactory, CommandSerializationHelper, CommandsProcessorBase, CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage, CommandsProcessorManager, CommandsTable, CompMainPrgTable, ComputeEventCommand, ConstInterface, ConstUtils, ContextTerminationEventCommand, ContextTimeoutResetCommand, ControlItemsRefreshCommand, CookieService, CreatedFormVector, CurrentClientVersion, DataSourceIdKey, DataView, DataViewBase, DataViewCommandBase, DataViewCommandType, DataViewOutputCommand, DataviewCommand, DataviewHeaderBase, DataviewHeaderFactory, DataviewHeaders, DataviewHeadersSaxHandler, DataviewManager, DataviewManagerBase, DcValuesReference, DummyDataViewCommand, DvCache, EnhancedVerifyCommand, EnvParamsTable, Environment, EnvironmentDetails, EvaluateCommand, Event, EventCommand, EventHandler, EventHandlerPosition, EventSubType, EventsAllowedType, EventsManager, ExecOperCommand, ExecutionStack, ExecutionStackEntry, ExpDesc, ExpStrTracker, ExpTable, Expression, ExpressionDict, ExpressionEvaluator, ExpressionLocalJpn, Expression_ReturnValue, FetchDataControlValuesEventCommand, Field, FieldBase, FieldsTable as FieldsTableExt, FlowMonitorInterface, FlowMonitorQueue, FormsTable, GUIManager, GlobalCommandsManager, GlobalParams, GlobalParamsQueryCommand, GuiEventsProcessor, HandlersTable, HeapSort, HttpClientAsync, HttpClientBase, HttpClientEvents, HttpClientSync, HttpManager, HttpUtility, IClientTargetedCommand, IndexChangeEventCommand, IniputForceWriteCommand, InteractiveCommunicationsFailureHandler, Key, LanguageData, LastFocusedManager, MGData, MGDataCollection, MagicBridge, MenusDeserializer, MgControl, MgForm, MgPriorityBlockingQueue, MgPriorityQueue, MirrorExpVal, MirrorPrmMap, MirrorString, NonReversibleExitEventCommand, NullValueException, OpenURLCommand, OpeningTaskDetails, Operation, OperationTable, ParamParseResult, PrmMap, Process, QueryCommand, RCTimer, Recompute, RecomputeCommand, RecomputeTable, Recompute_RcmpBy, Record, RecordOutOfDataViewException, RecordOutOfDataViewException_ExceptionType, RecordsTable, RefreshEventCommand, RefreshScreenEventCommand, RemoteCommandsProcessor, RemoteControlItemsRefreshCommand, RemoteDataViewCommandBase, RemoteDataViewCommandFactory, RemoteDataViewCommandUpdateNonModifiable, RemoteDataviewHeader, RemoteDataviewManager, RemoteTaskService, RequestMethod, ResetLocateCommand, ResetRangeCommand, ResetSortCommand, ResetUserLocateRemoteDataviewCommand, ResetUserRangeRemoteDataviewCommand, ResetUserSortRemoteDataviewCommand, ResultCommand, ResultValue, RetVals, ReturnResult, ReturnResultBase, RollbackEventCommand, RollbackEventCommand_RollbackType, RunTimeEvent, RunTimeEventBase, SET_DISPLAYLINE_BY_DV, Scrambler, SelectProgramCommand, ServerConfig, ServerError, SetTransactionStateDataviewCommand, SetTransactionStateRemoteDataViewCommand, Sort, SortCollection, SubformOpenEventCommand, SubformRefreshEventCommand, TableCache, TableCacheManager, Task, TaskBase, TaskServiceBase, TaskTransactionManager, Task_Direction, Task_Flow, Task_SubformExecModeEnum, TasksTable, Transaction, TransactionCommand, UniqueIDUtils, UnloadCommand, UserDetails, UserEventsTable, UserRange, VerifyCommand, WriteMessageToServerLogCommand, XMLBasedCommandBuilder, XMLBasedDcValuesBuilder, YesNoExp, getGuiEventObj };
31379
31558
  //# sourceMappingURL=magic-xpa-engine.js.map