@michalrakus/x-react-web-lib 1.12.0 → 1.14.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 (63) hide show
  1. package/XFormCol.d.ts +3 -0
  2. package/XFormCol.js +5 -0
  3. package/XFormInlineRow.d.ts +3 -0
  4. package/XFormInlineRow.js +5 -0
  5. package/XFormRow.d.ts +3 -0
  6. package/XFormRow.js +5 -0
  7. package/XFormRowCol.d.ts +3 -0
  8. package/XFormRowCol.js +5 -0
  9. package/XUtilsConversions.d.ts +1 -1
  10. package/XUtilsConversions.js +1 -1
  11. package/XUtilsMetadataCommon.d.ts +3 -0
  12. package/XUtilsMetadataCommon.js +5 -0
  13. package/gulpfile.js +8 -2
  14. package/lib/components/XAutoComplete.d.ts +4 -2
  15. package/lib/components/XAutoComplete.js +13 -11
  16. package/lib/components/XAutoCompleteBase.d.ts +5 -0
  17. package/lib/components/XAutoCompleteBase.js +34 -3
  18. package/lib/components/XAutoCompleteDT.js +4 -4
  19. package/lib/components/XCalendar.js +1 -1
  20. package/lib/components/XDropdown.js +2 -2
  21. package/lib/components/XDropdownDT.js +4 -4
  22. package/lib/components/XDropdownDTFilter.d.ts +3 -0
  23. package/lib/components/XDropdownDTFilter.js +7 -6
  24. package/lib/components/XDropdownForEntity.js +2 -2
  25. package/lib/components/XEditBrowse.js +4 -3
  26. package/lib/components/XExportRowsDialog.js +1 -1
  27. package/lib/components/XFieldSelector.js +4 -4
  28. package/lib/components/XFormDataTable2.d.ts +15 -9
  29. package/lib/components/XFormDataTable2.js +42 -32
  30. package/lib/components/XFormRowCol/XFormCol.d.ts +8 -0
  31. package/lib/components/XFormRowCol/XFormCol.js +12 -0
  32. package/lib/components/XFormRowCol/XFormInlineRow.d.ts +8 -0
  33. package/lib/components/XFormRowCol/XFormInlineRow.js +12 -0
  34. package/lib/components/XFormRowCol/XFormRow.d.ts +8 -0
  35. package/lib/components/XFormRowCol/XFormRow.js +12 -0
  36. package/lib/components/XFormRowCol/XFormRowCol.d.ts +9 -0
  37. package/lib/components/XFormRowCol/XFormRowCol.js +30 -0
  38. package/lib/components/XFtsInput.js +1 -1
  39. package/lib/components/XInput.js +2 -2
  40. package/lib/components/XInputDT.js +2 -2
  41. package/lib/components/XInputDateDT.js +1 -1
  42. package/lib/components/XInputFileList.js +6 -6
  43. package/lib/components/XInputIntervalBase.js +1 -1
  44. package/lib/components/XInputText.js +1 -1
  45. package/lib/components/XInputTextDT.js +3 -3
  46. package/lib/components/XInputTextarea.js +1 -1
  47. package/lib/components/XLazyDataTable.d.ts +19 -1
  48. package/lib/components/XLazyDataTable.js +26 -45
  49. package/lib/components/XSearchButton.js +4 -4
  50. package/lib/components/XSearchButtonDT.js +3 -3
  51. package/lib/components/XSearchButtonOld.js +5 -5
  52. package/lib/components/XToOneAssocButton.js +3 -3
  53. package/lib/components/XUtils.d.ts +8 -0
  54. package/lib/components/XUtils.js +25 -2
  55. package/lib/components/XUtilsMetadata.d.ts +1 -19
  56. package/lib/components/XUtilsMetadata.js +8 -186
  57. package/lib/components/locale/x-en.json +4 -1
  58. package/lib/{components → serverApi}/XUtilsConversions.d.ts +18 -1
  59. package/lib/serverApi/XUtilsConversions.js +330 -0
  60. package/lib/serverApi/XUtilsMetadataCommon.d.ts +30 -0
  61. package/lib/serverApi/XUtilsMetadataCommon.js +208 -0
  62. package/package.json +2 -2
  63. package/lib/components/XUtilsConversions.js +0 -177
