@michalrakus/x-react-web-lib 0.24.0 → 1.0.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.
Files changed (54) hide show
  1. package/XEnvVars.d.ts +3 -0
  2. package/XEnvVars.js +5 -0
  3. package/gulpfile.js +1 -0
  4. package/lib/administration/XBrowseMetaBrowse.js +1 -2
  5. package/lib/administration/XBrowseMetaForm.js +10 -11
  6. package/lib/administration/XUserBrowse.js +5 -5
  7. package/lib/administration/XUserForm.js +39 -29
  8. package/lib/components/SourceCodeLinkEntity.js +1 -2
  9. package/lib/components/XAutoComplete.js +1 -3
  10. package/lib/components/XAutoCompleteBase.js +6 -9
  11. package/lib/components/XBrowse.js +2 -4
  12. package/lib/components/XButton.js +1 -2
  13. package/lib/components/XButtonIconSmall.js +1 -2
  14. package/lib/components/XChangePasswordForm.js +2 -3
  15. package/lib/components/XCheckbox.d.ts +1 -0
  16. package/lib/components/XCheckbox.js +4 -4
  17. package/lib/components/XCheckboxDT.js +1 -2
  18. package/lib/components/XDataTable.js +3 -5
  19. package/lib/components/XDropdown.js +3 -4
  20. package/lib/components/XDropdownDT.js +2 -3
  21. package/lib/components/XDropdownDTFilter.js +2 -3
  22. package/lib/components/XDropdownFormDTFilter.js +2 -3
  23. package/lib/components/XEditColumnDialog.js +2 -3
  24. package/lib/components/XEnvVars.d.ts +12 -0
  25. package/lib/components/XEnvVars.js +20 -0
  26. package/lib/components/XExportRowsDialog.js +11 -9
  27. package/lib/components/XFieldSelector.js +2 -3
  28. package/lib/components/XFormBase.js +1 -3
  29. package/lib/components/XFormBaseT.js +1 -3
  30. package/lib/components/XFormComponent.js +1 -3
  31. package/lib/components/XFormDataTable2.js +16 -17
  32. package/lib/components/XFormFooter.js +1 -2
  33. package/lib/components/XFormNavigator3.js +21 -11
  34. package/lib/components/XHolders.js +2 -4
  35. package/lib/components/XInputDate.js +1 -2
  36. package/lib/components/XInputDateDT.js +1 -2
  37. package/lib/components/XInputDecimal.js +1 -2
  38. package/lib/components/XInputDecimalDT.js +1 -2
  39. package/lib/components/XInputText.js +1 -3
  40. package/lib/components/XInputTextDT.js +1 -2
  41. package/lib/components/XLazyDataTable.d.ts +8 -3
  42. package/lib/components/XLazyDataTable.js +62 -33
  43. package/lib/components/XLoginDialog.js +1 -2
  44. package/lib/components/XLoginForm.js +4 -5
  45. package/lib/components/XResponseError.js +1 -3
  46. package/lib/components/XSearchButton.js +1 -3
  47. package/lib/components/XSearchButtonDT.js +2 -3
  48. package/lib/components/XSearchButtonOld.js +2 -3
  49. package/lib/components/XToOneAssocButton.js +1 -2
  50. package/lib/components/XToken.d.ts +4 -3
  51. package/lib/components/XUtils.d.ts +10 -3
  52. package/lib/components/XUtils.js +61 -13
  53. package/lib/serverApi/XUser.d.ts +1 -0
  54. package/package.json +14 -11
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
14
  var __importStar = (this && this.__importStar) || function (mod) {
15
15
  if (mod && mod.__esModule) return mod;
16
16
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
@@ -44,11 +44,13 @@ var dropdown_1 = require("primereact/dropdown");
44
44
  var checkbox_1 = require("primereact/checkbox");
45
45
  var XButton_1 = require("./XButton");
46
46
  var XUtils_1 = require("./XUtils");
47
- var XExportRowsDialog = function (props) {
48
- var _a = __read(react_1.useState(ExportImportParam_1.ExportType.Csv), 2), exportType = _a[0], setExportType = _a[1];
49
- var _b = __read(react_1.useState(false), 2), createHeaderLine = _b[0], setCreateHeaderLine = _b[1];
50
- var _c = __read(react_1.useState(ExportImportParam_1.CsvSeparator.Semicolon), 2), csvSeparator = _c[0], setCsvSeparator = _c[1];
51
- var _d = __read(react_1.useState(ExportImportParam_1.CsvDecimalFormat.Comma), 2), decimalFormat = _d[0], setDecimalFormat = _d[1];
47
+ var XUtilsConversions_1 = require("./XUtilsConversions");
48
+ exports.XExportRowsDialog = function (props) {
49
+ var _a;
50
+ var _b = __read(react_1.useState(ExportImportParam_1.ExportType.Csv), 2), exportType = _b[0], setExportType = _b[1];
51
+ var _c = __read(react_1.useState(false), 2), createHeaderLine = _c[0], setCreateHeaderLine = _c[1];
52
+ var _d = __read(react_1.useState(ExportImportParam_1.CsvSeparator.Semicolon), 2), csvSeparator = _d[0], setCsvSeparator = _d[1];
53
+ var _e = __read(react_1.useState(ExportImportParam_1.CsvDecimalFormat.Comma), 2), decimalFormat = _e[0], setDecimalFormat = _e[1];
52
54
  // bez tejto metody by pri opetovnom otvoreni dialogu ponechal povodne hodnoty
53
55
  var onShow = function () {
54
56
  setExportType(ExportImportParam_1.ExportType.Csv);
@@ -79,11 +81,11 @@ var XExportRowsDialog = function (props) {
79
81
  return (react_1.default.createElement(dialog_1.Dialog, { visible: props.dialogOpened, onShow: onShow, onHide: function () { return props.onHideDialog(false, undefined, undefined); } },
80
82
  react_1.default.createElement("div", { className: "field grid" },
81
83
  react_1.default.createElement("label", { className: "col-fixed", style: { width: '9.3rem' } }, "Row count"),
82
- react_1.default.createElement(inputtext_1.InputText, { value: props.rowCount, readOnly: true })),
84
+ react_1.default.createElement(inputtext_1.InputText, { value: XUtilsConversions_1.numberAsUI((_a = props.rowCount) !== null && _a !== void 0 ? _a : null), readOnly: true })),
83
85
  react_1.default.createElement("div", { className: "field grid" },
84
86
  react_1.default.createElement("label", { className: "col-fixed", style: { width: '9.3rem' } }, "Export type"),
85
87
  react_1.default.createElement(dropdown_1.Dropdown, { value: exportType, options: XUtils_1.XUtils.exportTypeOptions, onChange: function (e) { return setExportType(e.value); } })),
86
88
  elem,
87
- react_1.default.createElement(XButton_1.XButton, { label: "Export", onClick: onExport })));
89
+ react_1.default.createElement("div", { className: "flex justify-content-center" },
90
+ react_1.default.createElement(XButton_1.XButton, { label: "Export", onClick: onExport }))));
88
91
  };
89
- exports.XExportRowsDialog = XExportRowsDialog;
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
14
  var __importStar = (this && this.__importStar) || function (mod) {
15
15
  if (mod && mod.__esModule) return mod;
16
16
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
@@ -51,7 +51,7 @@ var react_1 = __importStar(require("react"));
51
51
  var treetable_1 = require("primereact/treetable");
52
52
  var column_1 = require("primereact/column");
53
53
  var XUtilsMetadata_1 = require("./XUtilsMetadata");
54
- var XFieldSelector = function (props) {
54
+ exports.XFieldSelector = function (props) {
55
55
  // poznamka: treeNodeList by sme mohli vypocitavat priamo, ale ked pouzijeme useState/useEffect tak sa createTreeNodeList zavola len raz pri vytvoreni komponentu
56
56
  var _a = __read(react_1.useState([]), 2), treeNodeList = _a[0], setTreeNodeList = _a[1];
57
57
  // parameter [] zabezpeci ze sa metoda zavola len po prvom renderingu (a nie po kazdej zmene stavu (zavolani setNieco()))
@@ -105,4 +105,3 @@ var XFieldSelector = function (props) {
105
105
  react_1.default.createElement(column_1.Column, { field: "name", header: "Field name", headerStyle: { width: "15.7rem" }, expander: true }),
106
106
  react_1.default.createElement(column_1.Column, { field: "type", header: "Type", headerStyle: { width: "9.3rem" } })));
107
107
  };
108
- exports.XFieldSelector = XFieldSelector;
@@ -3,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -3,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -3,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -3,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -40,7 +38,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
40
38
  var __importStar = (this && this.__importStar) || function (mod) {
41
39
  if (mod && mod.__esModule) return mod;
42
40
  var result = {};
43
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
41
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
44
42
  __setModuleDefault(result, mod);
45
43
  return result;
46
44
  };
@@ -305,11 +303,15 @@ var XFormDataTable2 = /** @class */ (function (_super) {
305
303
  var object = this.props.form.state.object;
306
304
  var valueList = object !== null ? object[this.props.assocField] : [];
307
305
  var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity());
308
- var scrollWidth;
309
- var scrollHeight;
306
+ var scrollWidth = undefined; // vypnute horizontalne scrollovanie
307
+ var scrollHeight = undefined; // vypnute vertikalne scrollovanie
310
308
  if (this.props.scrollable) {
311
- scrollWidth = this.props.scrollWidth;
312
- scrollHeight = this.props.scrollHeight;
309
+ if (this.props.scrollWidth !== "none") {
310
+ scrollWidth = this.props.scrollWidth;
311
+ }
312
+ if (this.props.scrollHeight !== "none") {
313
+ scrollHeight = this.props.scrollHeight;
314
+ }
313
315
  }
314
316
  var style = {};
315
317
  if (scrollWidth !== undefined) {
@@ -355,7 +357,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
355
357
  if (width === undefined || width === "default") {
356
358
  width = XUtilsMetadata_1.XUtilsMetadata.computeColumnWidth(xField, childColumnProps.type, header);
357
359
  }
358
- var headerStyle;
360
+ var headerStyle = {};
359
361
  if (width !== undefined) {
360
362
  headerStyle = { width: width };
361
363
  }
@@ -376,10 +378,10 @@ var XFormDataTable2 = /** @class */ (function (_super) {
376
378
  }
377
379
  // }
378
380
  // *********** style ***********
379
- var style;
381
+ var style = {};
380
382
  // TODO - pouzit className a nie style
381
383
  if (align === "center" || align === "right") {
382
- style = { 'textAlign': align };
384
+ style = { textAlign: align };
383
385
  headerStyle = __assign(__assign({}, headerStyle), style); // headerStyle overrides style in TH cell
384
386
  }
385
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); } });
@@ -403,27 +405,24 @@ var XFormDataTable2 = /** @class */ (function (_super) {
403
405
  return XFormDataTable2;
404
406
  }(react_1.Component));
405
407
  exports.XFormDataTable2 = XFormDataTable2;
406
- var XFormColumn = function (props) {
408
+ exports.XFormColumn = function (props) {
407
409
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
408
410
  return (null);
409
411
  };
410
- exports.XFormColumn = XFormColumn;
411
412
  exports.XFormColumn.defaultProps = {
412
413
  type: "inputSimple"
413
414
  };
414
- var XFormDropdownColumn = function (props) {
415
+ exports.XFormDropdownColumn = function (props) {
415
416
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
416
417
  return (null);
417
418
  };
418
- exports.XFormDropdownColumn = XFormDropdownColumn;
419
419
  exports.XFormDropdownColumn.defaultProps = {
420
420
  type: "dropdown"
421
421
  };
422
- var XFormSearchButtonColumn = function (props) {
422
+ exports.XFormSearchButtonColumn = function (props) {
423
423
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
424
424
  return (null);
425
425
  };
426
- exports.XFormSearchButtonColumn = XFormSearchButtonColumn;
427
426
  exports.XFormSearchButtonColumn.defaultProps = {
428
427
  type: "searchButton"
429
428
  };
@@ -7,9 +7,8 @@ exports.XFormFooter = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var XButton_1 = require("./XButton");
9
9
  // helper wrapper
10
- var XFormFooter = function (props) {
10
+ exports.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,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -29,7 +27,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
29
27
  var __importStar = (this && this.__importStar) || function (mod) {
30
28
  if (mod && mod.__esModule) return mod;
31
29
  var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
31
  __setModuleDefault(result, mod);
34
32
  return result;
35
33
  };
@@ -49,10 +47,9 @@ var __read = (this && this.__read) || function (o, n) {
49
47
  }
50
48
  return ar;
51
49
  };
52
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
53
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
54
- to[j] = from[i];
55
- return to;
50
+ var __spread = (this && this.__spread) || function () {
51
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
52
+ return ar;
56
53
  };
57
54
  Object.defineProperty(exports, "__esModule", { value: true });
58
55
  exports.XFormNavigator3 = void 0;
@@ -86,11 +83,23 @@ var XFormNavigator3 = /** @class */ (function (_super) {
86
83
  console.log("neocakavana chyba - pole formElements je prazdne");
87
84
  }
88
85
  }
89
- this.setState({ formElements: formElementsCloned });
86
+ this.setState({ formElements: formElementsCloned }, function () {
87
+ // ked sa na mobile preklikavame medzi formularmi, tak browser drzi nascrollovanu poziciu ale my sa chceme vratit na zaciatok stranky
88
+ // (tento callback sa zavola po refreshnuti stranky)
89
+ // taketo nieco nezafungovalo, neviem preco...
90
+ // setTimeout(function() {
91
+ // window.scrollTo(0,0);
92
+ // }, 100);
93
+ // tak scrollujeme k menu, ktore je v hornej casti
94
+ var menuElem = document.getElementById("menuId");
95
+ if (menuElem !== null) {
96
+ menuElem.scrollIntoView();
97
+ }
98
+ });
90
99
  };
91
100
  XFormNavigator3.prototype.render = function () {
92
101
  var _this = this;
93
- var formElements = this.props.rootFormElement !== null ? __spreadArray([this.props.rootFormElement], __read(this.state.formElements)) : this.state.formElements;
102
+ var formElements = this.props.rootFormElement !== null ? __spread([this.props.rootFormElement], this.state.formElements) : this.state.formElements;
94
103
  var forms = formElements.map(function (formElement, index) {
95
104
  var displayed = (index === formElements.length - 1);
96
105
  // klonovanim elementu pridame atribut openForm={this.openForm} (nemusime tento atribut pridavat pri vytvarani elementu)
@@ -100,7 +109,8 @@ var XFormNavigator3 = /** @class */ (function (_super) {
100
109
  var display = (displayed ? "block" : "none");
101
110
  // TODO - neviem ci naisto treba key={index}
102
111
  // max-width: 100% - koli chybe ked sa na mobile nezobrazovala lava cast tabulky/formularu (nedalo sa k nej doscrollovat)
103
- return react_1.default.createElement("div", { key: index, style: { display: display, maxWidth: "100%" } }, formElementCloned);
112
+ // poznamka2: tento problem sa vyskytoval v suvislosti s flex-direction: column na .App-form - ten sme zrusili a preto maxWidth (zatial) odstranujeme
113
+ return react_1.default.createElement("div", { key: index, style: { display: display /*, maxWidth: "100%"*/ } }, formElementCloned);
104
114
  });
105
115
  return (react_1.default.createElement("div", { className: "App-form" }, forms));
106
116
  };
@@ -5,11 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XHolder2 = exports.XHolder1 = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
- var XHolder1 = function (props) {
8
+ exports.XHolder1 = function (props) {
9
9
  return react_1.default.createElement("div", null, props.element);
10
10
  };
11
- exports.XHolder1 = XHolder1;
12
- var XHolder2 = function (props) {
11
+ exports.XHolder2 = function (props) {
13
12
  return react_1.default.createElement("div", null, props.element);
14
13
  };
15
- exports.XHolder2 = XHolder2;
@@ -10,7 +10,7 @@ var XUtilsConversions_1 = require("./XUtilsConversions");
10
10
  var XUtilsMetadata_1 = require("./XUtilsMetadata");
11
11
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
12
12
  var XUtils_1 = require("./XUtils");
13
- var XInputDate = function (props) {
13
+ exports.XInputDate = function (props) {
14
14
  var _a;
15
15
  props.form.addField(props.field);
16
16
  var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.form.getEntity(), props.field);
@@ -53,4 +53,3 @@ var XInputDate = function (props) {
53
53
  react_1.default.createElement("label", { htmlFor: props.field, className: "col-fixed", style: { width: XUtils_1.XUtils.FIELD_LABEL_WIDTH } }, label),
54
54
  react_1.default.createElement(calendar_1.Calendar, { id: props.field, value: fieldValue, onChange: onValueChange, disabled: readOnly, showIcon: true, dateFormat: XUtilsConversions_1.dateFormatCalendar(), showTime: showTime, showSeconds: showTime, inputClassName: cssClassName, showOnFocus: false })));
55
55
  };
56
- exports.XInputDate = XInputDate;
@@ -8,7 +8,7 @@ var XUtilsConversions_1 = require("./XUtilsConversions");
8
8
  var calendar_1 = require("primereact/calendar");
9
9
  var react_1 = __importDefault(require("react"));
10
10
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
11
- var XInputDateDT = function (props) {
11
+ exports.XInputDateDT = function (props) {
12
12
  var showTime = (props.xField.type === 'datetime');
13
13
  var cssClassName = showTime ? 'x-input-datetime' : 'x-input-date';
14
14
  // ak mame path, field je vzdy readOnly
@@ -52,4 +52,3 @@ var XInputDateDT = function (props) {
52
52
  // appendTo={document.body} appenduje overlay panel na element body - eliminuje problem s overflow (pozri poznamku v XDropdownDTFilter)
53
53
  return (react_1.default.createElement(calendar_1.Calendar, { appendTo: document.body, id: props.field, value: fieldValue, onChange: function (e) { return onValueChange(props.field, props.rowData, e.value); }, disabled: readOnly, showIcon: true, dateFormat: XUtilsConversions_1.dateFormatCalendar(), showTime: showTime, showSeconds: showTime, inputClassName: cssClassName, showOnFocus: false }));
54
54
  };
55
- exports.XInputDateDT = XInputDateDT;
@@ -9,7 +9,7 @@ var inputnumber_1 = require("primereact/inputnumber");
9
9
  var XUtilsMetadata_1 = require("./XUtilsMetadata");
10
10
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
11
11
  var XUtils_1 = require("./XUtils");
12
- var XInputDecimal = function (props) {
12
+ exports.XInputDecimal = function (props) {
13
13
  var _a, _b, _c;
14
14
  props.form.addField(props.field);
15
15
  var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.form.getEntity(), props.field);
@@ -58,4 +58,3 @@ var XInputDecimal = function (props) {
58
58
  react_1.default.createElement("label", { htmlFor: props.field, className: "col-fixed", style: labelStyle }, label),
59
59
  react_1.default.createElement(inputnumber_1.InputNumber, { id: props.field, value: fieldValue, onChange: onValueChange, disabled: readOnly, mode: "decimal", locale: "de-DE", useGrouping: useGrouping, minFractionDigits: fractionDigits, maxFractionDigits: fractionDigits, min: min, max: max, size: sizeInput, style: props.inputStyle })));
60
60
  };
61
- exports.XInputDecimal = XInputDecimal;
@@ -8,7 +8,7 @@ var react_1 = __importDefault(require("react"));
8
8
  var inputnumber_1 = require("primereact/inputnumber");
9
9
  var XUtilsMetadata_1 = require("./XUtilsMetadata");
10
10
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
11
- var XInputDecimalDT = function (props) {
11
+ exports.XInputDecimalDT = function (props) {
12
12
  var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.entity, props.field);
13
13
  var _a = XUtilsMetadata_1.XUtilsMetadata.getParamsForInputNumber(xField), useGrouping = _a.useGrouping, fractionDigits = _a.fractionDigits, min = _a.min, max = _a.max;
14
14
  // ak mame path, field je vzdy readOnly
@@ -49,4 +49,3 @@ var XInputDecimalDT = function (props) {
49
49
  }
50
50
  return (react_1.default.createElement(inputnumber_1.InputNumber, { id: props.field, value: fieldValue, onChange: function (e) { return onValueChange(props.field, props.rowData, e.value); }, disabled: readOnly, mode: "decimal", locale: "de-DE", useGrouping: useGrouping, minFractionDigits: fractionDigits, maxFractionDigits: fractionDigits, min: min, max: max, className: "x-input-to-resize" }));
51
51
  };
52
- exports.XInputDecimalDT = XInputDecimalDT;
@@ -3,12 +3,10 @@ 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(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");
12
10
  extendStatics(d, b);
13
11
  function __() { this.constructor = d; }
14
12
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -9,7 +9,7 @@ var inputtext_1 = require("primereact/inputtext");
9
9
  var XUtilsConversions_1 = require("./XUtilsConversions");
10
10
  var XUtilsMetadata_1 = require("./XUtilsMetadata");
11
11
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
12
- var XInputTextDT = function (props) {
12
+ exports.XInputTextDT = function (props) {
13
13
  var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.entity, props.field);
14
14
  // ak mame path, field je vzdy readOnly
15
15
  var readOnly;
@@ -40,4 +40,3 @@ var XInputTextDT = function (props) {
40
40
  }
41
41
  return (react_1.default.createElement(inputtext_1.InputText, { id: props.field, value: fieldValue, onChange: function (e) { return onValueChange(props.field, props.rowData, e.target.value); }, readOnly: readOnly, maxLength: xField.length, className: "x-input-to-resize" }));
42
42
  };
43
- exports.XInputTextDT = XInputTextDT;
@@ -13,10 +13,11 @@ export interface XEditModeHandlers {
13
13
  export interface XLazyDataTableProps {
14
14
  entity: string;
15
15
  dataKey?: string;
16
- rows?: number;
16
+ paginator: boolean;
17
+ rows: number;
17
18
  scrollable: boolean;
18
- scrollWidth?: string;
19
- scrollHeight?: string;
19
+ scrollWidth: string;
20
+ scrollHeight: string;
20
21
  formFooterHeight?: string;
21
22
  shrinkWidth: boolean;
22
23
  onAddRow?: () => void;
@@ -33,7 +34,11 @@ export interface XLazyDataTableProps {
33
34
  export declare const XLazyDataTable: {
34
35
  (props: XLazyDataTableProps): JSX.Element;
35
36
  defaultProps: {
37
+ paginator: boolean;
38
+ rows: number;
36
39
  scrollable: boolean;
40
+ scrollWidth: string;
41
+ scrollHeight: string;
37
42
  shrinkWidth: boolean;
38
43
  };
39
44
  };
@@ -25,7 +25,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
25
25
  var __importStar = (this && this.__importStar) || function (mod) {
26
26
  if (mod && mod.__esModule) return mod;
27
27
  var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
29
  __setModuleDefault(result, mod);
30
30
  return result;
31
31
  };
@@ -107,12 +107,12 @@ var XButtonIconSmall_1 = require("./XButtonIconSmall");
107
107
  var tristatecheckbox_1 = require("primereact/tristatecheckbox");
108
108
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
109
109
  var XExportRowsDialog_1 = require("./XExportRowsDialog");
110
- var XLazyDataTable = function (props) {
110
+ exports.XLazyDataTable = function (props) {
111
111
  var dataTableEl = react_1.useRef(null);
112
112
  var _a = __read(react_1.useState({ rowList: [], totalRecords: 0 }), 2), value = _a[0], setValue = _a[1];
113
113
  var _b = __read(react_1.useState(false), 2), loading = _b[0], setLoading = _b[1];
114
114
  var _c = __read(react_1.useState(0), 2), first = _c[0], setFirst = _c[1];
115
- var _d = __read(react_1.useState(props.rows !== undefined ? props.rows : 10), 2), rows = _d[0], setRows = _d[1];
115
+ var _d = __read(react_1.useState(props.paginator ? props.rows : undefined), 2), rows = _d[0], setRows = _d[1];
116
116
  var filtersInit = {};
117
117
  if (props.searchTableParams !== undefined && props.searchTableParams.filter !== undefined) {
118
118
  filtersInit[props.searchTableParams.displayField] = { value: props.searchTableParams.filter, matchMode: "startsWith" };
@@ -488,29 +488,54 @@ var XLazyDataTable = function (props) {
488
488
  return bodyValue;
489
489
  };
490
490
  var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.entity);
491
- // ak nemame scrollWidth/scrollHeight zadane, vyratame scrollWidth/scrollHeight tak aby tabulka "sadla" okna (viewport-u)
492
- var scrollWidth;
493
- var scrollHeight;
491
+ // ak mame scrollWidth/scrollHeight = viewport (default), vyratame scrollWidth/scrollHeight tak aby tabulka "sadla" okna (viewport-u)
492
+ var scrollWidth = undefined; // vypnute horizontalne scrollovanie
493
+ var scrollHeight = undefined; // vypnute vertikalne scrollovanie
494
494
  if (props.scrollable) {
495
- scrollWidth = props.scrollWidth;
496
- if (scrollWidth === undefined || scrollWidth === "default") {
497
- scrollWidth = 'calc(100vw - 1.4rem)'; // 20px okraje
498
- }
499
- scrollHeight = props.scrollHeight;
500
- if (scrollHeight === undefined || scrollHeight === "default") {
501
- // vypocet je priblizny, robeny na mobil, desktop bude mat mozno iny
502
- //const headerHeight = XUtils.toPX0('12.7rem');
503
- //let footerHeight = XUtils.toPX0('3.7rem') + XUtils.toPX0('3rem'); // table footer (paging) + buttons Add row, Edit, ...
504
- // na desktope mi nechce odpocitat vysku taskbar-u od window.screen.availHeight, tak to poriesime takymto hack-om:
505
- // if (!XUtils.isMobile()) {
506
- // footerHeight += XUtils.toPX0('6rem'); // priblizna vyska taskbaru (ak mam 2 rady buttonov)
507
- // }
508
- var headerFooterHeight = 344.35 - XUtils_1.XUtils.toPX0('4.43rem'); // experimentalne zistena vyska header/footer (body - table body) bez formFooterHeight
509
- // este pridame vysku linkov na zdrojaky, ak treba
510
- if (props.formFooterHeight !== undefined) {
511
- headerFooterHeight += XUtils_1.XUtils.toPX0(XUtils_1.XUtils.processGridBreakpoints(props.formFooterHeight));
495
+ if (props.scrollWidth !== "none") {
496
+ scrollWidth = props.scrollWidth;
497
+ if (scrollWidth === "viewport") {
498
+ scrollWidth = 'calc(100vw - 1.4rem)'; // 20px okraje
499
+ }
500
+ }
501
+ if (props.scrollHeight !== "none") {
502
+ scrollHeight = props.scrollHeight;
503
+ if (scrollHeight === "viewport") {
504
+ // vypocet je priblizny, robeny na mobil, desktop bude mat mozno iny
505
+ //const headerHeight = XUtils.toPX0('12.7rem');
506
+ //let footerHeight = XUtils.toPX0('3.7rem') + XUtils.toPX0('3rem'); // table footer (paging) + buttons Add row, Edit, ...
507
+ // na desktope mi nechce odpocitat vysku taskbar-u od window.screen.availHeight, tak to poriesime takymto hack-om:
508
+ // if (!XUtils.isMobile()) {
509
+ // footerHeight += XUtils.toPX0('6rem'); // priblizna vyska taskbaru (ak mam 2 rady buttonov)
510
+ // }
511
+ var viewHeight = void 0;
512
+ var headerFooterHeight = void 0;
513
+ if (props.searchTableParams === undefined) {
514
+ // sme v standardnom formulari
515
+ viewHeight = '100vh';
516
+ headerFooterHeight = XUtils_1.XUtils.toPX0('20.89rem') - XUtils_1.XUtils.toPX0('4.43rem'); // experimentalne zistena vyska header/footer (body - table body) bez formFooterHeight
517
+ }
518
+ else {
519
+ // sme v dialogu
520
+ if (XUtils_1.XUtils.isMobile()) {
521
+ viewHeight = '98vh'; // .p-dialog pre mobil ma max-height: 98%
522
+ headerFooterHeight = XUtils_1.XUtils.toPX0('17.60rem'); // rucne zratane
523
+ }
524
+ else {
525
+ viewHeight = '90vh'; // .p-dialog pre desktop ma max-height: 90%
526
+ headerFooterHeight = XUtils_1.XUtils.toPX0('18.60rem'); // rucne zratane (desktop ma vecsi margin dole na dialogu)
527
+ }
528
+ }
529
+ // pridame vysku paging-u, ak treba
530
+ if (props.paginator) {
531
+ headerFooterHeight += XUtils_1.XUtils.toPX0('3.71rem');
532
+ }
533
+ // este pridame vysku linkov na zdrojaky, ak treba
534
+ if (props.formFooterHeight !== undefined) {
535
+ headerFooterHeight += XUtils_1.XUtils.toPX0(XUtils_1.XUtils.processGridBreakpoints(props.formFooterHeight));
536
+ }
537
+ scrollHeight = "calc(" + viewHeight + " - " + headerFooterHeight + "px)";
512
538
  }
513
- scrollHeight = "calc(100vh - " + headerFooterHeight + "px)";
514
539
  }
515
540
  }
516
541
  var style = {};
@@ -545,6 +570,8 @@ var XLazyDataTable = function (props) {
545
570
  paginatorRight = react_1.default.createElement(XButtonIconSmall_1.XButtonIconSmall, { icon: "pi pi-pencil", onClick: function () { var _a; return (_a = props.editModeHandlers) === null || _a === void 0 ? void 0 : _a.onStart(); }, tooltip: "Edit form" });
546
571
  }
547
572
  // else -> editMode is undefined - browse is not editable
573
+ // export pre search button-y zatial vypneme
574
+ var exportRows = (props.searchTableParams === undefined);
548
575
  // pre lepsiu citatelnost vytvarame stlpce uz tu
549
576
  var columnElemList = react_1.default.Children.map(props.children, function (child) {
550
577
  // ak chceme zmenit child element, tak treba bud vytvorit novy alebo vyklonovat
@@ -590,7 +617,7 @@ var XLazyDataTable = function (props) {
590
617
  if (width === undefined || width === "default") {
591
618
  width = XUtilsMetadata_1.XUtilsMetadata.computeColumnWidth(xField, undefined, headerLabel);
592
619
  }
593
- var headerStyle;
620
+ var headerStyle = {};
594
621
  if (width !== undefined) {
595
622
  headerStyle = { width: width };
596
623
  }
@@ -609,7 +636,7 @@ var XLazyDataTable = function (props) {
609
636
  }
610
637
  }
611
638
  // *********** style ***********
612
- var style;
639
+ var style = {};
613
640
  // TODO - pouzit className a nie style
614
641
  if (align === "center" || align === "right") {
615
642
  style = { 'textAlign': align };
@@ -621,24 +648,26 @@ var XLazyDataTable = function (props) {
621
648
  react_1.default.createElement("div", { className: "flex justify-content-center" },
622
649
  react_1.default.createElement(XButton_1.XButton, { label: "Filter", onClick: onClickFilter })),
623
650
  react_1.default.createElement("div", { className: "flex justify-content-center" },
624
- react_1.default.createElement(datatable_1.DataTable, { value: value.rowList, dataKey: dataKey, paginator: true, rows: rows, totalRecords: value.totalRecords, lazy: true, first: first, onPage: onPage, loading: loading, filters: filters, onFilter: onFilter, sortMode: "multiple", removableSort: true, multiSortMeta: multiSortMeta, onSort: onSort, selectionMode: "single", selection: selectedRow, onSelectionChange: onSelectionChange, onRowDoubleClick: onRowDoubleClick, ref: dataTableEl, className: "p-datatable-sm x-lazy-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, paginatorLeft: paginatorLeft, paginatorRight: paginatorRight, scrollable: props.scrollable, scrollHeight: scrollHeight, style: style }, columnElemList)),
651
+ react_1.default.createElement(datatable_1.DataTable, { value: value.rowList, dataKey: dataKey, paginator: props.paginator, rows: rows, totalRecords: value.totalRecords, lazy: true, first: first, onPage: onPage, loading: loading, filters: filters, onFilter: onFilter, sortMode: "multiple", removableSort: true, multiSortMeta: multiSortMeta, onSort: onSort, selectionMode: "single", selection: selectedRow, onSelectionChange: onSelectionChange, onRowDoubleClick: onRowDoubleClick, ref: dataTableEl, className: "p-datatable-sm x-lazy-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, paginatorLeft: paginatorLeft, paginatorRight: paginatorRight, scrollable: props.scrollable, scrollHeight: scrollHeight, style: style }, columnElemList)),
625
652
  react_1.default.createElement("div", { className: "flex justify-content-center" },
626
653
  props.onAddRow !== undefined ? react_1.default.createElement(XButton_1.XButton, { label: "Add row", onClick: onClickAddRow }) : null,
627
654
  props.onEdit !== undefined ? react_1.default.createElement(XButton_1.XButton, { label: "Edit", onClick: onClickEdit }) : null,
628
655
  props.removeRow !== undefined && props.removeRow !== false ? react_1.default.createElement(XButton_1.XButton, { label: "Remove row", onClick: onClickRemoveRow }) : null,
629
- react_1.default.createElement(XButton_1.XButton, { label: "Export rows", onClick: onClickExport }),
656
+ exportRows ? react_1.default.createElement(XButton_1.XButton, { label: "Export rows", onClick: onClickExport }) : null,
630
657
  props.appButtons,
631
- react_1.default.createElement(XExportRowsDialog_1.XExportRowsDialog, { dialogOpened: exportRowsDialogOpened, rowCount: exportRowsDialogRowCount, onHideDialog: exportRowsDialogOnHide }),
632
- props.searchTableParams !== undefined ? react_1.default.createElement(XButton_1.XButton, { label: "Choose", onClick: onClickChoose }) : null)));
658
+ props.searchTableParams !== undefined ? react_1.default.createElement(XButton_1.XButton, { label: "Choose", onClick: onClickChoose }) : null,
659
+ exportRows ? react_1.default.createElement(XExportRowsDialog_1.XExportRowsDialog, { dialogOpened: exportRowsDialogOpened, rowCount: exportRowsDialogRowCount, onHideDialog: exportRowsDialogOnHide }) : null)));
633
660
  };
634
- exports.XLazyDataTable = XLazyDataTable;
635
661
  exports.XLazyDataTable.defaultProps = {
662
+ paginator: true,
663
+ rows: 10,
636
664
  scrollable: true,
665
+ scrollWidth: 'viewport',
666
+ scrollHeight: 'viewport',
637
667
  shrinkWidth: true
638
668
  };
639
669
  // TODO - XLazyColumn neni idealny nazov, lepsi je XColumn (ale zatial nechame XLazyColumn)
640
- var XLazyColumn = function (props) {
670
+ exports.XLazyColumn = function (props) {
641
671
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
642
672
  return (null);
643
673
  };
644
- exports.XLazyColumn = XLazyColumn;
@@ -7,7 +7,7 @@ exports.XLoginDialog = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var dialog_1 = require("primereact/dialog");
9
9
  var XLoginForm_1 = require("./XLoginForm");
10
- var XLoginDialog = function (props) {
10
+ exports.XLoginDialog = function (props) {
11
11
  // bez tejto metody by pri opetovnom otvoreni dialogu ponechal povodne hodnoty
12
12
  var onShow = function () {
13
13
  };
@@ -18,4 +18,3 @@ var XLoginDialog = function (props) {
18
18
  return (react_1.default.createElement(dialog_1.Dialog, { visible: props.dialogOpened, onShow: onShow, onHide: function () { return props.onHideDialog(false); } },
19
19
  react_1.default.createElement(XLoginForm_1.XLoginForm, { setXToken: props.setXToken, onLogin: onLogin, customUserService: props.customUserService })));
20
20
  };
21
- exports.XLoginDialog = XLoginDialog;