@magic-xpa/gui 4.900.0-dev490.28 → 4.900.0-dev490.281
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/Commands.mjs +2 -4
- package/esm2020/src/Manager.mjs +2 -2
- package/esm2020/src/management/gui/DisplayConvertor.mjs +6 -15
- package/esm2020/src/management/gui/FieldValidator.mjs +2 -2
- package/esm2020/src/management/gui/Helps.mjs +10 -3
- package/esm2020/src/management/gui/MgControlBase.mjs +22 -24
- package/esm2020/src/management/gui/MgFormBase.mjs +5 -16
- package/esm2020/src/management/gui/PIC.mjs +8 -1
- package/esm2020/src/management/gui/Property.mjs +2 -2
- package/esm2020/src/management/tasks/GuiTaskBase.mjs +18 -6
- package/fesm2015/magic-xpa-gui.mjs +65 -64
- package/fesm2015/magic-xpa-gui.mjs.map +1 -1
- package/fesm2020/magic-xpa-gui.mjs +65 -64
- package/fesm2020/magic-xpa-gui.mjs.map +1 -1
- package/package.json +2 -2
- package/src/Commands.d.ts +1 -1
- package/src/management/gui/MgControlBase.d.ts +0 -2
- package/src/management/gui/MgFormBase.d.ts +1 -5
- package/src/management/gui/PIC.d.ts +3 -0
- package/src/management/tasks/GuiTaskBase.d.ts +2 -0
|
@@ -1235,13 +1235,11 @@ class Commands {
|
|
|
1235
1235
|
guiCommand.number = num;
|
|
1236
1236
|
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
1237
1237
|
}
|
|
1238
|
-
static addValueWithLine(commandType, obj, line, value
|
|
1238
|
+
static addValueWithLine(commandType, obj, line, value) {
|
|
1239
1239
|
let guiCommand = new GuiCommand(obj, commandType);
|
|
1240
1240
|
guiCommand.value = value;
|
|
1241
1241
|
guiCommand.line = line;
|
|
1242
1242
|
if (commandType === CommandType.SET_VALUE) {
|
|
1243
|
-
if (reset)
|
|
1244
|
-
guiCommand.Bool1 = reset;
|
|
1245
1243
|
if (obj instanceof GuiMgControl && obj.isChoiceControl()) {
|
|
1246
1244
|
if (value < 0)
|
|
1247
1245
|
guiCommand.value = '';
|
|
@@ -1597,7 +1595,7 @@ class Manager {
|
|
|
1597
1595
|
return Commands.getValue(ctrl, ctrl.getDisplayLine(true));
|
|
1598
1596
|
}
|
|
1599
1597
|
static async SetReadOnlyControl(ctrl, isReadOnly) {
|
|
1600
|
-
if (ctrl.isTextControl() || ctrl.IsRepeatable) {
|
|
1598
|
+
if (ctrl.isTextControl() || ctrl.IsRepeatable || ctrl.isComboBox() || ctrl.isListBox() || ctrl.isCheckBox() || ctrl.isRadio()) {
|
|
1601
1599
|
if (UtilStrByteMode.isLocaleDefLangDBCS()) {
|
|
1602
1600
|
if (await ctrl.getForm().getTask().checkProp(PropInterface.PROP_TYPE_ALLOW_LOCATE_IN_QUERY, false))
|
|
1603
1601
|
return;
|
|
@@ -2025,6 +2023,7 @@ class PIC {
|
|
|
2025
2023
|
this._maskChars = 0;
|
|
2026
2024
|
this._maskSize = 0;
|
|
2027
2025
|
this._mixed = false;
|
|
2026
|
+
this._formatExp = false;
|
|
2028
2027
|
this._msk = null;
|
|
2029
2028
|
this._needLength = false;
|
|
2030
2029
|
this._negative = false;
|
|
@@ -2112,6 +2111,12 @@ class PIC {
|
|
|
2112
2111
|
decInFirstPos() {
|
|
2113
2112
|
return this._decPointIsFirst;
|
|
2114
2113
|
}
|
|
2114
|
+
setFormatExp(val) {
|
|
2115
|
+
this._formatExp = val;
|
|
2116
|
+
}
|
|
2117
|
+
isFormatExp() {
|
|
2118
|
+
return this._formatExp;
|
|
2119
|
+
}
|
|
2115
2120
|
getPosPref_() {
|
|
2116
2121
|
return this._posPref.ToString();
|
|
2117
2122
|
}
|
|
@@ -5640,25 +5645,16 @@ class DisplayConvertor {
|
|
|
5640
5645
|
case PICInterface.PIC_YY:
|
|
5641
5646
|
{
|
|
5642
5647
|
this.int_2_a(outVal, outIdx, 2, breakParams.year, '0');
|
|
5643
|
-
let yearStr = NString.FromChars(outVal);
|
|
5644
|
-
year = +yearStr
|
|
5645
|
-
outIdx += 2;
|
|
5646
|
-
len -= 2;
|
|
5647
|
-
}
|
|
5648
|
-
break;
|
|
5649
|
-
case PICInterface.PIC_YY:
|
|
5650
|
-
{
|
|
5651
|
-
this.int_2_a(outVal, outIdx, 2, breakParams.year, '0');
|
|
5652
|
-
let yearStr = NString.FromChars(outVal);
|
|
5653
|
-
year = +yearStr.substr(outIdx);
|
|
5648
|
+
let yearStr = NString.FromChars(outVal, outIdx, 2);
|
|
5649
|
+
year = +yearStr;
|
|
5654
5650
|
outIdx += 2;
|
|
5655
5651
|
len -= 2;
|
|
5656
5652
|
}
|
|
5657
5653
|
break;
|
|
5658
5654
|
case PICInterface.PIC_YYYY:
|
|
5659
|
-
this.int_2_a(outVal, outIdx, 4, year, '0');
|
|
5660
|
-
let yearStr = NString.FromChars(outVal);
|
|
5661
|
-
year = +yearStr
|
|
5655
|
+
this.int_2_a(outVal, outIdx, 4, breakParams.year, '0');
|
|
5656
|
+
let yearStr = NString.FromChars(outVal, outIdx, 4);
|
|
5657
|
+
year = +yearStr;
|
|
5662
5658
|
outIdx += 4;
|
|
5663
5659
|
len -= 4;
|
|
5664
5660
|
break;
|
|
@@ -9812,7 +9808,7 @@ class Property {
|
|
|
9812
9808
|
async onModifiable() {
|
|
9813
9809
|
if (this._parentType === GuiConstants.PARENT_TYPE_CONTROL) {
|
|
9814
9810
|
let ctrl = this._parentObj;
|
|
9815
|
-
if (ctrl.isTextControl()) {
|
|
9811
|
+
if (ctrl.isTextControl() || ctrl.isChoiceControl() || ctrl.isCheckBox()) {
|
|
9816
9812
|
let task = this.GetTaskByParentObject();
|
|
9817
9813
|
let readOnlyValue = !this.GetComputedValueBoolean();
|
|
9818
9814
|
if ((readOnlyValue || task.getMode() !== Constants.TASK_MODE_QUERY) && ctrl.GetCurrReadOnly() !== readOnlyValue) {
|
|
@@ -10388,7 +10384,7 @@ class FieldValidator {
|
|
|
10388
10384
|
return valDet;
|
|
10389
10385
|
}
|
|
10390
10386
|
if (ctrl.DataType !== StorageAttribute.ALPHA && ctrl.DataType !== StorageAttribute.UNICODE && ctrl.DataType !== StorageAttribute.BLOB) {
|
|
10391
|
-
if ((typeof this._newvalue === 'string' && this._newvalue.trim().length === 0) || (ctrl.DataType === StorageAttribute.DATE && (ctrl.isDateZero(this._newvalue) || this.isNullDisplayVal()))) {
|
|
10387
|
+
if ((typeof this._newvalue === 'string' && this._newvalue.trim().length === 0) || (ctrl.DataType == StorageAttribute.NUMERIC && this._newvalue == null) || (ctrl.DataType === StorageAttribute.DATE && (ctrl.isDateZero(this._newvalue) || this.isNullDisplayVal()))) {
|
|
10392
10388
|
let field = ctrl.getField();
|
|
10393
10389
|
let defaultValue = field.getDefaultValue();
|
|
10394
10390
|
let text = null;
|
|
@@ -11578,7 +11574,6 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
11578
11574
|
this._firstRefreshProperties = true;
|
|
11579
11575
|
this._form = null;
|
|
11580
11576
|
this._hasValidItmAndDispVal = false;
|
|
11581
|
-
this._id = -1;
|
|
11582
11577
|
this._controlIsn = -1;
|
|
11583
11578
|
this._linkedParentDitIdx = -1;
|
|
11584
11579
|
this._orgChoiceDisps = null;
|
|
@@ -11621,9 +11616,6 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
11621
11616
|
get Form() {
|
|
11622
11617
|
return this._form;
|
|
11623
11618
|
}
|
|
11624
|
-
get Id() {
|
|
11625
|
-
return this._id;
|
|
11626
|
-
}
|
|
11627
11619
|
get ControlIsn() {
|
|
11628
11620
|
return this._controlIsn;
|
|
11629
11621
|
}
|
|
@@ -11845,9 +11837,6 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
11845
11837
|
case XMLConstants.MG_ATTR_CONTAINER:
|
|
11846
11838
|
this.setContainer(XmlParser.getInt(valueStr));
|
|
11847
11839
|
break;
|
|
11848
|
-
case XMLConstants.MG_ATTR_ID:
|
|
11849
|
-
this._id = XmlParser.getInt(valueStr);
|
|
11850
|
-
break;
|
|
11851
11840
|
case XMLConstants.MG_ATTR_CONTROL_ISN:
|
|
11852
11841
|
this._controlIsn = XmlParser.getInt(valueStr);
|
|
11853
11842
|
break;
|
|
@@ -11982,6 +11971,8 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
11982
11971
|
}
|
|
11983
11972
|
}
|
|
11984
11973
|
getPIC() {
|
|
11974
|
+
if (this._picExpExists)
|
|
11975
|
+
this._pic.setFormatExp(this._picExpExists);
|
|
11985
11976
|
return this._pic;
|
|
11986
11977
|
}
|
|
11987
11978
|
getParent() {
|
|
@@ -12060,7 +12051,7 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
12060
12051
|
}
|
|
12061
12052
|
getRangedValue(newVal) {
|
|
12062
12053
|
let vd;
|
|
12063
|
-
vd = this.
|
|
12054
|
+
vd = this.buildPicture(this.Value, newVal);
|
|
12064
12055
|
vd.evaluate();
|
|
12065
12056
|
this.ModifiedByUser = true;
|
|
12066
12057
|
let val = vd.getDispValue();
|
|
@@ -12070,7 +12061,7 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
12070
12061
|
let vd;
|
|
12071
12062
|
let modified = this.ModifiedByUser;
|
|
12072
12063
|
this.ModifiedByUser = true;
|
|
12073
|
-
vd = this.
|
|
12064
|
+
vd = this.buildPicture(this.Value, newVal);
|
|
12074
12065
|
vd.evaluate();
|
|
12075
12066
|
this.ModifiedByUser = modified;
|
|
12076
12067
|
if (vd.ValidationFailed)
|
|
@@ -12386,12 +12377,8 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
12386
12377
|
if (super.isButton()) {
|
|
12387
12378
|
mlsTranslatedValue = Events.Translate(this.Value);
|
|
12388
12379
|
}
|
|
12389
|
-
if (this.isTextControl() || this.isButton())
|
|
12390
|
-
|
|
12391
|
-
Commands.addValueWithLine(CommandType.SET_VALUE, this, displayLine, mlsTranslatedValue, true);
|
|
12392
|
-
else
|
|
12393
|
-
Commands.addValueWithLine(CommandType.SET_VALUE, this, displayLine, mlsTranslatedValue);
|
|
12394
|
-
}
|
|
12380
|
+
if (this.isTextControl() || this.isButton())
|
|
12381
|
+
Commands.addValueWithLine(CommandType.SET_VALUE, this, displayLine, mlsTranslatedValue);
|
|
12395
12382
|
else
|
|
12396
12383
|
Commands.addOperationWithLine(CommandType.SET_PROPERTY, this, displayLine, HtmlProperties.Text, mlsTranslatedValue);
|
|
12397
12384
|
}
|
|
@@ -13082,6 +13069,11 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
13082
13069
|
if (prevMustInput !== await this.checkProp(PropInterface.PROP_TYPE_MUST_INPUT, false))
|
|
13083
13070
|
Commands.addOperationWithLine(CommandType.SET_PROPERTY, this, this.getDisplayLine(false), HtmlProperties.MustInput, !prevMustInput);
|
|
13084
13071
|
}
|
|
13072
|
+
else if (mustInputProperty != null) {
|
|
13073
|
+
let mustInputVal = this.GetComputedBooleanProperty(PropInterface.PROP_TYPE_MUST_INPUT, false);
|
|
13074
|
+
if (mustInputVal)
|
|
13075
|
+
Commands.addOperationWithLine(CommandType.SET_PROPERTY, this, this.getDisplayLine(false), HtmlProperties.MustInput, mustInputVal);
|
|
13076
|
+
}
|
|
13085
13077
|
if (!this.GetComputedBooleanProperty(PropInterface.PROP_TYPE_TAB_IN, true))
|
|
13086
13078
|
Commands.addOperationWithLine(CommandType.SET_PROPERTY, this, this.getDisplayLine(false), HtmlProperties.TabIndex, -1);
|
|
13087
13079
|
}
|
|
@@ -13398,15 +13390,17 @@ class MgControlBase extends GuiControlPropertyAdapter {
|
|
|
13398
13390
|
async ZoomButtonInitialization() {
|
|
13399
13391
|
if (this.isTextControl() && this.checkIfExistProp(PropInterface.PROP_TYPE_CONNECTED_ZOOM_CONTROL)) {
|
|
13400
13392
|
let connectedButton = this.Form.CtrlTab.GetControlByIsn((await (await this.getProp(PropInterface.PROP_TYPE_CONNECTED_ZOOM_CONTROL)).getValueInt()));
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
13404
|
-
|
|
13405
|
-
|
|
13406
|
-
|
|
13393
|
+
if (connectedButton) {
|
|
13394
|
+
let imageFileName = null;
|
|
13395
|
+
if (connectedButton.IsImageButton() && connectedButton.PropertyExists(PropInterface.PROP_TYPE_IMAGE_FILENAME)) {
|
|
13396
|
+
imageFileName = await (await connectedButton.getProp(PropInterface.PROP_TYPE_IMAGE_FILENAME)).getValue();
|
|
13397
|
+
if (!Misc.IsWebUrl(imageFileName))
|
|
13398
|
+
imageFileName = "./assets/images/" + imageFileName;
|
|
13399
|
+
Commands.addOperationWithLine(CommandType.SET_STYLE, this, 0, MagicProperties.ImageFile, imageFileName);
|
|
13400
|
+
}
|
|
13401
|
+
this.ConnectedControl = connectedButton;
|
|
13402
|
+
connectedButton.ConnectedControl = this;
|
|
13407
13403
|
}
|
|
13408
|
-
this.ConnectedControl = connectedButton;
|
|
13409
|
-
connectedButton.ConnectedControl = this;
|
|
13410
13404
|
}
|
|
13411
13405
|
}
|
|
13412
13406
|
}
|
|
@@ -13955,13 +13949,8 @@ class MgFormBase extends GuiFormPropertyAdapter {
|
|
|
13955
13949
|
if (idx >= 0 && idx < this.Rows.length)
|
|
13956
13950
|
this.Rows.set_Item(idx, new Row(false, false));
|
|
13957
13951
|
}
|
|
13958
|
-
SelectRow(
|
|
13959
|
-
|
|
13960
|
-
this.SelectRow_0();
|
|
13961
|
-
else if (arguments.length === 1)
|
|
13962
|
-
this.SelectRow_1(sendAlwaysOrRowIdx);
|
|
13963
|
-
else
|
|
13964
|
-
this.SelectRow_2(sendAlwaysOrRowIdx, sendAlways);
|
|
13952
|
+
SelectRow() {
|
|
13953
|
+
this.SelectRowByIdx(this.DisplayLine);
|
|
13965
13954
|
}
|
|
13966
13955
|
getRowsInPage() {
|
|
13967
13956
|
return this._rowsInPage;
|
|
@@ -14199,19 +14188,13 @@ class MgFormBase extends GuiFormPropertyAdapter {
|
|
|
14199
14188
|
this.Rows.SetSize(idx + 1);
|
|
14200
14189
|
this.Rows.set_Item(idx, new Row(true, true));
|
|
14201
14190
|
}
|
|
14202
|
-
|
|
14203
|
-
this.SelectRow(false);
|
|
14204
|
-
}
|
|
14205
|
-
SelectRow_1(sendAlways) {
|
|
14206
|
-
this.SelectRow(this.DisplayLine, sendAlways);
|
|
14207
|
-
}
|
|
14208
|
-
SelectRow_2(rowIdx, sendAlways) {
|
|
14191
|
+
SelectRowByIdx(rowIdx) {
|
|
14209
14192
|
let mainControl = this.getMainControl();
|
|
14210
14193
|
if (mainControl !== null && this.RefreshRepeatableAllowed) {
|
|
14211
14194
|
let index = rowIdx;
|
|
14212
14195
|
if (this._task.DataView.isEmptyDataview())
|
|
14213
14196
|
index = GuiConstants.NO_ROW_SELECTED;
|
|
14214
|
-
if (
|
|
14197
|
+
if (index !== this._prevSelIndex) {
|
|
14215
14198
|
this._prevSelIndex = index;
|
|
14216
14199
|
Commands.addOperationWithLine(CommandType.SET_PROPERTY, mainControl, 0, HtmlProperties.SelectedRow, index);
|
|
14217
14200
|
}
|
|
@@ -15445,9 +15428,16 @@ class Helps {
|
|
|
15445
15428
|
initInnerObjects(foundTagName, parser) {
|
|
15446
15429
|
if (foundTagName === null)
|
|
15447
15430
|
return false;
|
|
15448
|
-
if (foundTagName === XMLConstants.MG_TAG_HELPTABLE)
|
|
15431
|
+
if (foundTagName === XMLConstants.MG_TAG_HELPTABLE) {
|
|
15432
|
+
let currrentIndex = parser.getCurrIndex();
|
|
15433
|
+
let encoded = parser.ReadContentOfCurrentElement().trim();
|
|
15434
|
+
let decoded = Base64.decode(encoded.substr(0, encoded.length).trim());
|
|
15435
|
+
let newXmlData = parser.getXMLdata().replace(encoded.trim(), decoded);
|
|
15436
|
+
parser.setXMLdata(newXmlData);
|
|
15437
|
+
parser.setCurrIndex(currrentIndex);
|
|
15449
15438
|
parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) +
|
|
15450
15439
|
1);
|
|
15440
|
+
}
|
|
15451
15441
|
else if (foundTagName === XMLConstants.MG_TAG_HELPITEM) {
|
|
15452
15442
|
let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
|
|
15453
15443
|
if (endContext !== -1 && endContext < parser.getXMLdata().length) {
|
|
@@ -15607,16 +15597,17 @@ class GuiTaskBase {
|
|
|
15607
15597
|
constructor() {
|
|
15608
15598
|
this._flowMonitor = null;
|
|
15609
15599
|
this._keyboardMappingState = 0xFFFF0000;
|
|
15610
|
-
this._refreshType =
|
|
15600
|
+
this._refreshType = "T";
|
|
15611
15601
|
this._lastParkedCtrl = null;
|
|
15612
15602
|
this._brkLevel = null;
|
|
15613
15603
|
this._brkLevelIndex = -1;
|
|
15614
15604
|
this._mainLevel = null;
|
|
15615
|
-
this._level =
|
|
15605
|
+
this._level = "\0";
|
|
15616
15606
|
this._enteredRecLevel = false;
|
|
15617
15607
|
this._currParkedFld = null;
|
|
15618
15608
|
this.isInRecompute = false;
|
|
15619
15609
|
this.CurrentEditingControl = null;
|
|
15610
|
+
this.shouldResumeSubformLayout = true;
|
|
15620
15611
|
this.ApplicationGuid = null;
|
|
15621
15612
|
this.ProgramIsn = 0;
|
|
15622
15613
|
this.TaskIsn = 0;
|
|
@@ -15764,7 +15755,7 @@ class GuiTaskBase {
|
|
|
15764
15755
|
return this._helpTab.getHelp(idx);
|
|
15765
15756
|
}
|
|
15766
15757
|
setProp(propId, val) {
|
|
15767
|
-
this._propTab.setProp(propId, val, this,
|
|
15758
|
+
this._propTab.setProp(propId, val, this, "T");
|
|
15768
15759
|
}
|
|
15769
15760
|
setBrkLevel(cBrkLevel, NewBrkLevelIndex) {
|
|
15770
15761
|
this._brkLevel = cBrkLevel;
|
|
@@ -15870,6 +15861,15 @@ class GuiTaskBase {
|
|
|
15870
15861
|
this.Form.InInitForm = false;
|
|
15871
15862
|
}
|
|
15872
15863
|
}
|
|
15864
|
+
ResumeSubformLayout() {
|
|
15865
|
+
if (this.Form !== null) {
|
|
15866
|
+
let subFormCtrl = this.Form.getSubFormCtrl();
|
|
15867
|
+
if (subFormCtrl !== null && this.shouldResumeSubformLayout) {
|
|
15868
|
+
Commands.addOperationWithLine(CommandType.SET_PROPERTY, subFormCtrl, 0, HtmlProperties.Visible, subFormCtrl.isVisible());
|
|
15869
|
+
this.shouldResumeSubformLayout = false;
|
|
15870
|
+
}
|
|
15871
|
+
}
|
|
15872
|
+
}
|
|
15873
15873
|
GetLastParkedCtrlName(depth) {
|
|
15874
15874
|
let ancestor = this.GetTaskAncestor(depth);
|
|
15875
15875
|
if (ancestor === null || ancestor._lastParkedCtrl === null)
|
|
@@ -15930,7 +15930,7 @@ class GuiTaskBase {
|
|
|
15930
15930
|
return this.GetExpressionStorage(expId);
|
|
15931
15931
|
}
|
|
15932
15932
|
async CalculateExpression(expId, resType, length) {
|
|
15933
|
-
return Promise.resolve(
|
|
15933
|
+
return Promise.resolve("");
|
|
15934
15934
|
}
|
|
15935
15935
|
isStarted() {
|
|
15936
15936
|
return true;
|
|
@@ -16017,7 +16017,8 @@ class GuiTaskBase {
|
|
|
16017
16017
|
this.IsParallel = XmlParser.getBoolean(valueStr);
|
|
16018
16018
|
break;
|
|
16019
16019
|
case XMLConstants.MG_ATTR_ROUTER_PATH:
|
|
16020
|
-
|
|
16020
|
+
if (valueStr.trim() != "")
|
|
16021
|
+
this.routerPath = valueStr;
|
|
16021
16022
|
break;
|
|
16022
16023
|
case XMLConstants.MG_ATTR_IN_DEFAULT_ROUTER_OUTLET:
|
|
16023
16024
|
this.inDefaultRouterOutlet = XmlParser.getBoolean(valueStr);
|