@@ -82,6 +82,7 @@ var XButtonIconNarrow_1 = require("./XButtonIconNarrow");
82
82
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
83
83
  var XLocale_1 = require("./XLocale");
84
84
  var XInputIntervalDT_1 = require("./XInputIntervalDT");
85
+ var XUtilsMetadataCommon_1 = require("../serverApi/XUtilsMetadataCommon");
85
86
  var XFormDataTable2 = /** @class */ (function (_super) {
86
87
  __extends(XFormDataTable2, _super);
87
88
  function XFormDataTable2(props) {
@@ -89,11 +90,11 @@ var XFormDataTable2 = /** @class */ (function (_super) {
89
90
  var _this = _super.call(this, props) || this;
90
91
  _this.props = props;
91
92
  _this.dataKey = props.dataKey;
92
- var xEntityForm = XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.form.getEntity());
93
- var xAssocToMany = XUtilsMetadata_1.XUtilsMetadata.getXAssocToMany(xEntityForm, props.assocField);
93
+ var xEntityForm = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.form.getEntity());
94
+ var xAssocToMany = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToMany(xEntityForm, props.assocField);
94
95
  _this.entity = xAssocToMany.entityName;
95
96
  if (_this.dataKey === undefined) {
96
- _this.dataKey = XUtilsMetadata_1.XUtilsMetadata.getXEntity(_this.entity).idField;
97
+ _this.dataKey = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(_this.entity).idField;
97
98
  }
98
99
  _this.state = {
99
100
  selectedRow: undefined,
@@ -164,19 +165,19 @@ var XFormDataTable2 = /** @class */ (function (_super) {
164
165
  }
165
166
  else if (columnProps.type === "dropdown") {
166
167
  var columnPropsDropdown = columnProps;
167
- var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(xEntity, columnPropsDropdown.assocField);
168
+ var xAssoc = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOne(xEntity, columnPropsDropdown.assocField);
168
169
  isNullable = xAssoc.isNullable;
169
170
  readOnly = XFormDataTable2.isReadOnlyHeader(undefined, columnProps.readOnly);
170
171
  }
171
172
  else if (columnProps.type === "autoComplete") {
172
173
  var columnPropsAutoComplete = columnProps;
173
- var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(xEntity, columnPropsAutoComplete.assocField);
174
+ var xAssoc = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOne(xEntity, columnPropsAutoComplete.assocField);
174
175
  isNullable = xAssoc.isNullable;
175
176
  readOnly = XFormDataTable2.isReadOnlyHeader(undefined, columnProps.readOnly);
176
177
  }
177
178
  else if (columnProps.type === "searchButton") {
178
179
  var columnPropsSearchButton = columnProps;
179
- var xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(xEntity, columnPropsSearchButton.assocField);
180
+ var xAssoc = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOne(xEntity, columnPropsSearchButton.assocField);
180
181
  isNullable = xAssoc.isNullable;
181
182
  readOnly = XFormDataTable2.isReadOnlyHeader(undefined, columnProps.readOnly);
182
183
  }
@@ -224,14 +225,14 @@ var XFormDataTable2 = /** @class */ (function (_super) {
224
225
  if (this.props.filterDisplay === "none") {
225
226
  return initFilters;
226
227
  }
227
- var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity());
228
+ var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(this.getEntity());
228
229
  try {
229
230
  // TODO - asi by bolo fajn si tieto field, xField niekam ulozit a iterovat ulozene hodnoty, pouziva sa to na viacerych miestach
230
231
  for (var _b = __values(this.props.children), _c = _b.next(); !_c.done; _c = _b.next()) {
231
232
  var child = _c.value;
232
233
  var childColumn = child; // nevedel som to krajsie...
233
234
  var field = this.getPathForColumn(childColumn.props);
234
- var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, field);
235
+ var xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPath(xEntity, field);
235
236
  // TODO column.props.dropdownInFilter - pre "menu" by bolo fajn mat zoznam "enumov"
236
237
  var filterMatchMode = this.getFilterMatchMode(xField);
237
238
  var filterItem = void 0;
@@ -262,7 +263,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
262
263
  XFormDataTable2.prototype.getFilterMatchMode = function (xField) {
263
264
  var filterMatchMode;
264
265
  if (xField.type === "string") {
265
- filterMatchMode = api_1.FilterMatchMode.STARTS_WITH;
266
+ filterMatchMode = api_1.FilterMatchMode.CONTAINS;
266
267
  }
267
268
  // zatial vsetky ostatne EQUALS
268
269
  else if (xField.type === "decimal" || xField.type === "number" || xField.type === "date" || xField.type === "datetime" || xField.type === "boolean") {
@@ -349,11 +350,22 @@ var XFormDataTable2 = /** @class */ (function (_super) {
349
350
  // body={(rowData: any) => bodyTemplate(childColumn.props.field, rowData)}
350
351
  XFormDataTable2.prototype.bodyTemplate = function (columnProps, tableReadOnly, rowData, xEntity) {
351
352
  var body;
353
+ // columnProps.columnViewStatus "ReadOnly" has higher prio then tableReadOnly
352
354
  // tableReadOnly has higher prio then property readOnly
353
- var readOnly = tableReadOnly ? true : columnProps.readOnly;
355
+ // (viewStatus "Hidden" - column is not rendered (bodyTemplate not called), viewStatus "ReadWrite" (default) - tableReadOnly/columnProps.readOnly is applied)
356
+ var readOnly;
357
+ if (XUtils_1.XUtils.xViewStatus(columnProps.columnViewStatus) === XUtils_1.XViewStatus.ReadOnly) {
358
+ readOnly = true;
359
+ }
360
+ else if (tableReadOnly) {
361
+ readOnly = true;
362
+ }
363
+ else {
364
+ readOnly = columnProps.readOnly;
365
+ }
354
366
  if (columnProps.type === "inputSimple") {
355
367
  var columnPropsInputSimple = columnProps;
356
- var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, columnPropsInputSimple.field);
368
+ var xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPath(xEntity, columnPropsInputSimple.field);
357
369
  if (xField.type === "decimal" || xField.type === "number") {
358
370
  body = react_1.default.createElement(XInputDecimalDT_1.XInputDecimalDT, { form: this.props.form, entity: this.getEntity(), field: columnPropsInputSimple.field, rowData: rowData, readOnly: readOnly, onChange: columnPropsInputSimple.onChange });
359
371
  }
@@ -496,7 +508,8 @@ var XFormDataTable2 = /** @class */ (function (_super) {
496
508
  };
497
509
  XFormDataTable2.prototype.render = function () {
498
510
  var _this = this;
499
- var _a, _b;
511
+ var _a, _b, _c;
512
+ var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(this.getEntity());
500
513
  var paginator = this.props.paginator !== undefined ? this.props.paginator : false;
501
514
  var rows = undefined;
502
515
  if (paginator) {
@@ -508,13 +521,14 @@ var XFormDataTable2 = /** @class */ (function (_super) {
508
521
  }
509
522
  }
510
523
  var filterDisplay = this.props.filterDisplay !== "none" ? this.props.filterDisplay : undefined;
524
+ // default sortovanie - ak mame insert tak nesortujeme (drzime poradie v akom user zaznam vytvoril), ak mame update tak podla id zosortujeme (nech je to zobrazene vzdy rovnako)
525
+ var sortField = ((_a = this.props.sortField) !== null && _a !== void 0 ? _a : this.props.form.isAddRow()) ? undefined : xEntity.idField;
511
526
  var label = this.props.label !== undefined ? this.props.label : this.props.assocField;
512
527
  var readOnly = this.isReadOnly();
513
528
  // v bloku function (child) nejde pouzit priamo this, thisLocal uz ide pouzit
514
529
  var thisLocal = this;
515
530
  var object = this.props.form.state.object;
516
531
  var valueList = object !== null ? object[this.props.assocField] : [];
517
- var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.getEntity());
518
532
  var scrollWidth = undefined; // vypnute horizontalne scrollovanie
519
533
  var scrollHeight = undefined; // vypnute vertikalne scrollovanie
520
534
  if (this.props.scrollable) {
@@ -542,7 +556,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
542
556
  tableStyle = __assign(__assign({}, tableStyle), { width: width });
543
557
  }
544
558
  // pre lepsiu citatelnost vytvarame stlpce uz tu
545
- var columnElemList = react_1.default.Children.map(this.props.children, function (child) {
559
+ var columnElemList = react_1.default.Children.map(this.props.children.filter(function (child) { return XUtils_1.XUtils.xViewStatus(child.props.columnViewStatus) !== XUtils_1.XViewStatus.Hidden; }), function (child) {
546
560
  // ak chceme zmenit child element, tak treba bud vytvorit novy alebo vyklonovat
547
561
  // priklad je na https://soshace.com/building-react-components-using-children-props-and-context-api/
548
562
  // (vzdy musime robit manipulacie so stlpcom, lebo potrebujeme pridat filter={true} sortable={true}
@@ -552,7 +566,7 @@ var XFormDataTable2 = /** @class */ (function (_super) {
552
566
  // (aj ked, da sa to prebit na stlpcoch (na elemente Column), su na to atributy)
553
567
  var field = thisLocal.getPathForColumn(childColumnProps);
554
568
  // TODO - toto by sa mohlo vytiahnut vyssie, aj v bodyTemplate sa vola metoda XUtilsMetadata.getXFieldByPath
555
- var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntity, field);
569
+ var xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPath(xEntity, field);
556
570
  // *********** header ***********
557
571
  var header = XFormDataTable2.getHeader(childColumnProps, xEntity, field, xField);
558
572
  // *********** filterElement ***********
@@ -623,14 +637,14 @@ var XFormDataTable2 = /** @class */ (function (_super) {
623
637
  var removeRowLabel = undefined;
624
638
  if (this.props.showAddRemoveButtons) {
625
639
  // calling xLocaleOption does not work in standard default values initialisation place (public static defaultProps)
626
- addRowLabel = (_a = this.props.addRowLabel) !== null && _a !== void 0 ? _a : (0, XLocale_1.xLocaleOption)('addRow');
627
- removeRowLabel = (_b = this.props.removeRowLabel) !== null && _b !== void 0 ? _b : (0, XLocale_1.xLocaleOption)('removeRow');
640
+ addRowLabel = (_b = this.props.addRowLabel) !== null && _b !== void 0 ? _b : (0, XLocale_1.xLocaleOption)('addRow');
641
+ removeRowLabel = (_c = this.props.removeRowLabel) !== null && _c !== void 0 ? _c : (0, XLocale_1.xLocaleOption)('removeRow');
628
642
  }
629
643
  return (react_1.default.createElement("div", null,
630
644
  react_1.default.createElement("div", { className: "flex justify-content-center" },
631
645
  react_1.default.createElement("label", null, label)),
632
646
  react_1.default.createElement("div", { className: "flex justify-content-center" },
633
- 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, multiSortMeta: this.props.sortField !== undefined ? [{ field: this.props.sortField, order: 1 }] : undefined, 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)),
647
+ 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, multiSortMeta: sortField !== undefined ? [{ field: sortField, order: 1 }] : undefined, 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)),
634
648
  this.props.showAddRemoveButtons ?
635
649
  react_1.default.createElement("div", { className: "flex justify-content-center" },
636
650
  react_1.default.createElement(XButton_1.XButton, { icon: this.props.addRowIcon, label: addRowLabel, onClick: this.onClickAddRow, disabled: readOnly }),
@@ -638,8 +652,8 @@ var XFormDataTable2 = /** @class */ (function (_super) {
638
652
  : undefined));
639
653
  };
640
654
  XFormDataTable2.defaultProps = {
641
- filterDisplay: "row",
642
- sortable: true,
655
+ filterDisplay: "none",
656
+ sortable: false,
643
657
  scrollable: true,
644
658
  scrollWidth: '100%',
645
659
  scrollHeight: '200vh',
@@ -653,35 +667,31 @@ var XFormDataTable2 = /** @class */ (function (_super) {
653
667
  return XFormDataTable2;
654
668
  }(react_1.Component));
655
669
  exports.XFormDataTable2 = XFormDataTable2;
670
+ // default props for XFormColumnBaseProps
671
+ var XFormColumnBase_defaultProps = {
672
+ columnViewStatus: true
673
+ };
656
674
  var XFormColumn = function (props) {
657
675
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
658
676
  return (null);
659
677
  };
660
678
  exports.XFormColumn = XFormColumn;
661
- exports.XFormColumn.defaultProps = {
662
- type: "inputSimple"
663
- };
679
+ exports.XFormColumn.defaultProps = __assign(__assign({}, XFormColumnBase_defaultProps), { type: "inputSimple" });
664
680
  var XFormDropdownColumn = function (props) {
665
681
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
666
682
  return (null);
667
683
  };
668
684
  exports.XFormDropdownColumn = XFormDropdownColumn;
669
- exports.XFormDropdownColumn.defaultProps = {
670
- type: "dropdown"
671
- };
685
+ exports.XFormDropdownColumn.defaultProps = __assign(__assign({}, XFormColumnBase_defaultProps), { type: "dropdown" });
672
686
  var XFormAutoCompleteColumn = function (props) {
673
687
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
674
688
  return (null);
675
689
  };
676
690
  exports.XFormAutoCompleteColumn = XFormAutoCompleteColumn;
677
- exports.XFormAutoCompleteColumn.defaultProps = {
678
- type: "autoComplete"
679
- };
691
+ exports.XFormAutoCompleteColumn.defaultProps = __assign(__assign({}, XFormColumnBase_defaultProps), { type: "autoComplete" });
680
692
  var XFormSearchButtonColumn = function (props) {
681
693
  // nevadi ze tu nic nevraciame, field a header vieme precitat a zvysok by sme aj tak zahodili lebo vytvarame novy element
682
694
  return (null);
683
695
  };
684
696
  exports.XFormSearchButtonColumn = XFormSearchButtonColumn;
685
- exports.XFormSearchButtonColumn.defaultProps = {
686
- type: "searchButton"
687
- };
697
+ exports.XFormSearchButtonColumn.defaultProps = __assign(__assign({}, XFormColumnBase_defaultProps), { type: "searchButton" });
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { XFormBase } from "../XFormBase";
3
+ export interface XFormColProps {
4
+ form?: XFormBase;
5
+ labelStyle?: React.CSSProperties;
6
+ children: JSX.Element | JSX.Element[];
7
+ }
8
+ export declare const XFormCol: (props: XFormColProps) => JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.XFormCol = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var XFormRowCol_1 = require("./XFormRowCol");
9
+ var XFormCol = function (props) {
10
+ return react_1.default.createElement(XFormRowCol_1.XFormRowCol, { className: "x-form-col", form: props.form, labelStyle: props.labelStyle, children: props.children });
11
+ };
12
+ exports.XFormCol = XFormCol;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { XFormBase } from "../XFormBase";
3
+ export interface XFormInlineRowProps {
4
+ form?: XFormBase;
5
+ labelStyle?: React.CSSProperties;
6
+ children: JSX.Element | JSX.Element[];
7
+ }
8
+ export declare const XFormInlineRow: (props: XFormInlineRowProps) => JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.XFormInlineRow = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var XFormRowCol_1 = require("./XFormRowCol");
9
+ var XFormInlineRow = function (props) {
10
+ return react_1.default.createElement(XFormRowCol_1.XFormRowCol, { className: "x-form-inline-row", form: props.form, labelStyle: props.labelStyle, children: props.children });
11
+ };
12
+ exports.XFormInlineRow = XFormInlineRow;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { XFormBase } from "../XFormBase";
3
+ export interface XFormRowProps {
4
+ form?: XFormBase;
5
+ labelStyle?: React.CSSProperties;
6
+ children: JSX.Element | JSX.Element[];
7
+ }
8
+ export declare const XFormRow: (props: XFormRowProps) => JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.XFormRow = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var XFormRowCol_1 = require("./XFormRowCol");
9
+ var XFormRow = function (props) {
10
+ return react_1.default.createElement(XFormRowCol_1.XFormRowCol, { className: "x-form-row", form: props.form, labelStyle: props.labelStyle, children: props.children });
11
+ };
12
+ exports.XFormRow = XFormRow;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { XFormBase } from "../XFormBase";
3
+ export interface XFormRowColProps {
4
+ className: "x-form-row" | "x-form-inline-row" | "x-form-col";
5
+ form?: XFormBase;
6
+ labelStyle?: React.CSSProperties;
7
+ children: JSX.Element | JSX.Element[];
8
+ }
9
+ export declare const XFormRowCol: (props: XFormRowColProps) => JSX.Element;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.XFormRowCol = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var XFormRowCol = function (props) {
9
+ var childElemList;
10
+ if (props.form || props.labelStyle) {
11
+ // ak chceme zmenit child element, tak treba bud vytvorit novy alebo vyklonovat
12
+ // priklad je na https://soshace.com/building-react-components-using-children-props-and-context-api/
13
+ childElemList = react_1.default.Children.map(props.children, function (child) {
14
+ var _a, _b;
15
+ // klonujeme len nase X* komponenty (napr. XInputText), child.type.name vracia nazov komponenty (napr. XInputText)
16
+ // ak vyklonujeme cudziu komponentu, funguje, ale prida do nej property labelstyle=[object Object]
17
+ if (child.type.name && child.type.name.startsWith("X")) {
18
+ return react_1.default.cloneElement(child, { form: (_a = child.props.form) !== null && _a !== void 0 ? _a : props.form, labelStyle: (_b = child.props.labelStyle) !== null && _b !== void 0 ? _b : props.labelStyle });
19
+ }
20
+ else {
21
+ return child;
22
+ }
23
+ });
24
+ }
25
+ else {
26
+ childElemList = props.children; // netreba klonovat - viac menej koli performance
27
+ }
28
+ return react_1.default.createElement("div", { className: props.className }, childElemList);
29
+ };
30
+ exports.XFormRowCol = XFormRowCol;
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.XFtsInput = void 0;
18
18
  var inputtext_1 = require("primereact/inputtext");
19
19
  var react_1 = __importDefault(require("react"));
20
- var XUtilsConversions_1 = require("./XUtilsConversions");
20
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
21
21
  var XFtsInput = function (props) {
22
22
  var onChange = function (e) {
23
23
  var value = (0, XUtilsConversions_1.stringFromUI)(e.target.value);
@@ -16,14 +16,14 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.XInput = void 0;
19
- var XUtilsMetadata_1 = require("./XUtilsMetadata");
20
19
  var XFormComponent_1 = require("./XFormComponent");
20
+ var XUtilsMetadataCommon_1 = require("../serverApi/XUtilsMetadataCommon");
21
21
  // spolocna nadtrieda pre jednoduche inputy (nie asociacne)
22
22
  var XInput = /** @class */ (function (_super) {
23
23
  __extends(XInput, _super);
24
24
  function XInput(props) {
25
25
  var _this = _super.call(this, props) || this;
26
- _this.xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.form.getEntity(), props.field);
26
+ _this.xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPathStr(props.form.getEntity(), props.field);
27
27
  props.form.addField(props.field);
28
28
  return _this;
29
29
  }
@@ -16,14 +16,14 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.XInputDT = void 0;
19
- var XUtilsMetadata_1 = require("./XUtilsMetadata");
20
19
  var XFormComponentDT_1 = require("./XFormComponentDT");
20
+ var XUtilsMetadataCommon_1 = require("../serverApi/XUtilsMetadataCommon");
21
21
  // spolocna nadtrieda pre jednoduche inputy (nie asociacne)
22
22
  var XInputDT = /** @class */ (function (_super) {
23
23
  __extends(XInputDT, _super);
24
24
  function XInputDT(props) {
25
25
  var _this = _super.call(this, props) || this;
26
- _this.xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.entity, props.field);
26
+ _this.xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPathStr(props.entity, props.field);
27
27
  return _this;
28
28
  }
29
29
  XInputDT.prototype.getField = function () {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XInputDateDT = void 0;
7
- var XUtilsConversions_1 = require("./XUtilsConversions");
7
+ var XUtilsConversions_1 = require("../serverApi/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");
@@ -69,24 +69,24 @@ exports.XInputFileList = void 0;
69
69
  var react_1 = __importDefault(require("react"));
70
70
  var react_2 = require("react");
71
71
  var fileupload_1 = require("primereact/fileupload");
72
- var XUtilsMetadata_1 = require("./XUtilsMetadata");
73
72
  var XUtils_1 = require("./XUtils");
74
73
  var XButton_1 = require("./XButton");
75
74
  var XButtonIconNarrow_1 = require("./XButtonIconNarrow");
76
- var XUtilsConversions_1 = require("./XUtilsConversions");
75
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
77
76
  var XLocale_1 = require("./XLocale");
77
+ var XUtilsMetadataCommon_1 = require("../serverApi/XUtilsMetadataCommon");
78
78
  var XInputFileList = /** @class */ (function (_super) {
79
79
  __extends(XInputFileList, _super);
80
80
  function XInputFileList(props) {
81
81
  var _this = _super.call(this, props) || this;
82
82
  _this.fileUploadRef = react_1.default.createRef();
83
83
  _this.props = props;
84
- var xEntityForm = XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.form.getEntity());
85
- var xAssocToMany = XUtilsMetadata_1.XUtilsMetadata.getXAssocToMany(xEntityForm, props.assocField);
84
+ var xEntityForm = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.form.getEntity());
85
+ var xAssocToMany = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToMany(xEntityForm, props.assocField);
86
86
  _this.entity = xAssocToMany.entityName;
87
- var xEntity = XUtilsMetadata_1.XUtilsMetadata.getXEntity(_this.entity);
87
+ var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(_this.entity);
88
88
  _this.idField = xEntity.idField;
89
- _this.xFileField = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOneByAssocEntity(xEntity, 'XFile').name;
89
+ _this.xFileField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOneByAssocEntity(xEntity, 'XFile').name;
90
90
  _this.onDownloadFile = _this.onDownloadFile.bind(_this);
91
91
  _this.onRemoveFile = _this.onRemoveFile.bind(_this);
92
92
  _this.uploadHandler = _this.uploadHandler.bind(_this);
@@ -53,7 +53,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.XInputIntervalBase = void 0;
54
54
  var inputtext_1 = require("primereact/inputtext");
55
55
  var react_1 = __importStar(require("react"));
56
- var XUtilsConversions_1 = require("./XUtilsConversions");
56
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
57
57
  var XUtils_1 = require("./XUtils");
58
58
  // zatial podporuje len hours a minutes - TODO - pridat aj seconds, ale cez nejaky prepinac
59
59
  var XInputIntervalBase = function (props) {
@@ -31,7 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.XInputText = void 0;
33
33
  var react_1 = __importDefault(require("react"));
34
- var XUtilsConversions_1 = require("./XUtilsConversions");
34
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
35
35
  var inputtext_1 = require("primereact/inputtext");
36
36
  var XInput_1 = require("./XInput");
37
37
  var XInputText = /** @class */ (function (_super) {
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XInputTextDT = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var inputtext_1 = require("primereact/inputtext");
9
- var XUtilsConversions_1 = require("./XUtilsConversions");
10
- var XUtilsMetadata_1 = require("./XUtilsMetadata");
9
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
11
10
  var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
12
11
  var XUtils_1 = require("./XUtils");
12
+ var XUtilsMetadataCommon_1 = require("../serverApi/XUtilsMetadataCommon");
13
13
  var XInputTextDT = function (props) {
14
- var xField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPathStr(props.entity, props.field);
14
+ var xField = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXFieldByPathStr(props.entity, props.field);
15
15
  var onValueChange = function (field, rowData, newValue) {
16
16
  // zmenime hodnotu v modeli (odtial sa hodnota cita)
17
17
  rowData[field] = (0, XUtilsConversions_1.stringFromUI)(newValue);
@@ -31,7 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.XInputTextarea = void 0;
33
33
  var react_1 = __importDefault(require("react"));
34
- var XUtilsConversions_1 = require("./XUtilsConversions");
34
+ var XUtilsConversions_1 = require("../serverApi/XUtilsConversions");
35
35
  var XInput_1 = require("./XInput");
36
36
  var inputtextarea_1 = require("primereact/inputtextarea");
37
37
  var XUtils_1 = require("./XUtils");
@@ -1,10 +1,19 @@
1
1
  import React, { ReactChild } from 'react';
2
2
  import { DataTableFilterMeta, DataTableFilterMetaData, DataTableOperatorFilterMetaData } from 'primereact/datatable';
3
3
  import { ColumnBodyOptions, ColumnFilterElementTemplateOptions } from 'primereact/column';
4
+ import { XViewStatusOrBoolean } from "./XUtils";
4
5
  import { XSearchBrowseParams } from "./XSearchBrowseParams";
5
6
  import { XAggregateType, XCustomFilter } from "../serverApi/FindParam";
6
7
  import { XOnSaveOrCancelProp } from "./XFormBase";
8
+ import { IconType } from "primereact/utils";
9
+ import { ButtonProps } from "primereact/button";
7
10
  export type XBetweenFilterProp = "row" | "column" | undefined;
11
+ export interface XAppButtonForRow {
12
+ key?: string;
13
+ icon?: IconType<ButtonProps>;
14
+ label: string;
15
+ onClick: (selectedRow: any) => void;
16
+ }
8
17
  export interface XEditModeHandlers {
9
18
  onStart: () => void;
10
19
  onSave: () => void;
@@ -38,6 +47,7 @@ export interface XLazyDataTableProps {
38
47
  onEdit?: (selectedRow: any) => void;
39
48
  removeRow?: ((selectedRow: any) => Promise<boolean>) | boolean;
40
49
  onRemoveRow?: XOnSaveOrCancelProp;
50
+ appButtonsForRow?: XAppButtonForRow[];
41
51
  appButtons?: any;
42
52
  filters?: DataTableFilterMeta;
43
53
  customFilter?: XCustomFilter;
@@ -77,11 +87,19 @@ export interface XLazyColumnProps {
77
87
  header?: any;
78
88
  align?: "left" | "center" | "right";
79
89
  dropdownInFilter?: boolean;
90
+ dropdownFilter?: XCustomFilter;
91
+ dropdownSortField?: string;
80
92
  showFilterMenu?: boolean;
81
93
  betweenFilter?: XBetweenFilterProp | "noBetween";
82
94
  width?: string;
83
95
  aggregateType?: XAggregateType;
96
+ columnViewStatus: XViewStatusOrBoolean;
84
97
  filterElement?: XFilterElementProp;
85
98
  body?: React.ReactNode | ((data: any, options: ColumnBodyOptions) => React.ReactNode);
86
99
  }
87
- export declare const XLazyColumn: (props: XLazyColumnProps) => null;
100
+ export declare const XLazyColumn: {
101
+ (props: XLazyColumnProps): null;
102
+ defaultProps: {
103
+ columnViewStatus: boolean;
104
+ };
105
+ };