@michalrakus/x-react-web-lib 1.9.0 → 1.11.0
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/XEditBrowse.d.ts +3 -0
- package/XEditBrowse.js +5 -0
- package/XInputInterval.d.ts +3 -0
- package/XInputInterval.js +5 -0
- package/XInputIntervalBase.d.ts +3 -0
- package/XInputIntervalBase.js +5 -0
- package/XObject.d.ts +3 -0
- package/XObject.js +5 -0
- package/gulpfile.js +4 -1
- package/lib/administration/XBrowseMetaBrowse.d.ts +2 -1
- package/lib/administration/XUserBrowse.d.ts +2 -1
- package/lib/administration/XUserBrowse.js +1 -1
- package/lib/administration/XUserForm.d.ts +6 -3
- package/lib/administration/XUserForm.js +9 -16
- package/lib/components/XAutoComplete.d.ts +4 -4
- package/lib/components/XAutoComplete.js +10 -20
- package/lib/components/XAutoCompleteBase.d.ts +15 -5
- package/lib/components/XAutoCompleteBase.js +114 -95
- package/lib/components/XAutoCompleteDT.d.ts +4 -3
- package/lib/components/XAutoCompleteDT.js +8 -7
- package/lib/components/XCalendar.d.ts +2 -1
- package/lib/components/XCalendar.js +1 -1
- package/lib/components/XDropdownDT.d.ts +3 -0
- package/lib/components/XDropdownDT.js +14 -7
- package/lib/components/XDropdownForEntity.d.ts +1 -0
- package/lib/components/XDropdownForEntity.js +3 -1
- package/lib/components/{XBrowse.d.ts → XEditBrowse.d.ts} +3 -3
- package/lib/components/{XBrowse.js → XEditBrowse.js} +22 -22
- package/lib/components/XFormBase.d.ts +14 -4
- package/lib/components/XFormBase.js +137 -42
- package/lib/components/XFormDataTable2.d.ts +7 -6
- package/lib/components/XFormDataTable2.js +18 -38
- package/lib/components/XFormNavigator3.d.ts +3 -3
- package/lib/components/XFormNavigator3.js +2 -2
- package/lib/components/XInputDate.js +1 -1
- package/lib/components/XInputInterval.d.ts +14 -0
- package/lib/components/XInputInterval.js +56 -0
- package/lib/components/XInputIntervalBase.d.ts +10 -0
- package/lib/components/XInputIntervalBase.js +97 -0
- package/lib/components/XInputIntervalDT.d.ts +11 -0
- package/lib/components/XInputIntervalDT.js +43 -0
- package/lib/components/XLazyDataTable.d.ts +9 -2
- package/lib/components/XLazyDataTable.js +58 -42
- package/lib/components/{SearchTableParams.d.ts → XSearchBrowseParams.d.ts} +2 -2
- package/lib/components/XSearchButton.d.ts +2 -2
- package/lib/components/XSearchButton.js +8 -12
- package/lib/components/XSearchButtonDT.d.ts +2 -2
- package/lib/components/XSearchButtonDT.js +9 -5
- package/lib/components/XUtils.d.ts +30 -2
- package/lib/components/XUtils.js +95 -17
- package/lib/components/XUtilsConversions.d.ts +3 -0
- package/lib/components/XUtilsConversions.js +53 -1
- package/lib/components/locale/x-en.json +4 -1
- package/lib/serverApi/ExportImportParam.d.ts +2 -2
- package/lib/serverApi/FindParam.d.ts +6 -5
- package/lib/serverApi/XUtilsCommon.d.ts +1 -0
- package/lib/serverApi/XUtilsCommon.js +70 -0
- package/package.json +1 -1
- package/XBrowse.d.ts +0 -3
- package/XBrowse.js +0 -5
- /package/lib/components/{SearchTableParams.js → XSearchBrowseParams.js} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
export declare const XCalendar: (props: {
|
|
3
3
|
id?: string | undefined;
|
|
4
4
|
value: Date | null;
|
|
5
5
|
onChange: (value: Date | null) => void;
|
|
6
|
+
onBlur?: ((event: React.FocusEvent<HTMLInputElement, Element>) => void) | undefined;
|
|
6
7
|
readOnly?: boolean | undefined;
|
|
7
8
|
datetime?: boolean | undefined;
|
|
8
9
|
}) => JSX.Element;
|
|
@@ -22,6 +22,6 @@ var XCalendar = function (props) {
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
var datetime = (_a = props.datetime) !== null && _a !== void 0 ? _a : false;
|
|
25
|
-
return (react_1.default.createElement(calendar_1.Calendar, { id: props.id, value: props.value, onChange: onChange, disabled: props.readOnly, showIcon: true, showOnFocus: false, dateFormat: (0, XUtilsConversions_1.dateFormatCalendar)(), showTime: datetime, showSeconds: datetime, inputClassName: datetime ? 'x-input-datetime' : 'x-input-date' }));
|
|
25
|
+
return (react_1.default.createElement(calendar_1.Calendar, { id: props.id, value: props.value, onChange: onChange, disabled: props.readOnly, showIcon: true, showOnFocus: false, dateFormat: (0, XUtilsConversions_1.dateFormatCalendar)(), showTime: datetime, showSeconds: datetime, inputClassName: datetime ? 'x-input-datetime' : 'x-input-date', onBlur: props.onBlur }));
|
|
26
26
|
};
|
|
27
27
|
exports.XCalendar = XCalendar;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { XFormBase } from "./XFormBase";
|
|
3
3
|
import { XDropdownOptionsMap } from "./XFormDataTable2";
|
|
4
|
+
import { XCustomFilter } from "../serverApi/FindParam";
|
|
4
5
|
export declare const XDropdownDT: (props: {
|
|
5
6
|
form: XFormBase;
|
|
6
7
|
entity: string;
|
|
7
8
|
assocField: string;
|
|
8
9
|
displayField: string;
|
|
10
|
+
sortField?: string | undefined;
|
|
11
|
+
filter?: XCustomFilter | undefined;
|
|
9
12
|
dropdownOptionsMap: XDropdownOptionsMap;
|
|
10
13
|
onDropdownOptionsMapChange: (dropdownOptionsMap: XDropdownOptionsMap) => void;
|
|
11
14
|
rowData: any;
|
|
@@ -63,17 +63,22 @@ exports.XDropdownDT = void 0;
|
|
|
63
63
|
var react_1 = __importStar(require("react"));
|
|
64
64
|
var XUtils_1 = require("./XUtils");
|
|
65
65
|
var dropdown_1 = require("primereact/dropdown");
|
|
66
|
+
var XUtilsMetadata_1 = require("./XUtilsMetadata");
|
|
66
67
|
var XDropdownDT = function (props) {
|
|
67
68
|
// poznamka: nacitanie/ulozenie options je vytiahnute do parent komponentu XFormDataTable koli tomu aby sme nenacitavali options pre kazdy riadok tabulky
|
|
69
|
+
// "members"
|
|
70
|
+
var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.entity), props.assocField);
|
|
71
|
+
var idField = XUtilsMetadata_1.XUtilsMetadata.getXEntity(xAssoc.entityName).idField;
|
|
68
72
|
// parameter [] zabezpeci ze sa metoda zavola len po prvom renderingu (a nie po kazdej zmene stavu (zavolani setNieco()))
|
|
69
73
|
(0, react_1.useEffect)(function () {
|
|
70
74
|
//console.log("XDropdownDT - zavolany useEffect *******************")
|
|
71
75
|
findOptions();
|
|
72
76
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
73
77
|
var findOptions = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
74
|
-
var options;
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
var options, xAssoc_1;
|
|
79
|
+
var _a;
|
|
80
|
+
return __generator(this, function (_b) {
|
|
81
|
+
switch (_b.label) {
|
|
77
82
|
case 0:
|
|
78
83
|
options = props.dropdownOptionsMap[props.assocField];
|
|
79
84
|
if (!(options === undefined)) return [3 /*break*/, 2];
|
|
@@ -83,15 +88,17 @@ var XDropdownDT = function (props) {
|
|
|
83
88
|
// Nacitanie z DB sa koli asynchronnosti vykona az po zavolani tejto metody pre vsetky riadky tabulky, co je pre nas neskoro.
|
|
84
89
|
// ak by tu tento riadok nebol, tak by sa options nacitavali tolkokrat, kolko je riadkov v tabulke
|
|
85
90
|
props.dropdownOptionsMap[props.assocField] = [];
|
|
86
|
-
|
|
91
|
+
xAssoc_1 = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.entity), props.assocField);
|
|
92
|
+
return [4 /*yield*/, XUtils_1.XUtils.fetchRows(xAssoc_1.entityName, props.filter, (_a = props.sortField) !== null && _a !== void 0 ? _a : props.displayField)];
|
|
87
93
|
case 1:
|
|
88
|
-
options =
|
|
94
|
+
//options = await XUtils.fetchMany('findRowsForAssoc', {entity: props.entity, assocField: props.assocField});
|
|
95
|
+
options = _b.sent();
|
|
89
96
|
options.splice(0, 0, {}); // null polozka (nepridavat pre not null atributy)
|
|
90
97
|
props.dropdownOptionsMap[props.assocField] = options;
|
|
91
98
|
//console.log("XDropdownDT - findOptions - citali sme options pre field = " + props.assocField);
|
|
92
99
|
//console.log(props.dropdownOptionsMap);
|
|
93
100
|
props.onDropdownOptionsMapChange(props.dropdownOptionsMap); // vyrenderujeme nacitane hodnoty
|
|
94
|
-
|
|
101
|
+
_b.label = 2;
|
|
95
102
|
case 2: return [2 /*return*/];
|
|
96
103
|
}
|
|
97
104
|
});
|
|
@@ -123,6 +130,6 @@ var XDropdownDT = function (props) {
|
|
|
123
130
|
}
|
|
124
131
|
var options = props.dropdownOptionsMap[props.assocField] !== undefined ? props.dropdownOptionsMap[props.assocField] : []; // mozno mozme do options prasknut rovno undefined...
|
|
125
132
|
// appendTo={document.body} appenduje overlay panel na element body - eliminuje problem s overflow (pozri poznamku v XDropdownDTFilter)
|
|
126
|
-
return (react_1.default.createElement(dropdown_1.Dropdown, { appendTo: document.body, id: props.assocField, optionLabel: props.displayField, value: assocObject, options: options, onChange: function (e) { return onValueChange(props.assocField, props.rowData, e.target.value); } }));
|
|
133
|
+
return (react_1.default.createElement(dropdown_1.Dropdown, { appendTo: document.body, id: props.assocField, optionLabel: props.displayField, value: assocObject, options: options, dataKey: idField, onChange: function (e) { return onValueChange(props.assocField, props.rowData, e.target.value); } }));
|
|
127
134
|
};
|
|
128
135
|
exports.XDropdownDT = XDropdownDT;
|
|
@@ -89,6 +89,7 @@ exports.XDropdownForEntity = void 0;
|
|
|
89
89
|
var react_1 = __importStar(require("react"));
|
|
90
90
|
var dropdown_1 = require("primereact/dropdown");
|
|
91
91
|
var XUtils_1 = require("./XUtils");
|
|
92
|
+
var XUtilsMetadata_1 = require("./XUtilsMetadata");
|
|
92
93
|
// vseobecny Dropdown ktoreho parametrom je entity, zobrazuje zaznamy danej entity, po selectnuti vracia zaznam danej entity
|
|
93
94
|
// ambicia je pouzivat ho vsade - vo formulari, vo filtroch, vo form tabulke, priamo aplikacnym programmerom
|
|
94
95
|
// dalo by sa vyclenit este XDropdownBase, ktory by dostaval ako parameter options (bol by nezavisly od DB), zatial ho nerobime,
|
|
@@ -100,6 +101,7 @@ var XDropdownForEntity = /** @class */ (function (_super) {
|
|
|
100
101
|
__extends(XDropdownForEntity, _super);
|
|
101
102
|
function XDropdownForEntity(props) {
|
|
102
103
|
var _this = _super.call(this, props) || this;
|
|
104
|
+
_this.idField = XUtilsMetadata_1.XUtilsMetadata.getXEntity(_this.props.entity).idField;
|
|
103
105
|
_this.state = {
|
|
104
106
|
options: []
|
|
105
107
|
};
|
|
@@ -142,7 +144,7 @@ var XDropdownForEntity = /** @class */ (function (_super) {
|
|
|
142
144
|
XDropdownForEntity.prototype.render = function () {
|
|
143
145
|
// TODO - mozno by nebolo od veci pouzivat InputText ak readOnly === true (chybala by len sipka (rozbalovac)) a dalo by sa copy-paste-ovat
|
|
144
146
|
// propertiesy na Dropdown-e: readOnly vyseduje, disabled znemoznuje vyber polozky
|
|
145
|
-
return (react_1.default.createElement(dropdown_1.Dropdown, __assign({ id: this.props.id, options: this.state.options, optionLabel: this.props.displayField, value: this.props.value, onChange: this.onChange, readOnly: this.props.readOnly, disabled: this.props.readOnly }, XUtils_1.XUtils.createErrorProps(this.props.error))));
|
|
147
|
+
return (react_1.default.createElement(dropdown_1.Dropdown, __assign({ id: this.props.id, options: this.state.options, optionLabel: this.props.displayField, dataKey: this.idField, value: this.props.value, onChange: this.onChange, readOnly: this.props.readOnly, disabled: this.props.readOnly }, XUtils_1.XUtils.createErrorProps(this.props.error))));
|
|
146
148
|
};
|
|
147
149
|
return XDropdownForEntity;
|
|
148
150
|
}(react_1.Component));
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Component } from "react";
|
|
2
2
|
import { XEditColumnDialogValues } from "./XEditColumnDialog";
|
|
3
3
|
import { XBrowseMeta } from "../serverApi/XBrowseMetadata";
|
|
4
|
-
export interface
|
|
4
|
+
export interface XEditBrowseProps {
|
|
5
5
|
entity: string;
|
|
6
6
|
browseId?: string;
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class XEditBrowse extends Component<XEditBrowseProps> {
|
|
9
9
|
state: {
|
|
10
10
|
xBrowseMeta: XBrowseMeta;
|
|
11
11
|
editMode: boolean;
|
|
@@ -14,7 +14,7 @@ export declare class XBrowse extends Component<XBrowseProps> {
|
|
|
14
14
|
indexForAddColumn?: number;
|
|
15
15
|
addColumn: boolean;
|
|
16
16
|
xEditColumnDialogValues?: XEditColumnDialogValues;
|
|
17
|
-
constructor(props:
|
|
17
|
+
constructor(props: XEditBrowseProps);
|
|
18
18
|
getXBrowseMeta(): XBrowseMeta;
|
|
19
19
|
createDefaultXBrowseMeta(): XBrowseMeta;
|
|
20
20
|
onEditModeStart(): void;
|
|
@@ -101,7 +101,7 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
101
101
|
return ar;
|
|
102
102
|
};
|
|
103
103
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
104
|
-
exports.
|
|
104
|
+
exports.XEditBrowse = void 0;
|
|
105
105
|
var react_1 = __importStar(require("react"));
|
|
106
106
|
var SourceCodeLinkEntity_1 = require("./SourceCodeLinkEntity");
|
|
107
107
|
var XEditColumnDialog_1 = require("./XEditColumnDialog");
|
|
@@ -109,10 +109,10 @@ var _ = __importStar(require("lodash"));
|
|
|
109
109
|
var XUtilsMetadata_1 = require("./XUtilsMetadata");
|
|
110
110
|
var XUtils_1 = require("./XUtils");
|
|
111
111
|
var XLazyDataTable_1 = require("./XLazyDataTable");
|
|
112
|
-
// TODO - pouzit extends
|
|
113
|
-
var
|
|
114
|
-
__extends(
|
|
115
|
-
function
|
|
112
|
+
// TODO - pouzit extends XEditBrowseBase, ako je tomu pri CarForm?
|
|
113
|
+
var XEditBrowse = /** @class */ (function (_super) {
|
|
114
|
+
__extends(XEditBrowse, _super);
|
|
115
|
+
function XEditBrowse(props) {
|
|
116
116
|
var _this = _super.call(this, props) || this;
|
|
117
117
|
console.log("************* XBrowse const entity = " + _this.props.entity);
|
|
118
118
|
_this.getXBrowseMeta = _this.getXBrowseMeta.bind(_this);
|
|
@@ -137,14 +137,14 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
137
137
|
_this.onEdit = _this.onEdit.bind(_this);
|
|
138
138
|
return _this;
|
|
139
139
|
}
|
|
140
|
-
|
|
140
|
+
XEditBrowse.prototype.getXBrowseMeta = function () {
|
|
141
141
|
var xBrowseMeta = XUtilsMetadata_1.XUtilsMetadata.getXBrowseMeta(this.props.entity, this.props.browseId);
|
|
142
142
|
if (xBrowseMeta === undefined) {
|
|
143
143
|
xBrowseMeta = this.createDefaultXBrowseMeta();
|
|
144
144
|
}
|
|
145
145
|
return xBrowseMeta;
|
|
146
146
|
};
|
|
147
|
-
|
|
147
|
+
XEditBrowse.prototype.createDefaultXBrowseMeta = function () {
|
|
148
148
|
var e_1, _a;
|
|
149
149
|
var xColumnMetaList = [];
|
|
150
150
|
var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.props.entity);
|
|
@@ -164,12 +164,12 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
164
164
|
}
|
|
165
165
|
return { entity: this.props.entity, rows: 15, columnMetaList: xColumnMetaList };
|
|
166
166
|
};
|
|
167
|
-
|
|
167
|
+
XEditBrowse.prototype.onEditModeStart = function () {
|
|
168
168
|
// zmeny budeme robit na klonovanych datach - aby sme sa vedeli cez cancel vratit do povodneho stavu
|
|
169
169
|
var xBrowseMetaCloned = _.cloneDeep(this.state.xBrowseMeta);
|
|
170
170
|
this.setState({ xBrowseMeta: xBrowseMetaCloned, editMode: true });
|
|
171
171
|
};
|
|
172
|
-
|
|
172
|
+
XEditBrowse.prototype.onEditModeSave = function () {
|
|
173
173
|
return __awaiter(this, void 0, void 0, function () {
|
|
174
174
|
var xBrowseMeta, columnOrder, _a, _b, xColumnMeta, e_2;
|
|
175
175
|
var e_3, _c;
|
|
@@ -213,19 +213,19 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
213
213
|
});
|
|
214
214
|
});
|
|
215
215
|
};
|
|
216
|
-
|
|
216
|
+
XEditBrowse.prototype.onEditModeCancel = function () {
|
|
217
217
|
// vratime formular z cache, resp. defaultny formular
|
|
218
218
|
var xBrowseMeta = this.getXBrowseMeta();
|
|
219
219
|
this.setState({ editMode: false, xBrowseMeta: xBrowseMeta });
|
|
220
220
|
};
|
|
221
|
-
|
|
221
|
+
XEditBrowse.prototype.onAddColumn = function (field) {
|
|
222
222
|
console.log("onAddColumn: " + field);
|
|
223
223
|
this.indexForAddColumn = this.getIndexForColumn(field);
|
|
224
224
|
this.addColumn = true;
|
|
225
225
|
this.xEditColumnDialogValues = { field: "", header: "", dropdownInFilter: false }; // values are used for dialog initialization
|
|
226
226
|
this.setState({ editColumnDialogOpened: true });
|
|
227
227
|
};
|
|
228
|
-
|
|
228
|
+
XEditBrowse.prototype.editColumnDialogOnHide = function (xEditColumnDialogValues) {
|
|
229
229
|
if (xEditColumnDialogValues !== null) {
|
|
230
230
|
if (this.indexForAddColumn !== undefined) {
|
|
231
231
|
var xBrowseMeta = this.state.xBrowseMeta;
|
|
@@ -248,7 +248,7 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
248
248
|
}
|
|
249
249
|
this.setState({ editColumnDialogOpened: false });
|
|
250
250
|
};
|
|
251
|
-
|
|
251
|
+
XEditBrowse.prototype.onEditColumn = function (field) {
|
|
252
252
|
var _a;
|
|
253
253
|
console.log("onEditColumn: " + field);
|
|
254
254
|
this.indexForAddColumn = this.getIndexForColumn(field);
|
|
@@ -260,7 +260,7 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
260
260
|
this.setState({ editColumnDialogOpened: true });
|
|
261
261
|
}
|
|
262
262
|
};
|
|
263
|
-
|
|
263
|
+
XEditBrowse.prototype.onRemoveColumn = function (field) {
|
|
264
264
|
console.log("onRemoveColumn: " + field);
|
|
265
265
|
var index = this.getIndexForColumn(field);
|
|
266
266
|
if (index !== undefined) {
|
|
@@ -270,13 +270,13 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
270
270
|
this.setState({ xBrowseMeta: xBrowseMeta });
|
|
271
271
|
}
|
|
272
272
|
};
|
|
273
|
-
|
|
273
|
+
XEditBrowse.prototype.onMoveColumnLeft = function (field) {
|
|
274
274
|
this.moveColumn(field, -1);
|
|
275
275
|
};
|
|
276
|
-
|
|
276
|
+
XEditBrowse.prototype.onMoveColumnRight = function (field) {
|
|
277
277
|
this.moveColumn(field, 1);
|
|
278
278
|
};
|
|
279
|
-
|
|
279
|
+
XEditBrowse.prototype.moveColumn = function (field, offset) {
|
|
280
280
|
var index = this.getIndexForColumn(field);
|
|
281
281
|
if (index !== undefined) {
|
|
282
282
|
var xBrowseMeta = this.state.xBrowseMeta;
|
|
@@ -285,7 +285,7 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
285
285
|
this.setState({ xBrowseMeta: xBrowseMeta });
|
|
286
286
|
}
|
|
287
287
|
};
|
|
288
|
-
|
|
288
|
+
XEditBrowse.prototype.getIndexForColumn = function (field) {
|
|
289
289
|
var e_4, _a;
|
|
290
290
|
var searchedIndex = undefined;
|
|
291
291
|
var xBrowseMeta = this.state.xBrowseMeta;
|
|
@@ -307,7 +307,7 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
307
307
|
}
|
|
308
308
|
return searchedIndex;
|
|
309
309
|
};
|
|
310
|
-
|
|
310
|
+
XEditBrowse.prototype.onEdit = function (selectedRow) {
|
|
311
311
|
var formElement = XUtils_1.XUtils.getAppForm(this.props.entity);
|
|
312
312
|
if (formElement !== undefined) {
|
|
313
313
|
var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.props.entity);
|
|
@@ -321,7 +321,7 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
321
321
|
console.log("XBrowse entity = ".concat(this.props.entity, ": form not found/registered."));
|
|
322
322
|
}
|
|
323
323
|
};
|
|
324
|
-
|
|
324
|
+
XEditBrowse.prototype.render = function () {
|
|
325
325
|
var xBrowseMeta = this.state.xBrowseMeta;
|
|
326
326
|
var xEditModeHandlers = {
|
|
327
327
|
onStart: this.onEditModeStart,
|
|
@@ -355,6 +355,6 @@ var XBrowse = /** @class */ (function (_super) {
|
|
|
355
355
|
entitySourceCodeLink,
|
|
356
356
|
react_1.default.createElement(XEditColumnDialog_1.XEditColumnDialog, { dialogOpened: this.state.editColumnDialogOpened, entity: xBrowseMeta.entity, addColumn: this.addColumn, xEditColumnDialogValues: this.xEditColumnDialogValues, onHideDialog: this.editColumnDialogOnHide })));
|
|
357
357
|
};
|
|
358
|
-
return
|
|
358
|
+
return XEditBrowse;
|
|
359
359
|
}(react_1.Component));
|
|
360
|
-
exports.
|
|
360
|
+
exports.XEditBrowse = XEditBrowse;
|
|
@@ -5,9 +5,9 @@ import { FieldOnChange, XFormComponent } from "./XFormComponent";
|
|
|
5
5
|
import { TableFieldOnChange, XFormDataTable2, XRowTechData } from "./XFormDataTable2";
|
|
6
6
|
import { XErrorMap, XErrors } from "./XErrors";
|
|
7
7
|
export type XOnSaveOrCancelProp = (object: XObject | null, objectChange: OperationType) => void;
|
|
8
|
-
export interface
|
|
8
|
+
export interface XFormProps {
|
|
9
9
|
id?: number;
|
|
10
|
-
|
|
10
|
+
initValues?: object;
|
|
11
11
|
onSaveOrCancel?: XOnSaveOrCancelProp;
|
|
12
12
|
}
|
|
13
13
|
export declare function Form(entity: string): <T extends new (...args: any[]) => {}>(constructor: T) => {
|
|
@@ -15,7 +15,7 @@ export declare function Form(entity: string): <T extends new (...args: any[]) =>
|
|
|
15
15
|
entity: string;
|
|
16
16
|
};
|
|
17
17
|
} & T;
|
|
18
|
-
export declare abstract class XFormBase extends Component<
|
|
18
|
+
export declare abstract class XFormBase extends Component<XFormProps> {
|
|
19
19
|
entity?: string;
|
|
20
20
|
fields: Set<string>;
|
|
21
21
|
state: {
|
|
@@ -24,7 +24,12 @@ export declare abstract class XFormBase extends Component<FormProps> {
|
|
|
24
24
|
} | any;
|
|
25
25
|
xFormComponentList: Array<XFormComponent<any, any>>;
|
|
26
26
|
xFormDataTableList: Array<XFormDataTable2>;
|
|
27
|
-
|
|
27
|
+
assocToValidateList: Array<string>;
|
|
28
|
+
assocToSortList: Array<{
|
|
29
|
+
assoc: string;
|
|
30
|
+
sortField: string;
|
|
31
|
+
}>;
|
|
32
|
+
constructor(props: XFormProps);
|
|
28
33
|
componentDidMount(): Promise<void>;
|
|
29
34
|
getEntity(): string;
|
|
30
35
|
getXObject(): XObject;
|
|
@@ -45,13 +50,18 @@ export declare abstract class XFormBase extends Component<FormProps> {
|
|
|
45
50
|
addXFormComponent(xFormComponent: XFormComponent<any, any>): void;
|
|
46
51
|
findXFormComponent(field: string): XFormComponent<any, any> | undefined;
|
|
47
52
|
addXFormDataTable(xFormDataTable: XFormDataTable2): void;
|
|
53
|
+
addAssocToValidate(oneToManyAssoc: string): void;
|
|
54
|
+
addAssocToSort(oneToManyAssoc: string, sortField: string): void;
|
|
48
55
|
formReadOnlyBase(field: string): boolean;
|
|
49
56
|
onClickSave(): Promise<void>;
|
|
50
57
|
onClickCancel(): void;
|
|
51
58
|
validateSave(): boolean;
|
|
52
59
|
validateForm(): XErrorMap;
|
|
53
60
|
fieldValidation(): XErrorMap;
|
|
61
|
+
getErrorMessagesForAssoc(oneToManyAssoc: string): string;
|
|
62
|
+
static saveErrorsIntoXRowTechData(row: any, xErrors: XErrors): void;
|
|
54
63
|
formReadOnly(object: XObject, field: string): boolean;
|
|
64
|
+
createNewObject(): XObject;
|
|
55
65
|
preInitForm(object: XObject, operationType: OperationType.Insert | OperationType.Update): void;
|
|
56
66
|
validate(object: XObject): XErrors;
|
|
57
67
|
preSave(object: XObject): void;
|