@magic-xpa/engine 4.801.0-dev481.307 → 4.801.0-dev481.310

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 (45) hide show
  1. package/esm2020/src/ClientManager.mjs +2 -10
  2. package/esm2020/src/CurrentClientVersion.mjs +2 -2
  3. package/esm2020/src/GUIManager.mjs +1 -2
  4. package/esm2020/src/GuiEventsProcessor.mjs +2 -19
  5. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +35 -35
  6. package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +1 -1
  7. package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +7 -7
  8. package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +1 -1
  9. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +2 -2
  10. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +1 -1
  11. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +1 -3
  12. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +1 -1
  13. package/esm2020/src/data/DvCache.mjs +4 -29
  14. package/esm2020/src/env/Environment.mjs +2 -5
  15. package/esm2020/src/env/LanguageData.mjs +1 -2
  16. package/esm2020/src/event/Event.mjs +1 -3
  17. package/esm2020/src/event/EventsManager.mjs +2 -16
  18. package/esm2020/src/gui/MgControl.mjs +1 -3
  19. package/esm2020/src/gui/MgForm.mjs +1 -2
  20. package/esm2020/src/http/client/HttpClientBase.mjs +1 -17
  21. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +1 -10
  22. package/esm2020/src/rt/DataviewHeaders.mjs +2 -4
  23. package/esm2020/src/rt/LastFocusedManager.mjs +1 -5
  24. package/esm2020/src/rt/Operation.mjs +2 -12
  25. package/esm2020/src/tasks/Task.mjs +2 -5
  26. package/esm2020/src/util/FlowMonitorQueue.mjs +1 -3
  27. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +1 -3
  28. package/fesm2015/magic-xpa-engine.mjs +162 -286
  29. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  30. package/fesm2020/magic-xpa-engine.mjs +155 -276
  31. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  32. package/package.json +4 -4
  33. package/src/ClientManager.d.ts +0 -3
  34. package/src/GuiEventsProcessor.d.ts +0 -2
  35. package/src/commands/ClientToServer/CommandFactory.d.ts +35 -35
  36. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +2 -2
  37. package/src/commands/ServerToClient/VerifyCommand.d.ts +0 -1
  38. package/src/data/DvCache.d.ts +2 -6
  39. package/src/env/Environment.d.ts +0 -2
  40. package/src/event/Event.d.ts +0 -1
  41. package/src/event/EventsManager.d.ts +0 -1
  42. package/src/http/client/HttpClientBase.d.ts +0 -2
  43. package/src/remote/RemoteCommandsProcessor.d.ts +0 -4
  44. package/src/rt/DataviewHeaders.d.ts +1 -3
  45. package/src/rt/Operation.d.ts +0 -4
@@ -1,6 +1,6 @@
1
1
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, HashUtils, DateTime, Dictionary, Stack, NChar, isNullOrUndefined, WebException, Thread, Encoding, Exception, isUndefined, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
2
- 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';
3
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, ControlTable, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
2
+ import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
3
+ import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
4
4
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
5
5
  import { timer, Subject } from 'rxjs';
6
6
 
@@ -1393,151 +1393,6 @@ class OpeningTaskDetails {
1393
1393
  }
1394
1394
  }
1395
1395
 
