@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.
- package/XFormCol.d.ts +3 -0
- package/XFormCol.js +5 -0
- package/XFormInlineRow.d.ts +3 -0
- package/XFormInlineRow.js +5 -0
- package/XFormRow.d.ts +3 -0
- package/XFormRow.js +5 -0
- package/XFormRowCol.d.ts +3 -0
- package/XFormRowCol.js +5 -0
- package/XUtilsConversions.d.ts +1 -1
- package/XUtilsConversions.js +1 -1
- package/XUtilsMetadataCommon.d.ts +3 -0
- package/XUtilsMetadataCommon.js +5 -0
- package/gulpfile.js +8 -2
- package/lib/components/XAutoComplete.d.ts +4 -2
- package/lib/components/XAutoComplete.js +13 -11
- package/lib/components/XAutoCompleteBase.d.ts +5 -0
- package/lib/components/XAutoCompleteBase.js +34 -3
- package/lib/components/XAutoCompleteDT.js +4 -4
- package/lib/components/XCalendar.js +1 -1
- package/lib/components/XDropdown.js +2 -2
- package/lib/components/XDropdownDT.js +4 -4
- package/lib/components/XDropdownDTFilter.d.ts +3 -0
- package/lib/components/XDropdownDTFilter.js +7 -6
- package/lib/components/XDropdownForEntity.js +2 -2
- package/lib/components/XEditBrowse.js +4 -3
- package/lib/components/XExportRowsDialog.js +1 -1
- package/lib/components/XFieldSelector.js +4 -4
- package/lib/components/XFormDataTable2.d.ts +15 -9
- package/lib/components/XFormDataTable2.js +42 -32
- package/lib/components/XFormRowCol/XFormCol.d.ts +8 -0
- package/lib/components/XFormRowCol/XFormCol.js +12 -0
- package/lib/components/XFormRowCol/XFormInlineRow.d.ts +8 -0
- package/lib/components/XFormRowCol/XFormInlineRow.js +12 -0
- package/lib/components/XFormRowCol/XFormRow.d.ts +8 -0
- package/lib/components/XFormRowCol/XFormRow.js +12 -0
- package/lib/components/XFormRowCol/XFormRowCol.d.ts +9 -0
- package/lib/components/XFormRowCol/XFormRowCol.js +30 -0
- package/lib/components/XFtsInput.js +1 -1
- package/lib/components/XInput.js +2 -2
- package/lib/components/XInputDT.js +2 -2
- package/lib/components/XInputDateDT.js +1 -1
- package/lib/components/XInputFileList.js +6 -6
- package/lib/components/XInputIntervalBase.js +1 -1
- package/lib/components/XInputText.js +1 -1
- package/lib/components/XInputTextDT.js +3 -3
- package/lib/components/XInputTextarea.js +1 -1
- package/lib/components/XLazyDataTable.d.ts +19 -1
- package/lib/components/XLazyDataTable.js +26 -45
- package/lib/components/XSearchButton.js +4 -4
- package/lib/components/XSearchButtonDT.js +3 -3
- package/lib/components/XSearchButtonOld.js +5 -5
- package/lib/components/XToOneAssocButton.js +3 -3
- package/lib/components/XUtils.d.ts +8 -0
- package/lib/components/XUtils.js +25 -2
- package/lib/components/XUtilsMetadata.d.ts +1 -19
- package/lib/components/XUtilsMetadata.js +8 -186
- package/lib/components/locale/x-en.json +4 -1
- package/lib/{components → serverApi}/XUtilsConversions.d.ts +18 -1
- package/lib/serverApi/XUtilsConversions.js +330 -0
- package/lib/serverApi/XUtilsMetadataCommon.d.ts +30 -0
- package/lib/serverApi/XUtilsMetadataCommon.js +208 -0
- package/package.json +2 -2
- 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 =
|
|
93
|
-
var xAssocToMany =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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.
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 = (
|
|
627
|
-
removeRowLabel = (
|
|
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:
|
|
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: "
|
|
642
|
-
sortable:
|
|
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("
|
|
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);
|
package/lib/components/XInput.js
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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("
|
|
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("
|
|
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 =
|
|
85
|
-
var xAssocToMany =
|
|
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 =
|
|
87
|
+
var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(_this.entity);
|
|
88
88
|
_this.idField = xEntity.idField;
|
|
89
|
-
_this.xFileField =
|
|
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("
|
|
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("
|
|
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("
|
|
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 =
|
|
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("
|
|
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:
|
|
100
|
+
export declare const XLazyColumn: {
|
|
101
|
+
(props: XLazyColumnProps): null;
|
|
102
|
+
defaultProps: {
|
|
103
|
+
columnViewStatus: boolean;
|
|
104
|
+
};
|
|
105
|
+
};
|