@michalrakus/x-react-web-lib 1.21.0 → 1.23.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 (110) hide show
  1. package/XFormHeader.d.ts +3 -0
  2. package/XFormHeader.js +5 -0
  3. package/XMultiSelect.d.ts +3 -0
  4. package/XMultiSelect.js +5 -0
  5. package/XMultiSelectBase.d.ts +3 -0
  6. package/XMultiSelectBase.js +5 -0
  7. package/gulpfile.js +3 -0
  8. package/lib/administration/XBrowseMetaBrowse.d.ts +2 -2
  9. package/lib/administration/XBrowseMetaForm.d.ts +2 -2
  10. package/lib/administration/XParamBrowse.d.ts +2 -2
  11. package/lib/administration/XParamBrowse.js +1 -1
  12. package/lib/administration/XParamForm.d.ts +2 -2
  13. package/lib/administration/XParamForm.js +2 -0
  14. package/lib/administration/XUserBrowse.d.ts +2 -2
  15. package/lib/administration/XUserBrowse.js +1 -1
  16. package/lib/administration/XUserForm.d.ts +2 -2
  17. package/lib/administration/XUserForm.js +12 -9
  18. package/lib/components/SourceCodeLinkEntity.d.ts +2 -2
  19. package/lib/components/XAutoComplete.d.ts +2 -1
  20. package/lib/components/XAutoComplete.js +2 -2
  21. package/lib/components/XAutoCompleteBase.d.ts +5 -11
  22. package/lib/components/XAutoCompleteBase.js +28 -11
  23. package/lib/components/XAutoCompleteDT.d.ts +1 -1
  24. package/lib/components/XButton.d.ts +1 -1
  25. package/lib/components/XButtonIconMedium.d.ts +1 -1
  26. package/lib/components/XButtonIconNarrow.d.ts +1 -1
  27. package/lib/components/XButtonIconSmall.d.ts +1 -1
  28. package/lib/components/XCalendar.d.ts +16 -9
  29. package/lib/components/XCalendar.js +21 -2
  30. package/lib/components/XChangePasswordForm.d.ts +2 -2
  31. package/lib/components/XCheckboxDT.d.ts +2 -2
  32. package/lib/components/XDataTable.d.ts +2 -2
  33. package/lib/components/XDropdown.d.ts +2 -2
  34. package/lib/components/XDropdown.js +1 -1
  35. package/lib/components/XDropdownDT.d.ts +2 -2
  36. package/lib/components/XDropdownDTFilter.d.ts +2 -2
  37. package/lib/components/XDropdownForEntity.d.ts +2 -2
  38. package/lib/components/XDropdownForEntity.js +1 -1
  39. package/lib/components/XDropdownFormDTFilter.d.ts +2 -2
  40. package/lib/components/XEditBrowse.d.ts +2 -2
  41. package/lib/components/XEditColumnDialog.d.ts +2 -2
  42. package/lib/components/XEditor.d.ts +1 -1
  43. package/lib/components/XEditorBase.d.ts +1 -1
  44. package/lib/components/XEditorBase.js +1 -1
  45. package/lib/components/XFieldSelector.d.ts +2 -2
  46. package/lib/components/XFormComponent.d.ts +1 -0
  47. package/lib/components/XFormDataTable2.d.ts +1 -1
  48. package/lib/components/XFormFooter.d.ts +2 -2
  49. package/lib/components/XFormHeader.d.ts +4 -0
  50. package/lib/components/XFormHeader.js +11 -0
  51. package/lib/components/XFormNavigator3.d.ts +2 -2
  52. package/lib/components/XFormRowCol/XFormCol.d.ts +1 -1
  53. package/lib/components/XFormRowCol/XFormInlineRow.d.ts +1 -1
  54. package/lib/components/XFormRowCol/XFormRow.d.ts +1 -1
  55. package/lib/components/XFormRowCol/XFormRowCol.d.ts +1 -1
  56. package/lib/components/XFtsInput.d.ts +2 -2
  57. package/lib/components/XHolders.d.ts +3 -3
  58. package/lib/components/XInputDate.d.ts +2 -2
  59. package/lib/components/XInputDate.js +1 -1
  60. package/lib/components/XInputDateDT.d.ts +2 -2
  61. package/lib/components/XInputDateDT.js +1 -1
  62. package/lib/components/XInputDecimal.d.ts +1 -1
  63. package/lib/components/XInputDecimalBase.d.ts +2 -2
  64. package/lib/components/XInputDecimalDT.d.ts +2 -2
  65. package/lib/components/XInputDecimalDT.js +1 -1
  66. package/lib/components/XInputFileList.d.ts +2 -1
  67. package/lib/components/XInputInterval.d.ts +1 -1
  68. package/lib/components/XInputIntervalBase.d.ts +2 -2
  69. package/lib/components/XInputIntervalBase.js +1 -1
  70. package/lib/components/XInputIntervalDT.d.ts +2 -2
  71. package/lib/components/XInputText.d.ts +2 -2
  72. package/lib/components/XInputText.js +14 -3
  73. package/lib/components/XInputTextDT.d.ts +2 -2
  74. package/lib/components/XInputTextarea.d.ts +1 -1
  75. package/lib/components/XInputTextarea.js +13 -3
  76. package/lib/components/XInputTextareaBase.d.ts +3 -1
  77. package/lib/components/XInputTextareaBase.js +1 -1
  78. package/lib/components/XInputTextareaDT.d.ts +2 -2
  79. package/lib/components/XLazyDataTable/XExportRowsDialog.d.ts +12 -7
  80. package/lib/components/XLazyDataTable/XExportRowsDialog.js +79 -44
  81. package/lib/components/XLazyDataTable/XLazyDataTable.d.ts +2 -1
  82. package/lib/components/XLazyDataTable/XLazyDataTable.js +55 -24
  83. package/lib/components/XLazyDataTable/XMultilineSwitch.d.ts +2 -2
  84. package/lib/components/XLazyDataTable/XMultilineSwitch.js +1 -1
  85. package/lib/components/XLazyDataTable/XOcfDropdown.d.ts +2 -2
  86. package/lib/components/XLazyDataTable/XOcfDropdown.js +1 -0
  87. package/lib/components/XLoginDialog.d.ts +2 -2
  88. package/lib/components/XLoginForm.d.ts +2 -2
  89. package/lib/components/XMultiSelect.d.ts +25 -0
  90. package/lib/components/XMultiSelect.js +97 -0
  91. package/lib/components/XMultiSelectBase.d.ts +27 -0
  92. package/lib/components/XMultiSelectBase.js +145 -0
  93. package/lib/components/XSearchBrowseParams.d.ts +1 -1
  94. package/lib/components/XSearchButton.d.ts +1 -1
  95. package/lib/components/XSearchButtonDT.d.ts +2 -2
  96. package/lib/components/XSearchButtonOld.d.ts +1 -1
  97. package/lib/components/XToOneAssocButton.d.ts +2 -2
  98. package/lib/components/XToken.d.ts +1 -1
  99. package/lib/components/XUtils.d.ts +12 -3
  100. package/lib/components/XUtils.js +83 -31
  101. package/lib/components/locale/x-en.json +1 -0
  102. package/lib/serverApi/ExportImportParam.d.ts +28 -11
  103. package/lib/serverApi/ExportImportParam.js +11 -1
  104. package/lib/serverApi/XUtilsCommon.d.ts +1 -0
  105. package/lib/serverApi/XUtilsCommon.js +12 -0
  106. package/lib/serverApi/XUtilsConversions.d.ts +11 -5
  107. package/lib/serverApi/XUtilsConversions.js +95 -24
  108. package/lib/serverApi/XUtilsMetadataCommon.d.ts +4 -1
  109. package/lib/serverApi/XUtilsMetadataCommon.js +26 -3
  110. package/package.json +3 -3
