blixify-ui-web 1.2.182 → 1.2.183
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.
|
@@ -137,7 +137,6 @@ var blobModule_1 = require("../blobModule");
|
|
|
137
137
|
var listModule_1 = require("../listModule");
|
|
138
138
|
var formula_1 = require("../formula");
|
|
139
139
|
var moduleUtils_1 = require("../moduleUtils");
|
|
140
|
-
var queryForm_1 = require("../queryForm");
|
|
141
140
|
var readModule_1 = require("../readModule");
|
|
142
141
|
var readQuery_1 = require("../readQuery");
|
|
143
142
|
var unionPagination_1 = require("./unionPagination");
|
|
@@ -147,7 +146,6 @@ var utils_1 = require("../utils");
|
|
|
147
146
|
var writeQuery_1 = require("../writeQuery");
|
|
148
147
|
var activityModal_1 = require("./activityModal");
|
|
149
148
|
var authModal_1 = require("./authModal");
|
|
150
|
-
var dataStateModel_1 = require("./dataStateModel");
|
|
151
149
|
var indexedDb_1 = require("./indexedDb");
|
|
152
150
|
var socket_1 = require("./socket");
|
|
153
151
|
var newPagination_1 = require("../../display/newPagination");
|
|
@@ -382,13 +380,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
382
380
|
var calendarViewInitRef = (0, react_1.useRef)(false);
|
|
383
381
|
var _127 = (0, react_1.useState)(true), kanbanDroppable = _127[0], setKanbanDroppable = _127[1];
|
|
384
382
|
var _128 = (0, react_1.useState)([]), kanbanOptions = _128[0], setKanbanOptions = _128[1];
|
|
385
|
-
var _129 = (0, react_1.useState)(false),
|
|
386
|
-
var _130 = (0, react_1.useState)(
|
|
387
|
-
var _131 = (0, react_1.useState)({
|
|
383
|
+
var _129 = (0, react_1.useState)(false), batchUpdateModal = _129[0], setBatchUpdateModal = _129[1];
|
|
384
|
+
var _130 = (0, react_1.useState)({
|
|
388
385
|
columnId: "",
|
|
389
386
|
columnData: {},
|
|
390
|
-
}), batchUpdateData =
|
|
391
|
-
var
|
|
387
|
+
}), batchUpdateData = _130[0], setBatchUpdateData = _130[1];
|
|
388
|
+
var _131 = (0, react_1.useState)(function () {
|
|
392
389
|
var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
|
|
393
390
|
if (!persistedState)
|
|
394
391
|
return baseModel;
|
|
@@ -414,8 +411,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
414
411
|
});
|
|
415
412
|
}
|
|
416
413
|
return model;
|
|
417
|
-
}), structure =
|
|
418
|
-
var
|
|
414
|
+
}), structure = _131[0], setStructure = _131[1];
|
|
415
|
+
var _132 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _132[0], setAdditionalQuery = _132[1];
|
|
419
416
|
// INFO: State for user-configurable flex filters (Monday.com-style)
|
|
420
417
|
// INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
|
|
421
418
|
var defaultFlexFilterRow = [
|
|
@@ -426,9 +423,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
426
423
|
value: undefined,
|
|
427
424
|
},
|
|
428
425
|
];
|
|
429
|
-
var
|
|
426
|
+
var _133 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
430
427
|
? persistedState.flexFilters
|
|
431
|
-
: defaultFlexFilterRow), flexFilters =
|
|
428
|
+
: defaultFlexFilterRow), flexFilters = _133[0], setFlexFilters = _133[1];
|
|
432
429
|
// INFO: always-current mirror of flexFilters, read by the imperative apply/
|
|
433
430
|
// clear methods so chained calls in one tick aren't stale.
|
|
434
431
|
var flexFiltersRef = (0, react_1.useRef)(flexFilters);
|
|
@@ -441,9 +438,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
441
438
|
}, [flexFilters]);
|
|
442
439
|
// INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
|
|
443
440
|
// to prevent API calls on every keystroke when typing in value inputs
|
|
444
|
-
var
|
|
441
|
+
var _134 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
445
442
|
? persistedState.flexFilters
|
|
446
|
-
: defaultFlexFilterRow), flexFiltersDebounced =
|
|
443
|
+
: defaultFlexFilterRow), flexFiltersDebounced = _134[0], setFlexFiltersDebounced = _134[1];
|
|
444
|
+
// INFO: the filter rows of the export being set up — started from the
|
|
445
|
+
// list's own when the export opens, so changing them leaves the list as it is
|
|
446
|
+
var _135 = (0, react_1.useState)(defaultFlexFilterRow), exportFlexFilters = _135[0], setExportFlexFilters = _135[1];
|
|
447
447
|
var _136 = (0, react_1.useState)({}), flexFilterReferenceOptions = _136[0], setFlexFilterReferenceOptions = _136[1];
|
|
448
448
|
var _137 = (0, react_1.useState)({}), flexFilterReferenceSearch = _137[0], setFlexFilterReferenceSearch = _137[1];
|
|
449
449
|
var _138 = (0, react_1.useState)(false), flexFilterModalOpen = _138[0], setFlexFilterModalOpen = _138[1];
|
|
@@ -497,18 +497,17 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
497
497
|
var _165 = (0, react_1.useState)([]), importTableData = _165[0], setImportTableData = _165[1];
|
|
498
498
|
var _166 = (0, react_1.useState)([]), queryList = _166[0], setQueryList = _166[1];
|
|
499
499
|
var _167 = (0, react_1.useState)(undefined), allQueryList = _167[0], setAllQueryList = _167[1];
|
|
500
|
-
var _168 = (0, react_1.useState)(-1), queryIndex = _168[0], setQueryIndex = _168[1];
|
|
501
500
|
// INFO: a restored state wins over the prop; its "" is a list the user
|
|
502
501
|
// ungrouped, so it opens ungrouped
|
|
503
|
-
var
|
|
502
|
+
var _168 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.groupBy) !== undefined
|
|
504
503
|
? persistedState.groupBy || undefined
|
|
505
|
-
: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId =
|
|
504
|
+
: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _168[0], setGroupId = _168[1];
|
|
506
505
|
// INFO: Monday-board per-group paging. Keyed by the group key that
|
|
507
506
|
// handleBuildNewTableGroups() produces (a list option or "Unknown/No Value").
|
|
508
507
|
// Each group tracks its own loaded cursor + total so it can lazily load its
|
|
509
508
|
// next page as the user scrolls inside that band, independent of every other
|
|
510
509
|
// group. Only used when renderCheckGroupPaging() is true.
|
|
511
|
-
var
|
|
510
|
+
var _169 = (0, react_1.useState)({}), groupPageState = _169[0], setGroupPageState = _169[1];
|
|
512
511
|
// INFO: read fresh inside the async per-group fetch so chained scroll fires
|
|
513
512
|
// in one tick do not re-fetch an already in-flight page.
|
|
514
513
|
var groupPageStateRef = (0, react_1.useRef)({});
|
|
@@ -517,59 +516,59 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
517
516
|
// list was re-read (new search, filter, sort or grouping) is dropped on
|
|
518
517
|
// arrival instead of appending rows that belong to the old list
|
|
519
518
|
var groupPagingGenRef = (0, react_1.useRef)(0);
|
|
520
|
-
var
|
|
521
|
-
var
|
|
519
|
+
var _170 = (0, react_1.useState)(""), readTabSection = _170[0], setReadTabSection = _170[1];
|
|
520
|
+
var _171 = (0, react_1.useState)(false), readFloatingNav = _171[0], setReadFloatingNav = _171[1];
|
|
522
521
|
var readTabSectionRefs = (0, react_1.useRef)({});
|
|
523
522
|
//INFO : Used by Read
|
|
524
523
|
//INFO : Used by Update
|
|
525
|
-
var
|
|
526
|
-
var
|
|
527
|
-
var
|
|
528
|
-
var
|
|
529
|
-
var
|
|
530
|
-
var
|
|
531
|
-
var
|
|
524
|
+
var _172 = (0, react_1.useState)(false), modalVisible = _172[0], setModalVisible = _172[1];
|
|
525
|
+
var _173 = (0, react_1.useState)(false), deleteModal = _173[0], setDeleteModal = _173[1];
|
|
526
|
+
var _174 = (0, react_1.useState)(false), excelModal = _174[0], setExcelModal = _174[1];
|
|
527
|
+
var _175 = (0, react_1.useState)(false), exportExcel = _175[0], setExportExcel = _175[1];
|
|
528
|
+
var _176 = (0, react_1.useState)(""), exportType = _176[0], setExportType = _176[1];
|
|
529
|
+
var _177 = (0, react_1.useState)(false), exportQR = _177[0], setExportQR = _177[1];
|
|
530
|
+
var _178 = (0, react_1.useState)(function () {
|
|
532
531
|
var _a, _b;
|
|
533
532
|
var firstTabId = (_b = (_a = structure.find(function (item) { return item.tabId; })) === null || _a === void 0 ? void 0 : _a.tabId) !== null && _b !== void 0 ? _b : "";
|
|
534
533
|
return firstTabId;
|
|
535
|
-
}), activeTab =
|
|
536
|
-
var
|
|
537
|
-
var
|
|
538
|
-
var
|
|
539
|
-
var
|
|
540
|
-
var
|
|
541
|
-
var
|
|
542
|
-
var
|
|
534
|
+
}), activeTab = _178[0], setActiveTab = _178[1];
|
|
535
|
+
var _179 = (0, react_1.useState)(false), signatureSigning = _179[0], setSignatureSigning = _179[1];
|
|
536
|
+
var _180 = (0, react_1.useState)({}), selectedData = _180[0], setSelectedData = _180[1];
|
|
537
|
+
var _181 = (0, react_1.useState)(""), selectedObjectStructureId = _181[0], setSelectedObjectStructureId = _181[1];
|
|
538
|
+
var _182 = (0, react_1.useState)(""), selectedObjectId = _182[0], setSelectedObjectId = _182[1];
|
|
539
|
+
var _183 = (0, react_1.useState)(""), selectedListAddressId = _183[0], setSelectedListAddressId = _183[1];
|
|
540
|
+
var _184 = (0, react_1.useState)(-1), selectedListAddressIndex = _184[0], setSelectedListAddressIndex = _184[1];
|
|
541
|
+
var _185 = (0, react_1.useState)({
|
|
543
542
|
lat: 0,
|
|
544
543
|
lng: 0,
|
|
545
544
|
name: "",
|
|
546
|
-
}), selectedListAddress =
|
|
547
|
-
var
|
|
548
|
-
var
|
|
549
|
-
var
|
|
550
|
-
var
|
|
551
|
-
var
|
|
552
|
-
var
|
|
553
|
-
var
|
|
554
|
-
var
|
|
555
|
-
var
|
|
556
|
-
var
|
|
545
|
+
}), selectedListAddress = _185[0], setSelectedListAddress = _185[1];
|
|
546
|
+
var _186 = (0, react_1.useState)({}), selectedObjectData = _186[0], setSelectedObjectData = _186[1];
|
|
547
|
+
var _187 = (0, react_1.useState)(null), objectCellEdit = _187[0], setObjectCellEdit = _187[1];
|
|
548
|
+
var _188 = (0, react_1.useState)(false), referenceLoading = _188[0], setReferenceLoading = _188[1];
|
|
549
|
+
var _189 = (0, react_1.useState)({}), referencesOptions = _189[0], setReferencesOptions = _189[1];
|
|
550
|
+
var _190 = (0, react_1.useState)({}), referencesDetails = _190[0], setReferencesDetails = _190[1];
|
|
551
|
+
var _191 = (0, react_1.useState)({}), listReferencesOptions = _191[0], setListReferencesOptions = _191[1];
|
|
552
|
+
var _192 = (0, react_1.useState)({}), referenceDeleteTableData = _192[0], setReferenceDeleteTableData = _192[1];
|
|
553
|
+
var _193 = (0, react_1.useState)([]), relatedSections = _193[0], setRelatedSections = _193[1];
|
|
554
|
+
var _194 = (0, react_1.useState)(0), referenceDeleteIndex = _194[0], setReferenceDeleteIndex = _194[1];
|
|
555
|
+
var _195 = (0, react_1.useState)({
|
|
557
556
|
id: "",
|
|
558
557
|
name: "",
|
|
559
558
|
type: "string",
|
|
560
|
-
}), referenceCreationModal =
|
|
561
|
-
var
|
|
562
|
-
var
|
|
559
|
+
}), referenceCreationModal = _195[0], setReferenceCreationModal = _195[1];
|
|
560
|
+
var _196 = (0, react_1.useState)({}), referenceModelSchema = _196[0], setReferenceSchema = _196[1];
|
|
561
|
+
var _197 = (0, react_1.useState)([]), kanbanChecked = _197[0], setKanbanChecked = _197[1];
|
|
563
562
|
//INFO : Offline
|
|
564
|
-
var
|
|
565
|
-
var
|
|
563
|
+
var _198 = (0, react_1.useState)(0), offlineDataLength = _198[0], setOfflineDataLength = _198[1];
|
|
564
|
+
var _199 = (0, react_1.useState)(false), offlineModal = _199[0], setOfflineModal = _199[1];
|
|
566
565
|
// INFO: live-stream state — driven by socket connection and navigator.onLine
|
|
567
|
-
var
|
|
568
|
-
var
|
|
566
|
+
var _200 = (0, react_1.useState)(false), isLive = _200[0], setIsLive = _200[1];
|
|
567
|
+
var _201 = (0, react_1.useState)(false), isLiveOffline = _201[0], setIsLiveOffline = _201[1];
|
|
569
568
|
// INFO: true when navigator is offline — used to switch ReadQueryHoc between
|
|
570
569
|
// server reads (online, full pagination) and IndexedDB reads (offline, cached data).
|
|
571
570
|
// Independent of SSE status so it works even when bareSocketName is not set.
|
|
572
|
-
var
|
|
571
|
+
var _202 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _202[0], setIsNetworkOffline = _202[1];
|
|
573
572
|
var previousType = (0, react_1.useRef)(null);
|
|
574
573
|
var previousSelectedData = (0, react_1.useRef)(null);
|
|
575
574
|
var scrollSentinelRef = (0, react_1.useRef)(null);
|
|
@@ -789,7 +788,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
789
788
|
var isSchemaHideMode = ((_10 = props.organise) === null || _10 === void 0 ? void 0 : _10.onChangeHide) ? true : false;
|
|
790
789
|
// INFO: rows per page is a view setting the user can change, so it starts from
|
|
791
790
|
// the persisted value and falls back to the consumer's limit
|
|
792
|
-
var
|
|
791
|
+
var _203 = (0, react_1.useState)((_12 = (_11 = (isPersistEnabled ? persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageLimit : undefined)) !== null && _11 !== void 0 ? _11 : props.limit) !== null && _12 !== void 0 ? _12 : 10), pageLimit = _203[0], setPageLimit = _203[1];
|
|
793
792
|
var limit = pageLimit;
|
|
794
793
|
var isSavedViewsEnabled = !!((_13 = props.organise) === null || _13 === void 0 ? void 0 : _13.savedViews) && resolvedType === "list";
|
|
795
794
|
// INFO: an app that stores views takes over from this browser's storage, so
|
|
@@ -843,6 +842,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
843
842
|
var flexFilterStructure = isFormulaViewSupported
|
|
844
843
|
? structure
|
|
845
844
|
: structure.filter(function (eachModel) { return eachModel.type !== "formula"; });
|
|
845
|
+
// INFO: an export's filters run on the export server, which cannot work out
|
|
846
|
+
// a formula, so its rows leave formula columns out — a formula filter on
|
|
847
|
+
// the list still narrows the export, by the ids of the rows it kept
|
|
848
|
+
var exportFilterStructure = structure.filter(function (eachModel) { return eachModel.type !== "formula"; });
|
|
846
849
|
// INFO: every matching row of a formula view, unsorted — pages are cut
|
|
847
850
|
// from it locally, so paging does not read the collection again
|
|
848
851
|
// INFO: the formula sort and filter the row cap was last announced for
|
|
@@ -880,7 +883,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
880
883
|
displayRows: filtered.map(function (eachEntry) { return eachEntry.displayRow; }),
|
|
881
884
|
};
|
|
882
885
|
};
|
|
883
|
-
var
|
|
886
|
+
var _204 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _204.canUpdateRecord, canInlineUpdate = _204.canInlineUpdate, canBatchUpdate = _204.canBatchUpdate, canDeleteRecord = _204.canDeleteRecord;
|
|
884
887
|
var isEditor = ((_19 = props.edit) === null || _19 === void 0 ? void 0 : _19.allEditable) ? true : false;
|
|
885
888
|
var isOffline = (_20 = props.bareSettings) === null || _20 === void 0 ? void 0 : _20.bareOffline;
|
|
886
889
|
// INFO: when bareOfflineNetworkAware is true, the save path is also gated on
|
|
@@ -1245,8 +1248,61 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1245
1248
|
return (__assign(__assign({}, prev), (_a = {}, _a[columnId] = search, _a)));
|
|
1246
1249
|
});
|
|
1247
1250
|
};
|
|
1248
|
-
|
|
1251
|
+
// INFO: the export's own filter rows, handled like the list's but never
|
|
1252
|
+
// reading the list again — a reference column's options are shared with it
|
|
1253
|
+
var handleNewExportFilterRow = function () { return ({
|
|
1254
|
+
id: (0, uuid_1.v4)(),
|
|
1255
|
+
columnId: "",
|
|
1256
|
+
operator: "=",
|
|
1257
|
+
value: undefined,
|
|
1258
|
+
}); };
|
|
1259
|
+
var exportFlexActions = {
|
|
1260
|
+
handleAddFilter: function () {
|
|
1261
|
+
return setExportFlexFilters(function (previous) { return __spreadArray(__spreadArray([], previous, true), [
|
|
1262
|
+
handleNewExportFilterRow(),
|
|
1263
|
+
], false); });
|
|
1264
|
+
},
|
|
1265
|
+
handleRemoveFilter: function (filterId) {
|
|
1266
|
+
return setExportFlexFilters(function (previous) {
|
|
1267
|
+
var remaining = previous.filter(function (each) { return each.id !== filterId; });
|
|
1268
|
+
return remaining.length > 0 ? remaining : [handleNewExportFilterRow()];
|
|
1269
|
+
});
|
|
1270
|
+
},
|
|
1271
|
+
handleClearAllFilters: function () {
|
|
1272
|
+
return setExportFlexFilters([handleNewExportFilterRow()]);
|
|
1273
|
+
},
|
|
1274
|
+
handleColumnChange: function (filterId, columnId) {
|
|
1275
|
+
return setExportFlexFilters(function (previous) {
|
|
1276
|
+
return previous.map(function (each) {
|
|
1277
|
+
var _a, _b, _c;
|
|
1278
|
+
if (each.id !== filterId)
|
|
1279
|
+
return each;
|
|
1280
|
+
var operators = flexFilter_1.FLEX_FILTER_OPERATOR_MAP[(_b = (_a = structure.find(function (eachModel) { return eachModel.id === columnId; })) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : ""];
|
|
1281
|
+
return __assign(__assign({}, each), { columnId: columnId, operator: (_c = operators === null || operators === void 0 ? void 0 : operators[0]) !== null && _c !== void 0 ? _c : "=", value: undefined });
|
|
1282
|
+
});
|
|
1283
|
+
});
|
|
1284
|
+
},
|
|
1285
|
+
handleOperatorChange: function (filterId, operator) {
|
|
1286
|
+
return setExportFlexFilters(function (previous) {
|
|
1287
|
+
return previous.map(function (each) {
|
|
1288
|
+
return each.id === filterId ? __assign(__assign({}, each), { operator: operator, value: undefined }) : each;
|
|
1289
|
+
});
|
|
1290
|
+
});
|
|
1291
|
+
},
|
|
1292
|
+
handleValueChange: function (filterId, value) {
|
|
1293
|
+
return setExportFlexFilters(function (previous) {
|
|
1294
|
+
return previous.map(function (each) {
|
|
1295
|
+
return each.id === filterId ? __assign(__assign({}, each), { value: value }) : each;
|
|
1296
|
+
});
|
|
1297
|
+
});
|
|
1298
|
+
},
|
|
1299
|
+
handleReferenceOptionsLoaded: handleFlexFilterReferenceOptionsLoaded,
|
|
1300
|
+
handleReferenceSearch: handleFlexFilterReferenceSearch,
|
|
1301
|
+
};
|
|
1302
|
+
// INFO: flexRows defaults to the list's filters; an export passes its own
|
|
1303
|
+
var renderImpSearchFilterConditions = function (flexRows) {
|
|
1249
1304
|
var _a;
|
|
1305
|
+
if (flexRows === void 0) { flexRows = flexFiltersDebounced; }
|
|
1250
1306
|
var query = (0, listModule_1.renderSearchFilterConditions)(structure, devSettings, {
|
|
1251
1307
|
filterSearchParams: filterSearchParams,
|
|
1252
1308
|
filterSelection: filterSelection,
|
|
@@ -1255,10 +1311,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1255
1311
|
filterDraft: filterDraft,
|
|
1256
1312
|
}, additionalQuery !== null && additionalQuery !== void 0 ? additionalQuery : [], (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareListFilterQuery, selectedTab);
|
|
1257
1313
|
// INFO: Merge flex filter conditions into the query array (uses debounced state to avoid API calls on every keystroke)
|
|
1258
|
-
if (
|
|
1314
|
+
if (flexRows.length > 0) {
|
|
1259
1315
|
// INFO: formula conditions never reach the server — the field is not
|
|
1260
1316
|
// stored — and are applied to the rows by handleApplyFormulaView
|
|
1261
|
-
var flexQuery = (0, listModule_1.renderFlexFilterConditions)(
|
|
1317
|
+
var flexQuery = (0, listModule_1.renderFlexFilterConditions)(flexRows, structure).filter(function (eachQuery) { var _a; return !formulaColumnIds.includes((_a = eachQuery.queryId) !== null && _a !== void 0 ? _a : ""); });
|
|
1262
1318
|
if (flexQuery.length > 0) {
|
|
1263
1319
|
if (query) {
|
|
1264
1320
|
query = __spreadArray(__spreadArray([], query, true), flexQuery, true);
|
|
@@ -2113,6 +2169,17 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
2113
2169
|
if (props.devSettings.schemaReference)
|
|
2114
2170
|
setReferenceSchema(props.devSettings.schemaReference);
|
|
2115
2171
|
}, [props.devSettings.schemaReference]);
|
|
2172
|
+
// INFO: an export starts from the filters the list shows, formula rows
|
|
2173
|
+
// aside (see exportFilterStructure)
|
|
2174
|
+
(0, react_1.useEffect)(function () {
|
|
2175
|
+
if (!exportExcel && !exportQR)
|
|
2176
|
+
return;
|
|
2177
|
+
var rows = flexFiltersRef.current.filter(function (eachFilter) { return !formulaColumnIds.includes(eachFilter.columnId); });
|
|
2178
|
+
setExportFlexFilters(rows.length > 0
|
|
2179
|
+
? JSON.parse(JSON.stringify(rows))
|
|
2180
|
+
: [handleNewExportFilterRow()]);
|
|
2181
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2182
|
+
}, [exportExcel, exportQR]);
|
|
2116
2183
|
(0, react_1.useEffect)(function () {
|
|
2117
2184
|
var _a;
|
|
2118
2185
|
var newQuery = renderImpSearchFilterConditions();
|
|
@@ -6570,14 +6637,14 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6570
6637
|
}); };
|
|
6571
6638
|
var handleExportCSVData = function (downloadLinkOnly, printOnly) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6572
6639
|
var exportQueryList, formulaRows, kept, baseUrl, apiEndpoint, reqData, res, dataList, csvDownloadLink, notificaitonMsg, err_27;
|
|
6573
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
6574
|
-
return __generator(this, function (
|
|
6575
|
-
switch (
|
|
6640
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
6641
|
+
return __generator(this, function (_2) {
|
|
6642
|
+
switch (_2.label) {
|
|
6576
6643
|
case 0:
|
|
6577
|
-
|
|
6644
|
+
_2.trys.push([0, 5, , 6]);
|
|
6578
6645
|
setLoading(true);
|
|
6579
|
-
exportQueryList =
|
|
6580
|
-
if ((
|
|
6646
|
+
exportQueryList = ((_a = renderImpSearchFilterConditions(exportFlexFilters)) !== null && _a !== void 0 ? _a : []).filter(function (eachQuery) { return eachQuery.type !== "search"; });
|
|
6647
|
+
if ((_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareCSVExportSettings) {
|
|
6581
6648
|
if (props.bareSettings.bareListFilterQuery)
|
|
6582
6649
|
exportQueryList.push.apply(exportQueryList, props.bareSettings.bareListFilterQuery);
|
|
6583
6650
|
}
|
|
@@ -6607,20 +6674,20 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6607
6674
|
apiEndpoint += "/handleExportCSV";
|
|
6608
6675
|
reqData = __assign(__assign({ spaceId: props.collectionId, query: exportQueryList, userData: {
|
|
6609
6676
|
userEmail: downloadLinkOnly ? "" : exportCSVEmail,
|
|
6610
|
-
userName: (
|
|
6611
|
-
}, downloadLinkOnly: downloadLinkOnly, exportType: exportType === "excel" ? "excel" : undefined, excludeReferenceId: (
|
|
6677
|
+
userName: (_d = (_c = props.devSettings.currentUser) === null || _c === void 0 ? void 0 : _c.userName) !== null && _d !== void 0 ? _d : "",
|
|
6678
|
+
}, downloadLinkOnly: downloadLinkOnly, exportType: exportType === "excel" ? "excel" : undefined, excludeReferenceId: (_f = (_e = props.organise) === null || _e === void 0 ? void 0 : _e.exportSettings) === null || _f === void 0 ? void 0 : _f.excludeReferenceId, excludeSecondaryLabel: (_h = (_g = props.organise) === null || _g === void 0 ? void 0 : _g.exportSettings) === null || _h === void 0 ? void 0 : _h.excludeSecondaryLabel, csvHeaderUseName: (_k = (_j = props.organise) === null || _j === void 0 ? void 0 : _j.exportSettings) === null || _k === void 0 ? void 0 : _k.csvHeaderUseName, dateFormatString: (_m = (_l = props.organise) === null || _l === void 0 ? void 0 : _l.exportSettings) === null || _m === void 0 ? void 0 : _m.dateFormatString, excludeDataId: (_p = (_o = props.organise) === null || _o === void 0 ? void 0 : _o.exportSettings) === null || _p === void 0 ? void 0 : _p.excludeDataId, columnIds: (_r = (_q = props.organise) === null || _q === void 0 ? void 0 : _q.exportSettings) === null || _r === void 0 ? void 0 : _r.columnIds, sort: (_t = (_s = props.organise) === null || _s === void 0 ? void 0 : _s.exportSettings) === null || _t === void 0 ? void 0 : _t.sort, groupBy: groupId, sumAttributeId: exportSumAttributeIds, viewId: (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.id) !== "general" ? selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name : undefined }, (exportType === "qr-data" && {
|
|
6612
6679
|
public: true,
|
|
6613
6680
|
publicLink: window.location.origin,
|
|
6614
6681
|
})), { hideSubItems: hideSubItems });
|
|
6615
|
-
return [4 /*yield*/, ((
|
|
6682
|
+
return [4 /*yield*/, ((_u = props.lib) === null || _u === void 0 ? void 0 : _u.axios({
|
|
6616
6683
|
url: apiEndpoint,
|
|
6617
6684
|
method: "post",
|
|
6618
6685
|
data: { data: reqData },
|
|
6619
6686
|
}))];
|
|
6620
6687
|
case 1:
|
|
6621
|
-
res =
|
|
6622
|
-
if (!(downloadLinkOnly && ((
|
|
6623
|
-
dataList = (
|
|
6688
|
+
res = _2.sent();
|
|
6689
|
+
if (!(downloadLinkOnly && ((_v = res === null || res === void 0 ? void 0 : res.data) === null || _v === void 0 ? void 0 : _v.dataList))) return [3 /*break*/, 4];
|
|
6690
|
+
dataList = (_w = res === null || res === void 0 ? void 0 : res.data) === null || _w === void 0 ? void 0 : _w.dataList;
|
|
6624
6691
|
if (!(dataList && typeof dataList === "object")) return [3 /*break*/, 4];
|
|
6625
6692
|
csvDownloadLink = Object.values(dataList)[0];
|
|
6626
6693
|
if (!(exportType === "csv" ||
|
|
@@ -6632,10 +6699,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6632
6699
|
if (!(exportType === "pdf" ||
|
|
6633
6700
|
printOnly ||
|
|
6634
6701
|
exportType === "print")) return [3 /*break*/, 4];
|
|
6635
|
-
return [4 /*yield*/, (0, listModule_1.handleExportPDF)(csvDownloadLink, exportPDFTitle, printOnly, (
|
|
6702
|
+
return [4 /*yield*/, (0, listModule_1.handleExportPDF)(csvDownloadLink, exportPDFTitle, printOnly, (_z = (_y = (_x = props.organise) === null || _x === void 0 ? void 0 : _x.exportSettings) === null || _y === void 0 ? void 0 : _y.generateBy) !== null && _z !== void 0 ? _z : "Admin")];
|
|
6636
6703
|
case 3:
|
|
6637
|
-
|
|
6638
|
-
|
|
6704
|
+
_2.sent();
|
|
6705
|
+
_2.label = 4;
|
|
6639
6706
|
case 4:
|
|
6640
6707
|
notificaitonMsg = "A download link will be sent to your email. This may take a while if the data is huge, contact our team if you do not receive any email after 10 minutes (Check your Junk Email too).";
|
|
6641
6708
|
if (downloadLinkOnly)
|
|
@@ -6649,10 +6716,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6649
6716
|
}
|
|
6650
6717
|
setLoading(false);
|
|
6651
6718
|
handlePopUpModal(false);
|
|
6652
|
-
setExportCSVEmail((
|
|
6719
|
+
setExportCSVEmail((_1 = (_0 = props.devSettings.currentUser) === null || _0 === void 0 ? void 0 : _0.userEmail) !== null && _1 !== void 0 ? _1 : "");
|
|
6653
6720
|
return [3 /*break*/, 6];
|
|
6654
6721
|
case 5:
|
|
6655
|
-
err_27 =
|
|
6722
|
+
err_27 = _2.sent();
|
|
6656
6723
|
setNotification({
|
|
6657
6724
|
type: true,
|
|
6658
6725
|
title: "Export Failed",
|
|
@@ -7038,43 +7105,6 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7038
7105
|
}
|
|
7039
7106
|
});
|
|
7040
7107
|
}); };
|
|
7041
|
-
var handleViewQuery = function (index) {
|
|
7042
|
-
setQueryIndex(index);
|
|
7043
|
-
setQueryForm(!queryForm);
|
|
7044
|
-
};
|
|
7045
|
-
var handleSortQuery = function (index, sortType) {
|
|
7046
|
-
var _a;
|
|
7047
|
-
var sortList = JSON.parse(JSON.stringify(queryList));
|
|
7048
|
-
var ascIndex = sortType === "up" ? index - 1 : index + 1;
|
|
7049
|
-
_a = [
|
|
7050
|
-
sortList[ascIndex],
|
|
7051
|
-
sortList[index],
|
|
7052
|
-
], sortList[index] = _a[0], sortList[ascIndex] = _a[1];
|
|
7053
|
-
setQueryList(sortList);
|
|
7054
|
-
};
|
|
7055
|
-
var handlePushQueryList = function (queryInput, queryIndex) {
|
|
7056
|
-
var tempQueryList = [];
|
|
7057
|
-
tempQueryList = queryList;
|
|
7058
|
-
if (!tempQueryList.some(function (eachQuery) { return eachQuery.queryId === queryInput.queryId; })) {
|
|
7059
|
-
tempQueryList.push(queryInput);
|
|
7060
|
-
setQueryList(tempQueryList);
|
|
7061
|
-
setQueryForm(false);
|
|
7062
|
-
}
|
|
7063
|
-
else if (queryIndex >= 0) {
|
|
7064
|
-
var newQueryList = tempQueryList.map(function (eachQuery) {
|
|
7065
|
-
return eachQuery.queryId === queryInput.queryId ? queryInput : eachQuery;
|
|
7066
|
-
});
|
|
7067
|
-
setQueryList(newQueryList);
|
|
7068
|
-
handleViewQuery(-1);
|
|
7069
|
-
}
|
|
7070
|
-
else {
|
|
7071
|
-
setNotification({
|
|
7072
|
-
type: false,
|
|
7073
|
-
title: "Failed to add",
|
|
7074
|
-
msg: "Query with column ID already exists",
|
|
7075
|
-
});
|
|
7076
|
-
}
|
|
7077
|
-
};
|
|
7078
7108
|
//=====================================================================================
|
|
7079
7109
|
//SECTION: Handle Utils
|
|
7080
7110
|
//=====================================================================================
|
|
@@ -7139,16 +7169,18 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7139
7169
|
var header = Object.keys(csvFileData[0]);
|
|
7140
7170
|
var dataList = [];
|
|
7141
7171
|
csvAPIAttribute.map(function (eachAttribute) {
|
|
7172
|
+
var _a, _b;
|
|
7142
7173
|
dataList.push({
|
|
7143
7174
|
header: header[eachAttribute.ori],
|
|
7144
|
-
|
|
7175
|
+
// INFO: the field's name, as the mapping step showed it
|
|
7176
|
+
detail: (_b = (_a = structure.find(function (eachModel) { return eachModel.id === eachAttribute.id; })) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : eachAttribute.id,
|
|
7145
7177
|
});
|
|
7146
7178
|
return null;
|
|
7147
7179
|
});
|
|
7148
7180
|
return dataList;
|
|
7149
7181
|
};
|
|
7150
7182
|
var renderStepCSV = function () {
|
|
7151
|
-
var _a;
|
|
7183
|
+
var _a, _b;
|
|
7152
7184
|
switch (stepCSVIndex) {
|
|
7153
7185
|
case 0:
|
|
7154
7186
|
return (react_1.default.createElement(uploadInput_1.UploadInput, { lib: { axios: (_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios }, label: "Please insert a csv file", fileDescription: "CSV file thats doesn't exceeds 30MB and row not more than 100 data", accept: ".csv", hidePreview: true, onChange: handleOnChangeCSV }));
|
|
@@ -7164,37 +7196,47 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7164
7196
|
}
|
|
7165
7197
|
return "";
|
|
7166
7198
|
});
|
|
7167
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, csvFileData.length > 0 && (
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7199
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, csvFileData.length > 0 && (
|
|
7200
|
+
// INFO: one compact row per Excel column — its header, then the
|
|
7201
|
+
// field it fills — so a wide sheet maps without a long form
|
|
7202
|
+
react_1.default.createElement("div", { className: "pb-32" },
|
|
7203
|
+
react_1.default.createElement("div", { className: "grid grid-cols-[minmax(0,2fr)_1rem_minmax(0,3fr)] items-center gap-x-2 border-b pb-1 text-xs font-medium ".concat(((_b = props.organise) === null || _b === void 0 ? void 0 : _b.darkMode) ? "border-gray-700 text-gray-400" : "border-gray-200 text-gray-500") },
|
|
7204
|
+
react_1.default.createElement("span", null, "Excel column"),
|
|
7205
|
+
react_1.default.createElement("span", null),
|
|
7206
|
+
react_1.default.createElement("span", null, "Field")),
|
|
7207
|
+
Object.entries(csvFileData[0]).map(function (eachRow, index) {
|
|
7208
|
+
var _a;
|
|
7209
|
+
var eachKey = eachRow[0];
|
|
7210
|
+
if (!eachKey)
|
|
7211
|
+
return null;
|
|
7212
|
+
var clonedListValue = JSON.parse(JSON.stringify(listCSVMapAttribute));
|
|
7213
|
+
var selectedObjectModel = structure.find(function (eachModel) {
|
|
7214
|
+
return ((eachModel.id === clonedListValue[index] &&
|
|
7215
|
+
eachModel.type === "listObject") ||
|
|
7216
|
+
(eachModel.id === clonedListValue[index] &&
|
|
7217
|
+
eachModel.type === "object"));
|
|
7218
|
+
});
|
|
7219
|
+
return (react_1.default.createElement("div", { key: "".concat(eachKey, "-").concat(index), className: "grid grid-cols-[minmax(0,2fr)_1rem_minmax(0,3fr)] items-center gap-x-2 py-1.5" },
|
|
7220
|
+
react_1.default.createElement("span", { className: "truncate text-sm ".concat(((_a = props.organise) === null || _a === void 0 ? void 0 : _a.darkMode) ? "text-gray-200" : "text-gray-700") }, eachKey),
|
|
7221
|
+
react_1.default.createElement(outline_1.ArrowRightIcon, { className: "h-4 w-4 text-gray-400", "aria-hidden": "true" }),
|
|
7222
|
+
react_1.default.createElement("div", { className: "flex min-w-0 gap-x-2" },
|
|
7223
|
+
react_1.default.createElement(select_1.Select, { portalDropdown: true, size: "xs", containerClassName: "min-w-0 flex-1", label: "", options: filterOptions_1, value: clonedListValue[index], onChange: function (value) {
|
|
7224
|
+
var clonedListValueAttribute = JSON.parse(JSON.stringify(listCSVMapAttribute));
|
|
7225
|
+
clonedListValueAttribute[index] = value;
|
|
7226
|
+
setListCSVMapAttribute(clonedListValueAttribute);
|
|
7227
|
+
} }),
|
|
7228
|
+
selectedObjectModel && (react_1.default.createElement(select_1.Select, { portalDropdown: true, size: "xs", containerClassName: "min-w-0 flex-1", label: "", options: (0, readModule_1.renderObjectOptions)(selectedObjectModel.objectData), value: listCSVObjAttribute[index], onChange: function (value) {
|
|
7229
|
+
var clonedListObjectValueAttribute = JSON.parse(JSON.stringify(listCSVObjAttribute));
|
|
7230
|
+
clonedListObjectValueAttribute[index] = value;
|
|
7231
|
+
setListCSVObjAttribute(clonedListObjectValueAttribute);
|
|
7232
|
+
} })))));
|
|
7233
|
+
})))));
|
|
7192
7234
|
case 2:
|
|
7193
7235
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
7194
7236
|
react_1.default.createElement("div", { className: "flex flex-col mx-auto mt-2" }, "Mapped Column"),
|
|
7195
7237
|
react_1.default.createElement(table_1.Table, { loading: false, data: renderExcelReviewData(), hidePagination: true, limit: csvAPIAttribute.length + 1, header: [
|
|
7196
|
-
{ key: "header", title: "Excel
|
|
7197
|
-
{ key: "detail", title: "
|
|
7238
|
+
{ key: "header", title: "Excel column" },
|
|
7239
|
+
{ key: "detail", title: "Field" },
|
|
7198
7240
|
] })));
|
|
7199
7241
|
case 3:
|
|
7200
7242
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -7207,40 +7249,6 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7207
7249
|
return null;
|
|
7208
7250
|
}
|
|
7209
7251
|
};
|
|
7210
|
-
var renderQueryData = function () {
|
|
7211
|
-
var queryStructureView = [];
|
|
7212
|
-
var sortComponent = undefined;
|
|
7213
|
-
queryList.map(function (data, index) {
|
|
7214
|
-
if (queryList.length > 1) {
|
|
7215
|
-
var upData_1 = index === queryList.length - 1;
|
|
7216
|
-
sortComponent = (react_1.default.createElement("div", { className: "ml-2 cursor-pointer", onClick: function () {
|
|
7217
|
-
handleSortQuery(index, upData_1 ? "up" : "down");
|
|
7218
|
-
} }, upData_1 ? (react_1.default.createElement(outline_1.ArrowUpIcon, { className: "block w-5 h-5 text-primary-600" })) : (react_1.default.createElement(outline_1.ArrowDownIcon, { className: "block w-5 h-5 text-primary-600" }))));
|
|
7219
|
-
}
|
|
7220
|
-
var value = data.value;
|
|
7221
|
-
var isDate = (0, dayjs_1.default)(value);
|
|
7222
|
-
if (isDate.isValid())
|
|
7223
|
-
value = (0, dayjs_1.default)(value).format("DD/MM/YYYY h:mm a");
|
|
7224
|
-
queryStructureView.push({
|
|
7225
|
-
key: index,
|
|
7226
|
-
name: data.queryId,
|
|
7227
|
-
value: value,
|
|
7228
|
-
sort: sortComponent,
|
|
7229
|
-
view: (react_1.default.createElement("div", { className: "ml-2 cursor-pointer", onClick: function () {
|
|
7230
|
-
handleViewQuery(index);
|
|
7231
|
-
} },
|
|
7232
|
-
react_1.default.createElement(outline_1.EyeIcon, { className: "block w-5 h-5 text-primary-600" }))),
|
|
7233
|
-
del: (react_1.default.createElement("div", { className: "ml-2 cursor-pointer", onClick: function () {
|
|
7234
|
-
var temp = JSON.parse(JSON.stringify(queryList));
|
|
7235
|
-
temp.splice(index, 1);
|
|
7236
|
-
setQueryList(temp);
|
|
7237
|
-
} },
|
|
7238
|
-
react_1.default.createElement(outline_1.TrashIcon, { className: "block w-5 h-5 text-primary-600" }))),
|
|
7239
|
-
});
|
|
7240
|
-
return "";
|
|
7241
|
-
});
|
|
7242
|
-
return queryStructureView;
|
|
7243
|
-
};
|
|
7244
7252
|
//=====================================================================================
|
|
7245
7253
|
//SECTION: Render CRUD
|
|
7246
7254
|
//=====================================================================================
|
|
@@ -10984,52 +10992,37 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10984
10992
|
}
|
|
10985
10993
|
else if (exportExcel || exportQR) {
|
|
10986
10994
|
var showEmail = exportType !== "pdf" && !((_f = (_e = props.organise) === null || _e === void 0 ? void 0 : _e.exportSettings) === null || _f === void 0 ? void 0 : _f.disableEmail);
|
|
10987
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
10988
|
-
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
10992
|
-
|
|
10993
|
-
|
|
10994
|
-
|
|
10995
|
-
|
|
10996
|
-
|
|
10997
|
-
|
|
10998
|
-
|
|
10999
|
-
|
|
11000
|
-
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
|
|
11004
|
-
|
|
11005
|
-
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
|
|
11015
|
-
|
|
11016
|
-
|
|
11017
|
-
|
|
11018
|
-
showEmail && (react_1.default.createElement(button_1.Button, { text: "Send to email", size: "small", type: "normal", onClick: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
11019
|
-
return __generator(this, function (_a) {
|
|
11020
|
-
switch (_a.label) {
|
|
11021
|
-
case 0: return [4 /*yield*/, exportCSVEmailInputRef.current.handleSubmit()];
|
|
11022
|
-
case 1:
|
|
11023
|
-
if (_a.sent()) {
|
|
11024
|
-
handleExportCSVData();
|
|
11025
|
-
}
|
|
11026
|
-
return [2 /*return*/];
|
|
11027
|
-
}
|
|
11028
|
-
});
|
|
11029
|
-
}); } })),
|
|
11030
|
-
react_1.default.createElement(button_1.Button, { type: "normal", text: "Download", size: "small", className: "ml-3", onClick: function () {
|
|
11031
|
-
return handleExportCSVData(true, exportType === "print");
|
|
11032
|
-
} }))))));
|
|
10995
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
10996
|
+
react_1.default.createElement("div", null,
|
|
10997
|
+
showEmail ? (react_1.default.createElement(textInput_1.TextInput, { ref: exportCSVEmailInputRef, value: exportCSVEmail, type: "email", label: "Email", size: "xs", placeholder: (_h = (_g = props.devSettings.currentUser) === null || _g === void 0 ? void 0 : _g.userEmail) !== null && _h !== void 0 ? _h : "Enter your email", onChange: function (e) { return setExportCSVEmail(e.target.value); } })) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
10998
|
+
react_1.default.createElement("p", null, "Click the button below to download."),
|
|
10999
|
+
(exportType === "pdf" || exportType === "print") && (react_1.default.createElement(textInput_1.TextInput, { containerClassName: "mt-5", value: exportPDFTitle, type: "text", label: "Title (Optional)", placeholder: (_l = (_k = (_j = props.organise) === null || _j === void 0 ? void 0 : _j.exportSettings) === null || _k === void 0 ? void 0 : _k.defaultExportPDFName) !== null && _l !== void 0 ? _l : "Enter your report title", onChange: function (e) { return setExportPDFTitle(e.target.value); } })),
|
|
11000
|
+
(exportType === "pdf" || exportType === "print") && (react_1.default.createElement(select_1.Select, { portalDropdown: true, label: "Sum Attribute", containerClassName: "mt-5", value: exportSumAttributeIds, options: (_p = (_o = (_m = props.organise) === null || _m === void 0 ? void 0 : _m.renderReferenceLabelOptions) === null || _o === void 0 ? void 0 : _o.call(_m, "", false, "number")) !== null && _p !== void 0 ? _p : [], staticDropdown: true, onChange: function (value) {
|
|
11001
|
+
setExportSumAttributeIds(value);
|
|
11002
|
+
} })))),
|
|
11003
|
+
react_1.default.createElement("div", { className: "mt-3 -mx-4 [&>div]:w-full [&>div]:max-w-none" }, (0, flexFilter_1.renderFlexFilterPopupContent)(exportFlexFilters, exportFilterStructure, devSettings, dbModule, flexFilterReferenceOptions, flexFilterReferenceSearch, exportFlexActions, (_q = props.bareSettings) === null || _q === void 0 ? void 0 : _q.bareListFilterQuery, undefined, undefined, true, {
|
|
11004
|
+
darkMode: (_r = props.organise) === null || _r === void 0 ? void 0 : _r.darkMode,
|
|
11005
|
+
darkModeBg: (_s = props.organise) === null || _s === void 0 ? void 0 : _s.darkModeBg,
|
|
11006
|
+
})),
|
|
11007
|
+
react_1.default.createElement("div", { className: "mt-3 flex items-center justify-between" },
|
|
11008
|
+
react_1.default.createElement("label", { className: "text-sm font-medium ".concat(((_t = props.organise) === null || _t === void 0 ? void 0 : _t.darkMode) ? "text-gray-200" : "text-gray-700") }, "Hide Sub Items"),
|
|
11009
|
+
react_1.default.createElement(toggle_1.Toggle, { text: "", direction: "right", value: hideSubItems, onClick: function () { return setHideSubItems(!hideSubItems); } })),
|
|
11010
|
+
react_1.default.createElement("div", { className: "flex justify-end mt-5 " },
|
|
11011
|
+
showEmail && (react_1.default.createElement(button_1.Button, { text: "Send to email", size: "small", type: "normal", onClick: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
11012
|
+
return __generator(this, function (_a) {
|
|
11013
|
+
switch (_a.label) {
|
|
11014
|
+
case 0: return [4 /*yield*/, exportCSVEmailInputRef.current.handleSubmit()];
|
|
11015
|
+
case 1:
|
|
11016
|
+
if (_a.sent()) {
|
|
11017
|
+
handleExportCSVData();
|
|
11018
|
+
}
|
|
11019
|
+
return [2 /*return*/];
|
|
11020
|
+
}
|
|
11021
|
+
});
|
|
11022
|
+
}); } })),
|
|
11023
|
+
react_1.default.createElement(button_1.Button, { type: "normal", text: "Download", size: "small", className: "ml-3", onClick: function () {
|
|
11024
|
+
return handleExportCSVData(true, exportType === "print");
|
|
11025
|
+
} })))));
|
|
11033
11026
|
}
|
|
11034
11027
|
else if (addTabModal) {
|
|
11035
11028
|
return (react_1.default.createElement(settingsModal_1.TabModal, { type: resolvedType, tabs: (_u = props.organise) === null || _u === void 0 ? void 0 : _u.extendedTabs, editIndex: editTabIndex >= 0 ? editTabIndex : undefined, onChangeTabs: (_v = props.organise) === null || _v === void 0 ? void 0 : _v.onChangeTabs, model: structure, collectionId: props.collectionId, renderReferenceLabelOptions: (_w = props.organise) === null || _w === void 0 ? void 0 : _w.renderReferenceLabelOptions, onClose: function () {
|
|
@@ -11391,12 +11384,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
11391
11384
|
var _a, _b;
|
|
11392
11385
|
if (loading)
|
|
11393
11386
|
return;
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
else {
|
|
11397
|
-
handlePopUpModal(false);
|
|
11398
|
-
setExportCSVEmail((_b = (_a = props.devSettings.currentUser) === null || _a === void 0 ? void 0 : _a.userEmail) !== null && _b !== void 0 ? _b : "");
|
|
11399
|
-
}
|
|
11387
|
+
handlePopUpModal(false);
|
|
11388
|
+
setExportCSVEmail((_b = (_a = props.devSettings.currentUser) === null || _a === void 0 ? void 0 : _a.userEmail) !== null && _b !== void 0 ? _b : "");
|
|
11400
11389
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) })),
|
|
11401
11390
|
react_1.default.createElement(modal_1.Modal, { darkMode: (_83 = props.organise) === null || _83 === void 0 ? void 0 : _83.darkMode, darkModeBg: (_84 = props.organise) === null || _84 === void 0 ? void 0 : _84.darkModeBg, maxWidth: "2xl", open: referenceCreationModal.id ? true : false, renderContent: function () {
|
|
11402
11391
|
return (react_1.default.createElement(referenceModal_1.ReferenceModal, { referenceModelSchema: referenceModelSchema, referenceDataStructure: referenceCreationModal, devSettings: props.devSettings, handleCreateRefId: function (dataId) {
|