@michalrakus/x-react-web-lib 1.19.0 → 1.21.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/XEditor.d.ts +3 -0
- package/XEditor.js +5 -0
- package/XEditorBase.d.ts +3 -0
- package/XEditorBase.js +5 -0
- package/XExportRowsDialog.d.ts +1 -1
- package/XExportRowsDialog.js +1 -1
- package/XHtmlRenderer.d.ts +3 -0
- package/XHtmlRenderer.js +5 -0
- package/XLazyDataTable.d.ts +1 -1
- package/XLazyDataTable.js +1 -1
- package/XMultilineRenderer.d.ts +3 -0
- package/XMultilineRenderer.js +5 -0
- package/XParamBrowse.d.ts +3 -0
- package/XParamBrowse.js +5 -0
- package/XParamForm.d.ts +3 -0
- package/XParamForm.js +5 -0
- package/gulpfile.js +11 -4
- package/lib/administration/XBrowseMetaBrowse.d.ts +1 -1
- package/lib/administration/XBrowseMetaBrowse.js +1 -1
- package/lib/administration/XParamBrowse.d.ts +6 -0
- package/lib/administration/XParamBrowse.js +25 -0
- package/lib/administration/XParamForm.d.ts +7 -0
- package/lib/administration/XParamForm.js +60 -0
- package/lib/administration/XUserBrowse.d.ts +1 -1
- package/lib/administration/XUserBrowse.js +1 -1
- package/lib/components/XAutoComplete.d.ts +2 -0
- package/lib/components/XAutoComplete.js +1 -1
- package/lib/components/XAutoCompleteBase.d.ts +5 -1
- package/lib/components/XAutoCompleteBase.js +35 -36
- package/lib/components/XAutoCompleteDT.d.ts +4 -2
- package/lib/components/XAutoCompleteDT.js +1 -1
- package/lib/components/XEditBrowse.js +1 -1
- package/lib/components/XEditor.d.ts +15 -0
- package/lib/components/XEditor.js +64 -0
- package/lib/components/XEditorBase.d.ts +9 -0
- package/lib/components/XEditorBase.js +91 -0
- package/lib/components/XFormBase.d.ts +1 -0
- package/lib/components/XFormBase.js +19 -4
- package/lib/components/XFormComponent.d.ts +1 -0
- package/lib/components/XInputText.js +1 -1
- package/lib/components/XInputTextareaBase.js +3 -4
- package/lib/components/{XExportRowsDialog.d.ts → XLazyDataTable/XExportRowsDialog.d.ts} +1 -1
- package/lib/components/{XExportRowsDialog.js → XLazyDataTable/XExportRowsDialog.js} +5 -5
- package/lib/components/XLazyDataTable/XHtmlRenderer.d.ts +7 -0
- package/lib/components/XLazyDataTable/XHtmlRenderer.js +78 -0
- package/lib/components/{XLazyDataTable.d.ts → XLazyDataTable/XLazyDataTable.d.ts} +22 -6
- package/lib/components/{XLazyDataTable.js → XLazyDataTable/XLazyDataTable.js} +112 -48
- package/lib/components/XLazyDataTable/XMultilineRenderer.d.ts +8 -0
- package/lib/components/XLazyDataTable/XMultilineRenderer.js +80 -0
- package/lib/components/XLazyDataTable/XMultilineSwitch.d.ts +7 -0
- package/lib/components/XLazyDataTable/XMultilineSwitch.js +20 -0
- package/lib/components/XLazyDataTable/XOcfDropdown.d.ts +8 -0
- package/lib/components/XLazyDataTable/XOcfDropdown.js +52 -0
- package/lib/components/XUtilsMetadata.d.ts +1 -1
- package/lib/serverApi/ExportImportParam.d.ts +1 -0
- package/lib/serverApi/XUtilsCommon.d.ts +5 -0
- package/lib/serverApi/XUtilsCommon.js +101 -1
- package/lib/serverApi/XUtilsConversions.d.ts +3 -1
- package/lib/serverApi/XUtilsConversions.js +19 -14
- package/lib/serverApi/XUtilsMetadataCommon.d.ts +1 -0
- package/lib/serverApi/XUtilsMetadataCommon.js +16 -0
- package/lib/serverApi/x-lib-api.d.ts +6 -0
- package/lib/serverApi/x-lib-api.js +3 -0
- package/package.json +2 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
37
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
38
|
+
if (!m) return o;
|
|
39
|
+
var i = m.call(o), r, ar = [], e;
|
|
40
|
+
try {
|
|
41
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
42
|
+
}
|
|
43
|
+
catch (error) { e = { error: error }; }
|
|
44
|
+
finally {
|
|
45
|
+
try {
|
|
46
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
47
|
+
}
|
|
48
|
+
finally { if (e) throw e.error; }
|
|
49
|
+
}
|
|
50
|
+
return ar;
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.XEditorBase = void 0;
|
|
54
|
+
var react_1 = __importStar(require("react"));
|
|
55
|
+
var XUtils_1 = require("./XUtils");
|
|
56
|
+
var editor_1 = require("primereact/editor");
|
|
57
|
+
// koli optimalizacii - typovany text si zapisuje do svojej stavovej premennej a onChange zavola az z onBlur
|
|
58
|
+
// pri velkych formularoch je totiz volanie zmeny stavu this.setState({object: this.state.object, errorMap: this.state.errorMap}); pomale
|
|
59
|
+
var XEditorBase = function (props) {
|
|
60
|
+
// true, ak uzivatel typuje hodnotu
|
|
61
|
+
// false, ak bol zavolany onBlur
|
|
62
|
+
var _a = __read((0, react_1.useState)(false), 2), editorValueChanged = _a[0], setEditorValueChanged = _a[1];
|
|
63
|
+
// pouzivane, len ak editorValueChanged === true, je tu zapisana zmenena hodnota v editore
|
|
64
|
+
var _b = __read((0, react_1.useState)(null), 2), editorValue = _b[0], setEditorValue = _b[1];
|
|
65
|
+
var onTextChange = function (e) {
|
|
66
|
+
setEditorValueChanged(true);
|
|
67
|
+
setEditorValue(e.htmlValue);
|
|
68
|
+
};
|
|
69
|
+
var onBlur = function (e) {
|
|
70
|
+
// optimalizacia - onChange volame len ak editorValueChanged === true
|
|
71
|
+
if (editorValueChanged) {
|
|
72
|
+
// TODO - bude vzdy onBlur volany az potom co bude setnuta editorValue? lebo ak nie tak treba hodnotu vytiahnut z "e"
|
|
73
|
+
//const htmlValue: string | null = e.target.??;
|
|
74
|
+
props.onChange(editorValue);
|
|
75
|
+
setEditorValueChanged(false);
|
|
76
|
+
setEditorValue(null); // pre poriadok
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
var getValue = function () {
|
|
80
|
+
var htmlValue;
|
|
81
|
+
if (editorValueChanged) {
|
|
82
|
+
htmlValue = editorValue;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
htmlValue = props.value;
|
|
86
|
+
}
|
|
87
|
+
return htmlValue !== null ? htmlValue : undefined; // value v Editor nechce null, chce undefined
|
|
88
|
+
};
|
|
89
|
+
return (react_1.default.createElement(editor_1.Editor, __assign({ id: props.id, value: getValue(), onTextChange: onTextChange, onBlur: onBlur, readOnly: props.readOnly, style: props.style }, XUtils_1.XUtils.createErrorProps(props.error))));
|
|
90
|
+
};
|
|
91
|
+
exports.XEditorBase = XEditorBase;
|
|
@@ -62,6 +62,7 @@ export declare abstract class XFormBase extends Component<XFormProps> {
|
|
|
62
62
|
static saveErrorsIntoXRowTechData(row: any, xErrors: XErrors): void;
|
|
63
63
|
formReadOnly(object: XObject, field: string): boolean;
|
|
64
64
|
createNewObject(): XObject;
|
|
65
|
+
createNewObjectAsync(): Promise<XObject>;
|
|
65
66
|
preInitForm(object: XObject, operationType: OperationType.Insert | OperationType.Update): void;
|
|
66
67
|
validate(object: XObject): Promise<XErrors>;
|
|
67
68
|
preSave(object: XObject): void;
|
|
@@ -180,17 +180,23 @@ var XFormBase = /** @class */ (function (_super) {
|
|
|
180
180
|
}
|
|
181
181
|
finally { if (e_1) throw e_1.error; }
|
|
182
182
|
}
|
|
183
|
-
return [3 /*break*/,
|
|
183
|
+
return [3 /*break*/, 5];
|
|
184
184
|
case 2:
|
|
185
185
|
// add new row
|
|
186
186
|
object = this.createNewObject();
|
|
187
|
+
if (!(Object.keys(object).length === 0)) return [3 /*break*/, 4];
|
|
188
|
+
return [4 /*yield*/, this.createNewObjectAsync()];
|
|
189
|
+
case 3:
|
|
190
|
+
object = _d.sent();
|
|
191
|
+
_d.label = 4;
|
|
192
|
+
case 4:
|
|
187
193
|
// pridame pripadne "init values", ktore pridu cez prop object (pouziva sa napr. pri insertovani cez XAutoComplete na predplnenie hodnoty)
|
|
188
194
|
if (this.props.initValues !== undefined) {
|
|
189
|
-
object = __assign(__assign({}, object), this.props.initValues); // values from this.props.
|
|
195
|
+
object = __assign(__assign({}, object), this.props.initValues); // values from this.props.initValues will override values from object (if key is the same)
|
|
190
196
|
}
|
|
191
197
|
operationType = XUtils_1.OperationType.Insert;
|
|
192
|
-
_d.label =
|
|
193
|
-
case
|
|
198
|
+
_d.label = 5;
|
|
199
|
+
case 5:
|
|
194
200
|
this.preInitForm(object, operationType);
|
|
195
201
|
//console.log("volany XFormBase.componentDidMount() - ideme setnut object");
|
|
196
202
|
this.setState({ object: object } /*, () => console.log("volany XFormBase.componentDidMount() - callback setState")*/);
|
|
@@ -618,6 +624,15 @@ var XFormBase = /** @class */ (function (_super) {
|
|
|
618
624
|
XFormBase.prototype.createNewObject = function () {
|
|
619
625
|
return {};
|
|
620
626
|
};
|
|
627
|
+
// this method can be overriden in subclass if needed (to set some default values for insert)
|
|
628
|
+
// if createNewObject() returns empty object {}, then createNewObjectAsync() is called
|
|
629
|
+
XFormBase.prototype.createNewObjectAsync = function () {
|
|
630
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
631
|
+
return __generator(this, function (_a) {
|
|
632
|
+
return [2 /*return*/, {}];
|
|
633
|
+
});
|
|
634
|
+
});
|
|
635
|
+
};
|
|
621
636
|
// this method can be overriden in subclass if needed (to modify/save object after read from DB and before set into the form)
|
|
622
637
|
XFormBase.prototype.preInitForm = function (object, operationType) {
|
|
623
638
|
};
|
|
@@ -63,7 +63,7 @@ var XInputText = /** @class */ (function (_super) {
|
|
|
63
63
|
var label = this.getLabel();
|
|
64
64
|
return (react_1.default.createElement("div", { className: "field grid" },
|
|
65
65
|
label !== undefined ? react_1.default.createElement("label", { htmlFor: this.props.field, className: "col-fixed", style: this.getLabelStyle() }, label) : null,
|
|
66
|
-
react_1.default.createElement(inputtext_1.InputText, __assign({ id: this.props.field, value: this.getValue(), onChange: this.onValueChange, readOnly: this.isReadOnly(), maxLength: this.xField.length, size: size, style: this.props.inputStyle }, this.getClassNameTooltip(), { onBlur: this.onBlur }))));
|
|
66
|
+
react_1.default.createElement(inputtext_1.InputText, __assign({ id: this.props.field, value: this.getValue(), onChange: this.onValueChange, readOnly: this.isReadOnly(), maxLength: this.xField.length, size: size, style: this.props.inputStyle }, this.getClassNameTooltip(), { onBlur: this.onBlur, placeholder: this.props.placeholder }))));
|
|
67
67
|
};
|
|
68
68
|
return XInputText;
|
|
69
69
|
}(XInput_1.XInput));
|
|
@@ -58,18 +58,17 @@ var inputtextarea_1 = require("primereact/inputtextarea");
|
|
|
58
58
|
// koli optimalizacii - typovany text si zapisuje do svojej stavovej premennej a onChange zavola az z onBlur
|
|
59
59
|
// pri velkych formularoch je totiz volanie zmeny stavu this.setState({object: this.state.object, errorMap: this.state.errorMap}); pomale
|
|
60
60
|
var XInputTextareaBase = function (props) {
|
|
61
|
-
// true, ak uzivatel typuje hodnotu
|
|
62
|
-
// false, ak
|
|
61
|
+
// true, ak uzivatel typuje hodnotu
|
|
62
|
+
// false, ak bol zavolany onBlur
|
|
63
63
|
var _a = __read((0, react_1.useState)(false), 2), inputChanged = _a[0], setInputChanged = _a[1];
|
|
64
64
|
// pouzivane, len ak inputChanged === true, je tu zapisana zmenena hodnota v inpute
|
|
65
65
|
var _b = __read((0, react_1.useState)(undefined), 2), inputValueState = _b[0], setInputValueState = _b[1];
|
|
66
66
|
var onChange = function (e) {
|
|
67
|
-
// conversion to IPostgresInterval will be done in onBlur
|
|
68
67
|
setInputChanged(true);
|
|
69
68
|
setInputValueState(e.target.value);
|
|
70
69
|
};
|
|
71
70
|
var onBlur = function (e) {
|
|
72
|
-
// optimalizacia -
|
|
71
|
+
// optimalizacia - onChange volame len ak inputChanged === true
|
|
73
72
|
if (inputChanged) {
|
|
74
73
|
var value = (0, XUtilsConversions_1.stringFromUI)(e.target.value);
|
|
75
74
|
props.onChange(value);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ExportType, LazyDataTableQueryParam } from "
|
|
2
|
+
import { ExportType, LazyDataTableQueryParam } from "../../serverApi/ExportImportParam";
|
|
3
3
|
export interface XExportParams {
|
|
4
4
|
path: string;
|
|
5
5
|
queryParam: LazyDataTableQueryParam | any;
|
|
@@ -76,16 +76,16 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
76
76
|
};
|
|
77
77
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
78
78
|
exports.XExportRowsDialog = void 0;
|
|
79
|
-
var ExportImportParam_1 = require("
|
|
79
|
+
var ExportImportParam_1 = require("../../serverApi/ExportImportParam");
|
|
80
80
|
var react_1 = __importStar(require("react"));
|
|
81
81
|
var dialog_1 = require("primereact/dialog");
|
|
82
82
|
var inputtext_1 = require("primereact/inputtext");
|
|
83
83
|
var dropdown_1 = require("primereact/dropdown");
|
|
84
84
|
var checkbox_1 = require("primereact/checkbox");
|
|
85
|
-
var XButton_1 = require("
|
|
86
|
-
var XUtils_1 = require("
|
|
87
|
-
var XUtilsConversions_1 = require("
|
|
88
|
-
var XLocale_1 = require("
|
|
85
|
+
var XButton_1 = require("../XButton");
|
|
86
|
+
var XUtils_1 = require("../XUtils");
|
|
87
|
+
var XUtilsConversions_1 = require("../../serverApi/XUtilsConversions");
|
|
88
|
+
var XLocale_1 = require("../XLocale");
|
|
89
89
|
var XExportRowsDialog = function (props) {
|
|
90
90
|
var _a, _b;
|
|
91
91
|
var _c = __read((0, react_1.useState)(ExportImportParam_1.ExportType.Csv), 2), exportType = _c[0], setExportType = _c[1];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
26
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
27
|
+
if (!m) return o;
|
|
28
|
+
var i = m.call(o), r, ar = [], e;
|
|
29
|
+
try {
|
|
30
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
31
|
+
}
|
|
32
|
+
catch (error) { e = { error: error }; }
|
|
33
|
+
finally {
|
|
34
|
+
try {
|
|
35
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
36
|
+
}
|
|
37
|
+
finally { if (e) throw e.error; }
|
|
38
|
+
}
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.XHtmlRenderer = void 0;
|
|
43
|
+
var react_1 = __importStar(require("react"));
|
|
44
|
+
var button_1 = require("primereact/button");
|
|
45
|
+
var XHtmlRenderer = function (props) {
|
|
46
|
+
var _a;
|
|
47
|
+
// used only for props.renderType === "fewLines"
|
|
48
|
+
var _b = __read((0, react_1.useState)(false), 2), showAllLines = _b[0], setShowAllLines = _b[1];
|
|
49
|
+
var className;
|
|
50
|
+
var htmlValue = (_a = props.htmlValue) !== null && _a !== void 0 ? _a : "";
|
|
51
|
+
var buttonExpandCollapse = null;
|
|
52
|
+
if (props.renderType === "singleLine") {
|
|
53
|
+
className = "x-html-content-single-line";
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// "fewLines" or "allLines"
|
|
57
|
+
className = "x-html-content";
|
|
58
|
+
if (props.renderType === "fewLines" && htmlValue) {
|
|
59
|
+
var parser = new DOMParser();
|
|
60
|
+
var xmlDoc = parser.parseFromString(htmlValue, "text/html");
|
|
61
|
+
var pElemList = xmlDoc.getElementsByTagName("p");
|
|
62
|
+
if (pElemList.length > props.fewLinesCount) {
|
|
63
|
+
if (!showAllLines) {
|
|
64
|
+
htmlValue = "";
|
|
65
|
+
for (var i = 0; i < props.fewLinesCount; i++) {
|
|
66
|
+
htmlValue += pElemList[i].outerHTML; // naspet do <p>line 1</p>
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// pridame button na koniec posledneho riadku
|
|
70
|
+
buttonExpandCollapse = react_1.default.createElement(button_1.Button, { icon: showAllLines ? "pi pi-angle-double-left" : "pi pi-angle-double-right", onClick: function () { return setShowAllLines(!showAllLines); }, className: "x-button-multiline-expand-collapse", style: { marginLeft: '0rem' } });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return (react_1.default.createElement("div", { className: "p-editor-content ql-snow" },
|
|
75
|
+
react_1.default.createElement("div", { className: "ql-editor " + className, dangerouslySetInnerHTML: { __html: htmlValue } }),
|
|
76
|
+
buttonExpandCollapse));
|
|
77
|
+
};
|
|
78
|
+
exports.XHtmlRenderer = XHtmlRenderer;
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import React, { ReactChild } from 'react';
|
|
2
2
|
import { DataTableFilterMeta, DataTableFilterMetaData, DataTableOperatorFilterMetaData, DataTableSortMeta } from 'primereact/datatable';
|
|
3
3
|
import { ColumnBodyOptions, ColumnFilterElementTemplateOptions } from 'primereact/column';
|
|
4
|
-
import { XViewStatusOrBoolean } from "
|
|
5
|
-
import { XSearchBrowseParams } from "
|
|
6
|
-
import { XAggregateType, XCustomFilter } from "
|
|
7
|
-
import { XOnSaveOrCancelProp } from "
|
|
4
|
+
import { XViewStatusOrBoolean } from "../XUtils";
|
|
5
|
+
import { XSearchBrowseParams } from "../XSearchBrowseParams";
|
|
6
|
+
import { XAggregateType, XCustomFilter } from "../../serverApi/FindParam";
|
|
7
|
+
import { XOnSaveOrCancelProp } from "../XFormBase";
|
|
8
8
|
import { IconType } from "primereact/utils";
|
|
9
9
|
import { ButtonProps } from "primereact/button";
|
|
10
10
|
export type XBetweenFilterProp = "row" | "column" | undefined;
|
|
11
|
+
export type XMultilineRenderType = "singleLine" | "fewLines" | "allLines";
|
|
11
12
|
export interface XAppButtonForRow {
|
|
12
13
|
key?: string;
|
|
13
14
|
icon?: IconType<ButtonProps>;
|
|
14
15
|
label: string;
|
|
15
16
|
onClick: (selectedRow: any) => void;
|
|
16
17
|
}
|
|
18
|
+
export interface XOptionalCustomFilter {
|
|
19
|
+
label: string;
|
|
20
|
+
filter: XCustomFilter;
|
|
21
|
+
}
|
|
17
22
|
export interface XEditModeHandlers {
|
|
18
23
|
onStart: () => void;
|
|
19
24
|
onSave: () => void;
|
|
@@ -51,14 +56,18 @@ export interface XLazyDataTableProps {
|
|
|
51
56
|
appButtons?: any;
|
|
52
57
|
filters?: DataTableFilterMeta;
|
|
53
58
|
customFilter?: XCustomFilter;
|
|
59
|
+
optionalCustomFilters?: XOptionalCustomFilter[];
|
|
54
60
|
sortField?: string | DataTableSortMeta[];
|
|
55
61
|
fullTextSearch: boolean | string[];
|
|
56
62
|
fields?: string[];
|
|
57
|
-
|
|
63
|
+
multilineSwitch: boolean;
|
|
64
|
+
multilineSwitchInitValue: XMultilineRenderType;
|
|
65
|
+
multilineSwitchFewLinesCount: number;
|
|
58
66
|
searchBrowseParams?: XSearchBrowseParams;
|
|
59
67
|
width?: string;
|
|
60
68
|
rowClassName?: (data: any) => object | string | undefined;
|
|
61
69
|
dataLoadedState?: [boolean, React.Dispatch<React.SetStateAction<boolean>>];
|
|
70
|
+
exportFieldsToDuplicateValues?: string[];
|
|
62
71
|
editMode?: boolean;
|
|
63
72
|
editModeHandlers?: XEditModeHandlers;
|
|
64
73
|
displayed?: boolean;
|
|
@@ -71,7 +80,9 @@ export declare const XLazyDataTable: {
|
|
|
71
80
|
rows: number;
|
|
72
81
|
filterDisplay: string;
|
|
73
82
|
fullTextSearch: boolean;
|
|
74
|
-
|
|
83
|
+
multilineSwitch: boolean;
|
|
84
|
+
multilineSwitchInitValue: string;
|
|
85
|
+
multilineSwitchFewLinesCount: number;
|
|
75
86
|
scrollable: boolean;
|
|
76
87
|
scrollWidth: string;
|
|
77
88
|
scrollHeight: string;
|
|
@@ -86,6 +97,7 @@ export type XFilterElementParams = {
|
|
|
86
97
|
options: ColumnFilterElementTemplateOptions;
|
|
87
98
|
};
|
|
88
99
|
export type XFilterElementProp = (params: XFilterElementParams) => React.ReactNode;
|
|
100
|
+
export type XContentType = "multiline" | "html" | undefined;
|
|
89
101
|
export interface XLazyColumnProps {
|
|
90
102
|
field: string;
|
|
91
103
|
header?: any;
|
|
@@ -96,11 +108,15 @@ export interface XLazyColumnProps {
|
|
|
96
108
|
showFilterMenu?: boolean;
|
|
97
109
|
betweenFilter?: XBetweenFilterProp | "noBetween";
|
|
98
110
|
width?: string;
|
|
111
|
+
contentType?: XContentType;
|
|
99
112
|
aggregateType?: XAggregateType;
|
|
100
113
|
columnViewStatus: XViewStatusOrBoolean;
|
|
101
114
|
filterElement?: XFilterElementProp;
|
|
102
115
|
body?: React.ReactNode | ((data: any, options: ColumnBodyOptions) => React.ReactNode);
|
|
103
116
|
}
|
|
117
|
+
export type XLazyColumnType = {
|
|
118
|
+
props: XLazyColumnProps;
|
|
119
|
+
};
|
|
104
120
|
export declare const XLazyColumn: {
|
|
105
121
|
(props: XLazyColumnProps): null;
|
|
106
122
|
defaultProps: {
|