1396
- class TasksTable {
1397
- constructor() {
1398
- this._tasks = null;
1399
- this._tasks = new List();
1400
- }
1401
- async fillData(mgdata, openingTaskDetails, parser) {
1402
- while (await this.initInnerObjects(parser.getNextTag(), mgdata, openingTaskDetails)) {
1403
- }
1404
- }
1405
- async initInnerObjects(foundTagName, mgdata, openingTaskDetails) {
1406
- let result;
1407
- if (foundTagName === null) {
1408
- result = false;
1409
- }
1410
- else {
1411
- if (foundTagName === XMLConstants.MG_TAG_TASK) {
1412
- let task = TasksTable.createNewtask();
1413
- this._tasks.push(task);
1414
- await task.fillData(mgdata, openingTaskDetails);
1415
- result = true;
1416
- }
1417
- else {
1418
- result = false;
1419
- }
1420
- }
1421
- return result;
1422
- }
1423
- addTask(task) {
1424
- this._tasks.push(task);
1425
- }
1426
- removeTask(task) {
1427
- this._tasks.Remove(task);
1428
- }
1429
- getTask(tasktagOrIdx) {
1430
- if (arguments.length === 1 && (tasktagOrIdx === null || typeof tasktagOrIdx === "undefined" || tasktagOrIdx.constructor === String)) {
1431
- return this.getTask_0(tasktagOrIdx);
1432
- }
1433
- return this.getTask_1(tasktagOrIdx);
1434
- }
1435
- getTask_0(tasktag) {
1436
- let result;
1437
- for (let i = 0; i < this._tasks.length; i = i + 1) {
1438
- let task = this._tasks.get_Item(i);
1439
- if (tasktag === task.getTaskTag()) {
1440
- result = task;
1441
- return result;
1442
- }
1443
- }
1444
- result = null;
1445
- return result;
1446
- }
1447
- getTask_1(idx) {
1448
- let result;
1449
- if (idx >= 0 && idx < this._tasks.length) {
1450
- result = this._tasks.get_Item(idx);
1451
- }
1452
- else {
1453
- result = null;
1454
- }
1455
- return result;
1456
- }
1457
- getSize() {
1458
- return this._tasks.length;
1459
- }
1460
- async buildXML(message) {
1461
- for (let i = 0; i < this.getSize(); i = i + 1) {
1462
- await this.getTask(i).buildXML(message);
1463
- }
1464
- }
1465
- setTaskAt(task, index) {
1466
- if (this._tasks.length <= index) {
1467
- this._tasks.SetSize(index + 1);
1468
- }
1469
- this._tasks.set_Item(index, task);
1470
- }
1471
- }
1472
- TasksTable.createNewtask = null;
1473
-
1474
- class LastFocusedManager {
1475
- constructor() {
1476
- this._lastFocusedTasks = null;
1477
- this.LastActionTime = 0;
1478
- }
1479
- Init(mgDataTable) {
1480
- this._lastFocusedTasks = new TasksTable();
1481
- }
1482
- getCurrTask() {
1483
- let rtEvnt = AccessHelper.eventsManager.getLastRtEvent();
1484
- return (rtEvnt !== null && rtEvnt.getTask() !== null && rtEvnt.getTask().GetContextTask() !== null)
1485
- ? this.getLastFocusedTask(rtEvnt.getTask().GetContextTask().getMgdID())
1486
- : this.getLastFocusedTask();
1487
- }
1488
- getLastFocusedTask(mgdID) {
1489
- if (arguments.length === 0)
1490
- return this._lastFocusedTasks.getTask(AccessHelper.mgDataTable.currMgdID);
1491
- else
1492
- return this._lastFocusedTasks.getTask(mgdID);
1493
- }
1494
- setLastFocusedTask(iTask) {
1495
- let currFocusedTask = this.getLastFocusedTask();
1496
- if (currFocusedTask !== null && currFocusedTask !== iTask) {
1497
- let oldForm = currFocusedTask.getForm();
1498
- }
1499
- let task = iTask;
1500
- let currMgdID = task.getMgdID();
1501
- this._lastFocusedTasks.setTaskAt(task, currMgdID);
1502
- }
1503
- clean(index) {
1504
- LastFocusedManager.deleteLastFocusedControlAt(index);
1505
- if (this._lastFocusedTasks !== null) {
1506
- this._lastFocusedTasks.setTaskAt(null, index);
1507
- }
1508
- }
1509
- static getLastFocusedControl(mgdID) {
1510
- if (arguments.length === 1)
1511
- return LastFocusedManager.getLastFocusedControl_1(mgdID);
1512
- else
1513
- return LastFocusedManager.getLastFocusedControl_0();
1514
- }
1515
- static getLastFocusedControl_0() {
1516
- return LastFocusedManager._lastFocusedControls.getCtrl(AccessHelper.mgDataTable.currMgdID);
1517
- }
1518
- static getLastFocusedControl_1(mgdID) {
1519
- return LastFocusedManager._lastFocusedControls.getCtrl(mgdID);
1520
- }
1521
- static deleteLastFocusedControlAt(index) {
1522
- if (LastFocusedManager._lastFocusedControls !== null && LastFocusedManager._lastFocusedControls.getCtrl(index) != null) {
1523
- LastFocusedManager._lastFocusedControls.deleteControlAt(index);
1524
- }
1525
- }
1526
- static setLastFocusedControlAt(ctrl, currMgdID) {
1527
- LastFocusedManager._lastFocusedControls.setControlAt(ctrl, currMgdID);
1528
- }
1529
- static setLastFocusedControl(task, mgControl) {
1530
- let currMgdID = task.getMgdID();
1531
- Debug.Assert(mgControl === null || task === mgControl.getForm().getTask());
1532
- LastFocusedManager.LastFocusMgdID = currMgdID;
1533
- LastFocusedManager.setLastFocusedControlAt(mgControl, currMgdID);
1534
- LastFocusedManager.Instance.setLastFocusedTask(task);
1535
- }
1536
- }
1537
- LastFocusedManager.Instance = new LastFocusedManager();
1538
- LastFocusedManager._lastFocusedControls = new ControlTable();
1539
- LastFocusedManager.LastFocusMgdID = 0;
1540
-
1541
1396
  class MgControl extends MgControlBase {
1542
1397
  constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1543
1398
  if (arguments.length === 0)
@@ -1827,7 +1682,6 @@ class MgControl extends MgControlBase {
1827
1682
  }
1828
1683
  async refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1829
1684
  await super.refreshAndSetItemsListForRadioButton(line, execComputeChoice);
1830
- let lastFocusedTask = LastFocusedManager.Instance.getLastFocusedTask(super.getForm().getTask().getMgdID());
1831
1685
  }
