@magic-xpa/engine 4.800.0-dev480.94 → 4.801.0-dev481.221

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 +1330 -1130
  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 +10 -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 +55 -46
  27. package/esm2015/src/util/PrmMap.js +11 -1
  28. package/fesm2015/magic-xpa-engine.js +359 -167
  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
  }
@@ -22621,6 +22694,11 @@ class EventHandler {
22621
22694
  oper = this._operationTab.getOperation(execFlowIdx);
22622
22695
  operType = oper.getType();
22623
22696
  blockIfReturnedFromServer = false;
22697
+ if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
22698
+ this._task.setUseLoopStack(depth > 0);
22699
+ yield oper.operServer(null);
22700
+ break;
22701
+ }
22624
22702
  if (returnedFromServer && oper.getServerId() < nextOperIdx)
22625
22703
  if (operType !== ConstInterface.MG_OPER_BLOCK)
22626
22704
  continue;
@@ -22746,10 +22824,10 @@ class EventHandler {
22746
22824
  returnedFromServer = false;
22747
22825
  }
22748
22826
  }
22749
- if (blockIfReturnedFromServer)
22750
- retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
22751
- else if (routeOperationExecuted)
22827
+ if (routeOperationExecuted)
22752
22828
  retvals = new RetVals(false, true);
22829
+ else if (blockIfReturnedFromServer)
22830
+ retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
22753
22831
  else
22754
22832
  retvals = null;
22755
22833
  return retvals;
@@ -23596,7 +23674,8 @@ ActionManager.actEnabled = [
23596
23674
  InternalInterface.MG_ACT_INDEX_CHANGE,
23597
23675
  InternalInterface.MG_ACT_WEBCLIENT_ROUTE,
23598
23676
  InternalInterface.MG_ACT_SET_EXTERNAL_VALUE,
23599
- InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER
23677
+ InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER,
23678
+ InternalInterface.MG_ACT_CONTEXT_REMOVE
23600
23679
  ];
23601
23680
  ActionManager.actNavigation = [
23602
23681
  InternalInterface.MG_ACT_TBL_PRVLINE,
@@ -24239,16 +24318,12 @@ class Task extends TaskBase {
24239
24318
  result = yield this.DataviewManager.Execute(dataViewCommand);
24240
24319
  if (!result.Success)
24241
24320
  return null;
24242
- this.ResumeSubformLayout();
24243
24321
  }
24244
24322
  nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
24245
24323
  this.InStartProcess = false;
24246
24324
  return nonInteractiveTask;
24247
24325
  });
24248
24326
  }
24249
- CanResumeSubformLayout() {
24250
- return this.DataViewWasRetrieved;
24251
- }
24252
24327
  InitializeExecution() {
24253
24328
  super.setBrkLevel(ConstInterface.BRK_LEVEL_REC_MAIN, -1);
24254
24329
  this._firstRecordCycle = true;
@@ -24291,20 +24366,9 @@ class Task extends TaskBase {
24291
24366
  this.ActionManager.enableList(actList, true, false);
24292
24367
  if (this.IsSubForm)
24293
24368
  this.ActionManager.enable(InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT, true);
24294
- if (this.Form != null && (yield this.Form.getDefaultButton(false)) != null)
24295
- this.ActionManager.enable(InternalInterface.MG_ACT_DEFAULT_BUTTON, true);
24296
24369
  yield this.enableModes();
24297
24370
  if (yield this.checkProp(PropInterface.PROP_TYPE_SELECTION, false)) {
24298
- if ((yield ((this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON))).getValue()) !== "") {
24299
- let defaultButtonName = yield (this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON)).getValue();
24300
- let ctrl = this.Form.getCtrlByCtrlName(defaultButtonName);
24301
- let aRtEvt = new RunTimeEvent(ctrl);
24302
- if (aRtEvt.getType() === ConstInterface.EVENT_TYPE_INTERNAL &&
24303
- aRtEvt.getInternalCode() === InternalInterface.MG_ACT_SELECT)
24304
- this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24305
- }
24306
- else
24307
- this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24371
+ this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
24308
24372
  }
