@michalrakus/x-react-web-lib 1.20.0 → 1.22.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/XFormHeader.d.ts +3 -0
- package/XFormHeader.js +5 -0
- package/XParamBrowse.d.ts +3 -0
- package/XParamBrowse.js +5 -0
- package/XParamForm.d.ts +3 -0
- package/XParamForm.js +5 -0
- package/gulpfile.js +5 -2
- package/lib/administration/XParamBrowse.d.ts +6 -0
- package/lib/administration/XParamBrowse.js +25 -0
- package/lib/administration/XParamForm.d.ts +7 -0
- package/lib/administration/XParamForm.js +62 -0
- package/lib/administration/XUserBrowse.js +1 -1
- package/lib/administration/XUserForm.js +12 -9
- package/lib/components/XAutoCompleteBase.js +2 -29
- package/lib/components/XCalendar.d.ts +15 -8
- package/lib/components/XCalendar.js +21 -2
- package/lib/components/XFormComponent.d.ts +1 -0
- package/lib/components/XFormHeader.d.ts +4 -0
- package/lib/components/XFormHeader.js +11 -0
- package/lib/components/XInputDate.js +1 -1
- package/lib/components/XInputDateDT.js +1 -1
- package/lib/components/XInputText.js +1 -1
- package/lib/components/XLazyDataTable/XExportRowsDialog.d.ts +10 -5
- package/lib/components/XLazyDataTable/XExportRowsDialog.js +79 -44
- package/lib/components/XLazyDataTable/XLazyDataTable.d.ts +7 -0
- package/lib/components/XLazyDataTable/XLazyDataTable.js +113 -31
- package/lib/components/XLazyDataTable/XMultilineSwitch.js +1 -1
- package/lib/components/XLazyDataTable/XOcfDropdown.d.ts +8 -0
- package/lib/components/XLazyDataTable/XOcfDropdown.js +53 -0
- package/lib/components/XUtils.d.ts +3 -1
- package/lib/components/XUtils.js +42 -10
- package/lib/components/locale/x-en.json +1 -0
- package/lib/serverApi/ExportImportParam.d.ts +29 -11
- package/lib/serverApi/ExportImportParam.js +11 -1
- package/lib/serverApi/XUtilsCommon.d.ts +5 -0
- package/lib/serverApi/XUtilsCommon.js +90 -3
- package/lib/serverApi/XUtilsConversions.d.ts +13 -5
- package/lib/serverApi/XUtilsConversions.js +110 -34
- package/lib/serverApi/XUtilsMetadataCommon.d.ts +1 -0
- package/lib/serverApi/XUtilsMetadataCommon.js +17 -0
- package/package.json +1 -1
|
@@ -15,6 +15,10 @@ export interface XAppButtonForRow {
|
|
|
15
15
|
label: string;
|
|
16
16
|
onClick: (selectedRow: any) => void;
|
|
17
17
|
}
|
|
18
|
+
export interface XOptionalCustomFilter {
|
|
19
|
+
label: string;
|
|
20
|
+
filter: XCustomFilter;
|
|
21
|
+
}
|
|
18
22
|
export interface XEditModeHandlers {
|
|
19
23
|
onStart: () => void;
|
|
20
24
|
onSave: () => void;
|
|
@@ -34,6 +38,7 @@ export interface XSearchBrowseProps {
|
|
|
34
38
|
}
|
|
35
39
|
export interface XLazyDataTableProps {
|
|
36
40
|
entity: string;
|
|
41
|
+
label?: string;
|
|
37
42
|
dataKey?: string;
|
|
38
43
|
paginator: boolean;
|
|
39
44
|
rows: number;
|
|
@@ -52,6 +57,7 @@ export interface XLazyDataTableProps {
|
|
|
52
57
|
appButtons?: any;
|
|
53
58
|
filters?: DataTableFilterMeta;
|
|
54
59
|
customFilter?: XCustomFilter;
|
|
60
|
+
optionalCustomFilters?: XOptionalCustomFilter[];
|
|
55
61
|
sortField?: string | DataTableSortMeta[];
|
|
56
62
|
fullTextSearch: boolean | string[];
|
|
57
63
|
fields?: string[];
|
|
@@ -62,6 +68,7 @@ export interface XLazyDataTableProps {
|
|
|
62
68
|
width?: string;
|
|
63
69
|
rowClassName?: (data: any) => object | string | undefined;
|
|
64
70
|
dataLoadedState?: [boolean, React.Dispatch<React.SetStateAction<boolean>>];
|
|
71
|
+
exportFieldsToDuplicateValues?: string[];
|
|
65
72
|
editMode?: boolean;
|
|
66
73
|
editModeHandlers?: XEditModeHandlers;
|
|
67
74
|
displayed?: boolean;
|
|
@@ -130,6 +130,7 @@ var editor_1 = require("primereact/editor");
|
|
|
130
130
|
var XMultilineSwitch_1 = require("./XMultilineSwitch");
|
|
131
131
|
var XMultilineRenderer_1 = require("./XMultilineRenderer");
|
|
132
132
|
var XHtmlRenderer_1 = require("./XHtmlRenderer");
|
|
133
|
+
var XOcfDropdown_1 = require("./XOcfDropdown");
|
|
133
134
|
var XLazyDataTable = function (props) {
|
|
134
135
|
var _a;
|
|
135
136
|
// must be here, is used in createInitFilters()
|
|
@@ -239,14 +240,16 @@ var XLazyDataTable = function (props) {
|
|
|
239
240
|
var _f = __read((0, react_1.useState)(filtersInit), 2), filters = _f[0], setFilters = _f[1]; // filtrovanie na "controlled manner" (moze sa sem nainicializovat nejaka hodnota)
|
|
240
241
|
var initFtsInputValue = props.fullTextSearch ? createInitFtsInputValue() : undefined;
|
|
241
242
|
var _g = __read((0, react_1.useState)(initFtsInputValue), 2), ftsInputValue = _g[0], setFtsInputValue = _g[1];
|
|
242
|
-
var _h = __read((0, react_1.useState)(
|
|
243
|
-
var _j = __read((0, react_1.useState)(
|
|
244
|
-
var _k = __read((0, react_1.useState)(
|
|
245
|
-
var _l = __read((
|
|
246
|
-
var _m = __read((0, react_1.useState)(false), 2),
|
|
247
|
-
var _o = __read((0, react_1.useState)(), 2),
|
|
243
|
+
var _h = __read((0, react_1.useState)(undefined), 2), optionalCustomFilter = _h[0], setOptionalCustomFilter = _h[1];
|
|
244
|
+
var _j = __read((0, react_1.useState)(props.multilineSwitchInitValue), 2), multilineSwitchValue = _j[0], setMultilineSwitchValue = _j[1];
|
|
245
|
+
var _k = __read((0, react_1.useState)(XUtils_1.XUtils.createMultiSortMeta(props.sortField)), 2), multiSortMeta = _k[0], setMultiSortMeta = _k[1];
|
|
246
|
+
var _l = __read((0, react_1.useState)(null), 2), selectedRow = _l[0], setSelectedRow = _l[1];
|
|
247
|
+
var _m = __read((_a = props.dataLoadedState) !== null && _a !== void 0 ? _a : (0, react_1.useState)(false), 2), dataLoaded = _m[0], setDataLoaded = _m[1]; // priznak kde si zapiseme, ci uz sme nacitali data
|
|
248
|
+
var _o = __read((0, react_1.useState)({ dialogOpened: false }), 2), exportRowsDialogState = _o[0], setExportRowsDialogState = _o[1];
|
|
249
|
+
//const [exportRowsDialogRowCount, setExportRowsDialogRowCount] = useState<number>(); // param pre dialog
|
|
248
250
|
var _p = __read((0, react_1.useState)(filtersInit), 2), filtersAfterFiltering = _p[0], setFiltersAfterFiltering = _p[1]; // sem si odkladame stav filtra po kliknuti na button Filter (chceme exportovat presne to co vidno vyfiltrovane)
|
|
249
251
|
var _q = __read((0, react_1.useState)(initFtsInputValue), 2), ftsInputValueAfterFiltering = _q[0], setFtsInputValueAfterFiltering = _q[1]; // tak isto ako filtersAfterFiltering
|
|
252
|
+
var _r = __read((0, react_1.useState)(undefined), 2), optionalCustomFilterAfterFiltering = _r[0], setOptionalCustomFilterAfterFiltering = _r[1]; // tak isto ako filtersAfterFiltering
|
|
250
253
|
// parameter [] zabezpeci ze sa metoda zavola len po prvom renderingu (a nie po kazdej zmene stavu (zavolani setNieco()))
|
|
251
254
|
(0, react_1.useEffect)(function () {
|
|
252
255
|
// jednoduchy sposob - nepouzivame parameter props.displayed a priznak dataLoaded
|
|
@@ -276,10 +279,13 @@ var XLazyDataTable = function (props) {
|
|
|
276
279
|
// TODO - preco je to tu? presunut dole ak sa da...
|
|
277
280
|
var dataKey = props.dataKey !== undefined ? props.dataKey : XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.entity).idField;
|
|
278
281
|
var onPage = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
282
|
+
var findParam;
|
|
279
283
|
return __generator(this, function (_a) {
|
|
280
284
|
//console.log("zavolany onPage");
|
|
281
285
|
setFirst(event.first);
|
|
282
|
-
|
|
286
|
+
findParam = createFindParam();
|
|
287
|
+
findParam.first = event.first; // prepiseme first, lebo je tam stara hodnota (volanie setFirst nezmeni first hned)
|
|
288
|
+
loadDataBase(findParam);
|
|
283
289
|
return [2 /*return*/];
|
|
284
290
|
});
|
|
285
291
|
}); };
|
|
@@ -293,7 +299,9 @@ var XLazyDataTable = function (props) {
|
|
|
293
299
|
//console.log("zavolany onSort - this.state.multiSortMeta = " + JSON.stringify(multiSortMeta));
|
|
294
300
|
//console.log("zavolany onSort - event.multiSortMeta = " + JSON.stringify(event.multiSortMeta));
|
|
295
301
|
setMultiSortMeta(event.multiSortMeta);
|
|
296
|
-
|
|
302
|
+
var findParam = createFindParam();
|
|
303
|
+
findParam.multiSortMeta = event.multiSortMeta; // prepiseme multiSortMeta, lebo je tam stara hodnota (volanie setMultiSortMeta nezmeni multiSortMeta hned)
|
|
304
|
+
loadDataBase(findParam);
|
|
297
305
|
};
|
|
298
306
|
var onClickFilter = function () {
|
|
299
307
|
//console.log("zavolany onClickFilter");
|
|
@@ -306,9 +314,26 @@ var XLazyDataTable = function (props) {
|
|
|
306
314
|
if (ftsInputValue) {
|
|
307
315
|
setFtsInputValue(createInitFtsInputValue());
|
|
308
316
|
}
|
|
317
|
+
if (props.optionalCustomFilters) {
|
|
318
|
+
setOptionalCustomFilter(undefined);
|
|
319
|
+
}
|
|
309
320
|
};
|
|
310
321
|
var loadData = function () {
|
|
311
|
-
loadDataBase(
|
|
322
|
+
loadDataBase(createFindParam());
|
|
323
|
+
};
|
|
324
|
+
var createFindParam = function () {
|
|
325
|
+
return {
|
|
326
|
+
resultType: FindParam_1.ResultType.RowCountAndPagedRows,
|
|
327
|
+
first: first,
|
|
328
|
+
rows: rows,
|
|
329
|
+
filters: filters,
|
|
330
|
+
fullTextSearch: createXFullTextSearch(ftsInputValue),
|
|
331
|
+
customFilterItems: createXCustomFilterItems(customFilterItems, optionalCustomFilter),
|
|
332
|
+
multiSortMeta: multiSortMeta,
|
|
333
|
+
entity: props.entity,
|
|
334
|
+
fields: getFields(true),
|
|
335
|
+
aggregateItems: aggregateItems
|
|
336
|
+
};
|
|
312
337
|
};
|
|
313
338
|
var loadDataBase = function (findParam) { return __awaiter(void 0, void 0, void 0, function () {
|
|
314
339
|
var findResult;
|
|
@@ -325,6 +350,7 @@ var XLazyDataTable = function (props) {
|
|
|
325
350
|
// odlozime si filter hodnoty pre pripadny export - deep cloning vyzera ze netreba
|
|
326
351
|
setFiltersAfterFiltering(filters);
|
|
327
352
|
setFtsInputValueAfterFiltering(ftsInputValue ? __assign({}, ftsInputValue) : undefined);
|
|
353
|
+
setOptionalCustomFilterAfterFiltering(optionalCustomFilter);
|
|
328
354
|
return [2 /*return*/];
|
|
329
355
|
}
|
|
330
356
|
});
|
|
@@ -353,7 +379,10 @@ var XLazyDataTable = function (props) {
|
|
|
353
379
|
}
|
|
354
380
|
return xFullTextSearch;
|
|
355
381
|
};
|
|
356
|
-
var
|
|
382
|
+
var createXCustomFilterItems = function (customFilterItems, optionalCustomFilter) {
|
|
383
|
+
return XUtils_1.XUtils.filterAnd(customFilterItems, optionalCustomFilter === null || optionalCustomFilter === void 0 ? void 0 : optionalCustomFilter.filter);
|
|
384
|
+
};
|
|
385
|
+
var getFields = function (addPropsFields) {
|
|
357
386
|
// krasne zobrazi cely objekt!
|
|
358
387
|
//console.log(dataTableEl.current);
|
|
359
388
|
var e_3, _a;
|
|
@@ -372,8 +401,10 @@ var XLazyDataTable = function (props) {
|
|
|
372
401
|
}
|
|
373
402
|
finally { if (e_3) throw e_3.error; }
|
|
374
403
|
}
|
|
375
|
-
if (
|
|
376
|
-
|
|
404
|
+
if (addPropsFields) {
|
|
405
|
+
if (props.fields) {
|
|
406
|
+
fields.push.apply(fields, __spreadArray([], __read(props.fields), false));
|
|
407
|
+
}
|
|
377
408
|
}
|
|
378
409
|
return fields;
|
|
379
410
|
};
|
|
@@ -399,6 +430,28 @@ var XLazyDataTable = function (props) {
|
|
|
399
430
|
}
|
|
400
431
|
return headers;
|
|
401
432
|
};
|
|
433
|
+
var getWidths = function () {
|
|
434
|
+
var e_5, _a;
|
|
435
|
+
var _b;
|
|
436
|
+
// vrati sirky stlpcov napr. ['7.75rem', '20rem', '8.5rem', '8.5rem', '6rem']
|
|
437
|
+
// nevracia aktualne sirky stlpcov (po manualnom rozsireni) ale tie ktore boli nastavene/vypocitane v kode
|
|
438
|
+
var widths = [];
|
|
439
|
+
var columns = dataTableEl.current.props.children;
|
|
440
|
+
try {
|
|
441
|
+
for (var columns_5 = __values(columns), columns_5_1 = columns_5.next(); !columns_5_1.done; columns_5_1 = columns_5.next()) {
|
|
442
|
+
var column = columns_5_1.value;
|
|
443
|
+
widths.push((_b = column.props.headerStyle) === null || _b === void 0 ? void 0 : _b.width);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
447
|
+
finally {
|
|
448
|
+
try {
|
|
449
|
+
if (columns_5_1 && !columns_5_1.done && (_a = columns_5.return)) _a.call(columns_5);
|
|
450
|
+
}
|
|
451
|
+
finally { if (e_5) throw e_5.error; }
|
|
452
|
+
}
|
|
453
|
+
return widths;
|
|
454
|
+
};
|
|
402
455
|
var hasContentTypeHtml = function () {
|
|
403
456
|
var columns = props.children;
|
|
404
457
|
return columns.some(function (column) { return column.props.contentType === "html"; });
|
|
@@ -436,7 +489,7 @@ var XLazyDataTable = function (props) {
|
|
|
436
489
|
}
|
|
437
490
|
};
|
|
438
491
|
var onClickRemoveRow = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
439
|
-
var reread,
|
|
492
|
+
var reread, e_6, e_7;
|
|
440
493
|
return __generator(this, function (_a) {
|
|
441
494
|
switch (_a.label) {
|
|
442
495
|
case 0:
|
|
@@ -451,8 +504,8 @@ var XLazyDataTable = function (props) {
|
|
|
451
504
|
reread = _a.sent();
|
|
452
505
|
return [3 /*break*/, 4];
|
|
453
506
|
case 3:
|
|
454
|
-
|
|
455
|
-
XUtils_1.XUtils.showErrorMessage((0, XLocale_1.xLocaleOption)('removeRowFailed'),
|
|
507
|
+
e_6 = _a.sent();
|
|
508
|
+
XUtils_1.XUtils.showErrorMessage((0, XLocale_1.xLocaleOption)('removeRowFailed'), e_6);
|
|
456
509
|
return [3 /*break*/, 4];
|
|
457
510
|
case 4:
|
|
458
511
|
if (reread) {
|
|
@@ -474,8 +527,8 @@ var XLazyDataTable = function (props) {
|
|
|
474
527
|
_a.sent();
|
|
475
528
|
return [3 /*break*/, 9];
|
|
476
529
|
case 8:
|
|
477
|
-
|
|
478
|
-
XUtils_1.XUtils.showErrorMessage((0, XLocale_1.xLocaleOption)('removeRowFailed'),
|
|
530
|
+
e_7 = _a.sent();
|
|
531
|
+
XUtils_1.XUtils.showErrorMessage((0, XLocale_1.xLocaleOption)('removeRowFailed'), e_7);
|
|
479
532
|
return [3 /*break*/, 9];
|
|
480
533
|
case 9:
|
|
481
534
|
loadData();
|
|
@@ -500,30 +553,55 @@ var XLazyDataTable = function (props) {
|
|
|
500
553
|
}
|
|
501
554
|
};
|
|
502
555
|
var onClickExport = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
503
|
-
var findParam, findResult;
|
|
556
|
+
var fields, findParam, findResult, exportParams;
|
|
504
557
|
return __generator(this, function (_a) {
|
|
505
558
|
switch (_a.label) {
|
|
506
559
|
case 0:
|
|
507
|
-
|
|
560
|
+
fields = getFields(false);
|
|
561
|
+
findParam = {
|
|
562
|
+
resultType: FindParam_1.ResultType.OnlyRowCount,
|
|
563
|
+
first: first,
|
|
564
|
+
rows: rows,
|
|
565
|
+
filters: filtersAfterFiltering,
|
|
566
|
+
fullTextSearch: createXFullTextSearch(ftsInputValueAfterFiltering),
|
|
567
|
+
customFilterItems: createXCustomFilterItems(customFilterItems, optionalCustomFilterAfterFiltering),
|
|
568
|
+
multiSortMeta: multiSortMeta,
|
|
569
|
+
entity: props.entity,
|
|
570
|
+
fields: fields,
|
|
571
|
+
aggregateItems: aggregateItems
|
|
572
|
+
};
|
|
508
573
|
return [4 /*yield*/, findByFilter(findParam)];
|
|
509
574
|
case 1:
|
|
510
575
|
findResult = _a.sent();
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
setExportRowsDialogOpened(true);
|
|
576
|
+
exportParams = createExportParams(fields, findResult.totalRecords);
|
|
577
|
+
setExportRowsDialogState({ dialogOpened: true, exportParams: exportParams });
|
|
514
578
|
return [2 /*return*/];
|
|
515
579
|
}
|
|
516
580
|
});
|
|
517
581
|
}); };
|
|
518
|
-
var createExportParams = function () {
|
|
519
|
-
var queryParam = {
|
|
582
|
+
var createExportParams = function (fields, rowCount) {
|
|
583
|
+
var queryParam = {
|
|
584
|
+
filters: filtersAfterFiltering,
|
|
585
|
+
fullTextSearch: createXFullTextSearch(ftsInputValueAfterFiltering),
|
|
586
|
+
customFilterItems: createXCustomFilterItems(customFilterItems, optionalCustomFilterAfterFiltering),
|
|
587
|
+
multiSortMeta: multiSortMeta,
|
|
588
|
+
entity: props.entity,
|
|
589
|
+
fields: fields
|
|
590
|
+
};
|
|
520
591
|
return {
|
|
521
|
-
|
|
592
|
+
rowCount: rowCount,
|
|
593
|
+
existsToManyAssoc: existsToManyAssoc(fields),
|
|
522
594
|
queryParam: queryParam,
|
|
523
595
|
headers: getHeaders(),
|
|
596
|
+
widths: getWidths(),
|
|
597
|
+
fieldsToDuplicateValues: props.exportFieldsToDuplicateValues,
|
|
524
598
|
fileName: "".concat(props.entity)
|
|
525
599
|
};
|
|
526
600
|
};
|
|
601
|
+
var existsToManyAssoc = function (fields) {
|
|
602
|
+
var xEntity = XUtilsMetadataCommon_1.XUtilsMetadataCommon.getXEntity(props.entity);
|
|
603
|
+
return fields.some(function (value) { return XUtilsMetadataCommon_1.XUtilsMetadataCommon.hasPathToManyAssoc(xEntity, value); });
|
|
604
|
+
};
|
|
527
605
|
var onClickChoose = function () {
|
|
528
606
|
//console.log("zavolany onClickChoose");
|
|
529
607
|
if (selectedRow !== null) {
|
|
@@ -802,12 +880,12 @@ var XLazyDataTable = function (props) {
|
|
|
802
880
|
// display: 'flex' umiestni XCalendar elementy vedla seba
|
|
803
881
|
filterElement =
|
|
804
882
|
react_1.default.createElement("div", { style: betweenFilter === "row" ? { display: 'flex' } : undefined },
|
|
805
|
-
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue1(childColumn.props.field), onChange: function (value) { return setFilterValue1(childColumn.props.field, value); }, datetime: xField.type === "datetime" }),
|
|
806
|
-
react_1.default.createElement(XCalendar_1.XCalendar, { value: getFilterValue2(childColumn.props.field), onChange: function (value) { return setFilterValue2(childColumn.props.field, value); }, datetime: xField.type === "datetime" }));
|
|
883
|
+
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" }),
|
|
884
|
+
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" }));
|
|
807
885
|
}
|
|
808
886
|
else {
|
|
809
887
|
var dateValue = getFilterValue(childColumn.props.field);
|
|
810
|
-
filterElement = react_1.default.createElement(XCalendar_1.XCalendar, { value: dateValue, onChange: function (value) { return setFilterValue(childColumn.props.field, value); }, datetime: xField.type === "datetime" });
|
|
888
|
+
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" });
|
|
811
889
|
}
|
|
812
890
|
}
|
|
813
891
|
else if (xField.type === "decimal" || xField.type === "number") {
|
|
@@ -902,13 +980,17 @@ var XLazyDataTable = function (props) {
|
|
|
902
980
|
}
|
|
903
981
|
return react_1.default.createElement(column_1.Column, { field: childColumn.props.field, header: header, footer: footer, filter: true, sortable: true, filterElement: filterElement, dataType: dataType, showFilterMenu: showFilterMenu, showClearButton: showClearButton, body: body, headerStyle: headerStyle, align: align });
|
|
904
982
|
});
|
|
905
|
-
// align-items-center centruje vertikalne (posuva smerom
|
|
983
|
+
// align-items-center centruje vertikalne (posuva smerom dolu do stredu)
|
|
984
|
+
// x-lazy-datatable-label-right-compensation - vyvazuje label, aby item-y v strede isli aspon priblizne do stredu
|
|
906
985
|
return (react_1.default.createElement("div", null,
|
|
907
986
|
react_1.default.createElement("div", { className: "flex justify-content-center align-items-center" },
|
|
987
|
+
props.label ? react_1.default.createElement("div", { className: "x-lazy-datatable-label" }, props.label) : null,
|
|
908
988
|
ftsInputValue ? react_1.default.createElement(XFtsInput_1.XFtsInput, { value: ftsInputValue, onChange: function (value) { return setFtsInputValue(value); } }) : null,
|
|
909
989
|
react_1.default.createElement(XButton_1.XButton, { key: "filter", label: (0, XLocale_1.xLocaleOption)('filter'), onClick: onClickFilter }),
|
|
910
990
|
react_1.default.createElement(XButton_1.XButton, { key: "clearFilter", label: (0, XLocale_1.xLocaleOption)('clearFilter'), onClick: onClickClearFilter }),
|
|
911
|
-
props.
|
|
991
|
+
props.optionalCustomFilters ? react_1.default.createElement(XOcfDropdown_1.XOcfDropdown, { optionalCustomFilters: props.optionalCustomFilters, value: optionalCustomFilter, onChange: function (value) { return setOptionalCustomFilter(value); }, className: "m-1" }) : null,
|
|
992
|
+
props.multilineSwitch ? react_1.default.createElement(XMultilineSwitch_1.XMultilineSwitch, { value: multilineSwitchValue, onChange: function (value) { return setMultilineSwitchValue(value); }, className: "m-1" }) : null,
|
|
993
|
+
props.label ? react_1.default.createElement("div", { className: "x-lazy-datatable-label-right-compensation" }) : null),
|
|
912
994
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
913
995
|
react_1.default.createElement(datatable_1.DataTable, { value: value.rowList, dataKey: dataKey, paginator: props.paginator, rows: rows, totalRecords: value.totalRecords, lazy: true, first: first, onPage: onPage, loading: loading, filterDisplay: props.filterDisplay, filters: filters, onFilter: onFilter, sortMode: "multiple", removableSort: true, multiSortMeta: multiSortMeta, onSort: onSort, selectionMode: "single", selection: selectedRow, onSelectionChange: onSelectionChange, onRowDoubleClick: onRowDoubleClick, rowClassName: props.rowClassName, ref: dataTableEl, className: "p-datatable-sm x-lazy-datatable", resizableColumns: true, columnResizeMode: "expand", tableStyle: tableStyle, paginatorLeft: paginatorLeft, paginatorRight: paginatorRight, scrollable: props.scrollable, scrollHeight: scrollHeight, style: style }, columnElemList)),
|
|
914
996
|
react_1.default.createElement("div", { className: "flex justify-content-center" },
|
|
@@ -919,7 +1001,7 @@ var XLazyDataTable = function (props) {
|
|
|
919
1001
|
props.appButtonsForRow ? props.appButtonsForRow.map(function (xAppButton) { return react_1.default.createElement(XButton_1.XButton, { key: xAppButton.key, icon: xAppButton.icon, label: xAppButton.label, onClick: function () { return onClickAppButtonForRow(xAppButton.onClick); } }); }) : null,
|
|
920
1002
|
props.appButtons,
|
|
921
1003
|
props.searchBrowseParams !== undefined ? react_1.default.createElement(XButton_1.XButton, { key: "choose", label: (0, XLocale_1.xLocaleOption)('chooseRow'), onClick: onClickChoose }) : null,
|
|
922
|
-
exportRows ? react_1.default.createElement(XExportRowsDialog_1.XExportRowsDialog, { key: "exportRowsDialog",
|
|
1004
|
+
exportRows ? react_1.default.createElement(XExportRowsDialog_1.XExportRowsDialog, { key: "exportRowsDialog", dialogState: exportRowsDialogState, hideDialog: function () { return setExportRowsDialogState({ dialogOpened: false }); } }) : null),
|
|
923
1005
|
hasContentTypeHtml() ? react_1.default.createElement(editor_1.Editor, { style: { display: 'none' }, showHeader: false }) : null /* we want to import css if needed (<style type="text/css" data-primereact-style-id="editor">) */));
|
|
924
1006
|
};
|
|
925
1007
|
exports.XLazyDataTable = XLazyDataTable;
|
|
@@ -15,6 +15,6 @@ var XMultilineSwitch = function (props) {
|
|
|
15
15
|
var itemTemplate = function (option) {
|
|
16
16
|
return react_1.default.createElement("i", { className: option.icon });
|
|
17
17
|
};
|
|
18
|
-
return (react_1.default.createElement(selectbutton_1.SelectButton, { value: props.value, onChange: function (e) { return props.onChange(e.value); }, options: options, optionValue: "value", itemTemplate: itemTemplate, className: props.className }));
|
|
18
|
+
return (react_1.default.createElement(selectbutton_1.SelectButton, { value: props.value, onChange: function (e) { return props.onChange(e.value); }, options: options, optionValue: "value", itemTemplate: itemTemplate, allowEmpty: false, className: props.className }));
|
|
19
19
|
};
|
|
20
20
|
exports.XMultilineSwitch = XMultilineSwitch;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { XOptionalCustomFilter } from "./XLazyDataTable";
|
|
3
|
+
export declare const XOcfDropdown: (props: {
|
|
4
|
+
optionalCustomFilters: XOptionalCustomFilter[];
|
|
5
|
+
value: XOptionalCustomFilter | undefined;
|
|
6
|
+
onChange: (value: XOptionalCustomFilter | undefined) => void;
|
|
7
|
+
className?: string | undefined;
|
|
8
|
+
}) => JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.XOcfDropdown = void 0;
|
|
32
|
+
var react_1 = __importDefault(require("react"));
|
|
33
|
+
var dropdown_1 = require("primereact/dropdown");
|
|
34
|
+
// dropdown for optional custom filter (ocf)
|
|
35
|
+
var XOcfDropdown = function (props) {
|
|
36
|
+
var onChange = function (e) {
|
|
37
|
+
var value;
|
|
38
|
+
// specialna null polozka nema ziadne atributy
|
|
39
|
+
if (Object.keys(e.value).length === 0) {
|
|
40
|
+
value = undefined;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
value = e.value;
|
|
44
|
+
}
|
|
45
|
+
props.onChange(value);
|
|
46
|
+
};
|
|
47
|
+
// pridame prazdnu polozku
|
|
48
|
+
// polozku pridavame do kopie zoznamu, lebo inac sa nam "polozka" v props.optionalCustomFilters "mnozi"
|
|
49
|
+
var options = __spreadArray([], __read(props.optionalCustomFilters), false);
|
|
50
|
+
options.splice(0, 0, {});
|
|
51
|
+
return (react_1.default.createElement(dropdown_1.Dropdown, { options: options, optionLabel: "label", value: props.value, onChange: onChange, className: props.className }));
|
|
52
|
+
};
|
|
53
|
+
exports.XOcfDropdown = XOcfDropdown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XToken } from "./XToken";
|
|
2
|
-
import { CsvDecimalFormat, CsvEncoding, CsvSeparator, ExportType } from "../serverApi/ExportImportParam";
|
|
2
|
+
import { CsvDecimalFormat, CsvEncoding, CsvSeparator, ExportType, XMultilineExportType } from "../serverApi/ExportImportParam";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { XEnvVar } from "./XEnvVars";
|
|
5
5
|
import { XError, XErrorMap } from "./XErrors";
|
|
@@ -36,6 +36,7 @@ export declare class XUtils {
|
|
|
36
36
|
static xTokenPublic: XToken;
|
|
37
37
|
private static appFormMap;
|
|
38
38
|
static exportTypeOptions: ExportType[];
|
|
39
|
+
static multilineExportTypeOptions: XMultilineExportType[];
|
|
39
40
|
static csvSeparatorOptions: CsvSeparator[];
|
|
40
41
|
static decimalFormatOptions: CsvDecimalFormat[];
|
|
41
42
|
static csvEncodingOptions: CsvEncoding[];
|
|
@@ -60,6 +61,7 @@ export declare class XUtils {
|
|
|
60
61
|
static fetchString(path: string, value: any): Promise<string>;
|
|
61
62
|
static fetch(path: string, value: any, usePublicToken?: boolean | XToken): Promise<any>;
|
|
62
63
|
static post(path: string, value: any): Promise<Response>;
|
|
64
|
+
static openExcelReport(apiPath: string, requestPayload: any, fileName?: string): Promise<boolean>;
|
|
63
65
|
static fetchBasicJson(path: string, value: any, usePublicToken?: boolean | XToken): Promise<Response>;
|
|
64
66
|
static fetchFile(path: string, jsonFieldValue: any, fileToPost: any): Promise<any>;
|
|
65
67
|
static fetchBasicAuthBasic(path: string, headers: any, body: any, usePublicToken?: boolean | XToken): Promise<Response>;
|
package/lib/components/XUtils.js
CHANGED
|
@@ -334,6 +334,36 @@ var XUtils = /** @class */ (function () {
|
|
|
334
334
|
XUtils.post = function (path, value) {
|
|
335
335
|
return XUtils.fetchBasicJson(path, value);
|
|
336
336
|
};
|
|
337
|
+
XUtils.openExcelReport = function (apiPath, requestPayload, fileName) {
|
|
338
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
339
|
+
var response, e_5, fileNameExt, respBlob, url, a;
|
|
340
|
+
return __generator(this, function (_a) {
|
|
341
|
+
switch (_a.label) {
|
|
342
|
+
case 0:
|
|
343
|
+
_a.trys.push([0, 2, , 3]);
|
|
344
|
+
return [4 /*yield*/, XUtils.fetchBasicJson(apiPath, requestPayload)];
|
|
345
|
+
case 1:
|
|
346
|
+
response = _a.sent();
|
|
347
|
+
return [3 /*break*/, 3];
|
|
348
|
+
case 2:
|
|
349
|
+
e_5 = _a.sent();
|
|
350
|
+
XUtils.showErrorMessage("Nepodarilo sa vytvori\u0165/stiahnu\u0165 xlsx s\u00FAbor.", e_5); // dalsie info (apiPath, payload) by mali byt v "e"
|
|
351
|
+
return [2 /*return*/, false];
|
|
352
|
+
case 3:
|
|
353
|
+
fileNameExt = "".concat(fileName !== null && fileName !== void 0 ? fileName : apiPath, ".xlsx");
|
|
354
|
+
return [4 /*yield*/, response.blob()];
|
|
355
|
+
case 4:
|
|
356
|
+
respBlob = _a.sent();
|
|
357
|
+
url = window.URL.createObjectURL(respBlob);
|
|
358
|
+
a = document.createElement('a');
|
|
359
|
+
a.href = url;
|
|
360
|
+
a.download = fileNameExt;
|
|
361
|
+
a.click();
|
|
362
|
+
return [2 /*return*/, true];
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
};
|
|
337
367
|
XUtils.fetchBasicJson = function (path, value, usePublicToken) {
|
|
338
368
|
return XUtils.fetchBasic(path, { 'Content-Type': 'application/json' }, XUtilsCommon_1.XUtilsCommon.objectAsJSON(value), usePublicToken);
|
|
339
369
|
};
|
|
@@ -538,7 +568,7 @@ var XUtils = /** @class */ (function () {
|
|
|
538
568
|
* @param idField
|
|
539
569
|
*/
|
|
540
570
|
XUtils.arrayIntersect = function (array1, array2, idField) {
|
|
541
|
-
var
|
|
571
|
+
var e_6, _a;
|
|
542
572
|
var array2IdSet = new Set();
|
|
543
573
|
try {
|
|
544
574
|
for (var array2_1 = __values(array2), array2_1_1 = array2_1.next(); !array2_1_1.done; array2_1_1 = array2_1.next()) {
|
|
@@ -548,12 +578,12 @@ var XUtils = /** @class */ (function () {
|
|
|
548
578
|
}
|
|
549
579
|
}
|
|
550
580
|
}
|
|
551
|
-
catch (
|
|
581
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
552
582
|
finally {
|
|
553
583
|
try {
|
|
554
584
|
if (array2_1_1 && !array2_1_1.done && (_a = array2_1.return)) _a.call(array2_1);
|
|
555
585
|
}
|
|
556
|
-
finally { if (
|
|
586
|
+
finally { if (e_6) throw e_6.error; }
|
|
557
587
|
}
|
|
558
588
|
return array1.filter(function (item) { return item && array2IdSet.has(item[idField]); });
|
|
559
589
|
};
|
|
@@ -642,7 +672,7 @@ var XUtils = /** @class */ (function () {
|
|
|
642
672
|
// pomocna metodka
|
|
643
673
|
// ak nie su v xErrorMap ziadne chyby, vrati ""
|
|
644
674
|
XUtils.getErrorMessages = function (xErrorMap) {
|
|
645
|
-
var
|
|
675
|
+
var e_7, _a;
|
|
646
676
|
var _b;
|
|
647
677
|
var msg = "";
|
|
648
678
|
try {
|
|
@@ -656,12 +686,12 @@ var XUtils = /** @class */ (function () {
|
|
|
656
686
|
}
|
|
657
687
|
}
|
|
658
688
|
}
|
|
659
|
-
catch (
|
|
689
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
660
690
|
finally {
|
|
661
691
|
try {
|
|
662
692
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
663
693
|
}
|
|
664
|
-
finally { if (
|
|
694
|
+
finally { if (e_7) throw e_7.error; }
|
|
665
695
|
}
|
|
666
696
|
return msg;
|
|
667
697
|
};
|
|
@@ -732,7 +762,7 @@ var XUtils = /** @class */ (function () {
|
|
|
732
762
|
};
|
|
733
763
|
// pomocna metodka
|
|
734
764
|
XUtils.filterAnd = function () {
|
|
735
|
-
var
|
|
765
|
+
var e_8, _a;
|
|
736
766
|
var filters = [];
|
|
737
767
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
738
768
|
filters[_i] = arguments[_i];
|
|
@@ -749,12 +779,12 @@ var XUtils = /** @class */ (function () {
|
|
|
749
779
|
}
|
|
750
780
|
}
|
|
751
781
|
}
|
|
752
|
-
catch (
|
|
782
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
753
783
|
finally {
|
|
754
784
|
try {
|
|
755
785
|
if (filters_1_1 && !filters_1_1.done && (_a = filters_1.return)) _a.call(filters_1);
|
|
756
786
|
}
|
|
757
|
-
finally { if (
|
|
787
|
+
finally { if (e_8) throw e_8.error; }
|
|
758
788
|
}
|
|
759
789
|
}
|
|
760
790
|
return customFilterItemsResult;
|
|
@@ -799,7 +829,9 @@ var XUtils = /** @class */ (function () {
|
|
|
799
829
|
XUtils.xTokenPublic = { username: "xPublicUser", password: "xPublicUserPassword123" };
|
|
800
830
|
// nacachovane metadata (setuju sa v App.fetchAndSetXMetadata)
|
|
801
831
|
XUtils.appFormMap = {};
|
|
802
|
-
XUtils.exportTypeOptions = [ExportImportParam_1.ExportType.Csv, ExportImportParam_1.ExportType.Json];
|
|
832
|
+
XUtils.exportTypeOptions = [ExportImportParam_1.ExportType.Excel, ExportImportParam_1.ExportType.Csv, ExportImportParam_1.ExportType.Json];
|
|
833
|
+
// moznost Off zatial nie je implementovana
|
|
834
|
+
XUtils.multilineExportTypeOptions = [ExportImportParam_1.XMultilineExportType.Multiline, ExportImportParam_1.XMultilineExportType.Singleline /*, XMultilineExportType.Off*/];
|
|
803
835
|
XUtils.csvSeparatorOptions = [ExportImportParam_1.CsvSeparator.Semicolon, ExportImportParam_1.CsvSeparator.Comma];
|
|
804
836
|
XUtils.decimalFormatOptions = [ExportImportParam_1.CsvDecimalFormat.Comma, ExportImportParam_1.CsvDecimalFormat.Dot];
|
|
805
837
|
XUtils.csvEncodingOptions = [ExportImportParam_1.CsvEncoding.Utf8, ExportImportParam_1.CsvEncoding.Win1250];
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"expRowCount": "Row count",
|
|
17
17
|
"expExportType": "Export type",
|
|
18
18
|
"expCreateHeaderLine": "Create header line",
|
|
19
|
+
"expDetailRowsExport": "Detail rows export",
|
|
19
20
|
"expCsvSeparator": "Csv separator",
|
|
20
21
|
"expDecimalFormat": "Decimal format",
|
|
21
22
|
"expEncoding": "Encoding",
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { DataTableFilterMeta, DataTableSortMeta } from "primereact/datatable";
|
|
2
2
|
import { XCustomFilterItem, XFullTextSearch } from "./FindParam";
|
|
3
3
|
export declare enum ExportType {
|
|
4
|
+
Excel = "excel",
|
|
4
5
|
Csv = "csv",
|
|
5
6
|
Json = "json"
|
|
6
7
|
}
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export interface ExportExcelParam {
|
|
9
|
+
queryParam: LazyDataTableQueryParam;
|
|
10
|
+
excelCsvParam: ExcelCsvParam;
|
|
11
|
+
widths: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface ExportCsvParam {
|
|
14
|
+
queryParam: LazyDataTableQueryParam;
|
|
15
|
+
excelCsvParam: ExcelCsvParam;
|
|
16
|
+
csvParam: CsvParam;
|
|
17
|
+
}
|
|
18
|
+
export interface ExportJsonParam {
|
|
19
|
+
queryParam: LazyDataTableQueryParam;
|
|
11
20
|
}
|
|
12
21
|
export interface LazyDataTableQueryParam {
|
|
13
22
|
filters: DataTableFilterMeta;
|
|
@@ -17,6 +26,22 @@ export interface LazyDataTableQueryParam {
|
|
|
17
26
|
entity: string;
|
|
18
27
|
fields: string[];
|
|
19
28
|
}
|
|
29
|
+
export interface ExcelCsvParam {
|
|
30
|
+
headers?: string[];
|
|
31
|
+
toManyAssocExport: XMultilineExportType;
|
|
32
|
+
multilineTextExport: XMultilineExportType;
|
|
33
|
+
fieldsToDuplicateValues?: string[];
|
|
34
|
+
}
|
|
35
|
+
export declare enum XMultilineExportType {
|
|
36
|
+
Singleline = "singleline",
|
|
37
|
+
Multiline = "multiline",
|
|
38
|
+
Off = "off"
|
|
39
|
+
}
|
|
40
|
+
export interface CsvParam {
|
|
41
|
+
csvSeparator: CsvSeparator;
|
|
42
|
+
csvDecimalFormat: CsvDecimalFormat;
|
|
43
|
+
csvEncoding: CsvEncoding;
|
|
44
|
+
}
|
|
20
45
|
export declare enum CsvSeparator {
|
|
21
46
|
Semicolon = ";",
|
|
22
47
|
Comma = ","
|
|
@@ -29,13 +54,6 @@ export declare enum CsvEncoding {
|
|
|
29
54
|
Utf8 = "utf-8",
|
|
30
55
|
Win1250 = "win1250"
|
|
31
56
|
}
|
|
32
|
-
export interface CsvParam {
|
|
33
|
-
useHeaderLine: boolean;
|
|
34
|
-
headers?: string[];
|
|
35
|
-
csvSeparator: CsvSeparator;
|
|
36
|
-
csvDecimalFormat: CsvDecimalFormat;
|
|
37
|
-
csvEncoding: CsvEncoding;
|
|
38
|
-
}
|
|
39
57
|
export declare enum ImportType {
|
|
40
58
|
Csv = "csv",
|
|
41
59
|
Json = "json"
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImportType = exports.CsvEncoding = exports.CsvDecimalFormat = exports.CsvSeparator = exports.ExportType = void 0;
|
|
3
|
+
exports.ImportType = exports.CsvEncoding = exports.CsvDecimalFormat = exports.CsvSeparator = exports.XMultilineExportType = exports.ExportType = void 0;
|
|
4
|
+
// ************** export ***************
|
|
4
5
|
var ExportType;
|
|
5
6
|
(function (ExportType) {
|
|
7
|
+
ExportType["Excel"] = "excel";
|
|
6
8
|
ExportType["Csv"] = "csv";
|
|
7
9
|
ExportType["Json"] = "json";
|
|
8
10
|
})(ExportType = exports.ExportType || (exports.ExportType = {}));
|
|
11
|
+
// exportovanie hodnot z toMany asociacii, pripadne viacriadkovych textov
|
|
12
|
+
var XMultilineExportType;
|
|
13
|
+
(function (XMultilineExportType) {
|
|
14
|
+
XMultilineExportType["Singleline"] = "singleline";
|
|
15
|
+
XMultilineExportType["Multiline"] = "multiline";
|
|
16
|
+
XMultilineExportType["Off"] = "off"; // stlpce obsahujuce viac hodnot/riadkov sa vynechaju z exportu
|
|
17
|
+
})(XMultilineExportType = exports.XMultilineExportType || (exports.XMultilineExportType = {}));
|
|
9
18
|
// vo windowse zavisi od regionalnych nastaveni, default nastavenie je ";" a preto vecsinou aj excel produkuje csv s ";" (menej sa to bije s decimalmi)
|
|
10
19
|
// takze primarne pouzivame ";" a sekundarne "," napr. pri generickom exporte do csv davame uzivatelovi na vyber
|
|
11
20
|
var CsvSeparator;
|
|
@@ -27,6 +36,7 @@ var CsvEncoding;
|
|
|
27
36
|
CsvEncoding["Utf8"] = "utf-8";
|
|
28
37
|
CsvEncoding["Win1250"] = "win1250";
|
|
29
38
|
})(CsvEncoding = exports.CsvEncoding || (exports.CsvEncoding = {}));
|
|
39
|
+
// ************** import ***************
|
|
30
40
|
var ImportType;
|
|
31
41
|
(function (ImportType) {
|
|
32
42
|
ImportType["Csv"] = "csv";
|