@michalrakus/x-react-web-lib 1.7.3 → 1.9.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/README.md +3 -3
- package/gulpfile.js +82 -82
- package/lib/administration/XBrowseMetaBrowse.d.ts +2 -2
- package/lib/administration/XBrowseMetaBrowse.js +21 -21
- package/lib/administration/XBrowseMetaForm.d.ts +5 -5
- package/lib/administration/XBrowseMetaForm.js +63 -63
- package/lib/administration/XUserBrowse.d.ts +2 -2
- package/lib/administration/XUserBrowse.js +88 -87
- package/lib/administration/XUserForm.d.ts +9 -9
- package/lib/administration/XUserForm.js +195 -194
- package/lib/components/SearchTableParams.d.ts +11 -11
- package/lib/components/SearchTableParams.js +2 -2
- package/lib/components/SourceCodeLinkEntity.d.ts +4 -4
- package/lib/components/SourceCodeLinkEntity.js +14 -14
- package/lib/components/XAutoComplete.d.ts +36 -36
- package/lib/components/XAutoComplete.js +155 -155
- package/lib/components/XAutoCompleteBase.d.ts +45 -45
- package/lib/components/XAutoCompleteBase.js +371 -371
- package/lib/components/XAutoCompleteDT.d.ts +33 -33
- package/lib/components/XAutoCompleteDT.js +140 -140
- package/lib/components/XBrowse.d.ts +33 -33
- package/lib/components/XBrowse.js +360 -360
- package/lib/components/XButton.d.ts +9 -9
- package/lib/components/XButton.js +13 -13
- package/lib/components/XButtonIconMedium.d.ts +9 -9
- package/lib/components/XButtonIconMedium.js +13 -13
- package/lib/components/XButtonIconNarrow.d.ts +10 -10
- package/lib/components/XButtonIconNarrow.js +25 -25
- package/lib/components/XButtonIconSmall.d.ts +9 -9
- package/lib/components/XButtonIconSmall.js +13 -13
- package/lib/components/XCalendar.d.ts +8 -8
- package/lib/components/XCalendar.js +27 -27
- package/lib/components/XChangePasswordForm.d.ts +5 -5
- package/lib/components/XChangePasswordForm.js +160 -160
- package/lib/components/XCheckbox.d.ts +8 -8
- package/lib/components/XCheckbox.js +57 -57
- package/lib/components/XCheckboxDT.d.ts +10 -10
- package/lib/components/XCheckboxDT.js +46 -46
- package/lib/components/XDataTable.d.ts +11 -11
- package/lib/components/XDataTable.js +197 -197
- package/lib/components/XDropdown.d.ts +18 -18
- package/lib/components/XDropdown.js +57 -57
- package/lib/components/XDropdownDT.d.ts +13 -13
- package/lib/components/XDropdownDT.js +128 -128
- package/lib/components/XDropdownDTFilter.d.ts +7 -7
- package/lib/components/XDropdownDTFilter.js +121 -121
- package/lib/components/XDropdownForEntity.d.ts +25 -25
- package/lib/components/XDropdownForEntity.js +149 -149
- package/lib/components/XDropdownFormDTFilter.d.ts +7 -7
- package/lib/components/XDropdownFormDTFilter.js +121 -121
- package/lib/components/XEditColumnDialog.d.ts +13 -13
- package/lib/components/XEditColumnDialog.js +112 -112
- package/lib/components/XEnvVars.d.ts +15 -12
- package/lib/components/XEnvVars.js +23 -20
- package/lib/components/XErrors.d.ts +12 -12
- package/lib/components/XErrors.js +2 -2
- package/lib/components/XExportRowsDialog.d.ts +15 -15
- package/lib/components/XExportRowsDialog.js +184 -184
- package/lib/components/XFieldChangeEvent.d.ts +11 -11
- package/lib/components/XFieldChangeEvent.js +2 -2
- package/lib/components/XFieldSelector.d.ts +7 -7
- package/lib/components/XFieldSelector.js +113 -113
- package/lib/components/XFormBase.d.ts +59 -59
- package/lib/components/XFormBase.js +526 -526
- package/lib/components/XFormBaseModif.d.ts +5 -5
- package/lib/components/XFormBaseModif.js +33 -33
- package/lib/components/XFormBaseT.d.ts +4 -4
- package/lib/components/XFormBaseT.js +31 -31
- package/lib/components/XFormComponent.d.ts +40 -40
- package/lib/components/XFormComponent.js +177 -177
- package/lib/components/XFormComponentDT.d.ts +30 -30
- package/lib/components/XFormComponentDT.js +145 -145
- package/lib/components/XFormDataTable2.d.ts +143 -143
- package/lib/components/XFormDataTable2.js +686 -686
- package/lib/components/XFormFooter.d.ts +6 -6
- package/lib/components/XFormFooter.js +19 -19
- package/lib/components/XFormNavigator3.d.ts +12 -12
- package/lib/components/XFormNavigator3.js +130 -130
- package/lib/components/XHolders.d.ts +7 -7
- package/lib/components/XHolders.js +15 -15
- package/lib/components/XInput.d.ts +13 -13
- package/lib/components/XInput.js +38 -38
- package/lib/components/XInputDT.d.ts +11 -11
- package/lib/components/XInputDT.js +37 -37
- package/lib/components/XInputDate.d.ts +13 -13
- package/lib/components/XInputDate.js +63 -63
- package/lib/components/XInputDateDT.d.ts +10 -10
- package/lib/components/XInputDateDT.js +55 -55
- package/lib/components/XInputDecimal.d.ts +15 -15
- package/lib/components/XInputDecimal.js +78 -78
- package/lib/components/XInputDecimalBase.d.ts +12 -12
- package/lib/components/XInputDecimalBase.js +18 -18
- package/lib/components/XInputDecimalDT.d.ts +11 -11
- package/lib/components/XInputDecimalDT.js +74 -74
- package/lib/components/XInputFileList.d.ts +36 -36
- package/lib/components/XInputFileList.js +251 -244
- package/lib/components/XInputText.d.ts +12 -12
- package/lib/components/XInputText.js +69 -69
- package/lib/components/XInputTextDT.d.ts +9 -9
- package/lib/components/XInputTextDT.js +42 -42
- package/lib/components/XInputTextarea.d.ts +18 -18
- package/lib/components/XInputTextarea.js +85 -85
- package/lib/components/XLazyDataTable.d.ts +78 -78
- package/lib/components/XLazyDataTable.js +885 -885
- package/lib/components/XLocale.d.ts +26 -26
- package/lib/components/XLocale.js +59 -59
- package/lib/components/XLoginDialog.d.ts +8 -8
- package/lib/components/XLoginDialog.js +21 -21
- package/lib/components/XLoginForm.d.ts +7 -7
- package/lib/components/XLoginForm.js +128 -128
- package/lib/components/XObject.d.ts +3 -3
- package/lib/components/XObject.js +2 -2
- package/lib/components/XResponseError.d.ts +11 -11
- package/lib/components/XResponseError.js +32 -32
- package/lib/components/XSearchButton.d.ts +26 -26
- package/lib/components/XSearchButton.js +225 -225
- package/lib/components/XSearchButtonDT.d.ts +12 -12
- package/lib/components/XSearchButtonDT.js +188 -188
- package/lib/components/XSearchButtonOld.d.ts +13 -13
- package/lib/components/XSearchButtonOld.js +212 -212
- package/lib/components/XToOneAssocButton.d.ts +8 -8
- package/lib/components/XToOneAssocButton.js +30 -30
- package/lib/components/XToken.d.ts +6 -6
- package/lib/components/XToken.js +2 -2
- package/lib/components/XUtils.d.ts +74 -74
- package/lib/components/XUtils.js +627 -627
- package/lib/components/XUtilsConversions.d.ts +12 -12
- package/lib/components/XUtilsConversions.js +125 -125
- package/lib/components/XUtilsMetadata.d.ts +39 -39
- package/lib/components/XUtilsMetadata.js +452 -452
- package/lib/components/locale/x-en.json +26 -26
- package/lib/components/useXToken.d.ts +2 -2
- package/lib/components/useXToken.js +44 -44
- package/lib/serverApi/ExportImportParam.d.ts +51 -51
- package/lib/serverApi/ExportImportParam.js +34 -34
- package/lib/serverApi/FindParam.d.ts +34 -34
- package/lib/serverApi/FindParam.js +30 -30
- package/lib/serverApi/FindResult.d.ts +8 -8
- package/lib/serverApi/FindResult.js +2 -2
- package/lib/serverApi/XBrowseMetadata.d.ts +19 -19
- package/lib/serverApi/XBrowseMetadata.js +2 -2
- package/lib/serverApi/XEntityMetadata.d.ts +35 -35
- package/lib/serverApi/XEntityMetadata.js +2 -2
- package/lib/serverApi/XFileJsonField.d.ts +6 -0
- package/lib/serverApi/XFileJsonField.js +2 -0
- package/lib/serverApi/XUser.d.ts +8 -7
- package/lib/serverApi/XUser.js +2 -2
- package/lib/serverApi/XUserAuthenticationIfc.d.ts +9 -9
- package/lib/serverApi/XUserAuthenticationIfc.js +2 -2
- package/lib/serverApi/XUtilsCommon.d.ts +13 -13
- package/lib/serverApi/XUtilsCommon.js +110 -110
- package/package.json +1 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { XFilterProp, XFormComponent, XFormComponentProps } from "./XFormComponent";
|
|
3
|
-
import { XAssoc } from "../serverApi/XEntityMetadata";
|
|
4
|
-
import { XObject } from "./XObject";
|
|
5
|
-
export interface XSearchButtonProps extends XFormComponentProps<XObject> {
|
|
6
|
-
assocField: string;
|
|
7
|
-
displayField: string;
|
|
8
|
-
searchTable: any;
|
|
9
|
-
assocForm?: any;
|
|
10
|
-
filter?: XFilterProp;
|
|
11
|
-
size?: number;
|
|
12
|
-
inputStyle?: React.CSSProperties;
|
|
13
|
-
}
|
|
14
|
-
export declare class XSearchButton extends XFormComponent<XObject, XSearchButtonProps> {
|
|
15
|
-
protected xAssoc: XAssoc;
|
|
16
|
-
inputTextRef: any;
|
|
17
|
-
state: {
|
|
18
|
-
inputChanged: boolean;
|
|
19
|
-
inputValueState: any;
|
|
20
|
-
dialogOpened: boolean;
|
|
21
|
-
};
|
|
22
|
-
constructor(props: XSearchButtonProps);
|
|
23
|
-
getField(): string;
|
|
24
|
-
isNotNull(): boolean;
|
|
25
|
-
render(): JSX.Element;
|
|
26
|
-
}
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { XFilterProp, XFormComponent, XFormComponentProps } from "./XFormComponent";
|
|
3
|
+
import { XAssoc } from "../serverApi/XEntityMetadata";
|
|
4
|
+
import { XObject } from "./XObject";
|
|
5
|
+
export interface XSearchButtonProps extends XFormComponentProps<XObject> {
|
|
6
|
+
assocField: string;
|
|
7
|
+
displayField: string;
|
|
8
|
+
searchTable: any;
|
|
9
|
+
assocForm?: any;
|
|
10
|
+
filter?: XFilterProp;
|
|
11
|
+
size?: number;
|
|
12
|
+
inputStyle?: React.CSSProperties;
|
|
13
|
+
}
|
|
14
|
+
export declare class XSearchButton extends XFormComponent<XObject, XSearchButtonProps> {
|
|
15
|
+
protected xAssoc: XAssoc;
|
|
16
|
+
inputTextRef: any;
|
|
17
|
+
state: {
|
|
18
|
+
inputChanged: boolean;
|
|
19
|
+
inputValueState: any;
|
|
20
|
+
dialogOpened: boolean;
|
|
21
|
+
};
|
|
22
|
+
constructor(props: XSearchButtonProps);
|
|
23
|
+
getField(): string;
|
|
24
|
+
isNotNull(): boolean;
|
|
25
|
+
render(): JSX.Element;
|
|
26
|
+
}
|
|
@@ -1,225 +1,225 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
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]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
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
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
-
function step(op) {
|
|
42
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
44
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
45
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
-
switch (op[0]) {
|
|
47
|
-
case 0: case 1: t = op; break;
|
|
48
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
-
default:
|
|
52
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
-
if (t[2]) _.ops.pop();
|
|
57
|
-
_.trys.pop(); continue;
|
|
58
|
-
}
|
|
59
|
-
op = body.call(thisArg, _);
|
|
60
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
65
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
66
|
-
};
|
|
67
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
|
-
exports.XSearchButton = void 0;
|
|
69
|
-
var react_1 = __importDefault(require("react"));
|
|
70
|
-
var inputtext_1 = require("primereact/inputtext");
|
|
71
|
-
var button_1 = require("primereact/button");
|
|
72
|
-
var XUtils_1 = require("./XUtils");
|
|
73
|
-
var dialog_1 = require("primereact/dialog");
|
|
74
|
-
var XUtilsMetadata_1 = require("./XUtilsMetadata");
|
|
75
|
-
var XFormComponent_1 = require("./XFormComponent");
|
|
76
|
-
var XSearchButton = /** @class */ (function (_super) {
|
|
77
|
-
__extends(XSearchButton, _super);
|
|
78
|
-
function XSearchButton(props) {
|
|
79
|
-
var _this = _super.call(this, props) || this;
|
|
80
|
-
_this.xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.form.getEntity()), props.assocField);
|
|
81
|
-
_this.inputTextRef = react_1.default.createRef();
|
|
82
|
-
// POVODNY KOD
|
|
83
|
-
//this.overlayPanelEl = React.createRef();
|
|
84
|
-
_this.state = {
|
|
85
|
-
inputChanged: false,
|
|
86
|
-
inputValueState: null,
|
|
87
|
-
dialogOpened: false
|
|
88
|
-
};
|
|
89
|
-
props.form.addField(props.assocField + '.' + props.displayField);
|
|
90
|
-
return _this;
|
|
91
|
-
}
|
|
92
|
-
XSearchButton.prototype.getField = function () {
|
|
93
|
-
return this.props.assocField;
|
|
94
|
-
};
|
|
95
|
-
XSearchButton.prototype.isNotNull = function () {
|
|
96
|
-
return !this.xAssoc.isNullable;
|
|
97
|
-
};
|
|
98
|
-
XSearchButton.prototype.render = function () {
|
|
99
|
-
var _this = this;
|
|
100
|
-
var _a;
|
|
101
|
-
var props = this.props;
|
|
102
|
-
var xEntityAssoc = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.xAssoc.entityName);
|
|
103
|
-
var xDisplayField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntityAssoc, props.displayField);
|
|
104
|
-
// tu boli hook-y kedysi...
|
|
105
|
-
var inputChanged = this.state.inputChanged;
|
|
106
|
-
var setInputChanged = function (inputChanged) { _this.setState({ inputChanged: inputChanged }); };
|
|
107
|
-
var inputValueState = this.state.inputValueState;
|
|
108
|
-
var setInputValueState = function (inputValueState) { _this.setState({ inputValueState: inputValueState }); };
|
|
109
|
-
var dialogOpened = this.state.dialogOpened;
|
|
110
|
-
var setDialogOpened = function (dialogOpened) { _this.setState({ dialogOpened: dialogOpened }); };
|
|
111
|
-
var computeInputValue = function () {
|
|
112
|
-
var inputValue;
|
|
113
|
-
if (!inputChanged) {
|
|
114
|
-
// TODO - pridat cez generikum typ fieldu (ak sa da)
|
|
115
|
-
// poznamka: ak assocObject === null tak treba do inputu zapisovat prazdny retazec, ak by sme pouzili null, neprejavila by sa zmena v modeli na null
|
|
116
|
-
var assocObject = _this.getValueFromObject();
|
|
117
|
-
inputValue = (assocObject !== null) ? assocObject[props.displayField] : "";
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
inputValue = inputValueState;
|
|
121
|
-
}
|
|
122
|
-
return inputValue;
|
|
123
|
-
};
|
|
124
|
-
var size = (_a = props.size) !== null && _a !== void 0 ? _a : xDisplayField.length;
|
|
125
|
-
var onInputValueChange = function (e) {
|
|
126
|
-
setInputChanged(true);
|
|
127
|
-
setInputValueState(e.target.value);
|
|
128
|
-
};
|
|
129
|
-
var onInputBlur = function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
130
|
-
var displayFieldFilter, customFilter, rows;
|
|
131
|
-
return __generator(this, function (_a) {
|
|
132
|
-
switch (_a.label) {
|
|
133
|
-
case 0:
|
|
134
|
-
if (!inputChanged) return [3 /*break*/, 3];
|
|
135
|
-
if (!(e.target.value === '' || e.target.value === undefined || e.target.value === null)) return [3 /*break*/, 1];
|
|
136
|
-
setValueToModel(null); // prazdny retazec znamena null hodnotu
|
|
137
|
-
return [3 /*break*/, 3];
|
|
138
|
-
case 1:
|
|
139
|
-
displayFieldFilter = { filter: "[".concat(props.displayField, "] LIKE :xDisplayFieldValue"), values: { "xDisplayFieldValue": "".concat(e.target.value, "%") } };
|
|
140
|
-
customFilter = this.getFilterBase(this.props.filter);
|
|
141
|
-
return [4 /*yield*/, XUtils_1.XUtils.fetchRows(this.xAssoc.entityName, XUtils_1.XUtils.filterAnd(displayFieldFilter, customFilter))];
|
|
142
|
-
case 2:
|
|
143
|
-
rows = _a.sent();
|
|
144
|
-
if (rows.length === 0) {
|
|
145
|
-
// POVODNY KOD
|
|
146
|
-
//overlayPanelEl.current.toggle(e);
|
|
147
|
-
setDialogOpened(true);
|
|
148
|
-
}
|
|
149
|
-
else if (rows.length === 1) {
|
|
150
|
-
// nastavime najdeny row
|
|
151
|
-
setValueToModel(rows[0]);
|
|
152
|
-
setInputChanged(false);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
// POVODNY KOD
|
|
156
|
-
//overlayPanelEl.current.toggle(e);
|
|
157
|
-
setDialogOpened(true);
|
|
158
|
-
}
|
|
159
|
-
_a.label = 3;
|
|
160
|
-
case 3: return [2 /*return*/];
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}); };
|
|
164
|
-
var setValueToModel = function (row) {
|
|
165
|
-
_this.onValueChangeBase(row, _this.props.onChange);
|
|
166
|
-
setInputChanged(false);
|
|
167
|
-
};
|
|
168
|
-
var onClickSearch = function (e) {
|
|
169
|
-
console.log("zavolany onClickSearch");
|
|
170
|
-
if (!_this.isReadOnly()) {
|
|
171
|
-
setDialogOpened(true);
|
|
172
|
-
// POVODNY KOD
|
|
173
|
-
//overlayPanelEl.current.toggle(e);
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
if (props.assocForm !== undefined) {
|
|
177
|
-
var assocObject = _this.getValueFromObject();
|
|
178
|
-
// OTAZKA - ziskavat id priamo z root objektu? potom ho vsak treba do root objektu pridat
|
|
179
|
-
var id = (assocObject !== null) ? assocObject[xEntityAssoc.idField] : null;
|
|
180
|
-
// klonovanim elementu pridame atribut id
|
|
181
|
-
var assocForm = react_1.default.cloneElement(props.assocForm, { id: id }, props.assocForm.children);
|
|
182
|
-
props.form.props.openForm(assocForm);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
var onChoose = function (chosenRow) {
|
|
187
|
-
console.log("zavolany onChoose");
|
|
188
|
-
// zavrieme search dialog
|
|
189
|
-
// POVODNY KOD
|
|
190
|
-
//overlayPanelEl.current.hide();
|
|
191
|
-
setDialogOpened(false);
|
|
192
|
-
// zapiseme vybraty row do objektu
|
|
193
|
-
setValueToModel(chosenRow);
|
|
194
|
-
};
|
|
195
|
-
var onHide = function () {
|
|
196
|
-
setDialogOpened(false);
|
|
197
|
-
// ak mame v inpute neplatnu hodnotu, musime vratit kurzor na input
|
|
198
|
-
if (inputChanged) {
|
|
199
|
-
_this.inputTextRef.current.focus();
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
// {React.createElement(props.searchTable, {searchTableParams: {onChoose: onChoose, displayField: props.displayField, filter: (inputChanged ? inputValueState : undefined)}, ...props.searchTableProps}, null)}
|
|
203
|
-
// <BrandSearchTable searchTableParams={{onChoose: onChoose, displayField: props.displayField, filter: (inputChanged ? inputValueState : undefined)}} qqq="fiha"/>
|
|
204
|
-
// takto cez metodku, mozno sa metodka vola len ked sa otvori dialog a usetrime nieco...
|
|
205
|
-
var createSearchTableParams = function () {
|
|
206
|
-
return {
|
|
207
|
-
onChoose: onChoose,
|
|
208
|
-
displayFieldFilter: (inputChanged ? { field: props.displayField, constraint: { value: inputValueState, matchMode: "startsWith" } } : undefined),
|
|
209
|
-
customFilter: _this.getFilterBase(_this.props.filter)
|
|
210
|
-
};
|
|
211
|
-
};
|
|
212
|
-
// vypocitame inputValue
|
|
213
|
-
var inputValue = computeInputValue();
|
|
214
|
-
return (react_1.default.createElement("div", { className: "field grid" },
|
|
215
|
-
react_1.default.createElement("label", { htmlFor: props.assocField, className: "col-fixed", style: this.getLabelStyle() }, this.getLabel()),
|
|
216
|
-
react_1.default.createElement("div", { className: "x-search-button-base" },
|
|
217
|
-
react_1.default.createElement(inputtext_1.InputText, __assign({ id: props.assocField, value: inputValue, onChange: onInputValueChange, onBlur: onInputBlur, readOnly: this.isReadOnly(), ref: this.inputTextRef, maxLength: xDisplayField.length, size: size, style: props.inputStyle }, this.getClassNameTooltip())),
|
|
218
|
-
react_1.default.createElement(button_1.Button, { label: "...", onClick: onClickSearch })),
|
|
219
|
-
react_1.default.createElement(dialog_1.Dialog, { visible: dialogOpened, onHide: onHide }, react_1.default.cloneElement(props.searchTable, {
|
|
220
|
-
searchTableParams: createSearchTableParams()
|
|
221
|
-
}, props.searchTable.children))));
|
|
222
|
-
};
|
|
223
|
-
return XSearchButton;
|
|
224
|
-
}(XFormComponent_1.XFormComponent));
|
|
225
|
-
exports.XSearchButton = XSearchButton;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
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]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
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
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
+
function step(op) {
|
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
44
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
+
switch (op[0]) {
|
|
47
|
+
case 0: case 1: t = op; break;
|
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
+
default:
|
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
+
if (t[2]) _.ops.pop();
|
|
57
|
+
_.trys.pop(); continue;
|
|
58
|
+
}
|
|
59
|
+
op = body.call(thisArg, _);
|
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
65
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
66
|
+
};
|
|
67
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
|
+
exports.XSearchButton = void 0;
|
|
69
|
+
var react_1 = __importDefault(require("react"));
|
|
70
|
+
var inputtext_1 = require("primereact/inputtext");
|
|
71
|
+
var button_1 = require("primereact/button");
|
|
72
|
+
var XUtils_1 = require("./XUtils");
|
|
73
|
+
var dialog_1 = require("primereact/dialog");
|
|
74
|
+
var XUtilsMetadata_1 = require("./XUtilsMetadata");
|
|
75
|
+
var XFormComponent_1 = require("./XFormComponent");
|
|
76
|
+
var XSearchButton = /** @class */ (function (_super) {
|
|
77
|
+
__extends(XSearchButton, _super);
|
|
78
|
+
function XSearchButton(props) {
|
|
79
|
+
var _this = _super.call(this, props) || this;
|
|
80
|
+
_this.xAssoc = XUtilsMetadata_1.XUtilsMetadata.getXAssocToOne(XUtilsMetadata_1.XUtilsMetadata.getXEntity(props.form.getEntity()), props.assocField);
|
|
81
|
+
_this.inputTextRef = react_1.default.createRef();
|
|
82
|
+
// POVODNY KOD
|
|
83
|
+
//this.overlayPanelEl = React.createRef();
|
|
84
|
+
_this.state = {
|
|
85
|
+
inputChanged: false,
|
|
86
|
+
inputValueState: null,
|
|
87
|
+
dialogOpened: false
|
|
88
|
+
};
|
|
89
|
+
props.form.addField(props.assocField + '.' + props.displayField);
|
|
90
|
+
return _this;
|
|
91
|
+
}
|
|
92
|
+
XSearchButton.prototype.getField = function () {
|
|
93
|
+
return this.props.assocField;
|
|
94
|
+
};
|
|
95
|
+
XSearchButton.prototype.isNotNull = function () {
|
|
96
|
+
return !this.xAssoc.isNullable;
|
|
97
|
+
};
|
|
98
|
+
XSearchButton.prototype.render = function () {
|
|
99
|
+
var _this = this;
|
|
100
|
+
var _a;
|
|
101
|
+
var props = this.props;
|
|
102
|
+
var xEntityAssoc = XUtilsMetadata_1.XUtilsMetadata.getXEntity(this.xAssoc.entityName);
|
|
103
|
+
var xDisplayField = XUtilsMetadata_1.XUtilsMetadata.getXFieldByPath(xEntityAssoc, props.displayField);
|
|
104
|
+
// tu boli hook-y kedysi...
|
|
105
|
+
var inputChanged = this.state.inputChanged;
|
|
106
|
+
var setInputChanged = function (inputChanged) { _this.setState({ inputChanged: inputChanged }); };
|
|
107
|
+
var inputValueState = this.state.inputValueState;
|
|
108
|
+
var setInputValueState = function (inputValueState) { _this.setState({ inputValueState: inputValueState }); };
|
|
109
|
+
var dialogOpened = this.state.dialogOpened;
|
|
110
|
+
var setDialogOpened = function (dialogOpened) { _this.setState({ dialogOpened: dialogOpened }); };
|
|
111
|
+
var computeInputValue = function () {
|
|
112
|
+
var inputValue;
|
|
113
|
+
if (!inputChanged) {
|
|
114
|
+
// TODO - pridat cez generikum typ fieldu (ak sa da)
|
|
115
|
+
// poznamka: ak assocObject === null tak treba do inputu zapisovat prazdny retazec, ak by sme pouzili null, neprejavila by sa zmena v modeli na null
|
|
116
|
+
var assocObject = _this.getValueFromObject();
|
|
117
|
+
inputValue = (assocObject !== null) ? assocObject[props.displayField] : "";
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
inputValue = inputValueState;
|
|
121
|
+
}
|
|
122
|
+
return inputValue;
|
|
123
|
+
};
|
|
124
|
+
var size = (_a = props.size) !== null && _a !== void 0 ? _a : xDisplayField.length;
|
|
125
|
+
var onInputValueChange = function (e) {
|
|
126
|
+
setInputChanged(true);
|
|
127
|
+
setInputValueState(e.target.value);
|
|
128
|
+
};
|
|
129
|
+
var onInputBlur = function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
130
|
+
var displayFieldFilter, customFilter, rows;
|
|
131
|
+
return __generator(this, function (_a) {
|
|
132
|
+
switch (_a.label) {
|
|
133
|
+
case 0:
|
|
134
|
+
if (!inputChanged) return [3 /*break*/, 3];
|
|
135
|
+
if (!(e.target.value === '' || e.target.value === undefined || e.target.value === null)) return [3 /*break*/, 1];
|
|
136
|
+
setValueToModel(null); // prazdny retazec znamena null hodnotu
|
|
137
|
+
return [3 /*break*/, 3];
|
|
138
|
+
case 1:
|
|
139
|
+
displayFieldFilter = { filter: "[".concat(props.displayField, "] LIKE :xDisplayFieldValue"), values: { "xDisplayFieldValue": "".concat(e.target.value, "%") } };
|
|
140
|
+
customFilter = this.getFilterBase(this.props.filter);
|
|
141
|
+
return [4 /*yield*/, XUtils_1.XUtils.fetchRows(this.xAssoc.entityName, XUtils_1.XUtils.filterAnd(displayFieldFilter, customFilter))];
|
|
142
|
+
case 2:
|
|
143
|
+
rows = _a.sent();
|
|
144
|
+
if (rows.length === 0) {
|
|
145
|
+
// POVODNY KOD
|
|
146
|
+
//overlayPanelEl.current.toggle(e);
|
|
147
|
+
setDialogOpened(true);
|
|
148
|
+
}
|
|
149
|
+
else if (rows.length === 1) {
|
|
150
|
+
// nastavime najdeny row
|
|
151
|
+
setValueToModel(rows[0]);
|
|
152
|
+
setInputChanged(false);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// POVODNY KOD
|
|
156
|
+
//overlayPanelEl.current.toggle(e);
|
|
157
|
+
setDialogOpened(true);
|
|
158
|
+
}
|
|
159
|
+
_a.label = 3;
|
|
160
|
+
case 3: return [2 /*return*/];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}); };
|
|
164
|
+
var setValueToModel = function (row) {
|
|
165
|
+
_this.onValueChangeBase(row, _this.props.onChange);
|
|
166
|
+
setInputChanged(false);
|
|
167
|
+
};
|
|
168
|
+
var onClickSearch = function (e) {
|
|
169
|
+
console.log("zavolany onClickSearch");
|
|
170
|
+
if (!_this.isReadOnly()) {
|
|
171
|
+
setDialogOpened(true);
|
|
172
|
+
// POVODNY KOD
|
|
173
|
+
//overlayPanelEl.current.toggle(e);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
if (props.assocForm !== undefined) {
|
|
177
|
+
var assocObject = _this.getValueFromObject();
|
|
178
|
+
// OTAZKA - ziskavat id priamo z root objektu? potom ho vsak treba do root objektu pridat
|
|
179
|
+
var id = (assocObject !== null) ? assocObject[xEntityAssoc.idField] : null;
|
|
180
|
+
// klonovanim elementu pridame atribut id
|
|
181
|
+
var assocForm = react_1.default.cloneElement(props.assocForm, { id: id }, props.assocForm.children);
|
|
182
|
+
props.form.props.openForm(assocForm);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var onChoose = function (chosenRow) {
|
|
187
|
+
console.log("zavolany onChoose");
|
|
188
|
+
// zavrieme search dialog
|
|
189
|
+
// POVODNY KOD
|
|
190
|
+
//overlayPanelEl.current.hide();
|
|
191
|
+
setDialogOpened(false);
|
|
192
|
+
// zapiseme vybraty row do objektu
|
|
193
|
+
setValueToModel(chosenRow);
|
|
194
|
+
};
|
|
195
|
+
var onHide = function () {
|
|
196
|
+
setDialogOpened(false);
|
|
197
|
+
// ak mame v inpute neplatnu hodnotu, musime vratit kurzor na input
|
|
198
|
+
if (inputChanged) {
|
|
199
|
+
_this.inputTextRef.current.focus();
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
// {React.createElement(props.searchTable, {searchTableParams: {onChoose: onChoose, displayField: props.displayField, filter: (inputChanged ? inputValueState : undefined)}, ...props.searchTableProps}, null)}
|
|
203
|
+
// <BrandSearchTable searchTableParams={{onChoose: onChoose, displayField: props.displayField, filter: (inputChanged ? inputValueState : undefined)}} qqq="fiha"/>
|
|
204
|
+
// takto cez metodku, mozno sa metodka vola len ked sa otvori dialog a usetrime nieco...
|
|
205
|
+
var createSearchTableParams = function () {
|
|
206
|
+
return {
|
|
207
|
+
onChoose: onChoose,
|
|
208
|
+
displayFieldFilter: (inputChanged ? { field: props.displayField, constraint: { value: inputValueState, matchMode: "startsWith" } } : undefined),
|
|
209
|
+
customFilter: _this.getFilterBase(_this.props.filter)
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
// vypocitame inputValue
|
|
213
|
+
var inputValue = computeInputValue();
|
|
214
|
+
return (react_1.default.createElement("div", { className: "field grid" },
|
|
215
|
+
react_1.default.createElement("label", { htmlFor: props.assocField, className: "col-fixed", style: this.getLabelStyle() }, this.getLabel()),
|
|
216
|
+
react_1.default.createElement("div", { className: "x-search-button-base" },
|
|
217
|
+
react_1.default.createElement(inputtext_1.InputText, __assign({ id: props.assocField, value: inputValue, onChange: onInputValueChange, onBlur: onInputBlur, readOnly: this.isReadOnly(), ref: this.inputTextRef, maxLength: xDisplayField.length, size: size, style: props.inputStyle }, this.getClassNameTooltip())),
|
|
218
|
+
react_1.default.createElement(button_1.Button, { label: "...", onClick: onClickSearch })),
|
|
219
|
+
react_1.default.createElement(dialog_1.Dialog, { visible: dialogOpened, onHide: onHide }, react_1.default.cloneElement(props.searchTable, {
|
|
220
|
+
searchTableParams: createSearchTableParams()
|
|
221
|
+
}, props.searchTable.children))));
|
|
222
|
+
};
|
|
223
|
+
return XSearchButton;
|
|
224
|
+
}(XFormComponent_1.XFormComponent));
|
|
225
|
+
exports.XSearchButton = XSearchButton;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { XFormBase } from "./XFormBase";
|
|
3
|
-
export declare const XSearchButtonDT: (props: {
|
|
4
|
-
form: XFormBase;
|
|
5
|
-
entity: string;
|
|
6
|
-
assocField: string;
|
|
7
|
-
displayField: string;
|
|
8
|
-
searchTable: any;
|
|
9
|
-
assocForm?: any;
|
|
10
|
-
rowData: any;
|
|
11
|
-
readOnly?: boolean | undefined;
|
|
12
|
-
}) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { XFormBase } from "./XFormBase";
|
|
3
|
+
export declare const XSearchButtonDT: (props: {
|
|
4
|
+
form: XFormBase;
|
|
5
|
+
entity: string;
|
|
6
|
+
assocField: string;
|
|
7
|
+
displayField: string;
|
|
8
|
+
searchTable: any;
|
|
9
|
+
assocForm?: any;
|
|
10
|
+
rowData: any;
|
|
11
|
+
readOnly?: boolean | undefined;
|
|
12
|
+
}) => JSX.Element;
|