24309
24373
  let enablePrintdata = yield this.checkProp(PropInterface.PROP_TYPE_PRINT_DATA, false);
24310
24374
  this.ActionManager.enable(InternalInterface.MG_ACT_PRINT_DATA, enablePrintdata);
@@ -24986,9 +25050,9 @@ class Task extends TaskBase {
24986
25050
  if (this.hasSubTasks()) {
24987
25051
  if (!RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
24988
25052
  let pendingTransactions = true;
24989
- let clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
25053
+ let clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
24990
25054
  if (!clientOperExist) {
24991
- clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
25055
+ clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
24992
25056
  if (!clientOperExist)
24993
25057
  pendingTransactions = this.CheckIfPendingTransactions(this);
24994
25058
  }
@@ -25007,6 +25071,10 @@ class Task extends TaskBase {
25007
25071
  succeeded = (!AccessHelper.eventsManager.GetStopExecutionFlag() || dueToVerifyError);
25008
25072
  }
25009
25073
  }
25074
+ else {
25075
+ if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution)
25076
+ this.SetServerSideTaskSuffix(this);
25077
+ }
25010
25078
  if (this === mgdTab.StartupMgData.getFirstTask()) {
25011
25079
  for (i = mgdTab.getSize() - 1; i > 0 && succeeded; i--) {
25012
25080
  if (mgdTab.getMGData(i) != null) {
@@ -25065,8 +25133,12 @@ class Task extends TaskBase {
25065
25133
  AccessHelper.eventsManager.setProcessingTopMostEndTask(true);
25066
25134
  yield AccessHelper.eventsManager.handleEvents(baseMgd, 0);
25067
25135
  AccessHelper.eventsManager.setProcessingTopMostEndTask(false);
25068
- if (this.isAborting())
25136
+ if (this.isAborting()) {
25137
+ RemoteCommandsProcessor.GetInstance().DelayCommandExecution = false;
25138
+ this.DelayCommandExecution = false;
25139
+ this.allowRemoteCmdExecution = true;
25069
25140
  return true;
25141
+ }
25070
25142
  }
25071
25143
  yield TaskServiceBase.Exit(this, reversibleExit, subformDestination);
25072
25144
  if (this._parentTask != null && this._parentTask.isMainProg()) {
@@ -25120,36 +25192,52 @@ class Task extends TaskBase {
25120
25192
  }
25121
25193
  }
25122
25194
  CheckIfClientOperationExistsInSubformTasks(task, eventCode) {
25123
- let clientOperationExist = false;
25124
- var rtEvt = new RunTimeEvent(task);
25125
- rtEvt.setInternal(eventCode);
25126
- let handler = null;
25127
- var evtHanPos = new EventHandlerPosition();
25128
- evtHanPos.init(rtEvt);
25129
- handler = evtHanPos.getNext();
25130
- let pendingTransactions = false;
25131
- if (eventCode == InternalInterface.MG_ACT_REC_SUFFIX) {
25132
- let currRecord = task.DataView.getCurrRec();
25133
- if (task.DataView.modifiedRecordsNumber() > 0 || (currRecord != null && currRecord.Modified))
25134
- pendingTransactions = true;
25135
- }
25136
- if (handler != null && pendingTransactions == true) {
25137
- let cnt = handler.getOperationTab().getSize();
25138
- for (let i = 0; i < cnt; i++) {
25139
- let oper = handler.getOperationTab().getOperation(i);
25140
- 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))
25141
25206
  clientOperationExist = true;
25142
- 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
+ }
25143
25231
  }
25144
25232
  }
25145
- }
25146
- if (!clientOperationExist && task.hasSubTasks()) {
25147
- for (let i = 0; (!clientOperationExist && i < task.getSubTasks().getSize()); i++) {
25148
- let subTask = task.SubTasks.getTask(i);
25149
- 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
+ }
25150
25238
  }
25151
- }
25152
- return clientOperationExist;
25239
+ return clientOperationExist;
25240
+ });
25153
25241
  }
