@michalrakus/x-react-web-lib 1.0.0 → 1.2.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/FindParam.d.ts +3 -0
- package/FindParam.js +5 -0
- package/LICENSE.md +21 -0
- package/XButtonIconNarrow.d.ts +3 -0
- package/XButtonIconNarrow.js +5 -0
- package/XButtonIconSmall.d.ts +3 -0
- package/XButtonIconSmall.js +5 -0
- package/XFieldChangeEvent.d.ts +3 -0
- package/XFieldChangeEvent.js +5 -0
- package/XInputTextarea.d.ts +3 -0
- package/XInputTextarea.js +5 -0
- package/gulpfile.js +5 -0
- package/lib/administration/XBrowseMetaBrowse.js +2 -1
- package/lib/administration/XBrowseMetaForm.js +4 -2
- package/lib/administration/XUserBrowse.js +3 -2
- package/lib/administration/XUserForm.js +5 -3
- package/lib/components/SearchTableParams.d.ts +8 -2
- package/lib/components/SourceCodeLinkEntity.js +3 -2
- package/lib/components/XAutoComplete.d.ts +10 -7
- package/lib/components/XAutoComplete.js +37 -41
- package/lib/components/XAutoCompleteBase.d.ts +8 -5
- package/lib/components/XAutoCompleteBase.js +86 -43
- package/lib/components/XAutoCompleteDT.d.ts +33 -0
- package/lib/components/XAutoCompleteDT.js +141 -0
- package/lib/components/XBrowse.js +11 -5
- package/lib/components/XButton.d.ts +3 -1
- package/lib/components/XButton.js +3 -2
- package/lib/components/XButtonIconNarrow.d.ts +10 -0
- package/lib/components/XButtonIconNarrow.js +25 -0
- package/lib/components/XButtonIconSmall.d.ts +3 -1
- package/lib/components/XButtonIconSmall.js +2 -1
- package/lib/components/XChangePasswordForm.js +12 -7
- package/lib/components/XCheckbox.d.ts +8 -10
- package/lib/components/XCheckbox.js +39 -31
- package/lib/components/XCheckboxDT.js +2 -1
- package/lib/components/XDataTable.js +16 -10
- package/lib/components/XDropdown.d.ts +7 -5
- package/lib/components/XDropdown.js +24 -45
- package/lib/components/XDropdownDT.js +10 -5
- package/lib/components/XDropdownDTFilter.js +12 -7
- package/lib/components/XDropdownFormDTFilter.js +12 -7
- package/lib/components/XEditColumnDialog.js +12 -7
- package/lib/components/XErrors.d.ts +1 -0
- package/lib/components/XExportRowsDialog.js +13 -8
- package/lib/components/XFieldChangeEvent.d.ts +11 -0
- package/lib/components/XFieldChangeEvent.js +2 -0
- package/lib/components/XFieldSelector.js +11 -6
- package/lib/components/XFormBase.d.ts +17 -8
- package/lib/components/XFormBase.js +127 -48
- package/lib/components/XFormBaseT.js +3 -1
- package/lib/components/XFormComponent.d.ts +19 -7
- package/lib/components/XFormComponent.js +89 -49
- package/lib/components/XFormComponentDT.d.ts +30 -0
- package/lib/components/XFormComponentDT.js +119 -0
- package/lib/components/XFormDataTable2.d.ts +53 -8
- package/lib/components/XFormDataTable2.js +270 -57
- package/lib/components/XFormFooter.js +2 -1
- package/lib/components/XFormNavigator3.js +18 -7
- package/lib/components/XHolders.js +4 -2
- package/lib/components/XInput.d.ts +13 -0
- package/lib/components/XInput.js +38 -0
- package/lib/components/XInputDT.d.ts +11 -0
- package/lib/components/XInputDT.js +37 -0
- package/lib/components/XInputDate.d.ts +2 -1
- package/lib/components/XInputDate.js +7 -4
- package/lib/components/XInputDateDT.js +3 -2
- package/lib/components/XInputDecimal.d.ts +9 -2
- package/lib/components/XInputDecimal.js +63 -45
- package/lib/components/XInputDecimalDT.d.ts +10 -8
- package/lib/components/XInputDecimalDT.js +59 -36
- package/lib/components/XInputText.d.ts +7 -11
- package/lib/components/XInputText.js +22 -49
- package/lib/components/XInputTextDT.js +4 -4
- package/lib/components/XInputTextarea.d.ts +18 -0
- package/lib/components/XInputTextarea.js +85 -0
- package/lib/components/XLazyDataTable.d.ts +8 -0
- package/lib/components/XLazyDataTable.js +187 -85
- package/lib/components/XLoginDialog.js +2 -1
- package/lib/components/XLoginForm.js +11 -6
- package/lib/components/XResponseError.js +4 -2
- package/lib/components/XSearchButton.d.ts +8 -7
- package/lib/components/XSearchButton.js +32 -51
- package/lib/components/XSearchButtonDT.js +15 -10
- package/lib/components/XSearchButtonOld.js +13 -8
- package/lib/components/XToOneAssocButton.js +2 -1
- package/lib/components/XUtils.d.ts +13 -1
- package/lib/components/XUtils.js +125 -5
- package/lib/components/XUtilsConversions.d.ts +1 -0
- package/lib/components/XUtilsConversions.js +24 -3
- package/lib/components/XUtilsMetadata.d.ts +4 -1
- package/lib/components/XUtilsMetadata.js +62 -14
- package/lib/components/useXToken.js +1 -1
- package/lib/serverApi/ExportImportParam.d.ts +3 -3
- package/lib/serverApi/FindParam.d.ts +12 -14
- package/lib/serverApi/FindParam.js +14 -0
- package/lib/serverApi/XUtilsCommon.d.ts +1 -0
- package/lib/serverApi/XUtilsCommon.js +6 -2
- package/package.json +24 -25
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -25,7 +27,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
25
27
|
};
|
|
26
28
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
27
29
|
if (k2 === undefined) k2 = k;
|
|
28
|
-
Object.
|
|
30
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
31
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
32
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
33
|
+
}
|
|
34
|
+
Object.defineProperty(o, k2, desc);
|
|
29
35
|
}) : (function(o, m, k, k2) {
|
|
30
36
|
if (k2 === undefined) k2 = k;
|
|
31
37
|
o[k2] = m[k];
|
|
@@ -38,7 +44,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
38
44
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
39
45
|
if (mod && mod.__esModule) return mod;
|
|
40
46
|
var result = {};
|
|
41
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
47
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
42
48
|
__setModuleDefault(result, mod);
|
|
43
49
|
return result;
|
|
44
50
|
};
|
|
@@ -54,7 +60,8 @@ var __values = (this && this.__values) || function(o) {
|
|
|
54
60
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
55
61
|
};
|
|
56
62
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
-
exports.XFormSearchButtonColumn = exports.XFormDropdownColumn = exports.XFormColumn = exports.XFormDataTable2 = void 0;
|
|
63
|
+
exports.XFormSearchButtonColumn = exports.XFormAutoCompleteColumn = exports.XFormDropdownColumn = exports.XFormColumn = exports.XFormDataTable2 = void 0;
|
|
64
|
+
var XFormBase_1 = require("./XFormBase");
|
|
58
65
|
var react_1 = __importStar(require("react"));
|
|
59
66
|
var XDropdownDT_1 = require("./XDropdownDT");
|
|
60
67
|
var datatable_1 = require("primereact/datatable");
|
|
@@ -69,6 +76,9 @@ var XInputDecimalDT_1 = require("./XInputDecimalDT");
|
|
|
69
76
|
var XInputDateDT_1 = require("./XInputDateDT");
|
|
70
77
|
var XCheckboxDT_1 = require("./XCheckboxDT");
|
|
71
78
|
var tristatecheckbox_1 = require("primereact/tristatecheckbox");
|
|
79
|
+
var api_1 = require("primereact/api");
|
|
80
|
+
var XAutoCompleteDT_1 = require("./XAutoCompleteDT");
|
|
81
|
+
var XButtonIconNarrow_1 = require("./XButtonIconNarrow");
|
|
72
82
|
var XFormDataTable2 = /** @class */ (function (_super) {
|
|
73
83
|
__extends(XFormDataTable2, _super);
|
|
74
84
|
function XFormDataTable2(props) {
|
|
@@ -85,10 +95,11 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
85
95
|
_this.state = {
|
|
86
96
|
selectedRow: undefined,
|
|
87
97
|
dropdownOptionsMap: {},
|
|
88
|
-
filters:
|
|
98
|
+
filters: _this.createInitFilters()
|
|
89
99
|
};
|
|
90
|
-
_this.
|
|
91
|
-
_this.
|
|
100
|
+
_this.onClickAddRow = _this.onClickAddRow.bind(_this);
|
|
101
|
+
_this.onClickRemoveRowBySelection = _this.onClickRemoveRowBySelection.bind(_this);
|
|
102
|
+
_this.removeRow = _this.removeRow.bind(_this);
|
|
92
103
|
_this.onSelectionChange = _this.onSelectionChange.bind(_this);
|
|
93
104
|
_this.onDropdownOptionsMapChange = _this.onDropdownOptionsMapChange.bind(_this);
|
|
94
105
|
_this.onFilter = _this.onFilter.bind(_this);
|
|
@@ -97,12 +108,13 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
97
108
|
_this.onDropdownFilterChange = _this.onDropdownFilterChange.bind(_this);
|
|
98
109
|
_this.getDropdownFilterValue = _this.getDropdownFilterValue.bind(_this);
|
|
99
110
|
_this.bodyTemplate = _this.bodyTemplate.bind(_this);
|
|
111
|
+
props.form.addXFormDataTable(_this);
|
|
100
112
|
try {
|
|
101
113
|
//props.form.addField(props.assocField + '.*FAKE*'); - vzdy mame aspon 1 field, nie je to potrebne
|
|
102
114
|
for (var _b = __values(props.children), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
103
115
|
var child = _c.value;
|
|
104
116
|
var childColumn = child; // nevedel som to krajsie...
|
|
105
|
-
var field = props.assocField + '.' +
|
|
117
|
+
var field = props.assocField + '.' + _this.getPathForColumn(childColumn.props);
|
|
106
118
|
props.form.addField(field);
|
|
107
119
|
}
|
|
108
120
|
}
|
|
@@ -115,7 +127,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
115
127
|
}
|
|
116
128
|
return _this;
|
|
117
129
|
}
|
|
118
|
-
XFormDataTable2.getPathForColumn = function (columnProps) {
|
|
130
|
+
XFormDataTable2.prototype.getPathForColumn = function (columnProps) {
|
|
119
131
|
if (columnProps.type === "inputSimple") {
|
|
120
132
|
var columnPropsInputSimple = columnProps;
|
|
121
133
|
return columnPropsInputSimple.field;
|
|
@@ -124,6 +136,10 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
124
136
|
var columnPropsDropdown = columnProps;
|
|
125
137
|
return columnPropsDropdown.assocField + '.' + columnPropsDropdown.displayField;
|
|
126
138
|
}
|
|
139
|
+
else if (columnProps.type === "autoComplete") {
|
|
140
|
+
var columnPropsAutoComplete = columnProps;
|
|
141
|
+
return columnPropsAutoComplete.assocField + '.' + this.getDisplayFieldOrId(columnPropsAutoComplete);
|
|
142
|
+
}
|
|
127
143
|
else if (columnProps.type === "searchButton") {
|
|
128
144
|
var columnPropsSearchButton = columnProps;
|
|
129
145
|
return columnPropsSearchButton.assocField + '.' + columnPropsSearchButton.displayField;
|
|
@@ -132,8 +148,21 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
132
148
|
throw "Unknown prop type = " + columnProps.type;
|
|
133
149
|
}
|
|
134
150
|
};
|
|
151
|
+
XFormDataTable2.prototype.getDisplayFieldOrId = function (columnPropsAutoComplete) {
|
|
152
|
+
// toto je hack - ak ratame displayField cez funkciu, tak nam potom v kode chyba (hociaky) atribut asociovaneho objektu
|
|
153
|
+
// aby sme nemuseli robit nejake velke prerabky a zmeny, tak podsunieme id-ckovy atribut
|
|
154
|
+
if (typeof columnPropsAutoComplete.displayField === 'string') {
|
|
155
|
+
return columnPropsAutoComplete.displayField; // vsetko ok
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// v displayField mame funkciu, zistime id-ckovy atribut
|
|
159
|
+
// TODO - problem - sortovanie/filtrovanie bude fungovat podla tohto id atributu
|
|
160
|
+
var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity()), columnPropsAutoComplete.assocField);
|
|
161
|
+
return XUtilsMetadata_1.XUtilsMetadata.getXEntity(xAssoc.entityName).idField;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
135
164
|
XFormDataTable2.getHeader = function (columnProps, xEntity, field, xField) {
|
|
136
|
-
var _a, _b, _c;
|
|
165
|
+
var _a, _b, _c, _d;
|
|
137
166
|
// poznamky - parametre field a xField by sme mohli vyratavat na zaklade columnProps ale kedze ich uz mame, setrime performance a neduplikujeme vypocet
|
|
138
167
|
// nie je to tu uplne idealne nakodene, ale je to pomerne prehladne
|
|
139
168
|
var isNullable = true;
|
|
@@ -149,16 +178,22 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
149
178
|
isNullable = xAssoc.isNullable;
|
|
150
179
|
readOnly = (_a = columnProps.readOnly) !== null && _a !== void 0 ? _a : false;
|
|
151
180
|
}
|
|
181
|
+
else if (columnProps.type === "autoComplete") {
|
|
182
|
+
var columnPropsAutoComplete = columnProps;
|
|
183
|
+
var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(xEntity, columnPropsAutoComplete.assocField);
|
|
184
|
+
isNullable = xAssoc.isNullable;
|
|
185
|
+
readOnly = (_b = columnProps.readOnly) !== null && _b !== void 0 ? _b : false;
|
|
186
|
+
}
|
|
152
187
|
else if (columnProps.type === "searchButton") {
|
|
153
188
|
var columnPropsSearchButton = columnProps;
|
|
154
189
|
var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(xEntity, columnPropsSearchButton.assocField);
|
|
155
190
|
isNullable = xAssoc.isNullable;
|
|
156
|
-
readOnly = (
|
|
191
|
+
readOnly = (_c = columnProps.readOnly) !== null && _c !== void 0 ? _c : false;
|
|
157
192
|
}
|
|
158
193
|
else {
|
|
159
194
|
throw "Unknown prop type = " + columnProps.type;
|
|
160
195
|
}
|
|
161
|
-
var header = (
|
|
196
|
+
var header = (_d = columnProps.header) !== null && _d !== void 0 ? _d : field;
|
|
162
197
|
if (!isNullable && !readOnly) {
|
|
163
198
|
header = XUtils_1.XUtils.markNotNull(header);
|
|
164
199
|
}
|
|
@@ -170,6 +205,61 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
170
205
|
}
|
|
171
206
|
return this.entity;
|
|
172
207
|
};
|
|
208
|
+
XFormDataTable2.prototype.createInitFilters = function () {
|
|
209
|
+
var e_2, _a;
|
|
210
|
+
var initFilters = {};
|
|
211
|
+
if (this.props.filterDisplay === "none") {
|
|
212
|
+
return initFilters;
|
|
213
|
+
}
|
|
214
|
+
var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity());
|
|
215
|
+
try {
|
|
216
|
+
// TODO - asi by bolo fajn si tieto field, xField niekam ulozit a iterovat ulozene hodnoty, pouziva sa to na viacerych miestach
|
|
217
|
+
for (var _b = __values(this.props.children), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
218
|
+
var child = _c.value;
|
|
219
|
+
var childColumn = child; // nevedel som to krajsie...
|
|
220
|
+
var field = this.getPathForColumn(childColumn.props);
|
|
221
|
+
var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, field);
|
|
222
|
+
// TODO column.props.dropdownInFilter - pre "menu" by bolo fajn mat zoznam "enumov"
|
|
223
|
+
var filterMatchMode = this.getFilterMatchMode(xField);
|
|
224
|
+
var filterItem = void 0;
|
|
225
|
+
if (this.props.filterDisplay === "menu") {
|
|
226
|
+
// DataTableOperatorFilterMetaData: operator + filter values
|
|
227
|
+
filterItem = {
|
|
228
|
+
operator: api_1.FilterOperator.OR,
|
|
229
|
+
constraints: [{ value: null, matchMode: filterMatchMode }]
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
// props.filterDisplay === "row"
|
|
234
|
+
// DataTableFilterMetaData: filter value
|
|
235
|
+
filterItem = { value: null, matchMode: filterMatchMode };
|
|
236
|
+
}
|
|
237
|
+
initFilters[field] = filterItem;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
241
|
+
finally {
|
|
242
|
+
try {
|
|
243
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
244
|
+
}
|
|
245
|
+
finally { if (e_2) throw e_2.error; }
|
|
246
|
+
}
|
|
247
|
+
return initFilters;
|
|
248
|
+
};
|
|
249
|
+
XFormDataTable2.prototype.getFilterMatchMode = function (xField) {
|
|
250
|
+
var filterMatchMode;
|
|
251
|
+
if (xField.type === "string") {
|
|
252
|
+
filterMatchMode = api_1.FilterMatchMode.STARTS_WITH;
|
|
253
|
+
}
|
|
254
|
+
// zatial vsetky ostatne EQUALS
|
|
255
|
+
else if (xField.type === "decimal" || xField.type === "number" || xField.type === "date" || xField.type === "datetime" || xField.type === "boolean") {
|
|
256
|
+
filterMatchMode = api_1.FilterMatchMode.EQUALS;
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
throw "XField ".concat(xField.name, ": unknown xField.type = ").concat(xField.type);
|
|
260
|
+
}
|
|
261
|
+
return filterMatchMode;
|
|
262
|
+
};
|
|
173
263
|
XFormDataTable2.prototype.onSelectionChange = function (event) {
|
|
174
264
|
console.log("zavolany onSelectionChange");
|
|
175
265
|
console.log(event.value);
|
|
@@ -188,11 +278,12 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
188
278
|
// TODO - treba vyklonovat?
|
|
189
279
|
var filtersCloned = __assign({}, this.state.filters);
|
|
190
280
|
if (checkboxValue !== null) {
|
|
191
|
-
filtersCloned[field] = { value: checkboxValue ? "true" : "false", matchMode:
|
|
281
|
+
filtersCloned[field] = { value: checkboxValue ? "true" : "false", matchMode: api_1.FilterMatchMode.EQUALS };
|
|
192
282
|
}
|
|
193
283
|
else {
|
|
194
284
|
// pouzivatel zrusil hodnotu vo filtri (vybral prazdny stav v checkboxe), zrusime polozku z filtra
|
|
195
|
-
delete filtersCloned[field];
|
|
285
|
+
//delete filtersCloned[field];
|
|
286
|
+
filtersCloned[field] = { value: null, matchMode: api_1.FilterMatchMode.EQUALS };
|
|
196
287
|
}
|
|
197
288
|
this.setState({ filters: filtersCloned });
|
|
198
289
|
};
|
|
@@ -213,11 +304,12 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
213
304
|
// TODO - treba vyklonovat?
|
|
214
305
|
var filtersCloned = __assign({}, this.state.filters);
|
|
215
306
|
if (displayValue !== XUtils_1.XUtils.dropdownEmptyOptionValue) {
|
|
216
|
-
filtersCloned[field] = { value: displayValue, matchMode:
|
|
307
|
+
filtersCloned[field] = { value: displayValue, matchMode: api_1.FilterMatchMode.EQUALS };
|
|
217
308
|
}
|
|
218
309
|
else {
|
|
219
310
|
// pouzivatel zrusil hodnotu vo filtri (vybral prazdny riadok), zrusime polozku z filtra
|
|
220
|
-
delete filtersCloned[field];
|
|
311
|
+
//delete filtersCloned[field];
|
|
312
|
+
filtersCloned[field] = { value: null, matchMode: api_1.FilterMatchMode.EQUALS };
|
|
221
313
|
}
|
|
222
314
|
this.setState({ filters: filtersCloned });
|
|
223
315
|
};
|
|
@@ -225,17 +317,22 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
225
317
|
var dropdownValue = XUtils_1.XUtils.dropdownEmptyOptionValue;
|
|
226
318
|
var filterValue = this.state.filters[field];
|
|
227
319
|
if (filterValue !== undefined && filterValue !== null) {
|
|
228
|
-
|
|
320
|
+
if (filterValue.value !== null) {
|
|
321
|
+
dropdownValue = filterValue.value;
|
|
322
|
+
}
|
|
229
323
|
}
|
|
230
324
|
return dropdownValue;
|
|
231
325
|
};
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
326
|
+
/* pravdepodobne zombie
|
|
327
|
+
onBodyValueChange (field: string, rowData: any, newValue: any) {
|
|
328
|
+
//console.log("onBodyValueChange");
|
|
329
|
+
|
|
330
|
+
// zmenime hodnotu v modeli (odtial sa hodnota cita)
|
|
331
|
+
rowData[field] = newValue;
|
|
332
|
+
// kedze "rowData" je sucastou "props.form.state.object", tak nam staci zavolat setState({object: object}), aby sa zmena prejavila
|
|
333
|
+
this.props.form.onObjectDataChange();
|
|
334
|
+
}
|
|
335
|
+
*/
|
|
239
336
|
// body={(rowData: any) => bodyTemplate(childColumn.props.field, rowData)}
|
|
240
337
|
XFormDataTable2.prototype.bodyTemplate = function (columnProps, rowData, xEntity) {
|
|
241
338
|
var body;
|
|
@@ -243,7 +340,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
243
340
|
var columnPropsInputSimple = columnProps;
|
|
244
341
|
var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, columnPropsInputSimple.field);
|
|
245
342
|
if (xField.type === "decimal" || xField.type === "number") {
|
|
246
|
-
body = react_1.default.createElement(XInputDecimalDT_1.XInputDecimalDT, { form: this.props.form, entity: this.getEntity(), field: columnPropsInputSimple.field, rowData: rowData, readOnly: columnPropsInputSimple.readOnly });
|
|
343
|
+
body = react_1.default.createElement(XInputDecimalDT_1.XInputDecimalDT, { form: this.props.form, entity: this.getEntity(), field: columnPropsInputSimple.field, rowData: rowData, readOnly: columnPropsInputSimple.readOnly, onChange: columnPropsInputSimple.onChange });
|
|
247
344
|
}
|
|
248
345
|
else if (xField.type === "date" || xField.type === "datetime") {
|
|
249
346
|
body = react_1.default.createElement(XInputDateDT_1.XInputDateDT, { form: this.props.form, xField: xField, field: columnPropsInputSimple.field, rowData: rowData, readOnly: columnPropsInputSimple.readOnly });
|
|
@@ -260,6 +357,10 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
260
357
|
var columnPropsDropdown = columnProps;
|
|
261
358
|
body = react_1.default.createElement(XDropdownDT_1.XDropdownDT, { form: this.props.form, entity: this.getEntity(), assocField: columnPropsDropdown.assocField, displayField: columnPropsDropdown.displayField, dropdownOptionsMap: this.state.dropdownOptionsMap, onDropdownOptionsMapChange: this.onDropdownOptionsMapChange, rowData: rowData });
|
|
262
359
|
}
|
|
360
|
+
else if (columnProps.type === "autoComplete") {
|
|
361
|
+
var columnPropsAutoComplete = columnProps;
|
|
362
|
+
body = react_1.default.createElement(XAutoCompleteDT_1.XAutoCompleteDT, { form: this.props.form, entity: this.getEntity(), assocField: columnPropsAutoComplete.assocField, displayField: columnPropsAutoComplete.displayField, searchTable: columnPropsAutoComplete.searchTable, assocForm: columnPropsAutoComplete.assocForm, filter: columnPropsAutoComplete.filter, rowData: rowData });
|
|
363
|
+
}
|
|
263
364
|
else if (columnProps.type === "searchButton") {
|
|
264
365
|
var columnPropsSearchButton = columnProps;
|
|
265
366
|
body = react_1.default.createElement(XSearchButtonDT_1.XSearchButtonDT, { form: this.props.form, entity: this.getEntity(), assocField: columnPropsSearchButton.assocField, displayField: columnPropsSearchButton.displayField, searchTable: columnPropsSearchButton.searchTable, rowData: rowData, readOnly: columnPropsSearchButton.readOnly });
|
|
@@ -269,19 +370,95 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
269
370
|
}
|
|
270
371
|
return body;
|
|
271
372
|
};
|
|
272
|
-
XFormDataTable2.prototype.
|
|
273
|
-
|
|
373
|
+
XFormDataTable2.prototype.onClickAddRow = function () {
|
|
374
|
+
if (this.props.onClickAddRow) {
|
|
375
|
+
// custom add row
|
|
376
|
+
this.props.onClickAddRow();
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
// default add row
|
|
380
|
+
this.props.form.onTableAddRow(this.props.assocField, {}, this.dataKey, this.state.selectedRow);
|
|
381
|
+
}
|
|
274
382
|
};
|
|
275
383
|
;
|
|
276
|
-
XFormDataTable2.prototype.
|
|
384
|
+
XFormDataTable2.prototype.onClickRemoveRowBySelection = function () {
|
|
277
385
|
if (this.state.selectedRow !== undefined) {
|
|
278
|
-
this.
|
|
386
|
+
this.removeRow(this.state.selectedRow);
|
|
279
387
|
}
|
|
280
388
|
else {
|
|
281
389
|
alert("Please select the row.");
|
|
282
390
|
}
|
|
283
391
|
};
|
|
284
392
|
;
|
|
393
|
+
XFormDataTable2.prototype.removeRow = function (row) {
|
|
394
|
+
if (this.props.onClickRemoveRow) {
|
|
395
|
+
// custom remove
|
|
396
|
+
this.props.onClickRemoveRow(row);
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
// default remove
|
|
400
|
+
this.props.form.onTableRemoveRow(this.props.assocField, row);
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
XFormDataTable2.prototype.validate = function () {
|
|
404
|
+
var e_3, _a, e_4, _b;
|
|
405
|
+
// zvalidujeme vsetky rows a pripadne chyby zapiseme do specialneho fieldu __x_rowTechData
|
|
406
|
+
var object = this.props.form.getXObject();
|
|
407
|
+
var rowList = object[this.props.assocField];
|
|
408
|
+
try {
|
|
409
|
+
for (var rowList_1 = __values(rowList), rowList_1_1 = rowList_1.next(); !rowList_1_1.done; rowList_1_1 = rowList_1.next()) {
|
|
410
|
+
var row = rowList_1_1.value;
|
|
411
|
+
var xRowTechData = XFormBase_1.XFormBase.getXRowTechData(row);
|
|
412
|
+
var xErrorMap = {};
|
|
413
|
+
try {
|
|
414
|
+
for (var _c = (e_4 = void 0, __values(xRowTechData.xFormComponentDTList)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
415
|
+
var xFormComponentDT = _d.value;
|
|
416
|
+
var errorItem = xFormComponentDT.validate();
|
|
417
|
+
if (errorItem) {
|
|
418
|
+
//console.log("Mame field = " + errorItem.field);
|
|
419
|
+
xErrorMap[errorItem.field] = errorItem.xError;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
424
|
+
finally {
|
|
425
|
+
try {
|
|
426
|
+
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
427
|
+
}
|
|
428
|
+
finally { if (e_4) throw e_4.error; }
|
|
429
|
+
}
|
|
430
|
+
xRowTechData.errorMap = xErrorMap;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
434
|
+
finally {
|
|
435
|
+
try {
|
|
436
|
+
if (rowList_1_1 && !rowList_1_1.done && (_a = rowList_1.return)) _a.call(rowList_1);
|
|
437
|
+
}
|
|
438
|
+
finally { if (e_3) throw e_3.error; }
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
XFormDataTable2.prototype.getErrorMessages = function () {
|
|
442
|
+
var e_5, _a;
|
|
443
|
+
var msg = "";
|
|
444
|
+
var object = this.props.form.getXObject();
|
|
445
|
+
var rowList = object[this.props.assocField];
|
|
446
|
+
try {
|
|
447
|
+
for (var rowList_2 = __values(rowList), rowList_2_1 = rowList_2.next(); !rowList_2_1.done; rowList_2_1 = rowList_2.next()) {
|
|
448
|
+
var row = rowList_2_1.value;
|
|
449
|
+
var xRowTechData = XFormBase_1.XFormBase.getXRowTechData(row);
|
|
450
|
+
msg += XUtils_1.XUtils.getErrorMessages(xRowTechData.errorMap);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
454
|
+
finally {
|
|
455
|
+
try {
|
|
456
|
+
if (rowList_2_1 && !rowList_2_1.done && (_a = rowList_2.return)) _a.call(rowList_2);
|
|
457
|
+
}
|
|
458
|
+
finally { if (e_5) throw e_5.error; }
|
|
459
|
+
}
|
|
460
|
+
return msg;
|
|
461
|
+
};
|
|
285
462
|
XFormDataTable2.prototype.render = function () {
|
|
286
463
|
var _this = this;
|
|
287
464
|
var paginator = this.props.paginator !== undefined ? this.props.paginator : false;
|
|
@@ -294,12 +471,11 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
294
471
|
rows = 5; // default
|
|
295
472
|
}
|
|
296
473
|
}
|
|
474
|
+
var filterDisplay = this.props.filterDisplay !== "none" ? this.props.filterDisplay : undefined;
|
|
297
475
|
var label = this.props.label !== undefined ? this.props.label : this.props.assocField;
|
|
298
476
|
var readOnly = this.props.readOnly !== undefined ? this.props.readOnly : false;
|
|
299
477
|
// v bloku function (child) nejde pouzit priamo this, thisLocal uz ide pouzit
|
|
300
478
|
var thisLocal = this;
|
|
301
|
-
var onClickAddRow = this.props.onClickAddRow !== undefined ? this.props.onClickAddRow : this.onClickAddRowDefault;
|
|
302
|
-
var onClickRemoveRow = this.props.onClickRemoveRow !== undefined ? this.props.onClickRemoveRow : this.onClickRemoveRowDefault;
|
|
303
479
|
var object = this.props.form.state.object;
|
|
304
480
|
var valueList = object !== null ? object[this.props.assocField] : [];
|
|
305
481
|
var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity());
|
|
@@ -320,13 +496,14 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
320
496
|
if (this.props.shrinkWidth) {
|
|
321
497
|
style.maxWidth = 'min-content'; // ak nic nedame (nechame auto), tak (v pripade ak nebudeme mat horizontalny scrollbar) natiahne tabulku na celu sirku stranky, co nechceme
|
|
322
498
|
}
|
|
323
|
-
|
|
499
|
+
// pri prechode z Primereact 6.x na 9.x sa tableLayout zmenil z fixed na auto a nefungovalo nastavenie sirok stlpcov - docasne teda takto
|
|
500
|
+
var tableStyle = { tableLayout: 'fixed' };
|
|
324
501
|
if (this.props.width !== undefined) {
|
|
325
502
|
var width = this.props.width;
|
|
326
503
|
if (!isNaN(Number(width))) { // if width is number
|
|
327
504
|
width = width + 'rem';
|
|
328
505
|
}
|
|
329
|
-
tableStyle = { width: width };
|
|
506
|
+
tableStyle = __assign(__assign({}, tableStyle), { width: width });
|
|
330
507
|
}
|
|
331
508
|
// pre lepsiu citatelnost vytvarame stlpce uz tu
|
|
332
509
|
var columnElemList = react_1.default.Children.map(this.props.children, function (child) {
|
|
@@ -337,32 +514,55 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
337
514
|
var childColumnProps = childColumn.props;
|
|
338
515
|
// je dolezite, aby field obsahoval cely path az po zobrazovany atribut, lebo podla neho sa vykonava filtrovanie a sortovanie
|
|
339
516
|
// (aj ked, da sa to prebit na stlpcoch (na elemente Column), su na to atributy)
|
|
340
|
-
var field =
|
|
517
|
+
var field = thisLocal.getPathForColumn(childColumnProps);
|
|
341
518
|
// TODO - toto by sa mohlo vytiahnut vyssie, aj v bodyTemplate sa vola metoda XUtilsMetadata.getXFieldByPath
|
|
342
519
|
var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, field);
|
|
343
520
|
// *********** header ***********
|
|
344
521
|
var header = XFormDataTable2.getHeader(childColumnProps, xEntity, field, xField);
|
|
345
522
|
// *********** filterElement ***********
|
|
346
523
|
var filterElement;
|
|
347
|
-
if (
|
|
348
|
-
|
|
349
|
-
|
|
524
|
+
if (thisLocal.props.filterDisplay !== "none") {
|
|
525
|
+
if (xField.type === "boolean") {
|
|
526
|
+
var checkboxValue = thisLocal.getCheckboxFilterValue(field);
|
|
527
|
+
filterElement = react_1.default.createElement(tristatecheckbox_1.TriStateCheckbox, { value: checkboxValue, onChange: function (e) { return thisLocal.onCheckboxFilterChange(field, e.value); } });
|
|
528
|
+
}
|
|
529
|
+
else if (childColumnProps.dropdownInFilter) {
|
|
530
|
+
var dropdownValue = thisLocal.getDropdownFilterValue(field);
|
|
531
|
+
filterElement = react_1.default.createElement(XDropdownDTFilter_1.XDropdownDTFilter, { entity: thisLocal.getEntity(), path: field, value: dropdownValue, onValueChange: thisLocal.onDropdownFilterChange });
|
|
532
|
+
}
|
|
350
533
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
534
|
+
// *********** showFilterMenu ***********
|
|
535
|
+
var showFilterMenu = false;
|
|
536
|
+
if (thisLocal.props.filterDisplay !== "none") {
|
|
537
|
+
if (childColumnProps.showFilterMenu !== undefined) {
|
|
538
|
+
showFilterMenu = childColumnProps.showFilterMenu;
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
showFilterMenu = true; // default
|
|
542
|
+
if (thisLocal.props.filterDisplay === "row") {
|
|
543
|
+
if (xField.type === "boolean" || childColumnProps.dropdownInFilter) {
|
|
544
|
+
showFilterMenu = false;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
354
548
|
}
|
|
549
|
+
// *********** showClearButton ***********
|
|
550
|
+
// pre filterDisplay = "row" nechceme clear button, chceme setrit miesto
|
|
551
|
+
var showClearButton = thisLocal.props.filterDisplay === "menu";
|
|
355
552
|
// *********** width/headerStyle ***********
|
|
356
553
|
var width = XUtils_1.XUtils.processPropWidth(childColumn.props.width);
|
|
357
554
|
if (width === undefined || width === "default") {
|
|
358
|
-
|
|
555
|
+
var filterMenuInFilterRow = thisLocal.props.filterDisplay === "row" && showFilterMenu;
|
|
556
|
+
var sortableButtonInHeader = thisLocal.props.sortable;
|
|
557
|
+
var filterButtonInHeader = thisLocal.props.filterDisplay === "menu";
|
|
558
|
+
width = XUtilsMetadata_1.XUtilsMetadata.computeColumnWidth(xField, filterMenuInFilterRow, childColumnProps.type, header, sortableButtonInHeader, filterButtonInHeader);
|
|
359
559
|
}
|
|
360
560
|
var headerStyle = {};
|
|
361
561
|
if (width !== undefined) {
|
|
362
562
|
headerStyle = { width: width };
|
|
363
563
|
}
|
|
364
564
|
// *********** align ***********
|
|
365
|
-
var align =
|
|
565
|
+
var align = undefined; // default undefined (left)
|
|
366
566
|
// do buducna
|
|
367
567
|
// if (childColumnProps.align !== undefined) {
|
|
368
568
|
// align = childColumnProps.align;
|
|
@@ -377,52 +577,65 @@ var XFormDataTable2 = /** @class */ (function (_super) {
|
|
|
377
577
|
align = "center";
|
|
378
578
|
}
|
|
379
579
|
// }
|
|
380
|
-
|
|
381
|
-
var style = {};
|
|
382
|
-
// TODO - pouzit className a nie style
|
|
383
|
-
if (align === "center" || align === "right") {
|
|
384
|
-
style = { textAlign: align };
|
|
385
|
-
headerStyle = __assign(__assign({}, headerStyle), style); // headerStyle overrides style in TH cell
|
|
386
|
-
}
|
|
387
|
-
return react_1.default.createElement(column_1.Column, { field: field, header: header, filter: true, sortable: true, filterElement: filterElement, headerStyle: headerStyle, style: style, body: function (rowData) { return thisLocal.bodyTemplate(childColumnProps, rowData, xEntity); } });
|
|
580
|
+
return react_1.default.createElement(column_1.Column, { field: field, header: header, filter: thisLocal.props.filterDisplay !== "none", sortable: thisLocal.props.sortable, filterElement: filterElement, showFilterMenu: showFilterMenu, showClearButton: showClearButton, headerStyle: headerStyle, align: align, body: function (rowData) { return thisLocal.bodyTemplate(childColumnProps, rowData, xEntity); } });
|
|
388
581
|
});
|
|
582
|
+
if (this.props.removeButtonInRow) {
|
|
583
|
+
// je dolezite nastavit sirku header-a, lebo inac ma stlpec sirku 0 a nevidno ho
|
|
584
|
+
columnElemList.push(react_1.default.createElement(column_1.Column, { key: "removeButton", headerStyle: { width: '2rem' }, body: function (rowData) { return react_1.default.createElement(XButtonIconNarrow_1.XButtonIconNarrow, { icon: "pi pi-times", onClick: function () { return _this.removeRow(rowData); }, addMargin: false }); } }));
|
|
585
|
+
}
|
|
389
586
|
return (react_1.default.createElement("div", null,
|
|
390
587
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
391
588
|
react_1.default.createElement("label", null, label)),
|
|
392
589
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
393
|
-
react_1.default.createElement(datatable_1.DataTable, { ref: function (el) { return _this.dt = el; }, value: valueList, dataKey: this.dataKey, paginator: paginator, rows: rows, totalRecords: valueList.length, filters: this.state.filters, onFilter: this.onFilter, sortMode: "multiple", removableSort: true, selectionMode: "single", selection: this.state.selectedRow, onSelectionChange: this.onSelectionChange, className: "p-datatable-sm x-form-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, scrollable: this.props.scrollable, scrollHeight: scrollHeight, style: style }, columnElemList)),
|
|
590
|
+
react_1.default.createElement(datatable_1.DataTable, { ref: function (el) { return _this.dt = el; }, value: valueList, dataKey: this.dataKey, paginator: paginator, rows: rows, totalRecords: valueList.length, filterDisplay: filterDisplay, filters: this.state.filters, onFilter: this.onFilter, sortMode: "multiple", removableSort: true, selectionMode: "single", selection: this.state.selectedRow, onSelectionChange: this.onSelectionChange, className: "p-datatable-sm x-form-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, scrollable: this.props.scrollable, scrollHeight: scrollHeight, style: style }, columnElemList)),
|
|
394
591
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
395
|
-
react_1.default.createElement(XButton_1.XButton, { label:
|
|
396
|
-
react_1.default.createElement(XButton_1.XButton, { label:
|
|
592
|
+
react_1.default.createElement(XButton_1.XButton, { icon: this.props.addRowIcon, label: this.props.addRowLabel, onClick: this.onClickAddRow }),
|
|
593
|
+
this.props.removeButtonInRow ? undefined : react_1.default.createElement(XButton_1.XButton, { icon: this.props.removeRowIcon, label: this.props.removeRowLabel, onClick: this.onClickRemoveRowBySelection }))));
|
|
397
594
|
};
|
|
398
595
|
XFormDataTable2.defaultProps = {
|
|
596
|
+
filterDisplay: "row",
|
|
597
|
+
sortable: true,
|
|
399
598
|
scrollable: true,
|
|
400
599
|
scrollWidth: '100%',
|
|
401
600
|
scrollHeight: '200vh',
|
|
402
601
|
// tym ze pouzivame 200vh (max-height pre body), tak realne scrollovanie sa zapne az pri velmi vela riadkoch
|
|
403
|
-
shrinkWidth: true
|
|
602
|
+
shrinkWidth: true,
|
|
603
|
+
removeButtonInRow: false,
|
|
604
|
+
addRowLabel: 'Add row',
|
|
605
|
+
removeRowLabel: 'Remove row'
|
|
404
606
|
};
|
|
405
607
|
return XFormDataTable2;
|
|
406
608
|
}(react_1.Component));
|
|
407
609
|
exports.XFormDataTable2 = XFormDataTable2;
|
|
408
|
-
|
|
610
|
+
var XFormColumn = function (props) {
|
|
409
611
|
// nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
|
|
410
612
|
return (null);
|
|
411
613
|
};
|
|
614
|
+
exports.XFormColumn = XFormColumn;
|
|
412
615
|
exports.XFormColumn.defaultProps = {
|
|
413
616
|
type: "inputSimple"
|
|
414
617
|
};
|
|
415
|
-
|
|
618
|
+
var XFormDropdownColumn = function (props) {
|
|
416
619
|
// nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
|
|
417
620
|
return (null);
|
|
418
621
|
};
|
|
622
|
+
exports.XFormDropdownColumn = XFormDropdownColumn;
|
|
419
623
|
exports.XFormDropdownColumn.defaultProps = {
|
|
420
624
|
type: "dropdown"
|
|
421
625
|
};
|
|
422
|
-
|
|
626
|
+
var XFormAutoCompleteColumn = function (props) {
|
|
627
|
+
// nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
|
|
628
|
+
return (null);
|
|
629
|
+
};
|
|
630
|
+
exports.XFormAutoCompleteColumn = XFormAutoCompleteColumn;
|
|
631
|
+
exports.XFormAutoCompleteColumn.defaultProps = {
|
|
632
|
+
type: "autoComplete"
|
|
633
|
+
};
|
|
634
|
+
var XFormSearchButtonColumn = function (props) {
|
|
423
635
|
// nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
|
|
424
636
|
return (null);
|
|
425
637
|
};
|
|
638
|
+
exports.XFormSearchButtonColumn = XFormSearchButtonColumn;
|
|
426
639
|
exports.XFormSearchButtonColumn.defaultProps = {
|
|
427
640
|
type: "searchButton"
|
|
428
641
|
};
|
|
@@ -7,8 +7,9 @@ exports.XFormFooter = void 0;
|
|
|
7
7
|
var react_1 = __importDefault(require("react"));
|
|
8
8
|
var XButton_1 = require("./XButton");
|
|
9
9
|
// helper wrapper
|
|
10
|
-
|
|
10
|
+
var XFormFooter = function (props) {
|
|
11
11
|
return (react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
12
12
|
react_1.default.createElement(XButton_1.XButton, { label: "Save", onClick: props.form.onClickSave }),
|
|
13
13
|
react_1.default.createElement(XButton_1.XButton, { label: "Cancel", onClick: props.form.onClickCancel })));
|
|
14
14
|
};
|
|
15
|
+
exports.XFormFooter = XFormFooter;
|
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -14,7 +16,11 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
16
|
})();
|
|
15
17
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
18
|
if (k2 === undefined) k2 = k;
|
|
17
|
-
Object.
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
18
24
|
}) : (function(o, m, k, k2) {
|
|
19
25
|
if (k2 === undefined) k2 = k;
|
|
20
26
|
o[k2] = m[k];
|
|
@@ -27,7 +33,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
27
33
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
28
34
|
if (mod && mod.__esModule) return mod;
|
|
29
35
|
var result = {};
|
|
30
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
31
37
|
__setModuleDefault(result, mod);
|
|
32
38
|
return result;
|
|
33
39
|
};
|
|
@@ -47,9 +53,14 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
47
53
|
}
|
|
48
54
|
return ar;
|
|
49
55
|
};
|
|
50
|
-
var
|
|
51
|
-
for (var
|
|
52
|
-
|
|
56
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
57
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
58
|
+
if (ar || !(i in from)) {
|
|
59
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
60
|
+
ar[i] = from[i];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
53
64
|
};
|
|
54
65
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
66
|
exports.XFormNavigator3 = void 0;
|
|
@@ -99,7 +110,7 @@ var XFormNavigator3 = /** @class */ (function (_super) {
|
|
|
99
110
|
};
|
|
100
111
|
XFormNavigator3.prototype.render = function () {
|
|
101
112
|
var _this = this;
|
|
102
|
-
var formElements = this.props.rootFormElement !== null ?
|
|
113
|
+
var formElements = this.props.rootFormElement !== null ? __spreadArray([this.props.rootFormElement], __read(this.state.formElements), false) : this.state.formElements;
|
|
103
114
|
var forms = formElements.map(function (formElement, index) {
|
|
104
115
|
var displayed = (index === formElements.length - 1);
|
|
105
116
|
// klonovanim elementu pridame atribut openForm={this.openForm} (nemusime tento atribut pridavat pri vytvarani elementu)
|