@michalrakus/x-react-web-lib 1.32.7 → 1.32.8

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.
@@ -75,5 +75,6 @@ export type XFieldXFieldMetaMap = Map<string, XFieldMeta>;
75
75
  export declare class XFieldSetBase {
76
76
  static createXFieldXFieldMetaMap(xFieldSetMeta: XFieldSetMeta, filterFromParent?: string): XFieldXFieldMetaMap;
77
77
  static xFieldSetValuesAsUI(xFieldSetValues: XFieldSetValues, xFieldXFieldMetaMap: XFieldXFieldMetaMap): string;
78
+ static xFieldSetValueAsUI(xFieldMeta: XFieldMeta, value: any): string;
78
79
  private static createMapForXFieldMeta;
79
80
  }
@@ -75,27 +75,14 @@ var XFieldSetBase = /** @class */ (function () {
75
75
  // logicky patri do src/serverApi/XUtilsConversions.ts a zisla by sa aj pri exporte do excelu ale XFieldXFieldMetaMap (a jeho "parent"-a XFieldSetBase) mame len na frontende
76
76
  XFieldSetBase.xFieldSetValuesAsUI = function (xFieldSetValues, xFieldXFieldMetaMap) {
77
77
  var e_1, _a;
78
- var _b;
79
78
  // budeme mat vzdy spravne poradie? nebudeme... asi najjednoduchsie zosortovat tu "valueUIList" podla abecedy
80
79
  var valueUIList = [];
81
80
  try {
82
- for (var _c = __values(Object.entries(xFieldSetValues)), _d = _c.next(); !_d.done; _d = _c.next()) {
83
- var _e = __read(_d.value, 2), field = _e[0], value = _e[1];
81
+ for (var _b = __values(Object.entries(xFieldSetValues)), _c = _b.next(); !_c.done; _c = _b.next()) {
82
+ var _d = __read(_c.value, 2), field = _d[0], value = _d[1];
84
83
  var xFieldMeta = xFieldXFieldMetaMap.get(field);
85
84
  if (xFieldMeta) {
86
- if (xFieldMeta.type === XFieldType.checkbox) {
87
- valueUIList.push(xFieldMeta.label);
88
- }
89
- else if (xFieldMeta.type === XFieldType.inputText) {
90
- valueUIList.push("".concat(xFieldMeta.label, ": \"").concat(value, "\""));
91
- }
92
- else if (xFieldMeta.type === XFieldType.inputDecimal) {
93
- valueUIList.push("".concat(xFieldMeta.label, ": ").concat((0, XUtilsConversions_1.numberAsUI)((0, XUtilsConversions_1.numberFromModel)(value), (_b = xFieldMeta.decimalProps) === null || _b === void 0 ? void 0 : _b.scale)));
94
- }
95
- else {
96
- // neznamy typ
97
- valueUIList.push("".concat(xFieldMeta.label, ": \"").concat(value, "\""));
98
- }
85
+ valueUIList.push(XFieldSetBase.xFieldSetValueAsUI(xFieldMeta, value));
99
86
  }
100
87
  else {
101
88
  // field bol z formulara odstraneny (nemalo by sa to takto pouzivat, skor by sa mala datumom ohranicit platnost fieldu)
@@ -107,12 +94,30 @@ var XFieldSetBase = /** @class */ (function () {
107
94
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
108
95
  finally {
109
96
  try {
110
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
97
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
111
98
  }
112
99
  finally { if (e_1) throw e_1.error; }
113
100
  }
114
101
  return valueUIList.join(", ");
115
102
  };
103
+ XFieldSetBase.xFieldSetValueAsUI = function (xFieldMeta, value) {
104
+ var _a;
105
+ var valueAsUI;
106
+ if (xFieldMeta.type === XFieldType.checkbox) {
107
+ valueAsUI = xFieldMeta.label;
108
+ }
109
+ else if (xFieldMeta.type === XFieldType.inputText) {
110
+ valueAsUI = "".concat(xFieldMeta.label, ": \"").concat(value, "\"");
111
+ }
112
+ else if (xFieldMeta.type === XFieldType.inputDecimal) {
113
+ valueAsUI = "".concat(xFieldMeta.label, ": ").concat((0, XUtilsConversions_1.numberAsUI)((0, XUtilsConversions_1.numberFromModel)(value), (_a = xFieldMeta.decimalProps) === null || _a === void 0 ? void 0 : _a.scale));
114
+ }
115
+ else {
116
+ // neznamy typ
117
+ valueAsUI = "".concat(xFieldMeta.label, ": \"").concat(value, "\"");
118
+ }
119
+ return valueAsUI;
120
+ };
116
121
  XFieldSetBase.createMapForXFieldMeta = function (xFieldMeta, filterFromParent, xFieldXFieldMetaMap) {
117
122
  var e_2, _a;
118
123
  if (filterFromParent === undefined) {
@@ -141,6 +141,7 @@ export interface XLazyColumnProps {
141
141
  autoComplete?: XAutoCompleteInFilterProps | true;
142
142
  showFilterMenu?: boolean;
143
143
  betweenFilter?: XBetweenFilterProp | "noBetween";
144
+ autoFilter: boolean;
144
145
  width?: string;
145
146
  contentType?: XContentType;
146
147
  fieldSetId?: string;
@@ -156,5 +157,6 @@ export declare const XLazyColumn: {
156
157
  (props: XLazyColumnProps): null;
157
158
  defaultProps: {
158
159
  columnViewStatus: boolean;
160
+ autoFilter: boolean;
159
161
  };
160
162
  };
@@ -295,7 +295,7 @@ var XLazyDataTable = function (props) {
295
295
  */
296
296
  var getStateKey = function (stateKeySuffix) {
297
297
  var _a;
298
- return "xldt-state-".concat((_a = props.stateKey) !== null && _a !== void 0 ? _a : props.entity, "-").concat(stateKeySuffix);
298
+ return "x-ldt-state-".concat((_a = props.stateKey) !== null && _a !== void 0 ? _a : props.entity, "-").concat(stateKeySuffix);
299
299
  };
300
300
  var removePagingFromStorage = function () {
301
301
  XUtils_1.XUtils.removeValueFromStorage(getStateKey(XStateKeySuffix.pagingFirst));
@@ -394,7 +394,7 @@ var XLazyDataTable = function (props) {
394
394
  // tymto zavolanim sa zapise znak zapisany klavesnicou do inputu filtra (ak prikaz zakomentujeme, input filtra zostane prazdny)
395
395
  setFilters(event.filters);
396
396
  removePagingFromStorage();
397
- loadDataBaseIfAutoFilter(event.filters);
397
+ loadDataBaseIfAutoFilter(event.filters, false);
398
398
  };
399
399
  var onSort = function (event) {
400
400
  //console.log("zavolany onSort - this.state.multiSortMeta = " + JSON.stringify(multiSortMeta));
@@ -404,8 +404,8 @@ var XLazyDataTable = function (props) {
404
404
  findParam.multiSortMeta = event.multiSortMeta; // prepiseme multiSortMeta, lebo je tam stara hodnota (volanie setMultiSortMeta nezmeni multiSortMeta hned)
405
405
  loadDataBase(findParam);
406
406
  };
407
- var loadDataBaseIfAutoFilter = function (filters) {
408
- if (props.autoFilter) {
407
+ var loadDataBaseIfAutoFilter = function (filters, fieldAutoFilter) {
408
+ if (props.autoFilter || fieldAutoFilter) {
409
409
  var findParam = createFindParam();
410
410
  findParam.filters = filters; // prepiseme filters, lebo je tam stara hodnota
411
411
  loadDataBase(findParam);
@@ -868,9 +868,9 @@ var XLazyDataTable = function (props) {
868
868
  };
869
869
  // ****** dropdown vo filtri ********
870
870
  // pouziva sa len pre simple filtrovanie (filterDisplay="row")
871
- var onDropdownFilterChange = function (field, displayValue) {
871
+ var onDropdownFilterChange = function (field, displayValue, fieldAutoFilter) {
872
872
  var filterValue = displayValue !== XUtils_1.XUtils.dropdownEmptyOptionValue ? displayValue : null;
873
- setFilterValue(field, filterValue, api_1.FilterMatchMode.EQUALS);
873
+ setFilterValue(field, filterValue, api_1.FilterMatchMode.EQUALS, undefined, fieldAutoFilter);
874
874
  };
875
875
  var getDropdownFilterValue = function (field) {
876
876
  var filterValue = getFilterValue(field);
@@ -885,7 +885,7 @@ var XLazyDataTable = function (props) {
885
885
  var filtersCloned = __assign({}, filters);
886
886
  setFilters(filtersCloned);
887
887
  removePagingFromStorage();
888
- loadDataBaseIfAutoFilter(filtersCloned);
888
+ loadDataBaseIfAutoFilter(filtersCloned, false);
889
889
  };
890
890
  // vseobecna specialna metodka pouzvana pri custom filtri (XLazyColumn.filterElement)
891
891
  var getFilterItem = function (field) {
@@ -893,7 +893,7 @@ var XLazyDataTable = function (props) {
893
893
  };
894
894
  // vseobecna metodka - nastavi hodnotu do filtra
895
895
  // ak je matchMode === undefined, tak zachova povodnu hodnotu matchMode
896
- var setFilterValue = function (field, value, matchMode, customFilterItems) {
896
+ var setFilterValue = function (field, value, matchMode, customFilterItems, fieldAutoFilter) {
897
897
  var filterValue = filters[field]; // funguje len pre filterDisplay="row"
898
898
  filterValue.value = value;
899
899
  if (matchMode !== undefined) {
@@ -906,7 +906,7 @@ var XLazyDataTable = function (props) {
906
906
  // we had problem when page was set to e.g. 3 (more than 1), after setting some filter value that caused that only 1 page should be returned
907
907
  // - after returning back to browse no rows were displayed (because requested page was 3) (this is quick fix)
908
908
  removePagingFromStorage();
909
- loadDataBaseIfAutoFilter(filtersCloned);
909
+ loadDataBaseIfAutoFilter(filtersCloned, fieldAutoFilter);
910
910
  };
911
911
  // vseobecna metodka - precita hodnotu z filtra (vrati napr. typ Date | null)
912
912
  var getFilterValue = function (field) {
@@ -921,7 +921,7 @@ var XLazyDataTable = function (props) {
921
921
  // ****** vseobecne metodky pre set/get do/z filtra - pre betweenFilter ********
922
922
  // do DataTableFilterMetaData.value ulozime dvojprvkove pole [value1, value2]
923
923
  // na backende spracujeme toto dvojprvkove pole
924
- var setFilterValue1 = function (field, value) {
924
+ var setFilterValue1 = function (field, value, fieldAutoFilter) {
925
925
  // na zaciatku (po inicializacii lazy table) je filterValue = null
926
926
  var filterValue = getFilterValue(field);
927
927
  if (filterValue !== null) {
@@ -930,9 +930,9 @@ var XLazyDataTable = function (props) {
930
930
  else {
931
931
  filterValue = [value, null];
932
932
  }
933
- setFilterValue(field, filterValue, api_1.FilterMatchMode.BETWEEN);
933
+ setFilterValue(field, filterValue, api_1.FilterMatchMode.BETWEEN, undefined, fieldAutoFilter);
934
934
  };
935
- var setFilterValue2 = function (field, value) {
935
+ var setFilterValue2 = function (field, value, fieldAutoFilter) {
936
936
  // na zaciatku (po inicializacii lazy table) je filterValue = null
937
937
  var filterValue = getFilterValue(field);
938
938
  if (filterValue !== null) {
@@ -941,7 +941,7 @@ var XLazyDataTable = function (props) {
941
941
  else {
942
942
  filterValue = [null, value];
943
943
  }
944
- setFilterValue(field, filterValue, api_1.FilterMatchMode.BETWEEN);
944
+ setFilterValue(field, filterValue, api_1.FilterMatchMode.BETWEEN, undefined, fieldAutoFilter);
945
945
  };
946
946
  var getFilterValue1 = function (field) {
947
947
  return getFilterValue1or2(field, 0);
@@ -1215,20 +1215,20 @@ var XLazyDataTable = function (props) {
1215
1215
  }
1216
1216
  var xAssoc = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXAssocToOneByPath(xEntity, assocField_1);
1217
1217
  var object = getFilterValue(childColumn.props.field);
1218
- filterElement = react_1.default.createElement(XAutoCompleteBase_1.XAutoCompleteBase, { value: object, onChange: function (object, objectChange) { return setFilterValue(childColumn.props.field, object, undefined, object !== null ? [{ where: "[".concat(assocField_1, "] = ").concat(object['id']), params: {} }] : undefined); }, error: undefined, onErrorChange: function (error) { }, idField: "id", field: displayField, suggestionsQuery: { entity: xAssoc.entityName, filter: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.filter, sortField: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.sortField }, searchBrowse: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.searchBrowse, valueForm: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.valueForm, addRowEnabled: false, width: "100%", scrollHeight: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.scrollHeight, suggestionsLoad: "lazy", lazyLoadMaxRows: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.lazyLoadMaxRows, minLength: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.minLength });
1218
+ filterElement = react_1.default.createElement(XAutoCompleteBase_1.XAutoCompleteBase, { value: object, onChange: function (object, objectChange) { return setFilterValue(childColumn.props.field, object, undefined, object !== null ? [{ where: "[".concat(assocField_1, "] = ").concat(object['id']), params: {} }] : undefined, childColumn.props.autoFilter); }, error: undefined, onErrorChange: function (error) { }, idField: "id", field: displayField, suggestionsQuery: { entity: xAssoc.entityName, filter: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.filter, sortField: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.sortField }, searchBrowse: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.searchBrowse, valueForm: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.valueForm, addRowEnabled: false, width: "100%", scrollHeight: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.scrollHeight, suggestionsLoad: "lazy", lazyLoadMaxRows: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.lazyLoadMaxRows, minLength: autoComplete === null || autoComplete === void 0 ? void 0 : autoComplete.minLength });
1219
1219
  }
1220
1220
  else {
1221
1221
  if (xField.type === "boolean") {
1222
1222
  var checkboxValue = getFilterValue(childColumn.props.field);
1223
- filterElement = react_1.default.createElement(tristatecheckbox_1.TriStateCheckbox, { value: checkboxValue, onChange: function (e) { return setFilterValue(childColumn.props.field, e.value, api_1.FilterMatchMode.EQUALS); } });
1223
+ filterElement = react_1.default.createElement(tristatecheckbox_1.TriStateCheckbox, { value: checkboxValue, onChange: function (e) { return setFilterValue(childColumn.props.field, e.value, api_1.FilterMatchMode.EQUALS, undefined, childColumn.props.autoFilter); } });
1224
1224
  }
1225
1225
  else if (childColumn.props.dropdownInFilter) {
1226
1226
  var dropdownValue = getDropdownFilterValue(childColumn.props.field);
1227
- filterElement = react_1.default.createElement(XDropdownDTFilter_1.XDropdownDTFilter, { entity: props.entity, path: childColumn.props.field, value: dropdownValue, onValueChange: onDropdownFilterChange, filter: childColumn.props.dropdownFilter, sortField: childColumn.props.dropdownSortField });
1227
+ filterElement = react_1.default.createElement(XDropdownDTFilter_1.XDropdownDTFilter, { entity: props.entity, path: childColumn.props.field, value: dropdownValue, onValueChange: function (field, displayValue) { return onDropdownFilterChange(field, displayValue, childColumn.props.autoFilter); }, filter: childColumn.props.dropdownFilter, sortField: childColumn.props.dropdownSortField });
1228
1228
  }
1229
1229
  else if (xField.type === "string") {
1230
1230
  var stringValue = getFilterValue(childColumn.props.field);
1231
- filterElement = react_1.default.createElement(XInputTextBase_1.XInputTextBase, { value: stringValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value); } });
1231
+ filterElement = react_1.default.createElement(XInputTextBase_1.XInputTextBase, { value: stringValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); } });
1232
1232
  }
1233
1233
  else if (xField.type === "date" || xField.type === "datetime") {
1234
1234
  betweenFilter = getBetweenFilter(childColumn.props.betweenFilter, props.betweenFilter);
@@ -1236,12 +1236,12 @@ var XLazyDataTable = function (props) {
1236
1236
  // display: 'flex' umiestni XCalendar elementy vedla seba
1237
1237
  filterElement =
1238
1238
  react_1.default.createElement("div", { style: betweenFilter === "row" ? { display: 'flex' } : undefined },
1239
- react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value); }, scale: xField.scale, datetime: xField.type === "datetime" }),
1240
- react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value); }, scale: xField.scale, datetime: xField.type === "datetime" }));
1239
+ react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }),
1240
+ react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" }));
1241
1241
  }
1242
1242
  else {
1243
1243
  var dateValue = getFilterValue(childColumn.props.field);
1244
- filterElement = react_1.default.createElement(XCalendar_1.XCalendar, { value: dateValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value); }, scale: xField.scale, datetime: xField.type === "datetime" });
1244
+ filterElement = react_1.default.createElement(XCalendar_1.XCalendar, { value: dateValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); }, scale: xField.scale, datetime: xField.type === "datetime" });
1245
1245
  }
1246
1246
  }
1247
1247
  else if (xField.type === "decimal" || xField.type === "number") {
@@ -1251,12 +1251,12 @@ var XLazyDataTable = function (props) {
1251
1251
  // display: 'flex' umiestni input elementy pod seba (betweenFilter = "column") resp. vedla seba (betweenFilter = "row")
1252
1252
  filterElement =
1253
1253
  react_1.default.createElement("div", { style: { display: 'flex', flexDirection: betweenFilter } },
1254
- react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value); } }, params)),
1255
- react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value); } }, params)));
1254
+ react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value, childColumn.props.autoFilter); } }, params)),
1255
+ react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value, childColumn.props.autoFilter); } }, params)));
1256
1256
  }