1832
1686
  getSubformTask() {
1833
1687
  return this._subformTask;
@@ -1953,6 +1807,147 @@ class MgPriorityQueue {
1953
1807
  }
1954
1808
  MgPriorityQueue.DEFAULT_INITIAL_CAPACITY = 11;
1955
1809
 
1810
+ class TasksTable {
1811
+ constructor() {
1812
+ this._tasks = null;
1813
+ this._tasks = new List();
1814
+ }
1815
+ async fillData(mgdata, openingTaskDetails, parser) {
1816
+ while (await this.initInnerObjects(parser.getNextTag(), mgdata, openingTaskDetails)) {
1817
+ }
1818
+ }
1819
+ async initInnerObjects(foundTagName, mgdata, openingTaskDetails) {
1820
+ let result;
1821
+ if (foundTagName === null) {
1822
+ result = false;
1823
+ }
1824
+ else {
1825
+ if (foundTagName === XMLConstants.MG_TAG_TASK) {
1826
+ let task = TasksTable.createNewtask();
1827
+ this._tasks.push(task);
1828
+ await task.fillData(mgdata, openingTaskDetails);
1829
+ result = true;
1830
+ }
1831
+ else {
1832
+ result = false;
1833
+ }
1834
+ }
1835
+ return result;
1836
+ }
1837
+ addTask(task) {
1838
+ this._tasks.push(task);
1839
+ }
1840
+ removeTask(task) {
1841
+ this._tasks.Remove(task);
1842
+ }
1843
+ getTask(tasktagOrIdx) {
1844
+ if (arguments.length === 1 && (tasktagOrIdx === null || typeof tasktagOrIdx === "undefined" || tasktagOrIdx.constructor === String)) {
1845
+ return this.getTask_0(tasktagOrIdx);
1846
+ }
1847
+ return this.getTask_1(tasktagOrIdx);
1848
+ }
1849
+ getTask_0(tasktag) {
1850
+ let result;
1851
+ for (let i = 0; i < this._tasks.length; i = i + 1) {
1852
+ let task = this._tasks.get_Item(i);
1853
+ if (tasktag === task.getTaskTag()) {
1854
+ result = task;
1855
+ return result;
1856
+ }
1857
+ }
1858
+ result = null;
1859
+ return result;
1860
+ }
1861
+ getTask_1(idx) {
1862
+ let result;
1863
+ if (idx >= 0 && idx < this._tasks.length) {
1864
+ result = this._tasks.get_Item(idx);
1865
+ }
1866
+ else {
1867
+ result = null;
1868
+ }
1869
+ return result;
1870
+ }
1871
+ getSize() {
1872
+ return this._tasks.length;
1873
+ }
1874
+ async buildXML(message) {
1875
+ for (let i = 0; i < this.getSize(); i = i + 1) {
1876
+ await this.getTask(i).buildXML(message);
1877
+ }
1878
+ }
1879
+ setTaskAt(task, index) {
1880
+ if (this._tasks.length <= index) {
1881
+ this._tasks.SetSize(index + 1);
1882
+ }
1883
+ this._tasks.set_Item(index, task);
1884
+ }
1885
+ }
1886
+ TasksTable.createNewtask = null;
1887
+
1888
+ class LastFocusedManager {
1889
+ constructor() {
1890
+ this._lastFocusedTasks = null;
1891
+ this.LastActionTime = 0;
1892
+ }
1893
+ Init(mgDataTable) {
1894
+ this._lastFocusedTasks = new TasksTable();
1895
+ }
1896
+ getCurrTask() {
1897
+ let rtEvnt = AccessHelper.eventsManager.getLastRtEvent();
1898
+ return (rtEvnt !== null && rtEvnt.getTask() !== null && rtEvnt.getTask().GetContextTask() !== null)
1899
+ ? this.getLastFocusedTask(rtEvnt.getTask().GetContextTask().getMgdID())
1900
+ : this.getLastFocusedTask();
1901
+ }
1902
+ getLastFocusedTask(mgdID) {
1903
+ if (arguments.length === 0)
1904
+ return this._lastFocusedTasks.getTask(AccessHelper.mgDataTable.currMgdID);
1905
+ else
1906
+ return this._lastFocusedTasks.getTask(mgdID);
1907
+ }
1908
+ setLastFocusedTask(iTask) {
1909
+ let task = iTask;
1910
+ let currMgdID = task.getMgdID();
1911
+ this._lastFocusedTasks.setTaskAt(task, currMgdID);
1912
+ }
1913
+ clean(index) {
1914
+ LastFocusedManager.deleteLastFocusedControlAt(index);
1915
+ if (this._lastFocusedTasks !== null) {
1916
+ this._lastFocusedTasks.setTaskAt(null, index);
1917
+ }
1918
+ }
1919
+ static getLastFocusedControl(mgdID) {
1920
+ if (arguments.length === 1)
1921
+ return LastFocusedManager.getLastFocusedControl_1(mgdID);
1922
+ else
1923
+ return LastFocusedManager.getLastFocusedControl_0();
1924
+ }
1925
+ static getLastFocusedControl_0() {
1926
+ return LastFocusedManager._lastFocusedControls.getCtrl(AccessHelper.mgDataTable.currMgdID);
1927
+ }
1928
+ static getLastFocusedControl_1(mgdID) {
1929
+ return LastFocusedManager._lastFocusedControls.getCtrl(mgdID);
1930
+ }
1931
+ static deleteLastFocusedControlAt(index) {
1932
+ if (LastFocusedManager._lastFocusedControls !== null && LastFocusedManager._lastFocusedControls.getCtrl(index) != null) {
1933
+ LastFocusedManager._lastFocusedControls.deleteControlAt(index);
1934
+ }
1935
+ }
1936
+ static setLastFocusedControlAt(ctrl, currMgdID) {
1937
+ LastFocusedManager._lastFocusedControls.setControlAt(ctrl, currMgdID);
1938
+ }
1939
+ static setLastFocusedControl(task, mgControl) {
1940
+ let currMgdID = task.getMgdID();
1941
+ Debug.Assert(mgControl === null || task === mgControl.getForm().getTask());
1942
+ LastFocusedManager.LastFocusMgdID = currMgdID;
1943
+ LastFocusedManager.setLastFocusedControlAt(mgControl, currMgdID);
1944
+ LastFocusedManager.Instance.setLastFocusedTask(task);
1945
+ }
1946
+ }
1947
+ LastFocusedManager.Instance = new LastFocusedManager();
1948
+ LastFocusedManager._lastFocusedControls = new ControlTable();
1949
+ LastFocusedManager.LastFocusMgdID = 0;
1950
+
1956
1951
  class Event {
1957
1952
  constructor() {
1958
1953
  this.Exp = null;
@@ -1970,7 +1965,6 @@ class Event {
1970
1965
  this._userDefinedFuncNameHashCode = 0;
1971
1966
  this._userEvtDesc = '';
1972
1967
  this._userEvtIdx = Int32.MinValue;
1973
- this.ownerTaskDefinitionId = null;
1974
1968
  this.InternalEvent = 0;
1975
1969
  this.PublicName = null;
1976
1970
  this.UserEvt = null;
@@ -2124,7 +2118,6 @@ class Event {
2124
2118
  handler.parse(xmlBuffer);
2125
2119
  }
2126
2120
  SetTaskDefinitionId(taskDefinitionId) {
2127
- this.ownerTaskDefinitionId = taskDefinitionId;
2128
2121
  }
2129
2122
  findUserEvent() {
2130
2123
  if (this._type === ConstInterface.EVENT_TYPE_USER && this.UserEvt === null) {
@@ -3339,7 +3332,6 @@ class MgPriorityBlockingQueue {
3339
3332
  return this._queue.peek();
3340
3333
  }
3341
3334
  size() {
3342
- let size;
3343
3335
  return this._queue.Size;
3344
3336
  }
3345
3337
  remainingCapacity() {
@@ -3349,7 +3341,6 @@ class MgPriorityBlockingQueue {
3349
3341
  this._queue.clear();
3350
3342
  }
3351
3343
  isEmpty() {
3352
- let result;
3353
3344
  return this._queue.isEmpty();
3354
3345
  }
3355
3346
  }
@@ -4107,12 +4098,10 @@ FlowMonitorQueue.ACT_FLW_OPER = 'T';
4107
4098
  FlowMonitorQueue.LongTimePattern = "HH:mm:ss:SSS";
4108
4099
  class ActivityItem {
4109
4100
  constructor(enclosingInstance, type, id) {
4110
- this._enclosingInstance = null;
4111
4101
  this._id = 0;
4112
4102
  this._type = null;
4113
4103
  this._info = null;
4114
4104
  this._time = null;
4115
- this._enclosingInstance = enclosingInstance;
4116
4105
  this._type = type;
4117
4106
  this._id = id;
4118
4107
  this.setTime();
@@ -4543,8 +4532,6 @@ HttpClientEvents.GetSessionCounter_Event = null;
4543
4532
  HttpClientEvents.CheckAndSetSessionCounter_Event = null;
4544
4533
  HttpClientEvents.ComputeAndLogRequestInfo_Event = null;
4545
4534
 
4546
- const HTTP_EXPECT100CONTINUE = "Expect100Continue";
4547
- const USE_HIGHEST_SECURITY_PROTOCOL = "UseHighestSecurityProtocol";
4548
4535
  var RequestMethod;
4549
4536
  (function (RequestMethod) {
4550
4537
  RequestMethod[RequestMethod["Get"] = 0] = "Get";
@@ -4665,20 +4652,6 @@ class HttpClientBase {
4665
4652
  }
4666
4653
  return headersStr;
4667
4654
  }
4668
- static GetHTTPExpect100Continue() {
4669
- let result = true;
4670
- let executionProperty = HttpClientEvents.GetExecutionProperty(HTTP_EXPECT100CONTINUE);
4671
- if (!NString.IsNullOrEmpty(executionProperty))
4672
- result = (executionProperty.toUpperCase() === "Y");
4673
- return result;
4674
- }
4675
- static GetUseHighestSecurityProtocol() {
4676
- let result = false;
4677
- let executionProperty = HttpClientEvents.GetExecutionProperty(USE_HIGHEST_SECURITY_PROTOCOL);
4678
- if (!NString.IsNullOrEmpty(executionProperty))
4679
- result = (executionProperty.toUpperCase() === "Y");
4680
- return result;
4681
- }
4682
4655
  async sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer) {
4683
4656
  return Promise.resolve();
4684
4657
  }
@@ -5858,9 +5831,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5858
5831
  AccessHelper.eventsManager.CheckAndShowSpinner(true);
5859
5832
  });
5860
5833
  let isError = new RefParam(false);
5861
- RemoteCommandsProcessor.requestNumber++;
5862
5834
  responseStr = await HttpManager.GetInstance().GetContent(requestedURL, requestContent, useCache, isError);
5863
- RemoteCommandsProcessor.totalResponseDataLength += RemoteCommandsProcessor.totalResponseDataLength + (!isNullOrUndefined(responseStr) ? responseStr.length : 0);
5864
5835
  spinnerTimerSubscription.unsubscribe();
5865
5836
  spinnerTimerSubscription = null;
5866
5837
  if (isError.value) {
@@ -5951,10 +5922,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5951
5922
  let extraMessageStr = isLoggingResponse ? 'Response ⤵' : 'Request ⤵';
5952
5923
  if (isLoggingResponse) {
5953
5924
  this._requestInfo.roundtripTime = roundTrip;
5954
- RemoteCommandsProcessor.totalTimeForHTTPRequests += roundTrip;
5955
5925
  }
5956
- else
5957
- RemoteCommandsProcessor.totalRequestDataLength += contentLength;
5958
5926
  Logger.Instance.WriteRequestInfoToLog(this._requestInfo, extraMessageStr);
5959
5927
  if (isLoggingResponse)
5960
5928
  this._requestInfo.clear();
@@ -6030,10 +5998,6 @@ RemoteCommandsProcessor._instance = null;
6030
5998
  RemoteCommandsProcessor.IsSessionReInitializing = false;
6031
5999
  RemoteCommandsProcessor.lastExceptionMessage = null;
6032
6000
  RemoteCommandsProcessor.InitialUrl = null;
6033
- RemoteCommandsProcessor.requestNumber = 0;
6034
- RemoteCommandsProcessor.totalTimeForHTTPRequests = 0;
6035
- RemoteCommandsProcessor.totalRequestDataLength = 0;
6036
- RemoteCommandsProcessor.totalResponseDataLength = 0;
6037
6001
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
6038
6002
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
6039
6003
  class HandshakeResponse {
@@ -6430,7 +6394,6 @@ class LanguageData {
6430
6394
  try {
6431
6395
  if (this._mlsContent != null) {
6432
6396
  if (this._mlsContent.length > 0) {
6433
- let contentLen = this._mlsContent.length;
6434
6397
  let linePairs = 0;
6435
6398
  let srcLine = this._mlsContent + 3;
6436
6399
  this._mlsStrings = new Hashtable();
@@ -6499,7 +6462,6 @@ class GUIManager {
6499
6462
  }
6500
6463
  abort_0(form) {
6501
6464
  if (form !== null) {
6502
- let mainProgByCtlIdx = AccessHelper.mgDataTable.GetMainProgByCtlIdx(-1, form.getTask().getCtlIdx());
6503
6465
  Manager.Abort(form);
6504
6466
  }
6505
6467
  }
@@ -8071,7 +8033,7 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
8071
8033
  helper.SerializeTaskTag(this.TaskTag);
8072
8034
  helper.SerializeFldId(this.FldId);
8073
8035
  if (this.IgnoreSubformRecompute)
8074
- helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, "1");
8036
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
8075
8037
  return helper.GetString();
8076
8038
  }
8077
8039
  getCommandInfo() {
@@ -8215,7 +8177,7 @@ class ContextTimeoutResetCommand extends EventCommand {
8215
8177
  SerializeCommandData() {
8216
8178
  let helper = new CommandSerializationHelper();
8217
8179
  helper.SerializeMagicEvent(this.MagicEvent);
8218
- helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
8180
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, '1');
8219
8181
  return helper.GetString();
8220
8182
  }
8221
8183
  getCommandInfo() {
@@ -8312,7 +8274,7 @@ class CommandFactory {
8312
8274
  }
8313
8275
  if (argList.getSize() > 1) {
8314
8276
  try {
8315
- cmd.KeepUserSort = (await argList.getArgValue(1, StorageAttribute.BOOLEAN, 0) === "1");
8277
+ cmd.KeepUserSort = (await argList.getArgValue(1, StorageAttribute.BOOLEAN, 0) === '1');
8316
8278
  }
8317
8279
  catch (e) {
8318
8280
  cmd.KeepUserSort = false;
@@ -8444,7 +8406,7 @@ class CommandFactory {
8444
8406
  execOperCommand.DitIdx = ditIdx;
8445
8407
  let cmd = execOperCommand;
8446
8408
  if (value !== null && value.length === 0)
8447
- cmd.Val = " ";
8409
+ cmd.Val = ' ';
8448
8410
  else
8449
8411
  cmd.Val = value;
8450
8412
  return cmd;
@@ -8457,7 +8419,7 @@ class CommandFactory {
8457
8419
  execOperCommand.DitIdx = ditIdx;
8458
8420
  let cmd = execOperCommand;
8459
8421
  if (value !== null && value.length === 0)
8460
- cmd.Val = " ";
8422
+ cmd.Val = ' ';
8461
8423
  else
8462
8424
  cmd.Val = value;
8463
8425
  return cmd;
@@ -8652,7 +8614,6 @@ class Environment {
8652
8614
  this._contextInactivityWarningTime = 0;
8653
8615
  this._toolitipTimeout = 0;
8654
8616
  this._contextUnloadTimeout = 0;
8655
- this._accessTest = false;
8656
8617
  this._canReplaceDecimalSeparator = false;
8657
8618
  this._codePage = 0;
8658
8619
  this._dateSeparator = '\0';
@@ -8734,7 +8695,6 @@ class Environment {
8734
8695
  let valueStr;
8735
8696
  let hashKey;
8736
8697
  let env;
8737
- let utilImeJpn = Manager.UtilImeJpn;
8738
8698
  env = new EnvironmentDetails();
8739
8699
  for (let j = 0; j < tokensVector.length; j += 2) {
8740
8700
  attribute = (tokensVector.get_Item(j));
@@ -8776,7 +8736,6 @@ class Environment {
8776
8736
  this._lowHigh = XmlParser.getBoolean(valueStr);
8777
8737
  break;
8778
8738
  case ConstInterface.MG_ATTR_ACCESS_TEST:
8779
- this._accessTest = XmlParser.getBoolean(valueStr);
8780
8739
  break;
8781
8740
  case ConstInterface.MG_ATTR_SPECIAL_TEXT_SIZE_FACTORING:
8782
8741
  this._specialTextSizeFactoring = XmlParser.getBoolean(valueStr);
@@ -9394,18 +9353,14 @@ class Operation {
9394
9353
  this._execOnClient = false;
9395
9354
  this._exp = null;
9396
9355
  this._field = null;
9397
- this._globalParamsShouldBeCopied = false;
9398
9356
  this._image = '\0';
9399
9357
  this._incremental = false;
9400
- this._methodNameSnippet = null;
9401
9358
  this._mode = '\0';
9402
- this._prgDescription = null;
9403
9359
  this._publicName = null;
9404
9360
  this._returnVal = null;
9405
9361
  this._rtEvt = null;
9406
9362
  this._serverId = -1;
9407
9363
  this.calledTaskDefinitionId = null;
9408
- this._show = CallOsShow.Normal;
9409
9364
  this._subformCtrlName = null;
9410
9365
  this._subtype = '\0';
9411
9366
  this._task = null;
@@ -9477,7 +9432,6 @@ class Operation {
9477
9432
  initElements(tokensVector, taskRef) {
9478
9433
  let attribute, valueStr;
9479
9434
  let expId;
9480
- let isGuiThreadExecution = false;
9481
9435
  for (let j = 0; j < tokensVector.length; j += 2) {
9482
9436
  attribute = (tokensVector.get_Item(j));
9483
9437
  valueStr = (tokensVector.get_Item(j + 1));
@@ -9537,7 +9491,6 @@ class Operation {
9537
9491
  this._syncData.setVal(taskRef, valueStr);
9538
9492
  break;
9539
9493
  case ConstInterface.MG_ATTR_SHOW:
9540
- this._show = XmlParser.getInt(valueStr);
9541
9494
  break;
9542
9495
  case ConstInterface.MG_ATTR_CND:
9543
9496
  this._condExp.setVal(taskRef, valueStr);
@@ -9565,10 +9518,8 @@ class Operation {
9565
9518
  this._publicName = valueStr;
9566
9519
  break;
9567
9520
  case ConstInterface.MG_ATTR_PRG_DESCRIPTION:
9568
- this._prgDescription = valueStr;
9569
9521
  break;
9570
9522
  case ConstInterface.MG_ATTR_CPY_GLB_PRMS:
9571
- this._globalParamsShouldBeCopied = XmlParser.getBoolean(valueStr);
9572
9523
  break;
9573
9524
  case ConstInterface.MG_ATTR_EXEC_ON_SERVER:
9574
9525
  this._execOnServer = XmlParser.getBoolean(valueStr);
@@ -9596,10 +9547,8 @@ class Operation {
9596
9547
  this._errLogAppend = XmlParser.getBoolean(valueStr);
9597
9548
  break;
9598
9549
  case ConstInterface.MG_ATTR_OPER_METHODNAME:
9599
- this._methodNameSnippet = valueStr;
9600
9550
  break;
9601
9551
  case ConstInterface.MG_ATTR_IS_GUI_THREAD_EXECUTION:
9602
- isGuiThreadExecution = XmlParser.getBoolean(valueStr);
9603
9552
  break;
9604
9553
  case ConstInterface.MG_ATTR_IS_ROUTE:
9605
9554
  this._isRoute = XmlParser.getBoolean(valueStr);
@@ -19062,17 +19011,12 @@ class DvCache {
19062
19011
  this._cacheTable = null;
19063
19012
  this._deletedList = null;
19064
19013
  this._task = null;
19065
- this._cacheSize = 0;
19066
- this._recordsBeforeCurrentView = 0;
19067
- this._totalRecordsCount = 0;
19068
19014
  this._task = tsk;
19069
19015
  this._cacheTable = new Hashtable(100, 0.7);
19070
19016
  this._deletedList = new List();
19071
- this._cacheSize = 0;
19072
19017
  }
19073
19018
  putInCache(repOfOriginal) {
19074
19019
  let hashKey = repOfOriginal.getDvPosValue();
19075
- let insertedSize = repOfOriginal.getSize() * (repOfOriginal.getCurrRec()).getRecSize();
19076
19020
  if (this._cacheTable.get_Item(hashKey) !== null)
19077
19021
  this.removeDvFromCache(hashKey, false);
19078
19022
  repOfOriginal.setCacheLRU();
@@ -19080,15 +19024,11 @@ class DvCache {
19080
19024
  repOfOriginal.zeroServerCurrRec();
19081
19025
  this._cacheTable.set_Item(hashKey, repOfOriginal);
19082
19026
  this._deletedList.Remove(hashKey);
19083
- this._cacheSize += insertedSize;
19084
- this._recordsBeforeCurrentView = repOfOriginal.RecordsBeforeCurrentView;
19085
- this._totalRecordsCount = repOfOriginal.TotalRecordsCount;
19086
19027
  return true;
19087
19028
  }
19088
19029
  removeDvFromCache(DvPosValue, updateDel) {
19089
19030
  let rep = this._cacheTable.get_Item(DvPosValue);
19090
19031
  if (rep !== null) {
19091
- this._cacheSize -= (rep.getSize() * (rep.getCurrRec()).getRecSize());
19092
19032
  if (updateDel)
19093
19033
  this._deletedList.push(DvPosValue);
19094
19034
  this._cacheTable.Remove(DvPosValue);
@@ -19097,10 +19037,10 @@ class DvCache {
19097
19037
  return false;
19098
19038
  }
19099
19039
  getDeletedListToXML() {
19100
- let list = "";
19040
+ let list = '';
19101
19041
  for (let i = 0; i < this._deletedList.length; i++) {
19102
19042
  if (i > 0)
19103
- list = list + ",";
19043
+ list = list + ',';
19104
19044
  list += this._deletedList.get_Item(i).toString();
19105
19045
  }
19106
19046
  return list;
@@ -19114,21 +19054,6 @@ class DvCache {
19114
19054
  cached = cached.replicate();
19115
19055
  return cached;
19116
19056
  }
19117
- getLastUsedDv() {
19118
- let currentTimeStamp = Misc.getSystemMilliseconds();
19119
- let lruDiff = -1;
19120
- let lruDvPos = -1;
19121
- let keysList = this._cacheTable.Keys;
19122
- while (keysList.MoveNext()) {
19123
- let current = this._cacheTable.get_Item(keysList.Current);
19124
- let diff = currentTimeStamp - current.getCacheLRU();
19125
- if (diff > lruDiff) {
19126
- lruDiff = diff;
19127
- lruDvPos = current.getDvPosValue();
19128
- }
19129
- }
19130
- return lruDvPos;
19131
- }
19132
19057
  clearCache() {
19133
19058
  let dvKeysList = new List(this._cacheTable.Keys);
19134
19059
  for (let i = 0; i < dvKeysList.length; i++) {
@@ -20919,7 +20844,6 @@ class MgForm extends MgFormBase {
20919
20844
  if (this.isTableWithAbsoluteScrollbar() && this.GetDataview().TotalRecordsCount > 0) {
20920
20845
  let recPosOnPage = this.GetDataview().RecordsBeforeCurrentView % this._rowsInPage;
20921
20846
  if (recPosOnPage > 0 && this.DisplayLine === 0) {
20922
- let lastFocusedVal = { guiMgControl: this.getTableCtrl(), Line: recPosOnPage, Val: "" };
20923
20847
  await this.setRowData(-recPosOnPage, false);
20924
20848
  }
20925
20849
  }
@@ -21459,10 +21383,8 @@ class RemoteDataviewHeader extends DataviewHeaderBase {
21459
21383
  }
21460
21384
 
21461
21385
  class DataviewHeaders {
21462
- constructor(task) {
21386
+ constructor() {
21463
21387
  this._dataviewHeaders = null;
21464
- this._task = null;
21465
- this._task = task;
21466
21388
  this._dataviewHeaders = new Hashtable();
21467
21389
  }
21468
21390
  fillData(parser) {
@@ -23293,7 +23215,7 @@ class Task extends TaskBase {
23293
23215
  this.UserEvtTab.fillData(this, parser);
23294
23216
  break;
23295
23217
  case ConstInterface.MG_TAG_LINKS:
23296
- this.DataviewHeadersTable = new DataviewHeaders(this);
23218
+ this.DataviewHeadersTable = new DataviewHeaders();
23297
23219
  this.DataviewHeadersTable.fillData(parser);
23298
23220
  break;
23299
23221
  case ConstInterface.MG_TAG_SORTS:
@@ -25342,7 +25264,6 @@ class Task extends TaskBase {
25342
25264
  }
25343
25265
  static async OpenForms(callByDestSubForm) {
25344
25266
  let createdForms = MgForm.CreatedForms;
25345
- let outMostForm = null;
25346
25267
  if (createdForms.Count() > 0) {
25347
25268
  let i = 0;
25348
25269
  while (i < createdForms.Count()) {
@@ -25364,8 +25285,6 @@ class Task extends TaskBase {
25364
25285
  await Manager.DoFirstRefreshTable(mgForm);
25365
25286
  }
25366
25287
  if (mgForm.Opened) {
25367
- if (callByDestSubForm && mgForm.isSubForm())
25368
- outMostForm = mgForm.getTopMostForm();
25369
25288
  createdForms.remove(mgForm);
25370
25289
  }
25371
25290
  else
@@ -26521,7 +26440,6 @@ class EventsManager {
26521
26440
  }
26522
26441
  async ExecuteClientContextInactivityTimer() {
26523
26442
  let startTime = Misc.getSystemMilliseconds();
26524
- let currTime;
26525
26443
  let clientCtxInactivityTimeout = Environment.Instance.getClientContextInactivityTimeout() * 100;
26526
26444
  EventsManager.clientInactivityTimerON = true;
26527
26445
  while (EventsManager.clientInactivityTimerON) {
@@ -26654,7 +26572,6 @@ class EventsManager {
26654
26572
  if (task !== null)
26655
26573
  await Task.CommandsProcessor.SendMonitorOnly();
26656
26574
  else {
26657
- let mainProg = MGDataCollection.Instance.GetMainProgByCtlIdx(0);
26658
26575
  await Task.CommandsProcessor.SendMonitorOnly();
26659
26576
  }
26660
26577
  if (rtEvt !== null && rtEvt.isGuiTriggeredEvent()) {
@@ -26748,7 +26665,6 @@ class EventsManager {
26748
26665
  let evtCtrl = rtEvt.Control;
26749
26666
  if (evtCtrl !== null && evtCtrl.getField() !== null) {
26750
26667
  let ctrlVal = Manager.GetCtrlVal(evtCtrl);
26751
- let evtCtrlval = evtCtrl.Value;
26752
26668
  await evtCtrl.validateAndSetValue(ctrlVal, true);
26753
26669
  }
26754
26670
  }
@@ -26796,7 +26712,6 @@ class EventsManager {
26796
26712
  async handleKeyDown(task, ctrl, evt) {
26797
26713
  let kbdItem = evt.getKbdItmAlways();
26798
26714
  let keyCode = kbdItem.getKeyCode();
26799
- let modifier = kbdItem.getModifier();
26800
26715
  this._currKbdItem = kbdItem;
26801
26716
  if (evt.IgnoreSpecifiedControl) {
26802
26717
  ctrl = this.getCurrCtrl();
@@ -27550,14 +27465,6 @@ class EventsManager {
27550
27465
  mgd.abort();
27551
27466
  }
27552
27467
  }
27553
- async moveToLine(form, displayLine, ctrl) {
27554
- let runTimeEvent = new RunTimeEvent(ctrl, displayLine);
27555
- runTimeEvent.setInternal(InternalInterface.MG_ACT_REC_PREFIX);
27556
- await this.handleEvent(runTimeEvent, false);
27557
- if (ctrl !== null)
27558
- await ctrl.invoke();
27559
- form.SelectRow(true);
27560
- }
27561
27468
  createEventArguments(evt) {
27562
27469
  if (evt.getArgList() === null) {
27563
27470
  if (evt.getType() === ConstInterface.EVENT_TYPE_INTERNAL) {
@@ -27754,8 +27661,6 @@ class EventsManager {
27754
27661
  return;
27755
27662
  doSuffix = refDoSuffix.value;
27756
27663
  if (form != null) {
27757
- let parentId = 0;
27758
- let prevLine = 0;
27759
27664
  if ((task.getMode() !== Constants.TASK_MODE_CREATE) || !task.ConfirmUpdateNo)
27760
27665
  await form.addRec(doSuffix, intEvtCode == InternalInterface.MG_ACT_CRELINE_ABOVE ? true : false);
27761
27666
  }
@@ -28921,7 +28826,7 @@ class EventsManager {
28921
28826
  ((parentDv.getCurrRec())).Synced = true;
28922
28827
  parentDv.setChanged(true);
28923
28828
  let dataViewExecuteLocalUpdatesCommand = CommandFactory.CreateDataViewCommand(parentTask.getTaskTag(), DataViewCommandType.ExecuteLocalUpdates);
28924
- let result = await parentTask.DataviewManager.Execute(dataViewExecuteLocalUpdatesCommand);
28829
+ await parentTask.DataviewManager.Execute(dataViewExecuteLocalUpdatesCommand);
28925
28830
  }
28926
28831
  }
28927
28832
  async ProcessAbortingError(ex) {
@@ -29100,13 +29005,6 @@ class GuiEventsProcessor extends EventsProcessor {
29100
29005
  EventsManager.Instance.addToTail(rtEvt);
29101
29006
  }
29102
29007
  }
29103
- static processEnableActs(guiMgCtrl, actList, enable) {
29104
- let mgControl = guiMgCtrl;
29105
- let rtEvt = new RunTimeEvent(mgControl, true);
29106
- rtEvt.setInternal(enable ? InternalInterface.MG_ACT_ENABLE_EVENTS : InternalInterface.MG_ACT_DISABLE_EVENTS);
29107
- rtEvt.setActEnableList(actList);
29108
- EventsManager.Instance.addToTail(rtEvt);
29109
- }
29110
29008
  static OnNonParkableLastParkedCtrl(ctrl) {
29111
29009
  }
29112
29010
  static processSelection(val, guiMgCtrl, line, produceClick) {
@@ -29146,16 +29044,6 @@ class GuiEventsProcessor extends EventsProcessor {
29146
29044
  static SaveLastClickInfo(controlName, X, Y, offsetX, offsetY, LastClickCoordinatesAreInPixels) {
29147
29045
  RuntimeContextBase.Instance.SaveLastClickInfo(controlName, X, Y, offsetX, offsetY, LastClickCoordinatesAreInPixels);
29148
29046
  }
29149
- static ProcessPress(guiMgForm, guiMgCtrl, line) {
29150
- let mgControl = guiMgCtrl;
29151
- if (mgControl == null)
29152
- Manager.EventsManager.addGuiTriggeredEventWithTaskAndCode(guiMgForm.getTask(), InternalInterface.MG_ACT_HIT);
29153
- else if (mgControl.isSubform())
29154
- mgControl.OnSubformClick();
29155
- else
29156
- Manager.EventsManager.addGuiTriggeredEventWithCtrlAndCodeAndLine(mgControl, InternalInterface.MG_ACT_CTRL_HIT, line);
29157
- Manager.EventsManager.addGuiTriggeredEventWithCtrlAndCodeAndLine(mgControl, InternalInterface.MG_ACT_PRESS, line);
29158
- }
29159
29047
  static IsLogonRTL() {
29160
29048
  return ServerConfig.Instance.IsLogonRTL();
29161
29049
  }
@@ -29464,7 +29352,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29464
29352
  this._text = null;
29465
29353
  this._display = '\0';
29466
29354
  this._mode = '\0';
29467
- this._sendAck = true;
29468
29355
  }
29469
29356
  async Execute(res) {
29470
29357
  let errForConsole = StrUtil.getConsoleErorString(this._text);
@@ -29521,7 +29408,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29521
29408
  this._mode = value[0];
29522
29409
  break;
29523
29410
  case ConstInterface.MG_ATTR_ACK:
29524
- this._sendAck = (XmlParser.getInt(value) !== 0);
29525
29411
  break;
29526
29412
  default:
29527
29413
  super.HandleAttribute(attribute, value);
@@ -30059,12 +29945,10 @@ class CommandsTable {
30059
29945
  }
30060
29946
  }
30061
29947
 
30062
- let CurrentClientVersion = '4.801.0-dev481.307';
29948
+ let CurrentClientVersion = '4.801.0-dev481.310';
30063
29949
 
30064
29950
  class ClientManager {
30065
29951
  constructor() {
30066
- this._guiEventsProcessor = null;
30067
- this._tableCacheManager = null;
30068
29952
  this._delayInProgress = false;
30069
29953
  this._debugClient = null;
30070
29954
  this._globalUniqueSessionId = null;
@@ -30279,7 +30163,7 @@ class ClientManager {
30279
30163
  HttpManager.setNativeHttpClient(httpClient);
30280
30164
  let loaded = await ClientManager.Instance.LoadExecutionProps();
30281
30165
  if (loaded) {
30282
- ClientManager.Instance._guiEventsProcessor = new GuiEventsProcessor();
30166
+ new GuiEventsProcessor();
30283
30167
  ClientManager.Instance.InitGuiManager();
30284
30168
  ClientManager.Instance.InitCircularReferencesBypasses();
30285
30169
  let versionString = CurrentClientVersion === '0.0.0.0' ? "Development mode" : "Version : " + CurrentClientVersion;
@@ -30348,11 +30232,6 @@ class ClientManager {
30348
30232
  GetGlobalUniqueSessionID() {
30349
30233
  return this._globalUniqueSessionId;
30350
30234
  }
30351
- static getExecutionPropertiesFileName() {
30352
- let fullyQualifiedName = null;
30353
- let lastPathSeparator = fullyQualifiedName.lastIndexOf('\\');
30354
- return NString.Remove(fullyQualifiedName, lastPathSeparator + 1, fullyQualifiedName.length - lastPathSeparator - 1) + ConstInterface.EXECUTION_PROPERTIES_FILE_NAME;
30355
- }
30356
30235
  static GetControlPictureMask(taskId, controlName) {
30357
30236
  let pic = null;
30358
30237
  let task = MGDataCollection.Instance.GetTaskByID(taskId);