@@ -27,7 +27,7 @@ var __read = (this && this.__read) || function (o, n) {
27
27
  return ar;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.convertValueBase = exports.convertValue = exports.convertObject = exports.AsUIType = exports.booleanAsUIText = exports.intervalAsUI = exports.intervalFromUI = exports.datetimeFormatUI = exports.dateFormatCalendar = exports.dateFormatUI = exports.timeFromModel = exports.datetimeAsUI = exports.dateAsUI = exports.dateFromUI = exports.dateFromModel = exports.numberFromModel = exports.numberAsUI = exports.intFromUI = exports.stringAsDB = exports.stringAsUI = exports.stringFromUI = void 0;
30
+ exports.convertValueBase = exports.convertValue = exports.convertObject = exports.AsUIType = exports.booleanAsUIText = exports.intervalAsUI = exports.intervalFromUI = exports.datetimeFormatUI = exports.dateFormatCalendar = exports.dateFormatUI = exports.timeFromModel = exports.datetimeAsUI = exports.dateAsUI = exports.dateFromUI = exports.dateFromModel = exports.XDateScale = exports.numberFromString = exports.numberFromModel = exports.numberAsUI = exports.intFromUI = exports.stringAsDB = exports.stringAsUI = exports.stringFromUI = void 0;
31
31
  var XUtilsCommon_1 = require("./XUtilsCommon");
32
32
  var XLocale_1 = require("../components/XLocale");
33
33
  var XUtilsMetadataCommon_1 = require("./XUtilsMetadataCommon");
@@ -95,6 +95,23 @@ function numberFromModel(value) {
95
95
  return numberValue;
96
96
  }
97
97
  exports.numberFromModel = numberFromModel;
98
+ // konvertuje hodnotu napr. 12.34
99
+ function numberFromString(valueString) {
100
+ var numberValue = parseFloat(valueString);
101
+ if (isNaN(numberValue)) {
102
+ numberValue = null;
103
+ }
104
+ return numberValue;
105
+ }
106
+ exports.numberFromString = numberFromString;
107
+ // upresnenie typu datumu - pouzivame typ number, lebo zneuzivame atribut scale v TypeORM na zadanie upresnenia
108
+ var XDateScale;
109
+ (function (XDateScale) {
110
+ XDateScale[XDateScale["Date"] = 1] = "Date";
111
+ XDateScale[XDateScale["Month"] = 2] = "Month";
112
+ XDateScale[XDateScale["Year"] = 3] = "Year"; // yyyy
113
+ })(XDateScale = exports.XDateScale || (exports.XDateScale = {}));
114
+ //export type XDateType = "month" | "year" | "date";
98
115
  // v modeli na klientovi by mal byt vzdy Date, teraz je tam niekedy string (z json-u zo servera) a niekedy Date (z komponentu)
99
116
  // provizorne zatial takato konverzia
100
117
  function dateFromModel(value) {
@@ -108,9 +125,10 @@ function dateFromModel(value) {
108
125
  return dateValue;
109
126
  }
110
127
  exports.dateFromModel = dateFromModel;
111
- function dateFromUI(valueString) {
128
+ function dateFromUI(valueString, dateScale) {
129
+ if (dateScale === void 0) { dateScale = XDateScale.Date; }
112
130
  // converts valueString (e.g. 21.2.2024) into Date
113
- // if stringValue is invalid, returns undefined
131
+ // if valueString is invalid, returns undefined
114
132
  var valueDate = undefined;
115
133
  if (valueString === '') {
116
134
  valueDate = null;
@@ -120,22 +138,46 @@ function dateFromUI(valueString) {
120
138
  var day = void 0;
121
139
  var month = null;
122
140
  var year = null;
123
- var posDot = valueString.indexOf('.');
124
- if (posDot === -1) {
125
- day = intFromUI(valueString);
141
+ if (dateScale === XDateScale.Date) {
142
+ // format "dd.mm.yyyy"
143
+ var posDot = valueString.indexOf('.');
144
+ if (posDot === -1) {
145
+ day = intFromUI(valueString);
146
+ }
147
+ else {
148
+ day = intFromUI(valueString.substring(0, posDot));
149
+ var rest = valueString.substring(posDot + 1);
150
+ var posDot2 = rest.indexOf('.');
151
+ if (posDot2 === -1) {
152
+ month = intFromUI(rest);
153
+ }
154
+ else {
155
+ month = intFromUI(rest.substring(0, posDot2));
156
+ year = intFromUI(rest.substring(posDot2 + 1));
157
+ }
158
+ }
126
159
  }
127
- else {
128
- day = intFromUI(valueString.substring(0, posDot));
129
- var rest = valueString.substring(posDot + 1);
130
- var posDot2 = rest.indexOf('.');
131
- if (posDot2 === -1) {
132
- month = intFromUI(rest);
160
+ else if (dateScale === XDateScale.Month) {
161
+ // format "mm.yyyy"
162
+ day = 1;
163
+ var posDot = valueString.indexOf('.');
164
+ if (posDot === -1) {
165
+ month = intFromUI(valueString);
133
166
  }
134
167
  else {
135
- month = intFromUI(rest.substring(0, posDot2));
136
- year = intFromUI(rest.substring(posDot2 + 1));
168
+ month = intFromUI(valueString.substring(0, posDot));
169
+ year = intFromUI(valueString.substring(posDot + 1));
137
170
  }
138
171
  }
172
+ else if (dateScale === XDateScale.Year) {
173
+ // format "yyyy"
174
+ day = 1;
175
+ month = 1;
176
+ year = intFromUI(valueString);
177
+ }
178
+ else {
179
+ throw "Unimplemented dateScale = " + dateScale;
180
+ }
139
181
  // doplnime mesiac a rok ak uzivatel nezadal (ak mame undefined, tak umyselne nedoplname)
140
182
  if (month === null) {
141
183
  month = XUtilsCommon_1.XUtilsCommon.today().getMonth() + 1; // o 1 mesiac viac (januar je 0)
@@ -163,9 +205,10 @@ function dateFromUI(valueString) {
163
205
  return valueDate;
164
206
  }
165
207
  exports.dateFromUI = dateFromUI;
166
- function dateAsUI(value) {
208
+ function dateAsUI(value, dateScale) {
209
+ if (dateScale === void 0) { dateScale = XDateScale.Date; }
167
210
  if (value !== null) {
168
- return (0, XUtilsCommon_1.dateFormat)(value, dateFormatUI());
211
+ return (0, XUtilsCommon_1.dateFormat)(value, dateFormatUI(dateScale));
169
212
  }
170
213
  else {
171
214
  return "";
@@ -208,12 +251,40 @@ function timeFromModel(value) {
208
251
  return timeValue;
209
252
  }
210
253
  exports.timeFromModel = timeFromModel;
211
- function dateFormatUI() {
212
- return "dd.mm.yyyy";
254
+ function dateFormatUI(dateScale) {
255
+ if (dateScale === void 0) { dateScale = XDateScale.Date; }
256
+ var format;
257
+ if (dateScale === XDateScale.Date) {
258
+ format = "dd.mm.yyyy";
259
+ }
260
+ else if (dateScale === XDateScale.Month) {
261
+ format = "mm.yyyy";
262
+ }
263
+ else if (dateScale === XDateScale.Year) {
264
+ format = "yyyy";
265
+ }
266
+ else {
267
+ throw "Unimplemented dateScale = " + dateScale;
268
+ }
269
+ return format;
213
270
  }
214
271
  exports.dateFormatUI = dateFormatUI;
215
- function dateFormatCalendar() {
216
- return "dd.mm.yy";
272
+ function dateFormatCalendar(dateScale) {
273
+ if (dateScale === void 0) { dateScale = XDateScale.Date; }
274
+ var format;
275
+ if (dateScale === XDateScale.Date) {
276
+ format = "dd.mm.yy";
277
+ }
278
+ else if (dateScale === XDateScale.Month) {
279
+ format = "mm.yy";
280
+ }
281
+ else if (dateScale === XDateScale.Year) {
282
+ format = "yy";
283
+ }
284
+ else {
285
+ throw "Unimplemented dateScale = " + dateScale;
286
+ }
287
+ return format;
217
288
  }
218
289
  exports.dateFormatCalendar = dateFormatCalendar;
219
290
  function datetimeFormatUI() {
@@ -349,21 +420,21 @@ function convertValue(xField, value, fromModel, asUI) {
349
420
  return convertValueBase(xField.type, xField.scale, value, fromModel, asUI);
350
421
  }
351
422
  exports.convertValue = convertValue;
352
- function convertValueBase(fieldType, fractionDigits, value, fromModel, asUI) {
423
+ function convertValueBase(fieldType, scale, value, fromModel, asUI) {
353
424
  if (fieldType === "decimal") {
354
425
  if (fromModel) {
355
426
  value = numberFromModel(value);
356
427
  }
357
428
  if (asUI && asUI !== AsUIType.Excel) {
358
- value = numberAsUI(value, fractionDigits);
429
+ value = numberAsUI(value, scale);
359
430
  }
360
431
  }
361
432
  else if (fieldType === "date") {
362
433
  if (fromModel) {
363
434
  value = dateFromModel(value);
364
435
  }
365
- if (asUI && asUI !== AsUIType.Excel) {
366
- value = dateAsUI(value);
436
+ if (asUI && (asUI !== AsUIType.Excel || scale === XDateScale.Month || scale === XDateScale.Year)) {
437
+ value = dateAsUI(value, scale);
367
438
  }
368
439
  }
369
440
  else if (fieldType === "datetime") {
@@ -13,9 +13,12 @@ export declare class XUtilsMetadataCommon {
13
13
  static getXField(xEntity: XEntity, field: string): XField;
14
14
  static getXFieldByPathBase(xEntity: XEntity, path: string): XField | undefined;
15
15
  static getXFieldByPath(xEntity: XEntity, path: string): XField;
16
+ static hasPathToManyAssoc(xEntity: XEntity, path: string): boolean;
16
17
  static getXFieldByPathStr(entity: string, path: string): XField;
17
18
  static getXAssocBase(xEntity: XEntity, assocField: string): XAssoc | undefined;
18
- static getXAssocByPath(xEntity: XEntity, path: string): XAssoc;
19
+ static getXAssocToOneByPath(xEntity: XEntity, path: string): XAssoc;
20
+ static getXAssocToManyByPath(xEntity: XEntity, path: string): XAssoc;
21
+ static getXAssocByPath(xEntity: XEntity, path: string, relationTypeList?: XRelationType[]): XAssoc;
19
22
  static getLastXAssocByPath(xEntity: XEntity, path: string): XAssoc;
20
23
  static getXAssocToOne(xEntity: XEntity, assocField: string): XAssoc;
21
24
  static getXAssocToMany(xEntity: XEntity, assocField: string): XAssoc;
@@ -91,21 +91,44 @@ var XUtilsMetadataCommon = /** @class */ (function () {
91
91
  return XUtilsMetadataCommon.getXFieldByPath(xAssocEntity, restPath);
92
92
  }
93
93
  };
94
+ // returns true if path contains some toMany assoc
95
+ XUtilsMetadataCommon.hasPathToManyAssoc = function (xEntity, path) {
96
+ var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
97
+ if (restPath === null) {
98
+ return false;
99
+ }
100
+ else {
101
+ var xAssoc = XUtilsMetadataCommon.getXAssoc(xEntity, field);
102
+ if (xAssoc.relationType === "one-to-many" || xAssoc.relationType === "many-to-many") {
103
+ return true;
104
+ }
105
+ else {
106
+ var xAssocEntity = XUtilsMetadataCommon.getXEntity(xAssoc.entityName);
107
+ return XUtilsMetadataCommon.hasPathToManyAssoc(xAssocEntity, restPath);
108
+ }
109
+ }
110
+ };
94
111
  XUtilsMetadataCommon.getXFieldByPathStr = function (entity, path) {
95
112
  return XUtilsMetadataCommon.getXFieldByPath(XUtilsMetadataCommon.getXEntity(entity), path);
96
113
  };
97
114
  XUtilsMetadataCommon.getXAssocBase = function (xEntity, assocField) {
98
115
  return xEntity.assocMap[assocField];
99
116
  };
100
- XUtilsMetadataCommon.getXAssocByPath = function (xEntity, path) {
117
+ XUtilsMetadataCommon.getXAssocToOneByPath = function (xEntity, path) {
118
+ return XUtilsMetadataCommon.getXAssocByPath(xEntity, path, ["many-to-one", "one-to-one"]);
119
+ };
120
+ XUtilsMetadataCommon.getXAssocToManyByPath = function (xEntity, path) {
121
+ return XUtilsMetadataCommon.getXAssocByPath(xEntity, path, ["one-to-many", "many-to-many"]);
122
+ };
123
+ XUtilsMetadataCommon.getXAssocByPath = function (xEntity, path, relationTypeList) {
101
124
  var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
102
125
  if (restPath === null) {
103
126
  return XUtilsMetadataCommon.getXAssoc(xEntity, field);
104
127
  }
105
128
  else {
106
- var xAssoc = XUtilsMetadataCommon.getXAssoc(xEntity, field);
129
+ var xAssoc = XUtilsMetadataCommon.getXAssoc(xEntity, field, relationTypeList);
107
130
  var xAssocEntity = XUtilsMetadataCommon.getXEntity(xAssoc.entityName);
108
- return XUtilsMetadataCommon.getXAssocByPath(xAssocEntity, restPath);
131
+ return XUtilsMetadataCommon.getXAssocByPath(xAssocEntity, restPath, relationTypeList);
109
132
  }
110
133
  };
111
134
  // for path assoc1.assoc2.field returns assoc2 (last assoc before field)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michalrakus/x-react-web-lib",
3
- "version": "1.21.0",
3
+ "version": "1.23.0",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rimraf lib",
@@ -39,8 +39,8 @@
39
39
  },
40
40
  "peerDependencies": {
41
41
  "primeflex": "^3.3.1",
42
- "primeicons": "^6.0.1",
43
- "primereact": "~10.4.0",
42
+ "primeicons": "^7.0.0",
43
+ "primereact": "~10.6.5",
44
44
  "quill": "^1.3.7",
45
45
  "react": "^18.2.0",
46
46
  "react-dom": "^18.2.0",