@michalrakus/x-react-web-lib 1.8.0 → 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.
Files changed (152) hide show
  1. package/README.md +3 -3
  2. package/gulpfile.js +82 -82
  3. package/lib/administration/XBrowseMetaBrowse.d.ts +2 -2
  4. package/lib/administration/XBrowseMetaBrowse.js +21 -21
  5. package/lib/administration/XBrowseMetaForm.d.ts +5 -5
  6. package/lib/administration/XBrowseMetaForm.js +63 -63
  7. package/lib/administration/XUserBrowse.d.ts +2 -2
  8. package/lib/administration/XUserBrowse.js +88 -87
  9. package/lib/administration/XUserForm.d.ts +9 -9
  10. package/lib/administration/XUserForm.js +195 -194
  11. package/lib/components/SearchTableParams.d.ts +11 -11
  12. package/lib/components/SearchTableParams.js +2 -2
  13. package/lib/components/SourceCodeLinkEntity.d.ts +4 -4
  14. package/lib/components/SourceCodeLinkEntity.js +14 -14
  15. package/lib/components/XAutoComplete.d.ts +36 -36
  16. package/lib/components/XAutoComplete.js +155 -155
  17. package/lib/components/XAutoCompleteBase.d.ts +45 -45
  18. package/lib/components/XAutoCompleteBase.js +371 -371
  19. package/lib/components/XAutoCompleteDT.d.ts +33 -33
  20. package/lib/components/XAutoCompleteDT.js +140 -140
  21. package/lib/components/XBrowse.d.ts +33 -33
  22. package/lib/components/XBrowse.js +360 -360
  23. package/lib/components/XButton.d.ts +9 -9
  24. package/lib/components/XButton.js +13 -13
  25. package/lib/components/XButtonIconMedium.d.ts +9 -9
  26. package/lib/components/XButtonIconMedium.js +13 -13
  27. package/lib/components/XButtonIconNarrow.d.ts +10 -10
  28. package/lib/components/XButtonIconNarrow.js +25 -25
  29. package/lib/components/XButtonIconSmall.d.ts +9 -9
  30. package/lib/components/XButtonIconSmall.js +13 -13
  31. package/lib/components/XCalendar.d.ts +8 -8
  32. package/lib/components/XCalendar.js +27 -27
  33. package/lib/components/XChangePasswordForm.d.ts +5 -5
  34. package/lib/components/XChangePasswordForm.js +160 -160
  35. package/lib/components/XCheckbox.d.ts +8 -8
  36. package/lib/components/XCheckbox.js +57 -57
  37. package/lib/components/XCheckboxDT.d.ts +10 -10
  38. package/lib/components/XCheckboxDT.js +46 -46
  39. package/lib/components/XDataTable.d.ts +11 -11
  40. package/lib/components/XDataTable.js +197 -197
  41. package/lib/components/XDropdown.d.ts +18 -18
  42. package/lib/components/XDropdown.js +57 -57
  43. package/lib/components/XDropdownDT.d.ts +13 -13
  44. package/lib/components/XDropdownDT.js +128 -128
  45. package/lib/components/XDropdownDTFilter.d.ts +7 -7
  46. package/lib/components/XDropdownDTFilter.js +121 -121
  47. package/lib/components/XDropdownForEntity.d.ts +25 -25
  48. package/lib/components/XDropdownForEntity.js +149 -149
  49. package/lib/components/XDropdownFormDTFilter.d.ts +7 -7
  50. package/lib/components/XDropdownFormDTFilter.js +121 -121
  51. package/lib/components/XEditColumnDialog.d.ts +13 -13
  52. package/lib/components/XEditColumnDialog.js +112 -112
  53. package/lib/components/XEnvVars.d.ts +15 -12
  54. package/lib/components/XEnvVars.js +23 -20
  55. package/lib/components/XErrors.d.ts +12 -12
  56. package/lib/components/XErrors.js +2 -2
  57. package/lib/components/XExportRowsDialog.d.ts +15 -15
  58. package/lib/components/XExportRowsDialog.js +184 -184
  59. package/lib/components/XFieldChangeEvent.d.ts +11 -11
  60. package/lib/components/XFieldChangeEvent.js +2 -2
  61. package/lib/components/XFieldSelector.d.ts +7 -7
  62. package/lib/components/XFieldSelector.js +113 -113
  63. package/lib/components/XFormBase.d.ts +59 -59
  64. package/lib/components/XFormBase.js +526 -526
  65. package/lib/components/XFormBaseModif.d.ts +5 -5
  66. package/lib/components/XFormBaseModif.js +33 -33
  67. package/lib/components/XFormBaseT.d.ts +4 -4
  68. package/lib/components/XFormBaseT.js +31 -31
  69. package/lib/components/XFormComponent.d.ts +40 -40
  70. package/lib/components/XFormComponent.js +177 -177
  71. package/lib/components/XFormComponentDT.d.ts +30 -30
  72. package/lib/components/XFormComponentDT.js +145 -145
  73. package/lib/components/XFormDataTable2.d.ts +143 -143
  74. package/lib/components/XFormDataTable2.js +686 -686
  75. package/lib/components/XFormFooter.d.ts +6 -6
  76. package/lib/components/XFormFooter.js +19 -19
  77. package/lib/components/XFormNavigator3.d.ts +12 -12
  78. package/lib/components/XFormNavigator3.js +130 -130
  79. package/lib/components/XHolders.d.ts +7 -7
  80. package/lib/components/XHolders.js +15 -15
  81. package/lib/components/XInput.d.ts +13 -13
  82. package/lib/components/XInput.js +38 -38
  83. package/lib/components/XInputDT.d.ts +11 -11
  84. package/lib/components/XInputDT.js +37 -37
  85. package/lib/components/XInputDate.d.ts +13 -13
  86. package/lib/components/XInputDate.js +63 -63
  87. package/lib/components/XInputDateDT.d.ts +10 -10
  88. package/lib/components/XInputDateDT.js +55 -55
  89. package/lib/components/XInputDecimal.d.ts +15 -15
  90. package/lib/components/XInputDecimal.js +78 -78
  91. package/lib/components/XInputDecimalBase.d.ts +12 -12
  92. package/lib/components/XInputDecimalBase.js +18 -18
  93. package/lib/components/XInputDecimalDT.d.ts +11 -11
  94. package/lib/components/XInputDecimalDT.js +74 -74
  95. package/lib/components/XInputFileList.d.ts +36 -36
  96. package/lib/components/XInputFileList.js +251 -251
  97. package/lib/components/XInputText.d.ts +12 -12
  98. package/lib/components/XInputText.js +69 -69
  99. package/lib/components/XInputTextDT.d.ts +9 -9
  100. package/lib/components/XInputTextDT.js +42 -42
  101. package/lib/components/XInputTextarea.d.ts +18 -18
  102. package/lib/components/XInputTextarea.js +85 -85
  103. package/lib/components/XLazyDataTable.d.ts +78 -78
  104. package/lib/components/XLazyDataTable.js +885 -885
  105. package/lib/components/XLocale.d.ts +26 -26
  106. package/lib/components/XLocale.js +59 -59
  107. package/lib/components/XLoginDialog.d.ts +8 -8
  108. package/lib/components/XLoginDialog.js +21 -21
  109. package/lib/components/XLoginForm.d.ts +7 -7
  110. package/lib/components/XLoginForm.js +128 -128
  111. package/lib/components/XObject.d.ts +3 -3
  112. package/lib/components/XObject.js +2 -2
  113. package/lib/components/XResponseError.d.ts +11 -11
  114. package/lib/components/XResponseError.js +32 -32
  115. package/lib/components/XSearchButton.d.ts +26 -26
  116. package/lib/components/XSearchButton.js +225 -225
  117. package/lib/components/XSearchButtonDT.d.ts +12 -12
  118. package/lib/components/XSearchButtonDT.js +188 -188
  119. package/lib/components/XSearchButtonOld.d.ts +13 -13
  120. package/lib/components/XSearchButtonOld.js +212 -212
  121. package/lib/components/XToOneAssocButton.d.ts +8 -8
  122. package/lib/components/XToOneAssocButton.js +30 -30
  123. package/lib/components/XToken.d.ts +6 -6
  124. package/lib/components/XToken.js +2 -2
  125. package/lib/components/XUtils.d.ts +74 -74
  126. package/lib/components/XUtils.js +627 -627
  127. package/lib/components/XUtilsConversions.d.ts +12 -12
  128. package/lib/components/XUtilsConversions.js +125 -125
  129. package/lib/components/XUtilsMetadata.d.ts +39 -39
  130. package/lib/components/XUtilsMetadata.js +452 -452
  131. package/lib/components/locale/x-en.json +26 -26
  132. package/lib/components/useXToken.d.ts +2 -2
  133. package/lib/components/useXToken.js +44 -44
  134. package/lib/serverApi/ExportImportParam.d.ts +51 -51
  135. package/lib/serverApi/ExportImportParam.js +34 -34
  136. package/lib/serverApi/FindParam.d.ts +34 -34
  137. package/lib/serverApi/FindParam.js +30 -30
  138. package/lib/serverApi/FindResult.d.ts +8 -8
  139. package/lib/serverApi/FindResult.js +2 -2
  140. package/lib/serverApi/XBrowseMetadata.d.ts +19 -19
  141. package/lib/serverApi/XBrowseMetadata.js +2 -2
  142. package/lib/serverApi/XEntityMetadata.d.ts +35 -35
  143. package/lib/serverApi/XEntityMetadata.js +2 -2
  144. package/lib/serverApi/XFileJsonField.d.ts +6 -6
  145. package/lib/serverApi/XFileJsonField.js +2 -2
  146. package/lib/serverApi/XUser.d.ts +8 -7
  147. package/lib/serverApi/XUser.js +2 -2
  148. package/lib/serverApi/XUserAuthenticationIfc.d.ts +9 -9
  149. package/lib/serverApi/XUserAuthenticationIfc.js +2 -2
  150. package/lib/serverApi/XUtilsCommon.d.ts +13 -13
  151. package/lib/serverApi/XUtilsCommon.js +110 -110
  152. 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;