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), queryForm = _129[0], setQueryForm = _129[1];
386
- var _130 = (0, react_1.useState)(false), batchUpdateModal = _130[0], setBatchUpdateModal = _130[1];
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 = _131[0], setBatchUpdateData = _131[1];
391
- var _132 = (0, react_1.useState)(function () {
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 = _132[0], setStructure = _132[1];
418
- var _133 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _133[0], setAdditionalQuery = _133[1];
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 _134 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
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 = _134[0], setFlexFilters = _134[1];
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 _135 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
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 = _135[0], setFlexFiltersDebounced = _135[1];
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 _169 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.groupBy) !== undefined
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 = _169[0], setGroupId = _169[1];
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 _170 = (0, react_1.useState)({}), groupPageState = _170[0], setGroupPageState = _170[1];
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 _171 = (0, react_1.useState)(""), readTabSection = _171[0], setReadTabSection = _171[1];
521
- var _172 = (0, react_1.useState)(false), readFloatingNav = _172[0], setReadFloatingNav = _172[1];
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 _173 = (0, react_1.useState)(false), modalVisible = _173[0], setModalVisible = _173[1];
526
- var _174 = (0, react_1.useState)(false), deleteModal = _174[0], setDeleteModal = _174[1];
527
- var _175 = (0, react_1.useState)(false), excelModal = _175[0], setExcelModal = _175[1];
528
- var _176 = (0, react_1.useState)(false), exportExcel = _176[0], setExportExcel = _176[1];
529
- var _177 = (0, react_1.useState)(""), exportType = _177[0], setExportType = _177[1];
530
- var _178 = (0, react_1.useState)(false), exportQR = _178[0], setExportQR = _178[1];
531
- var _179 = (0, react_1.useState)(function () {
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 = _179[0], setActiveTab = _179[1];
536
- var _180 = (0, react_1.useState)(false), signatureSigning = _180[0], setSignatureSigning = _180[1];
537
- var _181 = (0, react_1.useState)({}), selectedData = _181[0], setSelectedData = _181[1];
538
- var _182 = (0, react_1.useState)(""), selectedObjectStructureId = _182[0], setSelectedObjectStructureId = _182[1];
539
- var _183 = (0, react_1.useState)(""), selectedObjectId = _183[0], setSelectedObjectId = _183[1];
540
- var _184 = (0, react_1.useState)(""), selectedListAddressId = _184[0], setSelectedListAddressId = _184[1];
541
- var _185 = (0, react_1.useState)(-1), selectedListAddressIndex = _185[0], setSelectedListAddressIndex = _185[1];
542
- var _186 = (0, react_1.useState)({
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 = _186[0], setSelectedListAddress = _186[1];
547
- var _187 = (0, react_1.useState)({}), selectedObjectData = _187[0], setSelectedObjectData = _187[1];
548
- var _188 = (0, react_1.useState)(null), objectCellEdit = _188[0], setObjectCellEdit = _188[1];
549
- var _189 = (0, react_1.useState)(false), referenceLoading = _189[0], setReferenceLoading = _189[1];
550
- var _190 = (0, react_1.useState)({}), referencesOptions = _190[0], setReferencesOptions = _190[1];
551
- var _191 = (0, react_1.useState)({}), referencesDetails = _191[0], setReferencesDetails = _191[1];
552
- var _192 = (0, react_1.useState)({}), listReferencesOptions = _192[0], setListReferencesOptions = _192[1];
553
- var _193 = (0, react_1.useState)({}), referenceDeleteTableData = _193[0], setReferenceDeleteTableData = _193[1];
554
- var _194 = (0, react_1.useState)([]), relatedSections = _194[0], setRelatedSections = _194[1];
555
- var _195 = (0, react_1.useState)(0), referenceDeleteIndex = _195[0], setReferenceDeleteIndex = _195[1];
556
- var _196 = (0, react_1.useState)({
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 = _196[0], setReferenceCreationModal = _196[1];
561
- var _197 = (0, react_1.useState)({}), referenceModelSchema = _197[0], setReferenceSchema = _197[1];
562
- var _198 = (0, react_1.useState)([]), kanbanChecked = _198[0], setKanbanChecked = _198[1];
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 _199 = (0, react_1.useState)(0), offlineDataLength = _199[0], setOfflineDataLength = _199[1];
565
- var _200 = (0, react_1.useState)(false), offlineModal = _200[0], setOfflineModal = _200[1];
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 _201 = (0, react_1.useState)(false), isLive = _201[0], setIsLive = _201[1];
568
- var _202 = (0, react_1.useState)(false), isLiveOffline = _202[0], setIsLiveOffline = _202[1];
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 _203 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _203[0], setIsNetworkOffline = _203[1];
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 _204 = (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 = _204[0], setPageLimit = _204[1];
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 _205 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _205.canUpdateRecord, canInlineUpdate = _205.canInlineUpdate, canBatchUpdate = _205.canBatchUpdate, canDeleteRecord = _205.canDeleteRecord;
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
- var renderImpSearchFilterConditions = function () {
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 (flexFiltersDebounced.length > 0) {
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)(flexFiltersDebounced, structure).filter(function (eachQuery) { var _a; return !formulaColumnIds.includes((_a = eachQuery.queryId) !== null && _a !== void 0 ? _a : ""); });
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 (_1) {
6575
- switch (_1.label) {
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
- _1.trys.push([0, 5, , 6]);
6644
+ _2.trys.push([0, 5, , 6]);
6578
6645
  setLoading(true);
6579
- exportQueryList = JSON.parse(JSON.stringify(queryList));
6580
- if ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareCSVExportSettings) {
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: (_c = (_b = props.devSettings.currentUser) === null || _b === void 0 ? void 0 : _b.userName) !== null && _c !== void 0 ? _c : "",
6611
- }, downloadLinkOnly: downloadLinkOnly, exportType: exportType === "excel" ? "excel" : undefined, excludeReferenceId: (_e = (_d = props.organise) === null || _d === void 0 ? void 0 : _d.exportSettings) === null || _e === void 0 ? void 0 : _e.excludeReferenceId, excludeSecondaryLabel: (_g = (_f = props.organise) === null || _f === void 0 ? void 0 : _f.exportSettings) === null || _g === void 0 ? void 0 : _g.excludeSecondaryLabel, csvHeaderUseName: (_j = (_h = props.organise) === null || _h === void 0 ? void 0 : _h.exportSettings) === null || _j === void 0 ? void 0 : _j.csvHeaderUseName, dateFormatString: (_l = (_k = props.organise) === null || _k === void 0 ? void 0 : _k.exportSettings) === null || _l === void 0 ? void 0 : _l.dateFormatString, excludeDataId: (_o = (_m = props.organise) === null || _m === void 0 ? void 0 : _m.exportSettings) === null || _o === void 0 ? void 0 : _o.excludeDataId, columnIds: (_q = (_p = props.organise) === null || _p === void 0 ? void 0 : _p.exportSettings) === null || _q === void 0 ? void 0 : _q.columnIds, sort: (_s = (_r = props.organise) === null || _r === void 0 ? void 0 : _r.exportSettings) === null || _s === void 0 ? void 0 : _s.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" && {
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*/, ((_t = props.lib) === null || _t === void 0 ? void 0 : _t.axios({
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 = _1.sent();
6622
- if (!(downloadLinkOnly && ((_u = res === null || res === void 0 ? void 0 : res.data) === null || _u === void 0 ? void 0 : _u.dataList))) return [3 /*break*/, 4];
6623
- dataList = (_v = res === null || res === void 0 ? void 0 : res.data) === null || _v === void 0 ? void 0 : _v.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, (_y = (_x = (_w = props.organise) === null || _w === void 0 ? void 0 : _w.exportSettings) === null || _x === void 0 ? void 0 : _x.generateBy) !== null && _y !== void 0 ? _y : "Admin")];
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
- _1.sent();
6638
- _1.label = 4;
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((_0 = (_z = props.devSettings.currentUser) === null || _z === void 0 ? void 0 : _z.userEmail) !== null && _0 !== void 0 ? _0 : "");
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 = _1.sent();
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
- detail: eachAttribute.id,
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 && (react_1.default.createElement("div", { className: "pb-32" }, Object.entries(csvFileData[0]).map(function (eachRow, index) {
7168
- var eachKey = eachRow[0];
7169
- if (!eachKey)
7170
- return null;
7171
- var clonedListValue = JSON.parse(JSON.stringify(listCSVMapAttribute));
7172
- var selectedObjectModel = structure.find(function (eachModel) {
7173
- return ((eachModel.id === clonedListValue[index] &&
7174
- eachModel.type === "listObject") ||
7175
- (eachModel.id === clonedListValue[index] &&
7176
- eachModel.type === "object"));
7177
- });
7178
- return (react_1.default.createElement(react_1.default.Fragment, null,
7179
- react_1.default.createElement("div", { className: "grid items-center grid-cols-3 mt-6" },
7180
- eachKey,
7181
- react_1.default.createElement(select_1.Select, { portalDropdown: true, containerClassName: selectedObjectModel ? "ml-2" : "ml-2 col-span-2", label: "", options: filterOptions_1, value: clonedListValue[index], onChange: function (value) {
7182
- var clonedListValueAttribute = JSON.parse(JSON.stringify(listCSVMapAttribute));
7183
- clonedListValueAttribute[index] = value;
7184
- setListCSVMapAttribute(clonedListValueAttribute);
7185
- } }),
7186
- selectedObjectModel && (react_1.default.createElement(select_1.Select, { portalDropdown: true, containerClassName: "ml-4", label: "", options: (0, readModule_1.renderObjectOptions)(selectedObjectModel.objectData), value: listCSVObjAttribute[index], onChange: function (value) {
7187
- var clonedListObjectValueAttribute = JSON.parse(JSON.stringify(listCSVObjAttribute));
7188
- clonedListObjectValueAttribute[index] = value;
7189
- setListCSVObjAttribute(clonedListObjectValueAttribute);
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 Column" },
7197
- { key: "detail", title: "Mapping Column" },
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, queryForm ? (react_1.default.createElement(queryForm_1.QueryForm, { dbModule: (_g = props.lib) === null || _g === void 0 ? void 0 : _g.axios, model: structure, updateQuery: queryIndex >= 0 ? queryList[queryIndex] : undefined, devSettings: props.devSettings, handleCloseForm: function () {
10988
- handleViewQuery(-1);
10989
- }, handleQueryOnComplete: function (queryData) {
10990
- handlePushQueryList(queryData, queryIndex);
10991
- }, renderReferenceLabelOptions: ((_h = props.organise) === null || _h === void 0 ? void 0 : _h.renderReferenceLabelOptions)
10992
- ? (_j = props.organise) === null || _j === void 0 ? void 0 : _j.renderReferenceLabelOptions
10993
- : function () {
10994
- return [];
10995
- } })) : (react_1.default.createElement("div", null,
10996
- showEmail ? (react_1.default.createElement(react_1.default.Fragment, null,
10997
- react_1.default.createElement("div", null,
10998
- react_1.default.createElement("h1", null, "Download file or send it via email."),
10999
- react_1.default.createElement("p", { className: "pt-2 mb-4 text-sm text-gray-600" },
11000
- exportExcel
11001
- ? "Export your data to .csv format to be viewable on Excel."
11002
- : "Export your data to .pdf format to be viewable on Adobe/Browser.",
11003
- "Filter your data exported based on conditions by creating queries at the table below."),
11004
- react_1.default.createElement(react_1.default.Fragment, null,
11005
- react_1.default.createElement(textInput_1.TextInput, { ref: exportCSVEmailInputRef, value: exportCSVEmail, type: "email", label: "Email", subLabel: "A download link will be sent to your email", placeholder: (_l = (_k = props.devSettings.currentUser) === null || _k === void 0 ? void 0 : _k.userEmail) !== null && _l !== void 0 ? _l : "Enter your email", onChange: function (e) { return setExportCSVEmail(e.target.value); } }),
11006
- react_1.default.createElement("div", { className: "flex mt-5 items-center justify-end" },
11007
- react_1.default.createElement(iconButton_1.IconButton, { className: "sm", icon: react_1.default.createElement(outline_1.PlusCircleIcon, { className: "w-6 h-6 text-white" }), background: "bg-primary-500 hover:bg-primary-600", onClick: function () { return setQueryForm(!queryForm); } })))),
11008
- react_1.default.createElement(table_1.Table, { className: "mt-5", header: dataStateModel_1.queryTableHeader, data: renderQueryData(), loading: false }))) : (react_1.default.createElement(react_1.default.Fragment, null,
11009
- react_1.default.createElement("p", null, "Click the button below to download."),
11010
- (exportType === "pdf" || exportType === "print") && (react_1.default.createElement(textInput_1.TextInput, { containerClassName: "mt-5", value: exportPDFTitle, type: "text", label: "Title (Optional)", placeholder: (_p = (_o = (_m = props.organise) === null || _m === void 0 ? void 0 : _m.exportSettings) === null || _o === void 0 ? void 0 : _o.defaultExportPDFName) !== null && _p !== void 0 ? _p : "Enter your report title", onChange: function (e) { return setExportPDFTitle(e.target.value); } })),
11011
- (exportType === "pdf" || exportType === "print") && (react_1.default.createElement(select_1.Select, { portalDropdown: true, label: "Sum Attribute", containerClassName: "mt-5", value: exportSumAttributeIds, options: (_s = (_r = (_q = props.organise) === null || _q === void 0 ? void 0 : _q.renderReferenceLabelOptions) === null || _r === void 0 ? void 0 : _r.call(_q, "", false, "number")) !== null && _s !== void 0 ? _s : [], staticDropdown: true, onChange: function (value) {
11012
- setExportSumAttributeIds(value);
11013
- } })))),
11014
- react_1.default.createElement("div", { className: "mt-5 flex items-center justify-between" },
11015
- 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"),
11016
- react_1.default.createElement(toggle_1.Toggle, { text: "", direction: "right", value: hideSubItems, onClick: function () { return setHideSubItems(!hideSubItems); } })),
11017
- react_1.default.createElement("div", { className: "flex justify-end mt-5 " },
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
- if (queryForm)
11395
- handleViewQuery(-1);
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) {