@michalrakus/x-react-web-lib 1.34.0 → 1.35.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/XDocTemplateButton.d.ts +3 -0
- package/XDocTemplateButton.js +5 -0
- package/gulpfile.js +3 -0
- package/lib/administration/x-enum-enum.d.ts +12 -0
- package/lib/administration/x-enum-enum.js +2 -0
- package/lib/administration/x-enum.d.ts +10 -0
- package/lib/administration/x-enum.js +2 -0
- package/lib/components/XAutoComplete.d.ts +1 -0
- package/lib/components/XAutoComplete.js +1 -1
- package/lib/components/XAutoCompleteBase.d.ts +4 -4
- package/lib/components/XAutoCompleteBase.js +17 -24
- package/lib/components/XAutoCompleteDT.d.ts +1 -0
- package/lib/components/XAutoCompleteDT.js +1 -1
- package/lib/components/XFormDialog.d.ts +12 -0
- package/lib/components/XFormDialog.js +20 -0
- package/lib/components/XFormFooter.d.ts +4 -0
- package/lib/components/XFormFooter.js +20 -1
- package/lib/components/XInputFileList.js +6 -27
- package/lib/components/XLazyDataTable/XExportRowsDialog.js +37 -59
- package/lib/components/XLazyDataTable/XLazyDataTable.d.ts +33 -36
- package/lib/components/XLazyDataTable/XLazyDataTable.js +206 -144
- package/lib/components/XUtils.d.ts +1 -0
- package/lib/components/XUtils.js +21 -8
- package/lib/modules/docTemplates/XDocTemplateButton.d.ts +7 -0
- package/lib/modules/docTemplates/XDocTemplateButton.js +150 -0
- package/lib/modules/docTemplates/xt-doc-template-field-to-join.d.ts +6 -0
- package/lib/modules/docTemplates/xt-doc-template-field-to-join.js +2 -0
- package/lib/modules/docTemplates/xt-doc-template.d.ts +18 -0
- package/lib/modules/docTemplates/xt-doc-template.js +2 -0
- package/lib/modules/files/x-file.d.ts +8 -0
- package/lib/modules/files/x-file.js +2 -0
- package/lib/serverApi/FindParam.d.ts +2 -1
- package/lib/serverApi/FindParam.js +1 -0
- package/lib/serverApi/x-lib-api.d.ts +6 -0
- package/lib/serverApi/x-lib-api.js +0 -1
- package/package.json +1 -1
- package/xt-doc-template.d.ts +3 -0
- package/xt-doc-template.js +5 -0
|
@@ -69,6 +69,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
69
69
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
73
|
+
var t = {};
|
|
74
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
75
|
+
t[p] = s[p];
|
|
76
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
77
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
78
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
79
|
+
t[p[i]] = s[p[i]];
|
|
80
|
+
}
|
|
81
|
+
return t;
|
|
82
|
+
};
|
|
72
83
|
var __values = (this && this.__values) || function(o) {
|
|
73
84
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
74
85
|
if (m) return m.call(o);
|
|
@@ -137,6 +148,8 @@ var XInputTextBase_1 = require("../XInputTextBase");
|
|
|
137
148
|
var useXStateSession_1 = require("../useXStateSession");
|
|
138
149
|
var useXStateSessionBase_1 = require("../useXStateSessionBase");
|
|
139
150
|
var _ = __importStar(require("lodash"));
|
|
151
|
+
var XDocTemplateButton_1 = require("../../modules/docTemplates/XDocTemplateButton");
|
|
152
|
+
var XFormDialog_1 = require("../XFormDialog");
|
|
140
153
|
var XStateKeySuffix;
|
|
141
154
|
(function (XStateKeySuffix) {
|
|
142
155
|
XStateKeySuffix["filters"] = "filters";
|
|
@@ -147,8 +160,14 @@ var XStateKeySuffix;
|
|
|
147
160
|
XStateKeySuffix["selectedRow"] = "selected-row";
|
|
148
161
|
XStateKeySuffix["multilineSwitchValue"] = "multiline-switch-value";
|
|
149
162
|
})(XStateKeySuffix = exports.XStateKeySuffix || (exports.XStateKeySuffix = {}));
|
|
150
|
-
|
|
151
|
-
var
|
|
163
|
+
exports.XLazyDataTable = (0, react_1.forwardRef)(function (_a, ref) {
|
|
164
|
+
var _b, _c;
|
|
165
|
+
var _d = _a.paginator, paginator = _d === void 0 ? true : _d, _e = _a.rows, rows = _e === void 0 ? 10 : _e, _f = _a.filterDisplay, filterDisplay = _f === void 0 ? "row" : _f, _g = _a.autoFilter, autoFilter = _g === void 0 ? false : _g, _h = _a.showFilterButtons, showFilterButtons = _h === void 0 ? true : _h, _j = _a.fullTextSearch, fullTextSearch = _j === void 0 ? true : _j, _k = _a.multilineSwitch, multilineSwitch = _k === void 0 ? false : _k, _l = _a.multilineSwitchInitValue, multilineSwitchInitValue = _l === void 0 ? "allLines" : _l, _m = _a.multilineSwitchFewLinesCount, multilineSwitchFewLinesCount = _m === void 0 ? 2 : _m, _o = _a.scrollable, scrollable = _o === void 0 ? true : _o, _p = _a.scrollWidth, scrollWidth = _p === void 0 ? 'viewport' : _p, // nastavi sirku tabulky na (100vw - nieco) (ak bude obsah sirsi, zapne horizontalny scrollbar)
|
|
166
|
+
_q = _a.scrollHeight, // nastavi sirku tabulky na (100vw - nieco) (ak bude obsah sirsi, zapne horizontalny scrollbar)
|
|
167
|
+
scrollHeight = _q === void 0 ? 'viewport' : _q, // nastavi vysku tabulky na (100vh - nieco) (ak bude obsah vecsi, zapne vertikalny scrollbar)
|
|
168
|
+
_r = _a.shrinkWidth, // nastavi vysku tabulky na (100vh - nieco) (ak bude obsah vecsi, zapne vertikalny scrollbar)
|
|
169
|
+
shrinkWidth = _r === void 0 ? true : _r, propsRest = __rest(_a, ["paginator", "rows", "filterDisplay", "autoFilter", "showFilterButtons", "fullTextSearch", "multilineSwitch", "multilineSwitchInitValue", "multilineSwitchFewLinesCount", "scrollable", "scrollWidth", "scrollHeight", "shrinkWidth"]);
|
|
170
|
+
var props = __assign({ paginator: paginator, rows: rows, filterDisplay: filterDisplay, autoFilter: autoFilter, showFilterButtons: showFilterButtons, fullTextSearch: fullTextSearch, multilineSwitch: multilineSwitch, multilineSwitchInitValue: multilineSwitchInitValue, multilineSwitchFewLinesCount: multilineSwitchFewLinesCount, scrollable: scrollable, scrollWidth: scrollWidth, scrollHeight: scrollHeight, shrinkWidth: shrinkWidth }, propsRest);
|
|
152
171
|
// must be here, is used in createFiltersInit()
|
|
153
172
|
var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.entity);
|
|
154
173
|
var createAggregateItems = function () {
|
|
@@ -214,7 +233,10 @@ var XLazyDataTable = function (props) {
|
|
|
214
233
|
};
|
|
215
234
|
var getInitFilterMatchMode = function (xLazyColumnProps, xField) {
|
|
216
235
|
var filterMatchMode;
|
|
217
|
-
if (
|
|
236
|
+
if (xLazyColumnProps.filterElement !== undefined) {
|
|
237
|
+
filterMatchMode = FindParam_1.XFilterMatchMode.X_FILTER_ELEMENT; // little hack
|
|
238
|
+
}
|
|
239
|
+
else if (isAutoCompleteInFilterEnabled(xLazyColumnProps)) {
|
|
218
240
|
filterMatchMode = FindParam_1.XFilterMatchMode.X_AUTO_COMPLETE; // little hack
|
|
219
241
|
}
|
|
220
242
|
else if (xField.type === "string" || xField.type === "jsonb") {
|
|
@@ -316,12 +338,12 @@ var XLazyDataTable = function (props) {
|
|
|
316
338
|
// ak mame fieldSet stlpce (stlpce ktore maju zadany fieldSetId a zobrazuju hodnoty podla fieldSet-u),
|
|
317
339
|
// tak sem nacitame mapy umoznujuce ziskanie labelov zakliknutych field-ov
|
|
318
340
|
// poznamka: uz by sa zislo mat vytvorene objekty (instancie) pre stlpce a do nich zapisovat pripadny XFieldSetMap, filter (teraz je vo "filters")
|
|
319
|
-
var
|
|
320
|
-
var
|
|
321
|
-
var
|
|
322
|
-
var
|
|
323
|
-
var
|
|
324
|
-
var
|
|
341
|
+
var _s = __read((0, react_1.useState)({}), 2), xFieldSetMaps = _s[0], setXFieldSetMaps = _s[1];
|
|
342
|
+
var _t = __read((0, react_1.useState)({ rowList: [], totalRecords: 0, aggregateValues: [] }), 2), value = _t[0], setValue = _t[1];
|
|
343
|
+
var _u = __read((0, react_1.useState)(undefined), 2), expandedRows = _u[0], setExpandedRows = _u[1];
|
|
344
|
+
var _v = __read((0, react_1.useState)(false), 2), loading = _v[0], setLoading = _v[1];
|
|
345
|
+
var _w = __read((0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.pagingFirst), 0), 2), first = _w[0], setFirst = _w[1];
|
|
346
|
+
var _x = __read((0, react_1.useState)(props.paginator ? props.rows : undefined), 2), rowsLocal = _x[0], setRowsLocal = _x[1];
|
|
325
347
|
// "filters" have special initialState function different from that used in useXStateSession
|
|
326
348
|
var filtersInitialStateFunction = function () {
|
|
327
349
|
var filtersInit = XUtils_1.XUtils.getValueFromStorage(getStateKey(XStateKeySuffix.filters), null);
|
|
@@ -335,19 +357,20 @@ var XLazyDataTable = function (props) {
|
|
|
335
357
|
}
|
|
336
358
|
return filtersInit;
|
|
337
359
|
};
|
|
338
|
-
var
|
|
360
|
+
var _y = __read((0, useXStateSessionBase_1.useXStateSessionBase)(getStateKey(XStateKeySuffix.filters), filtersInitialStateFunction), 2), filters = _y[0], setFilters = _y[1]; // filtrovanie na "controlled manner" (moze sa sem nainicializovat nejaka hodnota)
|
|
339
361
|
var initFtsInputValue = props.fullTextSearch ? createInitFtsInputValue() : undefined;
|
|
340
|
-
var
|
|
341
|
-
var
|
|
342
|
-
var
|
|
343
|
-
var
|
|
344
|
-
var
|
|
345
|
-
var
|
|
346
|
-
var
|
|
362
|
+
var _z = __read((0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.ftsInputValue), initFtsInputValue), 2), ftsInputValue = _z[0], setFtsInputValue = _z[1];
|
|
363
|
+
var _0 = __read((0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.optionalCustomFilter), undefined), 2), optionalCustomFilter = _0[0], setOptionalCustomFilter = _0[1];
|
|
364
|
+
var _1 = __read((_b = props.multilineSwitchValue) !== null && _b !== void 0 ? _b : (0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.multilineSwitchValue), props.multilineSwitchInitValue), 2), multilineSwitchValue = _1[0], setMultilineSwitchValue = _1[1];
|
|
365
|
+
var _2 = __read((0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.multiSortMeta), XUtilsCommon_1.XUtilsCommon.createMultiSortMeta(props.sortField)), 2), multiSortMeta = _2[0], setMultiSortMeta = _2[1];
|
|
366
|
+
var _3 = __read((0, useXStateSession_1.useXStateSession)(getStateKey(XStateKeySuffix.selectedRow), null), 2), selectedRow = _3[0], setSelectedRow = _3[1];
|
|
367
|
+
var _4 = __read((_c = props.dataLoadedState) !== null && _c !== void 0 ? _c : (0, react_1.useState)(false), 2), dataLoaded = _4[0], setDataLoaded = _4[1]; // priznak kde si zapiseme, ci uz sme nacitali data
|
|
368
|
+
var _5 = __read((0, react_1.useState)({ dialogOpened: false }), 2), exportRowsDialogState = _5[0], setExportRowsDialogState = _5[1];
|
|
347
369
|
//const [exportRowsDialogRowCount, setExportRowsDialogRowCount] = useState<number>(); // param pre dialog
|
|
348
|
-
var
|
|
349
|
-
var
|
|
350
|
-
var
|
|
370
|
+
var _6 = __read((0, react_1.useState)(filters), 2), filtersAfterFiltering = _6[0], setFiltersAfterFiltering = _6[1]; // sem si odkladame stav filtra po kliknuti na button Filter (chceme exportovat presne to co vidno vyfiltrovane)
|
|
371
|
+
var _7 = __read((0, react_1.useState)(ftsInputValue), 2), ftsInputValueAfterFiltering = _7[0], setFtsInputValueAfterFiltering = _7[1]; // tak isto ako filtersAfterFiltering
|
|
372
|
+
var _8 = __read((0, react_1.useState)(optionalCustomFilter), 2), optionalCustomFilterAfterFiltering = _8[0], setOptionalCustomFilterAfterFiltering = _8[1]; // tak isto ako filtersAfterFiltering
|
|
373
|
+
var _9 = __read((0, react_1.useState)({ opened: false }), 2), formDialogState = _9[0], setFormDialogState = _9[1];
|
|
351
374
|
// parameter [] zabezpeci ze sa metoda zavola len po prvom renderingu (a nie po kazdej zmene stavu (zavolani setNieco()))
|
|
352
375
|
(0, react_1.useEffect)(function () {
|
|
353
376
|
// jednoduchy sposob - nepouzivame parameter props.displayed a priznak dataLoaded
|
|
@@ -374,6 +397,10 @@ var XLazyDataTable = function (props) {
|
|
|
374
397
|
}
|
|
375
398
|
}
|
|
376
399
|
}); // eslint-disable-line react-hooks/exhaustive-deps
|
|
400
|
+
(0, react_1.useImperativeHandle)(ref, function () { return ({
|
|
401
|
+
reread: reread,
|
|
402
|
+
setupExpandedRows: function () { return setupExpandedRows(value, multilineSwitchValue); }
|
|
403
|
+
}); });
|
|
377
404
|
// TODO - preco je to tu? presunut dole ak sa da...
|
|
378
405
|
var dataKey = props.dataKey !== undefined ? props.dataKey : XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.entity).idField;
|
|
379
406
|
var onPage = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -459,6 +486,10 @@ var XLazyDataTable = function (props) {
|
|
|
459
486
|
findParam.multiSortMeta = multiSortMetaLocal;
|
|
460
487
|
loadDataBase(findParam);
|
|
461
488
|
};
|
|
489
|
+
// API function
|
|
490
|
+
var reread = function () {
|
|
491
|
+
loadData();
|
|
492
|
+
};
|
|
462
493
|
var loadData = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
463
494
|
return __generator(this, function (_a) {
|
|
464
495
|
switch (_a.label) {
|
|
@@ -479,7 +510,7 @@ var XLazyDataTable = function (props) {
|
|
|
479
510
|
return {
|
|
480
511
|
resultType: FindParam_1.ResultType.RowCountAndPagedRows,
|
|
481
512
|
first: first,
|
|
482
|
-
rows:
|
|
513
|
+
rows: rowsLocal,
|
|
483
514
|
filters: filters,
|
|
484
515
|
fullTextSearch: createXFullTextSearch(ftsInputValue),
|
|
485
516
|
customFilterItems: createXCustomFilterItems(customFilterItems, optionalCustomFilter),
|
|
@@ -720,51 +751,76 @@ var XLazyDataTable = function (props) {
|
|
|
720
751
|
onRowDoubleClickBase(event.data);
|
|
721
752
|
};
|
|
722
753
|
var onRowDoubleClickBase = function (row) {
|
|
723
|
-
if (props.
|
|
724
|
-
|
|
754
|
+
if (props.searchBrowseParams === undefined) {
|
|
755
|
+
editRow(row);
|
|
725
756
|
}
|
|
726
|
-
else
|
|
757
|
+
else {
|
|
727
758
|
props.searchBrowseParams.onChoose(row);
|
|
728
759
|
}
|
|
729
760
|
};
|
|
730
761
|
var onClickAddRow = function () {
|
|
731
762
|
//console.log("zavolany onClickAddRow");
|
|
732
|
-
if (props.onAddRow
|
|
733
|
-
props.onAddRow();
|
|
763
|
+
if (typeof props.onAddRow === 'function') {
|
|
764
|
+
props.onAddRow(filters);
|
|
765
|
+
}
|
|
766
|
+
else if (props.editForm !== undefined && props.onAddRow !== false) {
|
|
767
|
+
setFormDialogState({
|
|
768
|
+
opened: true,
|
|
769
|
+
id: undefined,
|
|
770
|
+
initValues: {}
|
|
771
|
+
});
|
|
734
772
|
}
|
|
735
773
|
};
|
|
736
|
-
var
|
|
737
|
-
//console.log("zavolany
|
|
774
|
+
var onClickEditRow = function () {
|
|
775
|
+
//console.log("zavolany onClickEditRow");
|
|
738
776
|
if (selectedRow !== null) {
|
|
739
|
-
|
|
740
|
-
props.onEdit(selectedRow);
|
|
741
|
-
}
|
|
777
|
+
editRow(selectedRow);
|
|
742
778
|
}
|
|
743
779
|
else {
|
|
744
780
|
alert((0, XLocale_1.xLocaleOption)('pleaseSelectRow'));
|
|
745
781
|
}
|
|
746
782
|
};
|
|
783
|
+
var editRow = function (row) {
|
|
784
|
+
if (typeof props.onEdit === 'function') {
|
|
785
|
+
props.onEdit(row);
|
|
786
|
+
}
|
|
787
|
+
else if (props.editForm !== undefined && props.onEdit !== false) {
|
|
788
|
+
setFormDialogState({
|
|
789
|
+
opened: true,
|
|
790
|
+
id: row[dataKey],
|
|
791
|
+
initValues: undefined
|
|
792
|
+
});
|
|
793
|
+
}
|
|
794
|
+
};
|
|
795
|
+
var editRowOnSaveOrCancel = function (object, objectChange) {
|
|
796
|
+
if (object !== null) {
|
|
797
|
+
// save was pressed, reread from DB
|
|
798
|
+
loadData();
|
|
799
|
+
}
|
|
800
|
+
// if object === null, then cancel was pressed, we do nothing, we just close the dialog
|
|
801
|
+
setFormDialogState({ opened: false });
|
|
802
|
+
};
|
|
747
803
|
var onClickRemoveRow = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
748
|
-
var
|
|
804
|
+
var reread_1, e_9, e_10;
|
|
749
805
|
return __generator(this, function (_a) {
|
|
750
806
|
switch (_a.label) {
|
|
751
807
|
case 0:
|
|
752
808
|
if (!(selectedRow !== null)) return [3 /*break*/, 11];
|
|
753
809
|
if (!(props.removeRow instanceof Function)) return [3 /*break*/, 5];
|
|
754
|
-
|
|
810
|
+
reread_1 = true;
|
|
755
811
|
_a.label = 1;
|
|
756
812
|
case 1:
|
|
757
813
|
_a.trys.push([1, 3, , 4]);
|
|
758
814
|
return [4 /*yield*/, props.removeRow(selectedRow)];
|
|
759
815
|
case 2:
|
|
760
|
-
|
|
816
|
+
reread_1 = _a.sent();
|
|
761
817
|
return [3 /*break*/, 4];
|
|
762
818
|
case 3:
|
|
763
819
|
e_9 = _a.sent();
|
|
764
820
|
XUtils_1.XUtils.showErrorMessage((0, XLocale_1.xLocaleOption)('removeRowFailed'), e_9);
|
|
765
821
|
return [3 /*break*/, 4];
|
|
766
822
|
case 4:
|
|
767
|
-
if (
|
|
823
|
+
if (reread_1) {
|
|
768
824
|
loadData();
|
|
769
825
|
if (props.onRemoveRow) {
|
|
770
826
|
props.onRemoveRow(selectedRow, XUtils_1.OperationType.Remove);
|
|
@@ -817,7 +873,7 @@ var XLazyDataTable = function (props) {
|
|
|
817
873
|
findParam = {
|
|
818
874
|
resultType: FindParam_1.ResultType.OnlyRowCount,
|
|
819
875
|
first: first,
|
|
820
|
-
rows:
|
|
876
|
+
rows: rowsLocal,
|
|
821
877
|
filters: filtersAfterFiltering,
|
|
822
878
|
fullTextSearch: createXFullTextSearch(ftsInputValueAfterFiltering),
|
|
823
879
|
customFilterItems: createXCustomFilterItems(customFilterItems, optionalCustomFilterAfterFiltering),
|
|
@@ -882,13 +938,14 @@ var XLazyDataTable = function (props) {
|
|
|
882
938
|
// ****** vseobecne metodky pre set/get do/z filtra ********
|
|
883
939
|
// zatial funguje len pre simple filtrovanie (filterDisplay="row")
|
|
884
940
|
// vseobecna specialna metodka pouzvana pri custom filtri (XLazyColumn.filterElement)
|
|
885
|
-
|
|
941
|
+
// nepodarilo sa posunut autoFilter takym sposobom aby app programmer nemusel autoFilter nastavovat
|
|
942
|
+
var setFilterItem = function (field, filterItem, autoFilter) {
|
|
886
943
|
filters[field] = filterItem;
|
|
887
944
|
// neskusal som, ci treba aj toto klonovat ale pravdepodobne hej
|
|
888
945
|
var filtersCloned = __assign({}, filters);
|
|
889
946
|
setFilters(filtersCloned);
|
|
890
947
|
removePagingFromStorage();
|
|
891
|
-
loadDataBaseIfAutoFilter(filtersCloned,
|
|
948
|
+
loadDataBaseIfAutoFilter(filtersCloned, autoFilter);
|
|
892
949
|
};
|
|
893
950
|
// vseobecna specialna metodka pouzvana pri custom filtri (XLazyColumn.filterElement)
|
|
894
951
|
var getFilterItem = function (field) {
|
|
@@ -1036,19 +1093,19 @@ var XLazyDataTable = function (props) {
|
|
|
1036
1093
|
};
|
|
1037
1094
|
// ak mame scrollWidth/scrollHeight = viewport (default), vyratame scrollWidth/scrollHeight tak aby tabulka "sadla" do okna (viewport-u)
|
|
1038
1095
|
var isMobile = XUtils_1.XUtils.isMobile();
|
|
1039
|
-
var
|
|
1040
|
-
var
|
|
1096
|
+
var scrollWidthLocal = undefined; // vypnute horizontalne scrollovanie
|
|
1097
|
+
var scrollHeightLocal = undefined; // vypnute vertikalne scrollovanie
|
|
1041
1098
|
if (props.scrollable) {
|
|
1042
1099
|
if (props.scrollWidth !== "none") {
|
|
1043
|
-
|
|
1044
|
-
if (
|
|
1045
|
-
|
|
1100
|
+
scrollWidthLocal = props.scrollWidth;
|
|
1101
|
+
if (scrollWidthLocal === "viewport") {
|
|
1102
|
+
scrollWidthLocal = "calc(100vw - ".concat(isMobile ? 1 : 2.2, "rem)"); // desktop - povodne bolo 1.4rem (20px okraje) namiesto 2.2 ale pri vela stlpcoch vznikal horizontalny scrollbar
|
|
1046
1103
|
// mobil - padding 0.5rem body element
|
|
1047
1104
|
}
|
|
1048
1105
|
}
|
|
1049
1106
|
if (props.scrollHeight !== "none") {
|
|
1050
|
-
|
|
1051
|
-
if (
|
|
1107
|
+
scrollHeightLocal = props.scrollHeight;
|
|
1108
|
+
if (scrollHeightLocal === "viewport") {
|
|
1052
1109
|
// vypocet je priblizny, robeny na mobil, desktop bude mat mozno iny
|
|
1053
1110
|
//const headerHeight = XUtils.toPX0('12.7rem');
|
|
1054
1111
|
//let footerHeight = XUtils.toPX0('3.7rem') + XUtils.toPX0('3rem'); // table footer (paging) + buttons Add row, Edit, ...
|
|
@@ -1085,13 +1142,13 @@ var XLazyDataTable = function (props) {
|
|
|
1085
1142
|
if (props.formFooterHeight !== undefined) {
|
|
1086
1143
|
headerFooterHeight += XUtils_1.XUtils.toPX0(XUtils_1.XUtils.processGridBreakpoints(props.formFooterHeight));
|
|
1087
1144
|
}
|
|
1088
|
-
|
|
1145
|
+
scrollHeightLocal = "calc(".concat(viewHeight, " - ").concat(headerFooterHeight, "px)");
|
|
1089
1146
|
}
|
|
1090
1147
|
}
|
|
1091
1148
|
}
|
|
1092
1149
|
var style = {};
|
|
1093
|
-
if (
|
|
1094
|
-
style.width =
|
|
1150
|
+
if (scrollWidthLocal !== undefined) {
|
|
1151
|
+
style.width = scrollWidthLocal;
|
|
1095
1152
|
}
|
|
1096
1153
|
if (props.shrinkWidth) {
|
|
1097
1154
|
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
|
|
@@ -1153,6 +1210,7 @@ var XLazyDataTable = function (props) {
|
|
|
1153
1210
|
}
|
|
1154
1211
|
// pre lepsiu citatelnost vytvarame stlpce uz tu
|
|
1155
1212
|
var columnElemList = react_1.default.Children.map(props.children.filter(function (child) { return XUtils_1.XUtils.xViewStatus(child.props.columnViewStatus) !== XUtils_1.XViewStatus.Hidden; }), function (child) {
|
|
1213
|
+
var _a, _b;
|
|
1156
1214
|
// ak chceme zmenit child element, tak treba bud vytvorit novy alebo vyklonovat
|
|
1157
1215
|
// priklad je na https://soshace.com/building-react-components-using-children-props-and-context-api/
|
|
1158
1216
|
// (vzdy musime robit manipulacie so stlpcom, lebo potrebujeme pridat filter={true} sortable={true}
|
|
@@ -1177,92 +1235,107 @@ var XLazyDataTable = function (props) {
|
|
|
1177
1235
|
}
|
|
1178
1236
|
// *********** filterElement ***********
|
|
1179
1237
|
var betweenFilter = undefined;
|
|
1180
|
-
var filterElement;
|
|
1238
|
+
var filterElement = null;
|
|
1181
1239
|
if (childColumn.props.filterElement !== undefined) {
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1240
|
+
// if we use matchModeLabel and this special match mode is chosen then we use custom filter element
|
|
1241
|
+
// if we don't use matchModeLabel (undefined) then we use custom filter element always
|
|
1242
|
+
if ((childColumn.props.filterElement.matchModeLabel && getFilterMatchMode(childColumn.props.field) === FindParam_1.XFilterMatchMode.X_FILTER_ELEMENT)
|
|
1243
|
+
|| childColumn.props.filterElement.matchModeLabel === undefined) {
|
|
1244
|
+
filterElement = function (options) {
|
|
1245
|
+
// compilator sa stazoval ze childColumn.props.filterElement moze byt undefined, preto som pridal "!"
|
|
1246
|
+
return childColumn.props.filterElement.element({ getFilterItem: getFilterItem, setFilterItem: setFilterItem, options: options, autoFilter: childColumn.props.autoFilter });
|
|
1247
|
+
};
|
|
1248
|
+
}
|
|
1186
1249
|
}
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
if (autoComplete
|
|
1194
|
-
|
|
1250
|
+
if (filterElement === null) {
|
|
1251
|
+
if (getFilterMatchMode(childColumn.props.field) === FindParam_1.XFilterMatchMode.X_AUTO_COMPLETE) {
|
|
1252
|
+
var assocField_1 = undefined; // path to manyToOne assoc
|
|
1253
|
+
var displayField = undefined; // field/fields displayed in autocomplete (can be path)
|
|
1254
|
+
// if childColumn.props.autoComplete = true, then autoComplete = undefined and default autocomplete is created
|
|
1255
|
+
var autoComplete = (typeof childColumn.props.autoComplete === 'object' ? childColumn.props.autoComplete : undefined);
|
|
1256
|
+
if (autoComplete) {
|
|
1257
|
+
if (autoComplete.field) {
|
|
1258
|
+
displayField = autoComplete.field;
|
|
1259
|
+
}
|
|
1260
|
+
if (autoComplete.assocField) {
|
|
1261
|
+
// check - autoComplete.assocField must be prefix (part) of childColumn.props.field
|
|
1262
|
+
if (!childColumn.props.field.startsWith(autoComplete.assocField + ".")) {
|
|
1263
|
+
throw "XLazyColumn with field \"".concat(childColumn.props.field, "\": autoComplete.assocField \"").concat(autoComplete.assocField, "\" is not prefix of the field");
|
|
1264
|
+
}
|
|
1265
|
+
assocField_1 = autoComplete.assocField;
|
|
1266
|
+
if (displayField === undefined) {
|
|
1267
|
+
// take displayField from childColumn.props.field (rest of the path)
|
|
1268
|
+
displayField = childColumn.props.field.substring(autoComplete.assocField.length + 1);
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1195
1271
|
}
|
|
1196
|
-
if (
|
|
1197
|
-
//
|
|
1198
|
-
|
|
1199
|
-
|
|
1272
|
+
if (assocField_1 === undefined) {
|
|
1273
|
+
// default - take assocField/displayField from childColumn.props.field
|
|
1274
|
+
var _c = __read(XUtilsCommon_1.XUtilsCommon.getPathToAssocAndField(childColumn.props.field), 2), assocFieldTemp = _c[0], displayFieldTemp = _c[1];
|
|
1275
|
+
if (assocFieldTemp === null) {
|
|
1276
|
+
throw "XLazyColumn with field \"".concat(childColumn.props.field, "\": unexpected error - path of length >= 2 expected");
|
|
1200
1277
|
}
|
|
1201
|
-
assocField_1 =
|
|
1278
|
+
assocField_1 = assocFieldTemp;
|
|
1202
1279
|
if (displayField === undefined) {
|
|
1203
|
-
|
|
1204
|
-
displayField = childColumn.props.field.substring(autoComplete.assocField.length + 1);
|
|
1280
|
+
displayField = displayFieldTemp;
|
|
1205
1281
|
}
|
|
1206
1282
|
}
|
|
1283
|
+
var xAssoc = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOneByPath(xEntity, assocField_1);
|
|
1284
|
+
var object = getFilterValue(childColumn.props.field);
|
|
1285
|
+
filterElement = react_1.default.createElement(XAutoCompleteBase_1.XAutoCompleteBase, { value: object, onChange: function (object, objectChange) { return setFilterValue(childColumn.props.field, object, undefined, object !== null ? [{
|
|
1286
|
+
where: "[".concat(assocField_1, "] = ").concat(object['id']),
|
|
1287
|
+
params: {}
|
|
1288
|
+
}] : undefined, childColumn.props.autoFilter); }, error: undefined, onErrorChange: function (error) { }, idField: "id", field: displayField, itemTemplate: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.itemTemplate, inputClassName: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.inputClassName, suggestionsQuery: {
|
|
1289
|
+
entity: xAssoc.entityName,
|
|
1290
|
+
filter: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.filter,
|
|
1291
|
+
sortField: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.sortField,
|
|
1292
|
+
fields: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.fields
|
|
1293
|
+
}, searchBrowse: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.searchBrowse, valueForm: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.valueForm, addRowEnabled: false, width: "100%", scrollHeight: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.scrollHeight, suggestionsLoad: "lazy", lazyLoadMaxRows: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.lazyLoadMaxRows, minLength: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.minLength });
|
|
1207
1294
|
}
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
throw "XLazyColumn with field \"".concat(childColumn.props.field, "\": unexpected error - path of length >= 2 expected");
|
|
1213
|
-
}
|
|
1214
|
-
assocField_1 = assocFieldTemp;
|
|
1215
|
-
if (displayField === undefined) {
|
|
1216
|
-
displayField = displayFieldTemp;
|
|
1295
|
+
else {
|
|
1296
|
+
if (xField.type === "boolean") {
|
|
1297
|
+
var checkboxValue = getFilterValue(childColumn.props.field);
|
|
1298
|
+
filterElement = react_1.default.createElement(tristatecheckbox_1.TriStateCheckbox, { value: checkboxValue, onChange: function (e) { return setFilterValue(childColumn.props.field, e.value, api_1.FilterMatchMode.EQUALS, undefined, childColumn.props.autoFilter); } });
|
|
1217
1299
|
}
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
filterElement = react_1.default.createElement(XAutoCompleteBase_1.XAutoCompleteBase, { value: object, onChange: function (object, objectChange) { return setFilterValue(childColumn.props.field, object, undefined, object !== null ? [{ where: "[".concat(assocField_1, "] = ").concat(object['id']), params: {} }] : undefined, childColumn.props.autoFilter); }, error: undefined, onErrorChange: function (error) { }, idField: "id", field: displayField, suggestionsQuery: { entity: xAssoc.entityName, filter: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.filter, sortField: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.sortField }, searchBrowse: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.searchBrowse, valueForm: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.valueForm, addRowEnabled: false, width: "100%", scrollHeight: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.scrollHeight, suggestionsLoad: "lazy", lazyLoadMaxRows: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.lazyLoadMaxRows, minLength: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.minLength });
|
|
1222
|
-
}
|
|
1223
|
-
else {
|
|
1224
|
-
if (xField.type === "boolean") {
|
|
1225
|
-
var checkboxValue = getFilterValue(childColumn.props.field);
|
|
1226
|
-
filterElement = react_1.default.createElement(tristatecheckbox_1.TriStateCheckbox, { value: checkboxValue, onChange: function (e) { return setFilterValue(childColumn.props.field, e.value, api_1.FilterMatchMode.EQUALS, undefined, childColumn.props.autoFilter); } });
|
|
1227
|
-
}
|
|
1228
|
-
else if (childColumn.props.dropdownInFilter) {
|
|
1229
|
-
var dropdownValue = getDropdownFilterValue(childColumn.props.field);
|
|
1230
|
-
filterElement = react_1.default.createElement(XDropdownDTFilter_1.XDropdownDTFilter, { entity: props.entity, path: childColumn.props.field, value: dropdownValue, onValueChange: function (field, displayValue) { return onDropdownFilterChange(field, displayValue, childColumn.props.autoFilter); }, filter: childColumn.props.dropdownFilter, sortField: childColumn.props.dropdownSortField });
|
|
1231
|
-
}
|
|
1232
|
-
else if (xField.type === "string") {
|
|
1233
|
-
var stringValue = getFilterValue(childColumn.props.field);
|
|
1234
|
-
filterElement = react_1.default.createElement(XInputTextBase_1.XInputTextBase, { value: stringValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); } });
|
|
1235
|
-
}
|
|
1236
|
-
else if (xField.type === "date" || xField.type === "datetime") {
|
|
1237
|
-
betweenFilter = getBetweenFilter(childColumn.props.betweenFilter, props.betweenFilter);
|
|
1238
|
-
if (betweenFilter !== undefined) {
|
|
1239
|
-
// display: 'flex' umiestni XCalendar elementy vedla seba
|
|
1240
|
-
filterElement =
|
|
1241
|
-
react_1.default.createElement("div", { style: betweenFilter === "row" ? { display: 'flex' } : undefined },
|
|
1242
|
-
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }),
|
|
1243
|
-
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }));
|
|
1300
|
+
else if (childColumn.props.dropdownInFilter) {
|
|
1301
|
+
var dropdownValue = getDropdownFilterValue(childColumn.props.field);
|
|
1302
|
+
filterElement = react_1.default.createElement(XDropdownDTFilter_1.XDropdownDTFilter, { entity: props.entity, path: childColumn.props.field, value: dropdownValue, onValueChange: function (field, displayValue) { return onDropdownFilterChange(field, displayValue, childColumn.props.autoFilter); }, filter: childColumn.props.dropdownFilter, sortField: childColumn.props.dropdownSortField });
|
|
1244
1303
|
}
|
|
1245
|
-
else {
|
|
1246
|
-
var
|
|
1247
|
-
filterElement = react_1.default.createElement(
|
|
1304
|
+
else if (xField.type === "string") {
|
|
1305
|
+
var stringValue = getFilterValue(childColumn.props.field);
|
|
1306
|
+
filterElement = react_1.default.createElement(XInputTextBase_1.XInputTextBase, { value: stringValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); } });
|
|
1248
1307
|
}
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1308
|
+
else if (xField.type === "date" || xField.type === "datetime") {
|
|
1309
|
+
betweenFilter = getBetweenFilter(childColumn.props.betweenFilter, props.betweenFilter);
|
|
1310
|
+
if (betweenFilter !== undefined) {
|
|
1311
|
+
// display: 'flex' umiestni XCalendar elementy vedla seba
|
|
1312
|
+
filterElement =
|
|
1313
|
+
react_1.default.createElement("div", { style: betweenFilter === "row" ? { display: 'flex' } : undefined },
|
|
1314
|
+
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }),
|
|
1315
|
+
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }));
|
|
1316
|
+
}
|
|
1317
|
+
else {
|
|
1318
|
+
var dateValue = getFilterValue(childColumn.props.field);
|
|
1319
|
+
filterElement = react_1.default.createElement(XCalendar_1.XCalendar, { value: dateValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" });
|
|
1320
|
+
}
|
|
1259
1321
|
}
|
|
1260
|
-
else {
|
|
1261
|
-
var
|
|
1262
|
-
|
|
1322
|
+
else if (xField.type === "decimal" || xField.type === "number") {
|
|
1323
|
+
var params = XUtilsMetadata_1.XUtilsMetadata.getParamsForInputNumber(xField);
|
|
1324
|
+
betweenFilter = getBetweenFilter(childColumn.props.betweenFilter, props.betweenFilter);
|
|
1325
|
+
if (betweenFilter !== undefined) {
|
|
1326
|
+
// display: 'flex' umiestni input elementy pod seba (betweenFilter = "column") resp. vedla seba (betweenFilter = "row")
|
|
1327
|
+
filterElement =
|
|
1328
|
+
react_1.default.createElement("div", { style: { display: 'flex', flexDirection: betweenFilter } },
|
|
1329
|
+
react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value, childColumn.props.autoFilter); } }, params)),
|
|
1330
|
+
react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value, childColumn.props.autoFilter); } }, params)));
|
|
1331
|
+
}
|
|
1332
|
+
else {
|
|
1333
|
+
var numberValue = getFilterValue(childColumn.props.field);
|
|
1334
|
+
filterElement = react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: numberValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); } }, params));
|
|
1335
|
+
}
|
|
1263
1336
|
}
|
|
1264
1337
|
}
|
|
1265
|
-
}
|
|
1338
|
+
} // if (filterElement === null)
|
|
1266
1339
|
// ************** dataType **************
|
|
1267
1340
|
// depending on the dataType of the column, suitable match modes are displayed in filter
|
|
1268
1341
|
var dataType = "text";
|
|
@@ -1296,6 +1369,9 @@ var XLazyDataTable = function (props) {
|
|
|
1296
1369
|
if (isAutoCompleteInFilterEnabled(childColumn.props)) {
|
|
1297
1370
|
filterMatchModeOptions.push({ label: (0, XLocale_1.xLocaleOption)('xAutoComplete'), value: FindParam_1.XFilterMatchMode.X_AUTO_COMPLETE });
|
|
1298
1371
|
}
|
|
1372
|
+
if ((_a = childColumn.props.filterElement) === null || _a === void 0 ? void 0 : _a.matchModeLabel) {
|
|
1373
|
+
filterMatchModeOptions.push({ label: (_b = childColumn.props.filterElement) === null || _b === void 0 ? void 0 : _b.matchModeLabel, value: FindParam_1.XFilterMatchMode.X_FILTER_ELEMENT });
|
|
1374
|
+
}
|
|
1299
1375
|
}
|
|
1300
1376
|
// *********** showClearButton ***********
|
|
1301
1377
|
// pre filterDisplay = "row" nechceme clear button, chceme setrit miesto
|
|
@@ -1364,37 +1440,23 @@ var XLazyDataTable = function (props) {
|
|
|
1364
1440
|
setMultilineSwitchValue(switchValue);
|
|
1365
1441
|
setupExpandedRows(value, switchValue);
|
|
1366
1442
|
}, className: "m-1" }) : null,
|
|
1367
|
-
props.
|
|
1443
|
+
props.headerBodyRight,
|
|
1368
1444
|
props.label && !isMobile ? react_1.default.createElement("div", { className: "x-lazy-datatable-label-right-compensation" }) : null),
|
|
1369
1445
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
1370
|
-
react_1.default.createElement(datatable_1.DataTable, { value: value.rowList, dataKey: dataKey, expandedRows: expandedRows, rowExpansionTemplate: props.rowExpansionTemplate ? rowExpansionTemplate : undefined, paginator: props.paginator, pageLinkSize: pageLinkSize, rows:
|
|
1446
|
+
react_1.default.createElement(datatable_1.DataTable, { value: value.rowList, dataKey: dataKey, expandedRows: expandedRows, rowExpansionTemplate: props.rowExpansionTemplate ? rowExpansionTemplate : undefined, paginator: props.paginator, pageLinkSize: pageLinkSize, rows: rowsLocal, totalRecords: value.totalRecords, lazy: true, first: first, onPage: onPage, loading: loading, filterDisplay: props.filterDisplay, filters: filters, onFilter: onFilter, sortMode: "multiple", removableSort: true, multiSortMeta: multiSortMeta, onSort: onSort, selectionMode: "single", selection: selectedRow, onSelectionChange: onSelectionChange, onRowDoubleClick: onRowDoubleClick, rowClassName: props.rowClassName, ref: dataTableEl, className: "p-datatable-sm x-lazy-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, paginatorLeft: paginatorLeft, paginatorRight: paginatorRight, scrollable: props.scrollable, scrollHeight: scrollHeightLocal, style: style }, columnElemList)),
|
|
1371
1447
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
1372
|
-
props.onAddRow !== undefined && props.searchBrowseParams === undefined ? react_1.default.createElement(XButton_1.XButton, { key: "addRow", icon: "pi pi-plus", label: (0, XLocale_1.xLocaleOption)('addRow'), onClick: onClickAddRow }) : null,
|
|
1373
|
-
props.onEdit !== undefined && props.searchBrowseParams === undefined ? react_1.default.createElement(XButton_1.XButton, { key: "editRow", icon: "pi pi-pencil", label: (0, XLocale_1.xLocaleOption)('editRow'), onClick:
|
|
1374
|
-
props.removeRow !==
|
|
1448
|
+
(props.onAddRow !== false && (props.editForm !== undefined || props.onAddRow !== undefined)) && props.searchBrowseParams === undefined ? react_1.default.createElement(XButton_1.XButton, { key: "addRow", icon: "pi pi-plus", label: (0, XLocale_1.xLocaleOption)('addRow'), onClick: onClickAddRow }) : null,
|
|
1449
|
+
(props.onEdit !== false && (props.editForm !== undefined || props.onEdit !== undefined)) && props.searchBrowseParams === undefined ? react_1.default.createElement(XButton_1.XButton, { key: "editRow", icon: "pi pi-pencil", label: (0, XLocale_1.xLocaleOption)('editRow'), onClick: onClickEditRow }) : null,
|
|
1450
|
+
(props.removeRow !== false && (props.removeRow !== undefined)) && props.searchBrowseParams === undefined ? react_1.default.createElement(XButton_1.XButton, { key: "removeRow", icon: "pi pi-times", label: (0, XLocale_1.xLocaleOption)('removeRow'), onClick: onClickRemoveRow }) : null,
|
|
1375
1451
|
exportRows ? react_1.default.createElement(XButton_1.XButton, { key: "exportRows", icon: "pi pi-file-export", label: (0, XLocale_1.xLocaleOption)('exportRows'), onClick: onClickExport }) : null,
|
|
1376
|
-
props.
|
|
1377
|
-
props.
|
|
1452
|
+
props.docTemplates && !isMobile && props.searchBrowseParams === undefined ? react_1.default.createElement(XDocTemplateButton_1.XDocTemplateButton, { key: "docTemplates", entity: props.entity, rowId: selectedRow ? selectedRow[dataKey] : undefined, docTemplates: typeof props.docTemplates === 'function' ? props.docTemplates : undefined }) : null,
|
|
1453
|
+
props.appButtonsForRow && props.searchBrowseParams === undefined ? props.appButtonsForRow.map(function (xAppButton) { return react_1.default.createElement(XButton_1.XButton, { key: xAppButton.key, icon: xAppButton.icon, label: xAppButton.label, onClick: function () { return onClickAppButtonForRow(xAppButton.onClick); }, style: xAppButton.style }); }) : null,
|
|
1454
|
+
props.appButtons && props.searchBrowseParams === undefined,
|
|
1378
1455
|
props.searchBrowseParams !== undefined ? react_1.default.createElement(XButton_1.XButton, { key: "choose", label: (0, XLocale_1.xLocaleOption)('chooseRow'), onClick: onClickChoose }) : null,
|
|
1456
|
+
props.editForm != undefined ? react_1.default.createElement(XFormDialog_1.XFormDialog, { key: "formDialog", dialogState: formDialogState, form: props.editForm, onSaveOrCancel: editRowOnSaveOrCancel }) : null,
|
|
1379
1457
|
exportRows ? react_1.default.createElement(XExportRowsDialog_1.XExportRowsDialog, { key: "exportRowsDialog", dialogState: exportRowsDialogState, hideDialog: function () { return setExportRowsDialogState({ dialogOpened: false }); } }) : null),
|
|
1380
1458
|
hasContentTypeHtml() ? react_1.default.createElement(editor_1.Editor, { style: { display: 'none' }, showHeader: false }) : null /* we want to import css if needed (<style type="text/css" data-primereact-style-id="editor">) */));
|
|
1381
|
-
};
|
|
1382
|
-
exports.XLazyDataTable = XLazyDataTable;
|
|
1383
|
-
exports.XLazyDataTable.defaultProps = {
|
|
1384
|
-
paginator: true,
|
|
1385
|
-
rows: 10,
|
|
1386
|
-
filterDisplay: "row",
|
|
1387
|
-
autoFilter: false,
|
|
1388
|
-
showFilterButtons: true,
|
|
1389
|
-
fullTextSearch: true,
|
|
1390
|
-
multilineSwitch: false,
|
|
1391
|
-
multilineSwitchInitValue: "allLines",
|
|
1392
|
-
multilineSwitchFewLinesCount: 2,
|
|
1393
|
-
scrollable: true,
|
|
1394
|
-
scrollWidth: 'viewport',
|
|
1395
|
-
scrollHeight: 'viewport',
|
|
1396
|
-
shrinkWidth: true
|
|
1397
|
-
};
|
|
1459
|
+
});
|
|
1398
1460
|
// TODO - XLazyColumn neni idealny nazov, lepsi je XColumn (ale zatial nechame XLazyColumn)
|
|
1399
1461
|
var XLazyColumn = function (props) {
|
|
1400
1462
|
// nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
|
|
@@ -73,6 +73,7 @@ export declare class XUtils {
|
|
|
73
73
|
static fetch(path: string, value: any, usePublicToken?: boolean | XToken): Promise<any>;
|
|
74
74
|
static post(path: string, value: any): Promise<Response>;
|
|
75
75
|
static openExcelReport(apiPath: string, requestPayload: any, fileName?: string): Promise<boolean>;
|
|
76
|
+
static downloadFile(apiPath: string, requestPayload: any, fileName: string): Promise<boolean>;
|
|
76
77
|
static fetchBasicJson(path: string, value: any, usePublicToken?: boolean | XToken): Promise<Response>;
|
|
77
78
|
static fetchFile(path: string, jsonFieldValue: any, fileToPost: any): Promise<any>;
|
|
78
79
|
static fetchBasicAuthBasic(path: string, headers: any, body: any, usePublicToken?: boolean | XToken): Promise<Response>;
|