@magic-xpa/engine 4.900.0-dev491.7 → 4.1000.0-dev4100.1
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.
- package/esm2020/src/ClientManager.mjs +46 -5
- package/esm2020/src/CurrentClientVersion.mjs +2 -2
- package/esm2020/src/bridge/MagicBridge.mjs +3 -3
- package/esm2020/src/data/Field.mjs +3 -2
- package/esm2020/src/env/LanguageData.mjs +10 -5
- package/esm2020/src/event/EventsManager.mjs +2 -2
- package/esm2020/src/exp/ExpressionEvaluator.mjs +2 -2
- package/esm2020/src/gui/MgControl.mjs +3 -2
- package/esm2020/src/rt/Operation.mjs +3 -3
- package/esm2020/src/rt/RecomputeTable.mjs +12 -4
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +10 -7
- package/esm2020/src/tasks/RemoteTaskService.mjs +3 -3
- package/esm2020/src/tasks/Task.mjs +15 -7
- package/esm2020/src/util/Scrambler.mjs +3 -2
- package/esm2020/src/util/cookie.service.mjs +2 -2
- package/fesm2015/magic-xpa-engine.mjs +108 -36
- package/fesm2015/magic-xpa-engine.mjs.map +1 -1
- package/fesm2020/magic-xpa-engine.mjs +101 -33
- package/fesm2020/magic-xpa-engine.mjs.map +1 -1
- package/package.json +4 -4
- package/src/ClientManager.d.ts +2 -1
- package/src/bridge/MagicBridge.d.ts +1 -1
- package/src/tasks/RemoteTaskService.d.ts +1 -1
- package/src/tasks/Task.d.ts +1 -1
|
@@ -1205,7 +1205,8 @@ class MgControl extends MgControlBase {
|
|
|
1205
1205
|
if (!isTagProcessed) {
|
|
1206
1206
|
switch (attribute) {
|
|
1207
1207
|
case ConstInterface.MG_ATTR_SUBFORM_TASK:
|
|
1208
|
-
|
|
1208
|
+
if (valueStr.trim() != "")
|
|
1209
|
+
this._subformTaskId = valueStr;
|
|
1209
1210
|
break;
|
|
1210
1211
|
case ConstInterface.MG_ATTR_REFRESHON:
|
|
1211
1212
|
this.refreshOnString = valueStr.trim();
|
|
@@ -4132,9 +4133,10 @@ class Scrambler {
|
|
|
4132
4133
|
if (high > (sqrt / 2))
|
|
4133
4134
|
high = Math.floor(sqrt / 2);
|
|
4134
4135
|
delta = (Math.random() * (high - low)) + low;
|
|
4136
|
+
delta = Math.floor(delta);
|
|
4135
4137
|
if (delta === Scrambler.XML_ILLEGAL_RANDOM)
|
|
4136
4138
|
delta++;
|
|
4137
|
-
return
|
|
4139
|
+
return delta;
|
|
4138
4140
|
}
|
|
4139
4141
|
static UnScramble(inVal, beginOffSet, endOffSet) {
|
|
4140
4142
|
if (!Scrambler.ScramblingEnabled) {
|
|
@@ -6124,17 +6126,22 @@ class LanguageData {
|
|
|
6124
6126
|
if (this._mlsContent.length > 0) {
|
|
6125
6127
|
let linePairs = 0;
|
|
6126
6128
|
let srcLine = this._mlsContent + 3;
|
|
6129
|
+
let transLine;
|
|
6127
6130
|
this._mlsStrings = new Hashtable();
|
|
6128
|
-
let linesStr = this._mlsContent.
|
|
6131
|
+
let linesStr = this._mlsContent.substr(this._mlsContent.length - MLS_EOF_CHARS_TO_READ, 8);
|
|
6129
6132
|
linePairs = parseInt(linesStr.toString(), 16);
|
|
6130
6133
|
let tokens = StrUtil.tokenize(srcLine.toString(), "\n");
|
|
6131
|
-
for (let
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
+
for (let pairNum = 0; pairNum < linePairs * 2; pairNum += 2) {
|
|
6135
|
+
srcLine = tokens[pairNum].substr(0, tokens[pairNum].length - 1);
|
|
6136
|
+
transLine = tokens[pairNum + 1].substr(0, tokens[pairNum + 1].length - 1);
|
|
6137
|
+
if (this._mlsStrings.get_Item(srcLine.toString()) == null)
|
|
6138
|
+
this._mlsStrings.set_Item(srcLine.toString(), transLine);
|
|
6134
6139
|
}
|
|
6135
6140
|
}
|
|
6136
6141
|
}
|
|
6137
6142
|
else if (this._mlsFileUrl != null) {
|
|
6143
|
+
if (this._mlsFileUrl.startsWith("./"))
|
|
6144
|
+
this._mlsFileUrl = NString.Replace(this._mlsFileUrl, './', './assets/cache/');
|
|
6138
6145
|
let contentStr = await CommandsProcessorManager.GetContent(this._mlsFileUrl, true);
|
|
6139
6146
|
let buffer = contentStr;
|
|
6140
6147
|
if (buffer != null && buffer.length > 0) {
|
|
@@ -9261,8 +9268,8 @@ class Operation {
|
|
|
9261
9268
|
if (rtEvnt !== null) {
|
|
9262
9269
|
this._routeParams = rtEvnt.getRouteParamList();
|
|
9263
9270
|
if ((await rtEvnt.getArgList().getArg(0).getValue(StorageAttribute.ALPHA, 0)).trim() === this._routerPath &&
|
|
9264
|
-
((rtEvnt.getArgList().getArg(1).skipArg()) ||
|
|
9265
|
-
(await rtEvnt.getArgList().getArg(1).getValue(StorageAttribute.ALPHA, 0)).trim() === this._originalRouterOutletName))
|
|
9271
|
+
((rtEvnt.getArgList().getArg(1).skipArg() && destSubForm === this._task.getForm().DefaultRouterOutlet) ||
|
|
9272
|
+
(!rtEvnt.getArgList().getArg(1).skipArg() && (await rtEvnt.getArgList().getArg(1).getValue(StorageAttribute.ALPHA, 0)).trim() === this._originalRouterOutletName)))
|
|
9266
9273
|
canRoute = true;
|
|
9267
9274
|
if (!canRoute)
|
|
9268
9275
|
return false;
|
|
@@ -10125,7 +10132,7 @@ class CookieService {
|
|
|
10125
10132
|
var cookie = cookies[i];
|
|
10126
10133
|
var eqPos = cookie.indexOf('=');
|
|
10127
10134
|
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
|
|
10128
|
-
if (cookieName === decodeURI(name)) {
|
|
10135
|
+
if (cookieName === NString.TrimStart(decodeURI(name))) {
|
|
10129
10136
|
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
|
|
10130
10137
|
return true;
|
|
10131
10138
|
}
|
|
@@ -14195,7 +14202,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14195
14202
|
}
|
|
14196
14203
|
path = args[3];
|
|
14197
14204
|
domain = args[4];
|
|
14198
|
-
resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
|
|
14205
|
+
resVal.BoolVal = CookieService.setCookie(cookieName, (args[0] != null ? args[0].toString() : ""), nativeDt, path, domain, secure, sameSite);
|
|
14199
14206
|
}
|
|
14200
14207
|
eval_op_get_cookie(cookieName, resVal) {
|
|
14201
14208
|
resVal.StrVal = CookieService.getCookie(cookieName);
|
|
@@ -16261,7 +16268,8 @@ class Field extends FieldBase {
|
|
|
16261
16268
|
}
|
|
16262
16269
|
break;
|
|
16263
16270
|
case ConstInterface.MG_ATTR_CHACHED_FLD_ID:
|
|
16264
|
-
|
|
16271
|
+
if (data[0] != "")
|
|
16272
|
+
this.CacheTableFldIdx = NNumber.Parse(data[1]);
|
|
16265
16273
|
break;
|
|
16266
16274
|
case ConstInterface.MG_ATTR_LOCATE:
|
|
16267
16275
|
this.Locate = new Boundary(this.getTask(), NNumber.Parse(data[1]), NNumber.Parse(data[0]), this.getType(), this.getSize(), this.CacheTableFldIdx);
|
|
@@ -20442,8 +20450,8 @@ class RemoteTaskService extends TaskServiceBase {
|
|
|
20442
20450
|
OwnerTransactionTask = task.DataviewManager.RemoteDataviewManager.Transaction.OwnerTask;
|
|
20443
20451
|
return OwnerTransactionTask;
|
|
20444
20452
|
}
|
|
20445
|
-
static PreparePropMainDisplay(task) {
|
|
20446
|
-
task.ComputeMainDisplay();
|
|
20453
|
+
static async PreparePropMainDisplay(task) {
|
|
20454
|
+
await task.ComputeMainDisplay();
|
|
20447
20455
|
return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
|
|
20448
20456
|
}
|
|
20449
20457
|
}
|
|
@@ -20843,15 +20851,18 @@ class RemoteDataviewHeader extends DataviewHeaderBase {
|
|
|
20843
20851
|
setAttribute(attribute, valueStr) {
|
|
20844
20852
|
switch (attribute) {
|
|
20845
20853
|
case ConstInterface.MG_ATTR_CACHED_TABLE:
|
|
20846
|
-
if (
|
|
20847
|
-
|
|
20848
|
-
|
|
20849
|
-
|
|
20850
|
-
|
|
20854
|
+
if (valueStr != "") {
|
|
20855
|
+
if (TableCacheManager.Instance.TableExists(valueStr))
|
|
20856
|
+
this._table = TableCacheManager.Instance.GetTableById(valueStr);
|
|
20857
|
+
else {
|
|
20858
|
+
this._table = new TableCache(valueStr);
|
|
20859
|
+
TableCacheManager.Instance.InsertTable(this._table);
|
|
20860
|
+
}
|
|
20851
20861
|
}
|
|
20852
20862
|
break;
|
|
20853
20863
|
case ConstInterface.MG_ATTR_IDENT:
|
|
20854
|
-
|
|
20864
|
+
if (valueStr != "")
|
|
20865
|
+
this._table.SetTableIdent(valueStr);
|
|
20855
20866
|
break;
|
|
20856
20867
|
default:
|
|
20857
20868
|
super.setAttribute(attribute, valueStr);
|
|
@@ -21945,9 +21956,17 @@ class RecomputeTable {
|
|
|
21945
21956
|
this.fillData_1(task.DataView, task, parser);
|
|
21946
21957
|
}
|
|
21947
21958
|
else
|
|
21948
|
-
|
|
21959
|
+
parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) + 1);
|
|
21949
21960
|
}
|
|
21950
21961
|
fillData_1(dataView, task, parser) {
|
|
21962
|
+
if (parser.getNextTag() == XMLConstants.MG_TAG_RECOMPUTE) {
|
|
21963
|
+
let currrentIndex = parser.getCurrIndex();
|
|
21964
|
+
let encoded = parser.ReadContentOfCurrentElement().trim();
|
|
21965
|
+
let decoded = Base64.decode(encoded.substr(0, encoded.length).trim());
|
|
21966
|
+
let newXmlData = parser.getXMLdata().replace(encoded.trim(), decoded);
|
|
21967
|
+
parser.setXMLdata(newXmlData);
|
|
21968
|
+
parser.setCurrIndex(currrentIndex);
|
|
21969
|
+
}
|
|
21951
21970
|
while (this.initInnerObjects(parser, parser.getNextTag(), dataView, task)) {
|
|
21952
21971
|
}
|
|
21953
21972
|
}
|
|
@@ -22693,10 +22712,12 @@ class Task extends TaskBase {
|
|
|
22693
22712
|
this.setDescriptor(valueStr);
|
|
22694
22713
|
break;
|
|
22695
22714
|
case ConstInterface.MG_ATTR_HAS_LOCATE:
|
|
22696
|
-
|
|
22715
|
+
if (+valueStr == 1)
|
|
22716
|
+
this.hasLocate = true;
|
|
22697
22717
|
break;
|
|
22698
22718
|
case ConstInterface.MG_ATTR_AS_PARENT:
|
|
22699
|
-
|
|
22719
|
+
if (+valueStr == 1)
|
|
22720
|
+
this.ModeAsParent = true;
|
|
22700
22721
|
break;
|
|
22701
22722
|
case ConstInterface.MG_ATTR_TASK_UNIQUE_SORT:
|
|
22702
22723
|
this.UniqueSort = valueStr[0];
|
|
@@ -23023,6 +23044,7 @@ class Task extends TaskBase {
|
|
|
23023
23044
|
result = await this.DataviewManager.Execute(dataViewCommand);
|
|
23024
23045
|
if (!result.Success)
|
|
23025
23046
|
return null;
|
|
23047
|
+
this.ResumeSubformLayout();
|
|
23026
23048
|
}
|
|
23027
23049
|
nonInteractiveTask = await this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
|
|
23028
23050
|
this.InStartProcess = false;
|
|
@@ -24646,16 +24668,16 @@ class Task extends TaskBase {
|
|
|
24646
24668
|
}
|
|
24647
24669
|
}
|
|
24648
24670
|
}
|
|
24649
|
-
ComputeMainDisplay() {
|
|
24671
|
+
async ComputeMainDisplay() {
|
|
24650
24672
|
let propMainDisplay = this.getProp(PropInterface.PROP_TYPE_MAIN_DISPLAY);
|
|
24651
|
-
let mainDisplayIndex = propMainDisplay.
|
|
24673
|
+
let mainDisplayIndex = await propMainDisplay.getValueInt();
|
|
24652
24674
|
mainDisplayIndex = this.GetRealMainDisplayIndexOnCurrentTask(mainDisplayIndex);
|
|
24653
24675
|
this._forms.InitFormFromXmlString(mainDisplayIndex);
|
|
24654
24676
|
this.EnsureValidForm();
|
|
24655
24677
|
}
|
|
24656
24678
|
async PrepareTaskForm() {
|
|
24657
24679
|
await TaskServiceBase.PreparePropOpenTaskWindow(this);
|
|
24658
|
-
return RemoteTaskService.PreparePropMainDisplay(this);
|
|
24680
|
+
return await RemoteTaskService.PreparePropMainDisplay(this);
|
|
24659
24681
|
}
|
|
24660
24682
|
FormIsLegal() {
|
|
24661
24683
|
let isFormIsLegal = super.isMainProg();
|
|
@@ -24724,7 +24746,12 @@ class Task extends TaskBase {
|
|
|
24724
24746
|
let tokensVector = XmlParser.getTokens(RuntimeContextBase.Instance.Parser.getXMLsubstring(endTaskUrlIdx), XMLConstants.XML_ATTR_DELIM);
|
|
24725
24747
|
let taskCacheURL = tokensVector.get_Item(1);
|
|
24726
24748
|
let refListStr = tokensVector.get_Item(3);
|
|
24727
|
-
let taskContentOriginal =
|
|
24749
|
+
let taskContentOriginal = "";
|
|
24750
|
+
if (taskCacheURL.trim() != "") {
|
|
24751
|
+
if (taskCacheURL.startsWith("./"))
|
|
24752
|
+
taskCacheURL = NString.Replace(taskCacheURL, './', './assets/cache/');
|
|
24753
|
+
taskContentOriginal = await Task.CommandsProcessor.GetContent(taskCacheURL, true);
|
|
24754
|
+
}
|
|
24728
24755
|
let taskContentFinal = new StringBuilder(xmlData.substr(0, RuntimeContextBase.Instance.Parser.getCurrIndex() - (ConstInterface.MG_TAG_TASKURL.length + 1)), taskContentOriginal.length);
|
|
24729
24756
|
let reflist = this.getReflist(refListStr, ';', true, -1);
|
|
24730
24757
|
let refListIdx = 0;
|
|
@@ -26924,7 +26951,7 @@ class EventsManager {
|
|
|
26924
26951
|
val = Manager.GetCtrlVal(ctrl);
|
|
26925
26952
|
task.CurrentEditingControl = null;
|
|
26926
26953
|
if (!task.cancelWasRaised() &&
|
|
26927
|
-
(ctrl.Type !== MgControlType.CTRL_TYPE_BROWSER && (!isNullOrUndefined(ctrl._field) && ctrl._field.getType() === StorageAttribute.DATE || val !== null) && typeof val != 'undefined' &&
|
|
26954
|
+
(ctrl.Type !== MgControlType.CTRL_TYPE_BROWSER && (!isNullOrUndefined(ctrl._field) && (ctrl._field.getType() === StorageAttribute.DATE || ctrl._field.getType() == StorageAttribute.NUMERIC) || val !== null) && typeof val != 'undefined' &&
|
|
26928
26955
|
!await ctrl.validateAndSetValue(val, true))) {
|
|
26929
26956
|
this.setStopExecution(true);
|
|
26930
26957
|
return false;
|
|
@@ -29516,7 +29543,7 @@ class CommandsTable {
|
|
|
29516
29543
|
}
|
|
29517
29544
|
}
|
|
29518
29545
|
|
|
29519
|
-
let CurrentClientVersion = '4.
|
|
29546
|
+
let CurrentClientVersion = '4.1000.0-dev4100.1';
|
|
29520
29547
|
|
|
29521
29548
|
class ClientManager {
|
|
29522
29549
|
constructor() {
|
|
@@ -29607,6 +29634,10 @@ class ClientManager {
|
|
|
29607
29634
|
EventsManager.Instance.addGuiTriggeredEventWithTaskAndCodeAndLine(task, InternalInterface.MG_ACT_REC_PREFIX, dvRowIdx);
|
|
29608
29635
|
}
|
|
29609
29636
|
break;
|
|
29637
|
+
case "navigateInTable":
|
|
29638
|
+
if (guiEvent.ControlName === "magicRow")
|
|
29639
|
+
this.handleNavigateInRowEvent(task, guiEvent.Value);
|
|
29640
|
+
break;
|
|
29610
29641
|
case "close":
|
|
29611
29642
|
if (task.IsRoute())
|
|
29612
29643
|
EventsManager.Instance.AddRouterClosedEvent(task);
|
|
@@ -29641,6 +29672,38 @@ class ClientManager {
|
|
|
29641
29672
|
break;
|
|
29642
29673
|
}
|
|
29643
29674
|
}
|
|
29675
|
+
handleNavigateInRowEvent(task, evt) {
|
|
29676
|
+
let internalEvt = InternalInterface.MG_ACT_NONE;
|
|
29677
|
+
evt = evt.toLowerCase();
|
|
29678
|
+
switch (evt) {
|
|
29679
|
+
case "begin-page":
|
|
29680
|
+
internalEvt = InternalInterface.MG_ACT_TBL_BEGPAGE;
|
|
29681
|
+
break;
|
|
29682
|
+
case "previous-page":
|
|
29683
|
+
internalEvt = InternalInterface.MG_ACT_TBL_PRVPAGE;
|
|
29684
|
+
break;
|
|
29685
|
+
case "end-page":
|
|
29686
|
+
internalEvt = InternalInterface.MG_ACT_TBL_ENDPAGE;
|
|
29687
|
+
break;
|
|
29688
|
+
case "next-page":
|
|
29689
|
+
internalEvt = InternalInterface.MG_ACT_TBL_NXTPAGE;
|
|
29690
|
+
break;
|
|
29691
|
+
case "previous-line":
|
|
29692
|
+
internalEvt = InternalInterface.MG_ACT_TBL_PRVLINE;
|
|
29693
|
+
break;
|
|
29694
|
+
case "next-line":
|
|
29695
|
+
internalEvt = InternalInterface.MG_ACT_TBL_NXTLINE;
|
|
29696
|
+
break;
|
|
29697
|
+
case "begin-table":
|
|
29698
|
+
internalEvt = InternalInterface.MG_ACT_TBL_BEGTBL;
|
|
29699
|
+
break;
|
|
29700
|
+
case "end-table":
|
|
29701
|
+
internalEvt = InternalInterface.MG_ACT_TBL_ENDTBL;
|
|
29702
|
+
break;
|
|
29703
|
+
}
|
|
29704
|
+
if (internalEvt != InternalInterface.MG_ACT_NONE)
|
|
29705
|
+
EventsManager.Instance.addGuiTriggeredEventWithTaskAndCode(task, internalEvt);
|
|
29706
|
+
}
|
|
29644
29707
|
ConfirmationClosed(res) {
|
|
29645
29708
|
Commands.ResolvePromise(res);
|
|
29646
29709
|
}
|
|
@@ -29777,15 +29840,20 @@ class ClientManager {
|
|
|
29777
29840
|
}
|
|
29778
29841
|
return pic;
|
|
29779
29842
|
}
|
|
29780
|
-
static GetFormattedValue(taskId, controlName, value) {
|
|
29843
|
+
static GetFormattedValue(taskId, controlName, value, rowId) {
|
|
29781
29844
|
let pic = null;
|
|
29782
29845
|
let task = MGDataCollection.Instance.GetTaskByID(taskId);
|
|
29783
29846
|
let control = null;
|
|
29784
29847
|
let newValue = value;
|
|
29785
|
-
if (controlName !== null)
|
|
29848
|
+
if (controlName !== null && task !== null)
|
|
29786
29849
|
control = task.getForm().GetCtrl(controlName);
|
|
29787
29850
|
if (control != null && control.DataType == StorageAttribute.NUMERIC) {
|
|
29788
|
-
|
|
29851
|
+
if (control.isRepeatable() && control.getProp(PropInterface.PROP_TYPE_FORMAT).isExpression()) {
|
|
29852
|
+
let picval = control.getProp(PropInterface.PROP_TYPE_FORMAT).getPrevValue(+rowId);
|
|
29853
|
+
pic = new PIC(picval, StorageAttribute.NUMERIC, control.getForm().getTask().getCompIdx());
|
|
29854
|
+
}
|
|
29855
|
+
else
|
|
29856
|
+
pic = control.getPIC();
|
|
29789
29857
|
let dispValue = String(value);
|
|
29790
29858
|
let newPic = pic.getUnformattedNumericPic();
|
|
29791
29859
|
let num = DisplayConvertor.Instance.toNum(dispValue, newPic, 0);
|
|
@@ -29886,8 +29954,8 @@ class MagicBridge {
|
|
|
29886
29954
|
static GetControlPictureMask(taskId, controlName) {
|
|
29887
29955
|
return ClientManager.GetControlPictureMask(taskId, controlName);
|
|
29888
29956
|
}
|
|
29889
|
-
static GetFormattedValue(taskId, controlName, value) {
|
|
29890
|
-
return ClientManager.GetFormattedValue(taskId, controlName, value);
|
|
29957
|
+
static GetFormattedValue(taskId, controlName, value, rowId) {
|
|
29958
|
+
return ClientManager.GetFormattedValue(taskId, controlName, value, rowId);
|
|
29891
29959
|
}
|
|
29892
29960
|
static GetRangedValue(taskId, controlName, value) {
|
|
29893
29961
|
return ClientManager.GetRangedValue(taskId, controlName, value);
|