@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,452 +1,452 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __values = (this && this.__values) || function(o) {
|
|
55
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
56
|
-
if (m) return m.call(o);
|
|
57
|
-
if (o && typeof o.length === "number") return {
|
|
58
|
-
next: function () {
|
|
59
|
-
if (o && i >= o.length) o = void 0;
|
|
60
|
-
return { value: o && o[i++], done: !o };
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
|
-
};
|
|
65
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
-
exports.XUtilsMetadata = void 0;
|
|
67
|
-
var XUtils_1 = require("./XUtils");
|
|
68
|
-
var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
|
|
69
|
-
// idelany nazov: UtilsEntityMetadata - ale strasne dlhy
|
|
70
|
-
// tato funkcionalita by mala ist bud do tried XEntity, XField alebo lepsie do nejakeho servisu
|
|
71
|
-
// ekvivalentna funkcionalita sa nachadza aj na servri v servise XEntityMetadataService.ts (TODO - v buducnosti spravit spolocnu triedu/servis)
|
|
72
|
-
var XUtilsMetadata = /** @class */ (function () {
|
|
73
|
-
function XUtilsMetadata() {
|
|
74
|
-
}
|
|
75
|
-
XUtilsMetadata.fetchAndSetXEntityMap = function () {
|
|
76
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
-
var _a;
|
|
78
|
-
return __generator(this, function (_b) {
|
|
79
|
-
switch (_b.label) {
|
|
80
|
-
case 0:
|
|
81
|
-
if (!(XUtilsMetadata.xEntityMap === undefined)) return [3 /*break*/, 2];
|
|
82
|
-
_a = XUtilsMetadata;
|
|
83
|
-
return [4 /*yield*/, XUtils_1.XUtils.fetch("getXEntityMap", { dummy: "dummy" })];
|
|
84
|
-
case 1:
|
|
85
|
-
_a.xEntityMap = _b.sent();
|
|
86
|
-
_b.label = 2;
|
|
87
|
-
case 2: return [2 /*return*/];
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
};
|
|
92
|
-
XUtilsMetadata.fetchAndSetXBrowseMetaMap = function () {
|
|
93
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
-
var _a;
|
|
95
|
-
return __generator(this, function (_b) {
|
|
96
|
-
switch (_b.label) {
|
|
97
|
-
case 0:
|
|
98
|
-
if (!(XUtilsMetadata.xBrowseMetaMap === undefined)) return [3 /*break*/, 2];
|
|
99
|
-
_a = XUtilsMetadata;
|
|
100
|
-
return [4 /*yield*/, XUtils_1.XUtils.fetch("getXBrowseMetaMap", { dummy: "dummy" })];
|
|
101
|
-
case 1:
|
|
102
|
-
_a.xBrowseMetaMap = _b.sent();
|
|
103
|
-
_b.label = 2;
|
|
104
|
-
case 2: return [2 /*return*/];
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
XUtilsMetadata.getXEntity = function (entity) {
|
|
110
|
-
var xEntity = XUtilsMetadata.xEntityMap[entity];
|
|
111
|
-
if (xEntity === undefined) {
|
|
112
|
-
throw "Entity ".concat(entity, " was not found in entity metadata");
|
|
113
|
-
}
|
|
114
|
-
return xEntity;
|
|
115
|
-
};
|
|
116
|
-
XUtilsMetadata.getXField = function (xEntity, field) {
|
|
117
|
-
// TODO - pozor, vo fieldMap su aj asociacie, trebalo by zmenit vytvaranie metadat tak aby tam tie asociacie neboli
|
|
118
|
-
var xField = xEntity.fieldMap[field];
|
|
119
|
-
if (xField === undefined) {
|
|
120
|
-
throw "Field ".concat(field, " was not found in entity ").concat(xEntity.name);
|
|
121
|
-
}
|
|
122
|
-
return xField;
|
|
123
|
-
};
|
|
124
|
-
XUtilsMetadata.getXFieldByPath = function (xEntity, path) {
|
|
125
|
-
var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
|
|
126
|
-
if (restPath === null) {
|
|
127
|
-
return XUtilsMetadata.getXField(xEntity, field);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
var xAssoc = XUtilsMetadata.getXAssoc(xEntity, field);
|
|
131
|
-
var xAssocEntity = XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
132
|
-
return XUtilsMetadata.getXFieldByPath(xAssocEntity, restPath);
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
XUtilsMetadata.getXFieldByPathStr = function (entity, path) {
|
|
136
|
-
return XUtilsMetadata.getXFieldByPath(XUtilsMetadata.getXEntity(entity), path);
|
|
137
|
-
};
|
|
138
|
-
XUtilsMetadata.getXAssocByPath = function (xEntity, path) {
|
|
139
|
-
var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
|
|
140
|
-
if (restPath === null) {
|
|
141
|
-
return XUtilsMetadata.getXAssoc(xEntity, field);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
var xAssoc = XUtilsMetadata.getXAssoc(xEntity, field);
|
|
145
|
-
var xAssocEntity = XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
146
|
-
return XUtilsMetadata.getXAssocByPath(xAssocEntity, restPath);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
// for path assoc1.assoc2.field returns assoc2 (last assoc before field)
|
|
150
|
-
XUtilsMetadata.getLastXAssocByPath = function (xEntity, path) {
|
|
151
|
-
var pathToAssoc = XUtilsCommon_1.XUtilsCommon.getPathToAssoc(path);
|
|
152
|
-
return XUtilsMetadata.getXAssocByPath(xEntity, pathToAssoc);
|
|
153
|
-
};
|
|
154
|
-
XUtilsMetadata.getXAssocToOne = function (xEntity, assocField) {
|
|
155
|
-
return XUtilsMetadata.getXAssoc(xEntity, assocField, ["many-to-one", "one-to-one"]);
|
|
156
|
-
};
|
|
157
|
-
XUtilsMetadata.getXAssocToMany = function (xEntity, assocField) {
|
|
158
|
-
return XUtilsMetadata.getXAssoc(xEntity, assocField, ["one-to-many", "many-to-many"]);
|
|
159
|
-
};
|
|
160
|
-
XUtilsMetadata.getXAssocToOneByAssocEntity = function (xEntity, assocEntityName) {
|
|
161
|
-
return XUtilsMetadata.getXAssocByAssocEntity(xEntity, assocEntityName, ["many-to-one", "one-to-one"]);
|
|
162
|
-
};
|
|
163
|
-
XUtilsMetadata.getXAssocToManyByAssocEntity = function (xEntity, assocEntityName) {
|
|
164
|
-
return XUtilsMetadata.getXAssocByAssocEntity(xEntity, assocEntityName, ["one-to-many", "many-to-many"]);
|
|
165
|
-
};
|
|
166
|
-
XUtilsMetadata.getXEntityForAssocToOne = function (xEntity, assocField) {
|
|
167
|
-
return XUtilsMetadata.getXEntityForAssoc(XUtilsMetadata.getXAssocToOne(xEntity, assocField));
|
|
168
|
-
};
|
|
169
|
-
XUtilsMetadata.getXEntityForAssocToMany = function (xEntity, assocField) {
|
|
170
|
-
return XUtilsMetadata.getXEntityForAssoc(XUtilsMetadata.getXAssocToMany(xEntity, assocField));
|
|
171
|
-
};
|
|
172
|
-
XUtilsMetadata.getXFieldList = function (xEntity) {
|
|
173
|
-
var e_1, _a;
|
|
174
|
-
var xFieldList = [];
|
|
175
|
-
try {
|
|
176
|
-
for (var _b = __values(Object.entries(xEntity.fieldMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
177
|
-
var _d = __read(_c.value, 2), key = _d[0], xField = _d[1];
|
|
178
|
-
// assoc fieldy sa nachadzaju aj v xEntity.fieldMap ako typ number (netusim preco), preto ich vyfiltrujeme
|
|
179
|
-
if (xEntity.assocMap[xField.name] === undefined) {
|
|
180
|
-
xFieldList.push(xField);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
185
|
-
finally {
|
|
186
|
-
try {
|
|
187
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
188
|
-
}
|
|
189
|
-
finally { if (e_1) throw e_1.error; }
|
|
190
|
-
}
|
|
191
|
-
return xFieldList;
|
|
192
|
-
};
|
|
193
|
-
XUtilsMetadata.getXAssocList = function (xEntity, relationTypeList) {
|
|
194
|
-
var e_2, _a;
|
|
195
|
-
//const xAssocList: XAssoc[] = Array.from(xEntity.assocMap, (v: XAssoc, k: string) => v);
|
|
196
|
-
var xAssocList = [];
|
|
197
|
-
try {
|
|
198
|
-
for (var _b = __values(Object.entries(xEntity.assocMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
199
|
-
var _d = __read(_c.value, 2), key = _d[0], xAssoc = _d[1];
|
|
200
|
-
if (relationTypeList === undefined || relationTypeList.includes(xAssoc.relationType)) {
|
|
201
|
-
xAssocList.push(xAssoc);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
206
|
-
finally {
|
|
207
|
-
try {
|
|
208
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
209
|
-
}
|
|
210
|
-
finally { if (e_2) throw e_2.error; }
|
|
211
|
-
}
|
|
212
|
-
return xAssocList;
|
|
213
|
-
};
|
|
214
|
-
// docasne sem, kym nemame jednotny XInputDecimal/XInputDecimalDT
|
|
215
|
-
XUtilsMetadata.getParamsForInputNumber = function (xField) {
|
|
216
|
-
var useGrouping = true;
|
|
217
|
-
var fractionDigits = undefined;
|
|
218
|
-
var precision = undefined; // total number of digits (before + after decimal point (scale))
|
|
219
|
-
var size = undefined;
|
|
220
|
-
if (xField.type === "decimal") {
|
|
221
|
-
useGrouping = true;
|
|
222
|
-
fractionDigits = xField.scale;
|
|
223
|
-
precision = xField.precision;
|
|
224
|
-
if (precision !== undefined) {
|
|
225
|
-
size = precision + Math.floor(precision / 3); // approximatly for 123.456.789,12
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else if (xField.type === "number") {
|
|
229
|
-
useGrouping = false;
|
|
230
|
-
fractionDigits = 0;
|
|
231
|
-
precision = xField.width; // number pouziva width
|
|
232
|
-
if (precision === undefined) {
|
|
233
|
-
precision = xField.precision; // nech to aj takto zafunguje...
|
|
234
|
-
}
|
|
235
|
-
size = precision;
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
throw "XInputDecimal: field ".concat(xField.name, " has unsupported type ").concat(xField.type, ". Supported types are decimal and number.");
|
|
239
|
-
}
|
|
240
|
-
var min = undefined;
|
|
241
|
-
var max = undefined;
|
|
242
|
-
if (precision !== undefined && fractionDigits !== undefined) {
|
|
243
|
-
var digits = precision - fractionDigits;
|
|
244
|
-
min = -(Math.pow(10, digits) - 1);
|
|
245
|
-
max = Math.pow(10, digits) - 1;
|
|
246
|
-
}
|
|
247
|
-
return { useGrouping: useGrouping, fractionDigits: fractionDigits, min: min, max: max, size: size };
|
|
248
|
-
};
|
|
249
|
-
XUtilsMetadata.computeColumnWidth = function (xField, betweenFilter, filterMenuInFilterRow, formColumnType, header, sortableButtonInHeader, filterButtonInHeader) {
|
|
250
|
-
var width;
|
|
251
|
-
if (formColumnType === undefined) {
|
|
252
|
-
// lazy datatable (no inputs, no buttons, only text and padding)
|
|
253
|
-
if (xField.type === "string") {
|
|
254
|
-
width = XUtilsMetadata.computeColumnWidthBase(xField.length, 0.5 + 0.5); // padding 7px + 7px
|
|
255
|
-
}
|
|
256
|
-
else if (xField.type === "decimal" || xField.type === "number") {
|
|
257
|
-
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
258
|
-
width = XUtilsMetadata.computeColumnWidthBase(size, 0.5 + 0.5);
|
|
259
|
-
}
|
|
260
|
-
else if (xField.type === "date") {
|
|
261
|
-
width = XUtilsMetadata.computeColumnWidthBase(10, 0.25 + 1.25 + 0.25); // napr. 31.12.2021, 1.25 rem date picker button
|
|
262
|
-
}
|
|
263
|
-
else if (xField.type === "datetime") {
|
|
264
|
-
width = XUtilsMetadata.computeColumnWidthBase(10 + 9, 0.25 + 1.25 + 0.25); // napr. 31.12.2021 03:03:00
|
|
265
|
-
}
|
|
266
|
-
else if (xField.type === "boolean") {
|
|
267
|
-
width = 1.43 + 0.5 + 0.5; // checkbox ma sirku 20px
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
throw "XField ".concat(xField.name, ": unknown xField.type = ").concat(xField.type);
|
|
271
|
-
}
|
|
272
|
-
if (betweenFilter === "row" && width) {
|
|
273
|
-
width *= 2;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
// form datatable (formColumnType is defined)
|
|
278
|
-
if (formColumnType === "inputSimple") {
|
|
279
|
-
var padding = 0.21 + 0.07 + 0.5; // padding is 2.94px + 1px border + 7px padding in input
|
|
280
|
-
if (xField.type === "string") {
|
|
281
|
-
width = XUtilsMetadata.computeColumnWidthBase(xField.length, padding + padding); // padding left + right
|
|
282
|
-
}
|
|
283
|
-
else if (xField.type === "decimal" || xField.type === "number") {
|
|
284
|
-
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
285
|
-
width = XUtilsMetadata.computeColumnWidthBase(size, padding + padding);
|
|
286
|
-
if (betweenFilter === "row" && width) {
|
|
287
|
-
width *= 2; // not tested, only estimation
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else if (xField.type === "date") {
|
|
291
|
-
if (betweenFilter === "row") {
|
|
292
|
-
width = (0.21 + 6 + 1.25 + 0.21) * 2; // not tested, only estimation
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
width = 0.21 + 6 + 2.36 + 0.21; // padding + input (also in App.css defined) + button + padding
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
else if (xField.type === "datetime") {
|
|
299
|
-
if (betweenFilter === "row") {
|
|
300
|
-
width = (0.21 + 10 + 1.25 + 0.21) * 2; // not tested, only estimation
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
width = 0.21 + 10 + 2.36 + 0.21; // padding + input (also in App.css defined) + button + padding
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
else if (xField.type === "boolean") {
|
|
307
|
-
width = 1.43 + 0.5 + 0.5; // checkbox ma sirku 20px
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
throw "XField ".concat(xField.name, ": unknown xField.type = ").concat(xField.type);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
else if (formColumnType === "dropdown" || formColumnType === "autoComplete" || formColumnType === "searchButton") {
|
|
314
|
-
// vyratame sirku inputu
|
|
315
|
-
var padding = 0.21 + 0.07 + 0.5; // padding is 2.94px + 1px border + 7px padding in input
|
|
316
|
-
if (xField.type === "string") {
|
|
317
|
-
width = XUtilsMetadata.computeColumnWidthBase(xField.length, padding + padding); // padding left + right
|
|
318
|
-
}
|
|
319
|
-
else if (xField.type === "decimal" || xField.type === "number") {
|
|
320
|
-
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
321
|
-
width = XUtilsMetadata.computeColumnWidthBase(size, padding + padding);
|
|
322
|
-
}
|
|
323
|
-
else if (xField.type === "date") {
|
|
324
|
-
width = XUtilsMetadata.computeColumnWidthBase(10, padding + padding); // napr. 31.12.2021
|
|
325
|
-
}
|
|
326
|
-
else if (xField.type === "datetime") {
|
|
327
|
-
width = XUtilsMetadata.computeColumnWidthBase(10 + 9, padding + padding); // napr. 31.12.2021 03:03:00
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
throw "XField ".concat(xField.name, ": xField.type = ").concat(xField.type, " not implemented for dropdown/autoComplete/searchButton");
|
|
331
|
-
}
|
|
332
|
-
// pridame sirku buttonu
|
|
333
|
-
if (formColumnType === "dropdown") {
|
|
334
|
-
if (width !== undefined) {
|
|
335
|
-
width += 2; // button for dropdown
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
else if (formColumnType === "autoComplete") {
|
|
339
|
-
if (width !== undefined) {
|
|
340
|
-
width += 1.56; // button for auto complete
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
else if (formColumnType === "searchButton") {
|
|
344
|
-
if (width !== undefined) {
|
|
345
|
-
width += 2.18; // button for search button
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
throw "Unknown prop type = " + formColumnType;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
if (filterMenuInFilterRow) {
|
|
354
|
-
// if the column has width of 25 characters or more, then the input field can be shorter
|
|
355
|
-
if (width !== undefined && width < 25 * XUtilsMetadata.CHAR_SIZE) {
|
|
356
|
-
width += 1.25; // filter menu icon
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
// ak je label dlhsi ako sirka stlpca, tak sirka stlpca bude podla label-u
|
|
360
|
-
if (header !== undefined) {
|
|
361
|
-
var widthHeader = XUtilsMetadata.computeColumnWidthBase(header.length, 0.5); // padding (7px)
|
|
362
|
-
if (sortableButtonInHeader && widthHeader !== undefined) {
|
|
363
|
-
widthHeader += 0.5 + 1.28; // sort icon (25px = 7px (space/margin) + 18px (icon body))
|
|
364
|
-
}
|
|
365
|
-
if (filterButtonInHeader && widthHeader !== undefined) {
|
|
366
|
-
widthHeader += 1.5; // filter icon (21px = 14px (icon body) + 7px (right padding))
|
|
367
|
-
}
|
|
368
|
-
if (widthHeader !== undefined) {
|
|
369
|
-
if (width === undefined || widthHeader > width) {
|
|
370
|
-
width = widthHeader;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
return width !== undefined ? width.toString() + 'rem' : undefined;
|
|
375
|
-
};
|
|
376
|
-
XUtilsMetadata.computeColumnWidthBase = function (charSize, paddingAndOther) {
|
|
377
|
-
var width;
|
|
378
|
-
if (charSize !== undefined) {
|
|
379
|
-
width = charSize * XUtilsMetadata.CHAR_SIZE; // character size (8px)
|
|
380
|
-
}
|
|
381
|
-
if (width !== undefined && paddingAndOther !== undefined) {
|
|
382
|
-
width += paddingAndOther;
|
|
383
|
-
}
|
|
384
|
-
return width;
|
|
385
|
-
};
|
|
386
|
-
XUtilsMetadata.getXBrowseMeta = function (entity, browseId) {
|
|
387
|
-
var key = XUtilsMetadata.getXBrowseFormMetaKey(entity, browseId);
|
|
388
|
-
var xBrowseMeta = XUtilsMetadata.xBrowseMetaMap[key];
|
|
389
|
-
return xBrowseMeta;
|
|
390
|
-
};
|
|
391
|
-
XUtilsMetadata.setXBrowseMeta = function (entity, browseId, xBrowseMeta) {
|
|
392
|
-
var key = XUtilsMetadata.getXBrowseFormMetaKey(entity, browseId);
|
|
393
|
-
XUtilsMetadata.xBrowseMetaMap[key] = xBrowseMeta;
|
|
394
|
-
};
|
|
395
|
-
XUtilsMetadata.getXBrowseFormMetaKey = function (entity, browseId) {
|
|
396
|
-
var key = entity;
|
|
397
|
-
if (browseId !== undefined) {
|
|
398
|
-
key = key + '_' + browseId;
|
|
399
|
-
}
|
|
400
|
-
return key;
|
|
401
|
-
};
|
|
402
|
-
XUtilsMetadata.getXAssoc = function (xEntity, assocField, relationTypeList) {
|
|
403
|
-
var xAssoc = xEntity.assocMap[assocField];
|
|
404
|
-
if (xAssoc === undefined) {
|
|
405
|
-
throw "Assoc ".concat(assocField, " was not found in entity = ").concat(xEntity.name);
|
|
406
|
-
}
|
|
407
|
-
// relationTypeList is optional and is only for check (not to get some unwanted type of assoc)
|
|
408
|
-
if (relationTypeList !== undefined && !relationTypeList.includes(xAssoc.relationType)) {
|
|
409
|
-
throw "Assoc ".concat(assocField, " in entity ").concat(xEntity.name, " is of type ").concat(xAssoc.relationType, " and required type is ").concat(JSON.stringify(relationTypeList));
|
|
410
|
-
}
|
|
411
|
-
return xAssoc;
|
|
412
|
-
};
|
|
413
|
-
XUtilsMetadata.getXAssocByAssocEntity = function (xEntity, assocEntityName, relationTypeList) {
|
|
414
|
-
var e_3, _a;
|
|
415
|
-
var xAssocFound = undefined;
|
|
416
|
-
try {
|
|
417
|
-
for (var _b = __values(Object.entries(xEntity.assocMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
418
|
-
var _d = __read(_c.value, 2), key = _d[0], xAssoc = _d[1];
|
|
419
|
-
if (xAssoc.entityName === assocEntityName) {
|
|
420
|
-
if (xAssocFound === undefined) {
|
|
421
|
-
xAssocFound = xAssoc;
|
|
422
|
-
}
|
|
423
|
-
else {
|
|
424
|
-
throw "In entity ".concat(xEntity.name, " found more then 1 assoc for assocEntityName = ").concat(assocEntityName);
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
430
|
-
finally {
|
|
431
|
-
try {
|
|
432
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
433
|
-
}
|
|
434
|
-
finally { if (e_3) throw e_3.error; }
|
|
435
|
-
}
|
|
436
|
-
if (xAssocFound === undefined) {
|
|
437
|
-
throw "Assoc for assocEntityName = ".concat(assocEntityName, " not found in entity ").concat(xEntity.name);
|
|
438
|
-
}
|
|
439
|
-
// relationTypeList is optional and is only for check (not to get some unwanted type of assoc)
|
|
440
|
-
if (relationTypeList !== undefined && !relationTypeList.includes(xAssocFound.relationType)) {
|
|
441
|
-
throw "Assoc for assocEntityName = ".concat(assocEntityName, " in entity ").concat(xEntity.name, " is of type ").concat(xAssocFound.relationType, " and required type is ").concat(JSON.stringify(relationTypeList));
|
|
442
|
-
}
|
|
443
|
-
return xAssocFound;
|
|
444
|
-
};
|
|
445
|
-
XUtilsMetadata.getXEntityForAssoc = function (xAssoc) {
|
|
446
|
-
return XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
447
|
-
};
|
|
448
|
-
//static CHAR_SIZE: number = 0.57; // 0.57rem (8px)
|
|
449
|
-
XUtilsMetadata.CHAR_SIZE = 0.5; // 0.5rem (7px) - skusime
|
|
450
|
-
return XUtilsMetadata;
|
|
451
|
-
}());
|
|
452
|
-
exports.XUtilsMetadata = XUtilsMetadata;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __values = (this && this.__values) || function(o) {
|
|
55
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
56
|
+
if (m) return m.call(o);
|
|
57
|
+
if (o && typeof o.length === "number") return {
|
|
58
|
+
next: function () {
|
|
59
|
+
if (o && i >= o.length) o = void 0;
|
|
60
|
+
return { value: o && o[i++], done: !o };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
|
+
};
|
|
65
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
+
exports.XUtilsMetadata = void 0;
|
|
67
|
+
var XUtils_1 = require("./XUtils");
|
|
68
|
+
var XUtilsCommon_1 = require("../serverApi/XUtilsCommon");
|
|
69
|
+
// idelany nazov: UtilsEntityMetadata - ale strasne dlhy
|
|
70
|
+
// tato funkcionalita by mala ist bud do tried XEntity, XField alebo lepsie do nejakeho servisu
|
|
71
|
+
// ekvivalentna funkcionalita sa nachadza aj na servri v servise XEntityMetadataService.ts (TODO - v buducnosti spravit spolocnu triedu/servis)
|
|
72
|
+
var XUtilsMetadata = /** @class */ (function () {
|
|
73
|
+
function XUtilsMetadata() {
|
|
74
|
+
}
|
|
75
|
+
XUtilsMetadata.fetchAndSetXEntityMap = function () {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var _a;
|
|
78
|
+
return __generator(this, function (_b) {
|
|
79
|
+
switch (_b.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
if (!(XUtilsMetadata.xEntityMap === undefined)) return [3 /*break*/, 2];
|
|
82
|
+
_a = XUtilsMetadata;
|
|
83
|
+
return [4 /*yield*/, XUtils_1.XUtils.fetch("getXEntityMap", { dummy: "dummy" })];
|
|
84
|
+
case 1:
|
|
85
|
+
_a.xEntityMap = _b.sent();
|
|
86
|
+
_b.label = 2;
|
|
87
|
+
case 2: return [2 /*return*/];
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
XUtilsMetadata.fetchAndSetXBrowseMetaMap = function () {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
+
var _a;
|
|
95
|
+
return __generator(this, function (_b) {
|
|
96
|
+
switch (_b.label) {
|
|
97
|
+
case 0:
|
|
98
|
+
if (!(XUtilsMetadata.xBrowseMetaMap === undefined)) return [3 /*break*/, 2];
|
|
99
|
+
_a = XUtilsMetadata;
|
|
100
|
+
return [4 /*yield*/, XUtils_1.XUtils.fetch("getXBrowseMetaMap", { dummy: "dummy" })];
|
|
101
|
+
case 1:
|
|
102
|
+
_a.xBrowseMetaMap = _b.sent();
|
|
103
|
+
_b.label = 2;
|
|
104
|
+
case 2: return [2 /*return*/];
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
XUtilsMetadata.getXEntity = function (entity) {
|
|
110
|
+
var xEntity = XUtilsMetadata.xEntityMap[entity];
|
|
111
|
+
if (xEntity === undefined) {
|
|
112
|
+
throw "Entity ".concat(entity, " was not found in entity metadata");
|
|
113
|
+
}
|
|
114
|
+
return xEntity;
|
|
115
|
+
};
|
|
116
|
+
XUtilsMetadata.getXField = function (xEntity, field) {
|
|
117
|
+
// TODO - pozor, vo fieldMap su aj asociacie, trebalo by zmenit vytvaranie metadat tak aby tam tie asociacie neboli
|
|
118
|
+
var xField = xEntity.fieldMap[field];
|
|
119
|
+
if (xField === undefined) {
|
|
120
|
+
throw "Field ".concat(field, " was not found in entity ").concat(xEntity.name);
|
|
121
|
+
}
|
|
122
|
+
return xField;
|
|
123
|
+
};
|
|
124
|
+
XUtilsMetadata.getXFieldByPath = function (xEntity, path) {
|
|
125
|
+
var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
|
|
126
|
+
if (restPath === null) {
|
|
127
|
+
return XUtilsMetadata.getXField(xEntity, field);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
var xAssoc = XUtilsMetadata.getXAssoc(xEntity, field);
|
|
131
|
+
var xAssocEntity = XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
132
|
+
return XUtilsMetadata.getXFieldByPath(xAssocEntity, restPath);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
XUtilsMetadata.getXFieldByPathStr = function (entity, path) {
|
|
136
|
+
return XUtilsMetadata.getXFieldByPath(XUtilsMetadata.getXEntity(entity), path);
|
|
137
|
+
};
|
|
138
|
+
XUtilsMetadata.getXAssocByPath = function (xEntity, path) {
|
|
139
|
+
var _a = __read(XUtilsCommon_1.XUtilsCommon.getFieldAndRestPath(path), 2), field = _a[0], restPath = _a[1];
|
|
140
|
+
if (restPath === null) {
|
|
141
|
+
return XUtilsMetadata.getXAssoc(xEntity, field);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
var xAssoc = XUtilsMetadata.getXAssoc(xEntity, field);
|
|
145
|
+
var xAssocEntity = XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
146
|
+
return XUtilsMetadata.getXAssocByPath(xAssocEntity, restPath);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
// for path assoc1.assoc2.field returns assoc2 (last assoc before field)
|
|
150
|
+
XUtilsMetadata.getLastXAssocByPath = function (xEntity, path) {
|
|
151
|
+
var pathToAssoc = XUtilsCommon_1.XUtilsCommon.getPathToAssoc(path);
|
|
152
|
+
return XUtilsMetadata.getXAssocByPath(xEntity, pathToAssoc);
|
|
153
|
+
};
|
|
154
|
+
XUtilsMetadata.getXAssocToOne = function (xEntity, assocField) {
|
|
155
|
+
return XUtilsMetadata.getXAssoc(xEntity, assocField, ["many-to-one", "one-to-one"]);
|
|
156
|
+
};
|
|
157
|
+
XUtilsMetadata.getXAssocToMany = function (xEntity, assocField) {
|
|
158
|
+
return XUtilsMetadata.getXAssoc(xEntity, assocField, ["one-to-many", "many-to-many"]);
|
|
159
|
+
};
|
|
160
|
+
XUtilsMetadata.getXAssocToOneByAssocEntity = function (xEntity, assocEntityName) {
|
|
161
|
+
return XUtilsMetadata.getXAssocByAssocEntity(xEntity, assocEntityName, ["many-to-one", "one-to-one"]);
|
|
162
|
+
};
|
|
163
|
+
XUtilsMetadata.getXAssocToManyByAssocEntity = function (xEntity, assocEntityName) {
|
|
164
|
+
return XUtilsMetadata.getXAssocByAssocEntity(xEntity, assocEntityName, ["one-to-many", "many-to-many"]);
|
|
165
|
+
};
|
|
166
|
+
XUtilsMetadata.getXEntityForAssocToOne = function (xEntity, assocField) {
|
|
167
|
+
return XUtilsMetadata.getXEntityForAssoc(XUtilsMetadata.getXAssocToOne(xEntity, assocField));
|
|
168
|
+
};
|
|
169
|
+
XUtilsMetadata.getXEntityForAssocToMany = function (xEntity, assocField) {
|
|
170
|
+
return XUtilsMetadata.getXEntityForAssoc(XUtilsMetadata.getXAssocToMany(xEntity, assocField));
|
|
171
|
+
};
|
|
172
|
+
XUtilsMetadata.getXFieldList = function (xEntity) {
|
|
173
|
+
var e_1, _a;
|
|
174
|
+
var xFieldList = [];
|
|
175
|
+
try {
|
|
176
|
+
for (var _b = __values(Object.entries(xEntity.fieldMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
177
|
+
var _d = __read(_c.value, 2), key = _d[0], xField = _d[1];
|
|
178
|
+
// assoc fieldy sa nachadzaju aj v xEntity.fieldMap ako typ number (netusim preco), preto ich vyfiltrujeme
|
|
179
|
+
if (xEntity.assocMap[xField.name] === undefined) {
|
|
180
|
+
xFieldList.push(xField);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
185
|
+
finally {
|
|
186
|
+
try {
|
|
187
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
188
|
+
}
|
|
189
|
+
finally { if (e_1) throw e_1.error; }
|
|
190
|
+
}
|
|
191
|
+
return xFieldList;
|
|
192
|
+
};
|
|
193
|
+
XUtilsMetadata.getXAssocList = function (xEntity, relationTypeList) {
|
|
194
|
+
var e_2, _a;
|
|
195
|
+
//const xAssocList: XAssoc[] = Array.from(xEntity.assocMap, (v: XAssoc, k: string) => v);
|
|
196
|
+
var xAssocList = [];
|
|
197
|
+
try {
|
|
198
|
+
for (var _b = __values(Object.entries(xEntity.assocMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
199
|
+
var _d = __read(_c.value, 2), key = _d[0], xAssoc = _d[1];
|
|
200
|
+
if (relationTypeList === undefined || relationTypeList.includes(xAssoc.relationType)) {
|
|
201
|
+
xAssocList.push(xAssoc);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
206
|
+
finally {
|
|
207
|
+
try {
|
|
208
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
209
|
+
}
|
|
210
|
+
finally { if (e_2) throw e_2.error; }
|
|
211
|
+
}
|
|
212
|
+
return xAssocList;
|
|
213
|
+
};
|
|
214
|
+
// docasne sem, kym nemame jednotny XInputDecimal/XInputDecimalDT
|
|
215
|
+
XUtilsMetadata.getParamsForInputNumber = function (xField) {
|
|
216
|
+
var useGrouping = true;
|
|
217
|
+
var fractionDigits = undefined;
|
|
218
|
+
var precision = undefined; // total number of digits (before + after decimal point (scale))
|
|
219
|
+
var size = undefined;
|
|
220
|
+
if (xField.type === "decimal") {
|
|
221
|
+
useGrouping = true;
|
|
222
|
+
fractionDigits = xField.scale;
|
|
223
|
+
precision = xField.precision;
|
|
224
|
+
if (precision !== undefined) {
|
|
225
|
+
size = precision + Math.floor(precision / 3); // approximatly for 123.456.789,12
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else if (xField.type === "number") {
|
|
229
|
+
useGrouping = false;
|
|
230
|
+
fractionDigits = 0;
|
|
231
|
+
precision = xField.width; // number pouziva width
|
|
232
|
+
if (precision === undefined) {
|
|
233
|
+
precision = xField.precision; // nech to aj takto zafunguje...
|
|
234
|
+
}
|
|
235
|
+
size = precision;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
throw "XInputDecimal: field ".concat(xField.name, " has unsupported type ").concat(xField.type, ". Supported types are decimal and number.");
|
|
239
|
+
}
|
|
240
|
+
var min = undefined;
|
|
241
|
+
var max = undefined;
|
|
242
|
+
if (precision !== undefined && fractionDigits !== undefined) {
|
|
243
|
+
var digits = precision - fractionDigits;
|
|
244
|
+
min = -(Math.pow(10, digits) - 1);
|
|
245
|
+
max = Math.pow(10, digits) - 1;
|
|
246
|
+
}
|
|
247
|
+
return { useGrouping: useGrouping, fractionDigits: fractionDigits, min: min, max: max, size: size };
|
|
248
|
+
};
|
|
249
|
+
XUtilsMetadata.computeColumnWidth = function (xField, betweenFilter, filterMenuInFilterRow, formColumnType, header, sortableButtonInHeader, filterButtonInHeader) {
|
|
250
|
+
var width;
|
|
251
|
+
if (formColumnType === undefined) {
|
|
252
|
+
// lazy datatable (no inputs, no buttons, only text and padding)
|
|
253
|
+
if (xField.type === "string") {
|
|
254
|
+
width = XUtilsMetadata.computeColumnWidthBase(xField.length, 0.5 + 0.5); // padding 7px + 7px
|
|
255
|
+
}
|
|
256
|
+
else if (xField.type === "decimal" || xField.type === "number") {
|
|
257
|
+
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
258
|
+
width = XUtilsMetadata.computeColumnWidthBase(size, 0.5 + 0.5);
|
|
259
|
+
}
|
|
260
|
+
else if (xField.type === "date") {
|
|
261
|
+
width = XUtilsMetadata.computeColumnWidthBase(10, 0.25 + 1.25 + 0.25); // napr. 31.12.2021, 1.25 rem date picker button
|
|
262
|
+
}
|
|
263
|
+
else if (xField.type === "datetime") {
|
|
264
|
+
width = XUtilsMetadata.computeColumnWidthBase(10 + 9, 0.25 + 1.25 + 0.25); // napr. 31.12.2021 03:03:00
|
|
265
|
+
}
|
|
266
|
+
else if (xField.type === "boolean") {
|
|
267
|
+
width = 1.43 + 0.5 + 0.5; // checkbox ma sirku 20px
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
throw "XField ".concat(xField.name, ": unknown xField.type = ").concat(xField.type);
|
|
271
|
+
}
|
|
272
|
+
if (betweenFilter === "row" && width) {
|
|
273
|
+
width *= 2;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
// form datatable (formColumnType is defined)
|
|
278
|
+
if (formColumnType === "inputSimple") {
|
|
279
|
+
var padding = 0.21 + 0.07 + 0.5; // padding is 2.94px + 1px border + 7px padding in input
|
|
280
|
+
if (xField.type === "string") {
|
|
281
|
+
width = XUtilsMetadata.computeColumnWidthBase(xField.length, padding + padding); // padding left + right
|
|
282
|
+
}
|
|
283
|
+
else if (xField.type === "decimal" || xField.type === "number") {
|
|
284
|
+
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
285
|
+
width = XUtilsMetadata.computeColumnWidthBase(size, padding + padding);
|
|
286
|
+
if (betweenFilter === "row" && width) {
|
|
287
|
+
width *= 2; // not tested, only estimation
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
else if (xField.type === "date") {
|
|
291
|
+
if (betweenFilter === "row") {
|
|
292
|
+
width = (0.21 + 6 + 1.25 + 0.21) * 2; // not tested, only estimation
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
width = 0.21 + 6 + 2.36 + 0.21; // padding + input (also in App.css defined) + button + padding
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else if (xField.type === "datetime") {
|
|
299
|
+
if (betweenFilter === "row") {
|
|
300
|
+
width = (0.21 + 10 + 1.25 + 0.21) * 2; // not tested, only estimation
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
width = 0.21 + 10 + 2.36 + 0.21; // padding + input (also in App.css defined) + button + padding
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else if (xField.type === "boolean") {
|
|
307
|
+
width = 1.43 + 0.5 + 0.5; // checkbox ma sirku 20px
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
throw "XField ".concat(xField.name, ": unknown xField.type = ").concat(xField.type);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else if (formColumnType === "dropdown" || formColumnType === "autoComplete" || formColumnType === "searchButton") {
|
|
314
|
+
// vyratame sirku inputu
|
|
315
|
+
var padding = 0.21 + 0.07 + 0.5; // padding is 2.94px + 1px border + 7px padding in input
|
|
316
|
+
if (xField.type === "string") {
|
|
317
|
+
width = XUtilsMetadata.computeColumnWidthBase(xField.length, padding + padding); // padding left + right
|
|
318
|
+
}
|
|
319
|
+
else if (xField.type === "decimal" || xField.type === "number") {
|
|
320
|
+
var size = XUtilsMetadata.getParamsForInputNumber(xField).size;
|
|
321
|
+
width = XUtilsMetadata.computeColumnWidthBase(size, padding + padding);
|
|
322
|
+
}
|
|
323
|
+
else if (xField.type === "date") {
|
|
324
|
+
width = XUtilsMetadata.computeColumnWidthBase(10, padding + padding); // napr. 31.12.2021
|
|
325
|
+
}
|
|
326
|
+
else if (xField.type === "datetime") {
|
|
327
|
+
width = XUtilsMetadata.computeColumnWidthBase(10 + 9, padding + padding); // napr. 31.12.2021 03:03:00
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
throw "XField ".concat(xField.name, ": xField.type = ").concat(xField.type, " not implemented for dropdown/autoComplete/searchButton");
|
|
331
|
+
}
|
|
332
|
+
// pridame sirku buttonu
|
|
333
|
+
if (formColumnType === "dropdown") {
|
|
334
|
+
if (width !== undefined) {
|
|
335
|
+
width += 2; // button for dropdown
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
else if (formColumnType === "autoComplete") {
|
|
339
|
+
if (width !== undefined) {
|
|
340
|
+
width += 1.56; // button for auto complete
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
else if (formColumnType === "searchButton") {
|
|
344
|
+
if (width !== undefined) {
|
|
345
|
+
width += 2.18; // button for search button
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
throw "Unknown prop type = " + formColumnType;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (filterMenuInFilterRow) {
|
|
354
|
+
// if the column has width of 25 characters or more, then the input field can be shorter
|
|
355
|
+
if (width !== undefined && width < 25 * XUtilsMetadata.CHAR_SIZE) {
|
|
356
|
+
width += 1.25; // filter menu icon
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
// ak je label dlhsi ako sirka stlpca, tak sirka stlpca bude podla label-u
|
|
360
|
+
if (header !== undefined) {
|
|
361
|
+
var widthHeader = XUtilsMetadata.computeColumnWidthBase(header.length, 0.5); // padding (7px)
|
|
362
|
+
if (sortableButtonInHeader && widthHeader !== undefined) {
|
|
363
|
+
widthHeader += 0.5 + 1.28; // sort icon (25px = 7px (space/margin) + 18px (icon body))
|
|
364
|
+
}
|
|
365
|
+
if (filterButtonInHeader && widthHeader !== undefined) {
|
|
366
|
+
widthHeader += 1.5; // filter icon (21px = 14px (icon body) + 7px (right padding))
|
|
367
|
+
}
|
|
368
|
+
if (widthHeader !== undefined) {
|
|
369
|
+
if (width === undefined || widthHeader > width) {
|
|
370
|
+
width = widthHeader;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return width !== undefined ? width.toString() + 'rem' : undefined;
|
|
375
|
+
};
|
|
376
|
+
XUtilsMetadata.computeColumnWidthBase = function (charSize, paddingAndOther) {
|
|
377
|
+
var width;
|
|
378
|
+
if (charSize !== undefined) {
|
|
379
|
+
width = charSize * XUtilsMetadata.CHAR_SIZE; // character size (8px)
|
|
380
|
+
}
|
|
381
|
+
if (width !== undefined && paddingAndOther !== undefined) {
|
|
382
|
+
width += paddingAndOther;
|
|
383
|
+
}
|
|
384
|
+
return width;
|
|
385
|
+
};
|
|
386
|
+
XUtilsMetadata.getXBrowseMeta = function (entity, browseId) {
|
|
387
|
+
var key = XUtilsMetadata.getXBrowseFormMetaKey(entity, browseId);
|
|
388
|
+
var xBrowseMeta = XUtilsMetadata.xBrowseMetaMap[key];
|
|
389
|
+
return xBrowseMeta;
|
|
390
|
+
};
|
|
391
|
+
XUtilsMetadata.setXBrowseMeta = function (entity, browseId, xBrowseMeta) {
|
|
392
|
+
var key = XUtilsMetadata.getXBrowseFormMetaKey(entity, browseId);
|
|
393
|
+
XUtilsMetadata.xBrowseMetaMap[key] = xBrowseMeta;
|
|
394
|
+
};
|
|
395
|
+
XUtilsMetadata.getXBrowseFormMetaKey = function (entity, browseId) {
|
|
396
|
+
var key = entity;
|
|
397
|
+
if (browseId !== undefined) {
|
|
398
|
+
key = key + '_' + browseId;
|
|
399
|
+
}
|
|
400
|
+
return key;
|
|
401
|
+
};
|
|
402
|
+
XUtilsMetadata.getXAssoc = function (xEntity, assocField, relationTypeList) {
|
|
403
|
+
var xAssoc = xEntity.assocMap[assocField];
|
|
404
|
+
if (xAssoc === undefined) {
|
|
405
|
+
throw "Assoc ".concat(assocField, " was not found in entity = ").concat(xEntity.name);
|
|
406
|
+
}
|
|
407
|
+
// relationTypeList is optional and is only for check (not to get some unwanted type of assoc)
|
|
408
|
+
if (relationTypeList !== undefined && !relationTypeList.includes(xAssoc.relationType)) {
|
|
409
|
+
throw "Assoc ".concat(assocField, " in entity ").concat(xEntity.name, " is of type ").concat(xAssoc.relationType, " and required type is ").concat(JSON.stringify(relationTypeList));
|
|
410
|
+
}
|
|
411
|
+
return xAssoc;
|
|
412
|
+
};
|
|
413
|
+
XUtilsMetadata.getXAssocByAssocEntity = function (xEntity, assocEntityName, relationTypeList) {
|
|
414
|
+
var e_3, _a;
|
|
415
|
+
var xAssocFound = undefined;
|
|
416
|
+
try {
|
|
417
|
+
for (var _b = __values(Object.entries(xEntity.assocMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
418
|
+
var _d = __read(_c.value, 2), key = _d[0], xAssoc = _d[1];
|
|
419
|
+
if (xAssoc.entityName === assocEntityName) {
|
|
420
|
+
if (xAssocFound === undefined) {
|
|
421
|
+
xAssocFound = xAssoc;
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
throw "In entity ".concat(xEntity.name, " found more then 1 assoc for assocEntityName = ").concat(assocEntityName);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
430
|
+
finally {
|
|
431
|
+
try {
|
|
432
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
433
|
+
}
|
|
434
|
+
finally { if (e_3) throw e_3.error; }
|
|
435
|
+
}
|
|
436
|
+
if (xAssocFound === undefined) {
|
|
437
|
+
throw "Assoc for assocEntityName = ".concat(assocEntityName, " not found in entity ").concat(xEntity.name);
|
|
438
|
+
}
|
|
439
|
+
// relationTypeList is optional and is only for check (not to get some unwanted type of assoc)
|
|
440
|
+
if (relationTypeList !== undefined && !relationTypeList.includes(xAssocFound.relationType)) {
|
|
441
|
+
throw "Assoc for assocEntityName = ".concat(assocEntityName, " in entity ").concat(xEntity.name, " is of type ").concat(xAssocFound.relationType, " and required type is ").concat(JSON.stringify(relationTypeList));
|
|
442
|
+
}
|
|
443
|
+
return xAssocFound;
|
|
444
|
+
};
|
|
445
|
+
XUtilsMetadata.getXEntityForAssoc = function (xAssoc) {
|
|
446
|
+
return XUtilsMetadata.getXEntity(xAssoc.entityName);
|
|
447
|
+
};
|
|
448
|
+
//static CHAR_SIZE: number = 0.57; // 0.57rem (8px)
|
|
449
|
+
XUtilsMetadata.CHAR_SIZE = 0.5; // 0.5rem (7px) - skusime
|
|
450
|
+
return XUtilsMetadata;
|
|
451
|
+
}());
|
|
452
|
+
exports.XUtilsMetadata = XUtilsMetadata;
|