25154
25242
  CheckIfPendingTransactions(task) {
25155
25243
  let pendingTransactions = false;
@@ -26644,6 +26732,16 @@ class MGData {
26644
26732
  }
26645
26733
  return false;
26646
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
+ }
26647
26745
  getTimerHandlers() {
26648
26746
  return this._timerHandlers;
26649
26747
  }
@@ -26865,6 +26963,7 @@ class EventsManager {
26865
26963
  this._isHandlingForceExit = false;
26866
26964
  this._isNonReversibleExit = false;
26867
26965
  this._isInRecordFlushEvent = false;
26966
+ this.lastSavedRouteEvent = null;
26868
26967
  this._stopExecution = false;
26869
26968
  this._processingTopMostEndTask = false;
26870
26969
  this._stopExecutionCtrl = null;
@@ -26895,6 +26994,17 @@ class EventsManager {
26895
26994
  this.guiPendingEvent = guiEvent;
26896
26995
  }
26897
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
+ }
26898
27008
  this._eventsQueue.put(rtEvt);
26899
27009
  }
26900
27010
  AddKeyboardEvent(mgForm, mgControl, modifier, keyCode, start, end, text, isActChar, suggestedValue, code) {
@@ -27243,6 +27353,17 @@ class EventsManager {
27243
27353
  rtEvt.setArgList(args);
27244
27354
  EventsManager.Instance.addToTail(rtEvt);
27245
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
+ }
27246
27367
  AddExternalValueEvent(ctrl, value, refreshDisplay) {
27247
27368
  let rtEvt = new RunTimeEvent(ctrl, 0, true);
27248
27369
  rtEvt.setInternal(InternalInterface.MG_ACT_SET_EXTERNAL_VALUE);
@@ -27296,6 +27417,21 @@ class EventsManager {
27296
27417
  isForceExitPreRecordUpdate(task) {
27297
27418
  return this._isHandlingForceExit && this.getForceExit() === ForceExit.PreRecordUpdate && task === this.getForceExitTask();
27298
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
+ }
27299
27435
  CheckAndShowSpinner(show) {
27300
27436
  return __awaiter(this, void 0, void 0, function* () {
27301
27437
  let sendCommand = false;
@@ -27675,6 +27811,12 @@ class EventsManager {
27675
27811
  }
27676
27812
  });
27677
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
+ }
27678
27820
  handleFocus(ctrl, line, onClick) {
27679
27821
  return __awaiter(this, void 0, void 0, function* () {
27680
27822
  try {
@@ -27995,7 +28137,6 @@ class EventsManager {
27995
28137
  task.ActionManager.enable(InternalInterface.MG_ACT_ZOOM, true);
27996
28138
  if (ctrl.isTextControl() || ctrl.isChoiceControl())
27997
28139
  ctrl.SetKeyboardLanguage(false);
27998
- yield ctrl.refreshDefaultButton();
27999
28140
  if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON)
28000
28141
  task.ActionManager.enable(InternalInterface.MG_ACT_BUTTON, true);
28001
28142
  yield task.setCreateDeleteActsEnableState();
@@ -28056,9 +28197,6 @@ class EventsManager {
28056
28197
  case InternalInterface.MG_ACT_CTRL_MOUSEUP:
28057
28198
  yield this.handleMouseUp(ctrl, displayLine, evt.isProduceClick());
28058
28199
  return false;
28059
- case InternalInterface.MG_ACT_DEFAULT_BUTTON:
28060
- yield this.onActDefaultButton(form, evt);
28061
- return false;
28062
28200
  case InternalInterface.MG_ACT_SELECTION:
28063
28201
  yield this.onActSelection(ctrl, form, evt);
28064
28202
  return false;
@@ -28154,9 +28292,9 @@ class EventsManager {
28154
28292
  }
28155
28293
  if (form.HasTable())
28156
28294
  yield form.bringRecordToPage();
28157
- yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
28158
28295
  if (task.getLevel() !== Constants.TASK_LEVEL_TASK)
28159
28296
  return false;
28297
+ yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
28160
28298
  Logger.Instance.WriteDevToLog("RECORD PREFIX: " + task.queryTaskPath());
28161
28299
  (dv.getCurrRec()).setForceSaveOrg(false);
28162
28300
  (dv.getCurrRec()).Synced = false;
@@ -28252,6 +28390,7 @@ class EventsManager {
28252
28390
  Manager.CleanMessagePane(task);
28253
28391
  ctrl.InControl = false;
28254
28392
  ctrl.ClipBoardDataExists = false;
28393
+ ctrl.ValidateControl = true;
28255
28394
  ctrl.setInControlSuffix(true);
28256
28395
  break;
28257
28396
  }
@@ -28276,7 +28415,7 @@ class EventsManager {
28276
28415
  mgVal = yield ctrl.getMgValue(value);
28277
28416
  var rec = task.DataView.getCurrRec();
28278
28417
  encodedVal = rec.getXMLForValue(ctrl.getField().getId(), mgVal);
28279
- cmd = CommandFactory.CreateExecOperCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
28418
+ cmd = CommandFactory.CreateSelectProgramCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
28280
28419
  task.getMGData().CmdsToServer.Add(cmd);
28281
28420
  let commandsProcessorServer = CommandsProcessorManager.GetCommandsProcessor();
28282
28421
  yield commandsProcessorServer.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -28323,14 +28462,6 @@ class EventsManager {
28323
28462
  yield this.handleSelection(ctrl, displayLine, evt.getValue());
28324
28463
  });
28325
28464
  }
28326
- onActDefaultButton(form, evt) {
28327
- return __awaiter(this, void 0, void 0, function* () {
28328
- let ctrl = yield form.getDefaultButton(true);
28329
- if (ctrl === null)
28330
- return;
28331
- yield this.onActSelection(ctrl, form, evt);
28332
- });
28333
- }
28334
28465
  onSubformClose(task, evt) {
28335
28466
  return __awaiter(this, void 0, void 0, function* () {
28336
28467
  if ((evt.getArgList() != null) && (evt.getArgList().getSize() === 1)) {
@@ -28445,9 +28576,6 @@ class EventsManager {
28445
28576
  case InternalInterface.MG_ACT_SUBFORM_CLOSE:
28446
28577
  yield this.onSubformClose(task, evt);
28447
28578
  break;
28448
- case InternalInterface.MG_ACT_DEFAULT_BUTTON:
28449
- yield this.onActDefaultButton(form, evt);
28450
- break;
28451
28579
  case InternalInterface.MG_ACT_BUTTON:
28452
28580
  case InternalInterface.MG_ACT_CTRL_HIT:
28453
28581
  if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON &&
@@ -28464,6 +28592,7 @@ class EventsManager {
28464
28592
  aRtEvt.setArgList(ctrl.ArgList);
28465
28593
  yield aRtEvt.setPublicName();
28466
28594
  this.addToTail(aRtEvt);
28595
+ this.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
28467
28596
  }
28468
28597
  }
28469
28598
  else if (ctrl.Type === MgControlType.CTRL_TYPE_TAB) {
@@ -28755,6 +28884,29 @@ class EventsManager {
28755
28884
  cmdsToServer.Add(cmd);
28756
28885
  yield server.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
28757
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;
28758
28910
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
28759
28911
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
28760
28912
  cmdsToServer.Add(cmd);
@@ -29253,6 +29405,10 @@ class EventsManager {
29253
29405
  yield fld.updateDisplay();
29254
29406
  task.setLevel(Constants.TASK_LEVEL_RECORD);
29255
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;
29256
29412
  LastFocusedManager.setLastFocusedControl(task, null);
29257
29413
  if (yield task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE))
29258
29414
  yield task.endTask(true, false, false);
@@ -29483,6 +29639,45 @@ class EventsManager {
29483
29639
  return null;
29484
29640
  return this._rtEvents.pop();
29485
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
+ }
29486
29681
  getLastRtEvent() {
29487
29682
  if (this._rtEvents.count() === 0)
29488
29683
  return null;
@@ -29810,6 +30005,8 @@ EventsManager.Timer_Timeout_Infinite = -1;
29810
30005
  EventsManager.REAL_ONLY = true;
29811
30006
  EventsManager.MAX_OPER = 9999;
29812
30007
  EventsManager.userGrantedForContextActivity = true;
30008
+ EventsManager.clientInactivityTimerON = false;
30009
+ EventsManager.clientContextInactivityTimerAborted = false;
29813
30010
  EventsManager.Instance = new EventsManager();
29814
30011
  EventsManager.clientBusyTimeStart = 0;
29815
30012
 
@@ -30349,7 +30546,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30349
30546
  constructor() {
30350
30547
  super();
30351
30548
  this._buttonsID = '\0';
30352
- this._defaultButton = 0;
30353
30549
  this._image = '\0';
30354
30550
  this._returnValStr = null;
30355
30551
  this._returnVal = null;
@@ -30364,7 +30560,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30364
30560
  mlsTransTitle.value = LanguageData.Instance.translate(this._title);
30365
30561
  style.value = Operation.getButtons(this._buttonsID);
30366
30562
  style.value |= Operation.getImage(this._image);
30367
- style.value |= Operation.getDefaultButton(this._defaultButton);
30368
30563
  if (task !== null) {
30369
30564
  if (Task.isMainProgramField(this._returnValStr)) {
30370
30565
  this._returnVal = Operation.InitField(this._returnValStr, task);
@@ -30379,9 +30574,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
30379
30574
  case ConstInterface.MG_ATTR_BUTTONS:
30380
30575
  this._buttonsID = value[0];
30381
30576
  break;
30382
- case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
30383
- this._defaultButton = XmlParser.getInt(value);
30384
- break;
30385
30577
  case ConstInterface.MG_ATTR_RETURN_VAL:
30386
30578
  this._returnValStr = value;
30387
30579
  break;
@@ -30898,7 +31090,7 @@ class CommandsTable {
30898
31090
  }
30899
31091
  }
30900
31092
 
30901
- let CurrentClientVersion = '4.800.0-dev480.94';
31093
+ let CurrentClientVersion = '4.801.0-dev481.221';
30902
31094
 
30903
31095
  class ClientManager {
30904
31096
  constructor() {
@@ -31008,7 +31200,7 @@ class ClientManager {
31008
31200
  case "getRows":
31009
31201
  dvRowIdx = lineIdx - task.DataView.RecordsBeforeCurrentView;
31010
31202
  let lastFocusedVal = { guiMgControl: task.getForm().getTableCtrl(), Line: dvRowIdx, Val: "" };
31011
- Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, false, lastFocusedVal);
31203
+ Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, true, lastFocusedVal);
31012
31204
  break;
31013
31205
  case "RouterNavigate":
31014
31206
  EventsManager.Instance.AddRouteEvent(task, InternalInterface.MG_ACT_WEBCLIENT_ROUTE, guiEvent.RouterPath, guiEvent.RouterOutletName, guiEvent.RouterParams);
@@ -31362,5 +31554,5 @@ class Process {
31362
31554
  }
31363
31555
  }
31364
31556
 
31365
- 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 };
31366
31558
  //# sourceMappingURL=magic-xpa-engine.js.map