1257
1257
  else {
1258
1258
  var numberValue = getFilterValue(childColumn.props.field);
1259
- filterElement = react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: numberValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value); } }, params));
1259
+ filterElement = react_1.default.createElement(XInputDecimalBase_1.XInputDecimalBase, __assign({ value: numberValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value, undefined, undefined, childColumn.props.autoFilter); } }, params));
1260
1260
  }
1261
1261
  }
1262
1262
  }
@@ -1400,5 +1400,6 @@ var XLazyColumn = function (props) {
1400
1400
  exports.XLazyColumn = XLazyColumn;
1401
1401
  exports.XLazyColumn.defaultProps = {
1402
1402
  //autoCompleteEnabled: "forStringOnly",
1403
- columnViewStatus: true // XViewStatus.ReadWrite
1403
+ columnViewStatus: true,
1404
+ autoFilter: false
1404
1405
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michalrakus/x-react-web-lib",
3
- "version": "1.32.7",
3
+ "version": "1.32.8",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rimraf lib",
@@ -40,7 +40,7 @@
40
40
  "peerDependencies": {
41
41
  "primeflex": "^3.3.1",
42
42
  "primeicons": "^7.0.0",
43
- "primereact": "10.9.2",
43
+ "primereact": "10.8.5",
44
44
  "quill": "^2.0.3",
45
45
  "react": "^18.3.1",
46
46
  "react-dom": "^18.3.1",