blixify-ui-web 1.2.182 → 1.2.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/index.js +312 -308
- package/lib/components/data/dataTemplate/index.js.map +1 -1
- package/lib/components/display/drawer/index.d.ts +1 -0
- package/lib/components/display/drawer/index.d.ts.map +1 -1
- package/lib/components/display/drawer/index.js +10 -2
- package/lib/components/display/drawer/index.js.map +1 -1
- package/lib/components/display/newTable/index.d.ts.map +1 -1
- package/lib/components/display/newTable/index.js +80 -23
- package/lib/components/display/newTable/index.js.map +1 -1
- package/lib/tail.css +2 -2
- package/package.json +1 -1
|
@@ -91,6 +91,7 @@ var BookmarkIcon_1 = __importDefault(require("@heroicons/react/24/outline/Bookma
|
|
|
91
91
|
var solid_1 = require("@heroicons/react/24/solid");
|
|
92
92
|
var html2canvas_1 = __importDefault(require("html2canvas"));
|
|
93
93
|
var jspdf_1 = __importDefault(require("jspdf"));
|
|
94
|
+
var react_dom_1 = require("react-dom");
|
|
94
95
|
var react_1 = __importStar(require("react"));
|
|
95
96
|
var uuid_1 = require("uuid");
|
|
96
97
|
var button_1 = require("../../action/button");
|
|
@@ -137,7 +138,6 @@ var blobModule_1 = require("../blobModule");
|
|
|
137
138
|
var listModule_1 = require("../listModule");
|
|
138
139
|
var formula_1 = require("../formula");
|
|
139
140
|
var moduleUtils_1 = require("../moduleUtils");
|
|
140
|
-
var queryForm_1 = require("../queryForm");
|
|
141
141
|
var readModule_1 = require("../readModule");
|
|
142
142
|
var readQuery_1 = require("../readQuery");
|
|
143
143
|
var unionPagination_1 = require("./unionPagination");
|
|
@@ -147,7 +147,6 @@ var utils_1 = require("../utils");
|
|
|
147
147
|
var writeQuery_1 = require("../writeQuery");
|
|
148
148
|
var activityModal_1 = require("./activityModal");
|
|
149
149
|
var authModal_1 = require("./authModal");
|
|
150
|
-
var dataStateModel_1 = require("./dataStateModel");
|
|
151
150
|
var indexedDb_1 = require("./indexedDb");
|
|
152
151
|
var socket_1 = require("./socket");
|
|
153
152
|
var newPagination_1 = require("../../display/newPagination");
|
|
@@ -216,10 +215,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
216
215
|
// Every read of the view type below uses resolvedType. The distinction matters
|
|
217
216
|
// most in effect dependency arrays — following props.type there would leave
|
|
218
217
|
// the list never refetching while the panel is open, which fails silently.
|
|
219
|
-
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, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94;
|
|
218
|
+
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, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96;
|
|
220
219
|
// INFO: the panel cannot navigate its way out — handleNavigate("read") is
|
|
221
220
|
// routed straight back into it — so expand-to-full-page is local state.
|
|
222
|
-
var
|
|
221
|
+
var _97 = (0, react_1.useState)(false), drawerPageView = _97[0], setDrawerPageView = _97[1];
|
|
223
222
|
// INFO: the panel keeps rendering the record it was opened with rather than
|
|
224
223
|
// live props. Without this, navigating back to the list would re-render the
|
|
225
224
|
// still-mounted panel as a second list behind the overlay.
|
|
@@ -311,18 +310,18 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
311
310
|
initialFilterReferenceDate: initialFilterReferenceDate,
|
|
312
311
|
};
|
|
313
312
|
};
|
|
314
|
-
var
|
|
313
|
+
var _98 = intialiseDefaultFilterValues(), initialFilterSearch = _98.initialFilterSearch, initialFilterSearchParams = _98.initialFilterSearchParams, initialFilterSelection = _98.initialFilterSelection, initialFilterReference = _98.initialFilterReference, initialFilterReferenceDate = _98.initialFilterReferenceDate;
|
|
315
314
|
// INFO: Persist view state hook — handles storage read/write for filter/sort/column state
|
|
316
|
-
var
|
|
315
|
+
var _99 = (0, viewStatePersistence_1.usePersistedViewState)({
|
|
317
316
|
mode: (_b = props.organise) === null || _b === void 0 ? void 0 : _b.persistViewState,
|
|
318
317
|
collectionId: props.collectionId,
|
|
319
318
|
persistKey: (_c = props.organise) === null || _c === void 0 ? void 0 : _c.persistKey,
|
|
320
319
|
type: resolvedType,
|
|
321
|
-
}), rawPersistedState =
|
|
320
|
+
}), rawPersistedState = _99.persistedState, isPersistEnabled = _99.isEnabled, handleSaveView = _99.handleSaveView, handleRegisterViewSnapshot = _99.handleRegisterViewSnapshot;
|
|
322
321
|
// INFO: drop stored filters/sort on removed columns — they would empty the table
|
|
323
322
|
var persistedState = (0, react_1.useMemo)(function () { return (0, viewStatePersistence_1.handlePruneStaleColumns)(rawPersistedState, props.model); }, [rawPersistedState, props.model]);
|
|
324
|
-
var
|
|
325
|
-
var
|
|
323
|
+
var _100 = (0, react_1.useState)(false), loading = _100[0], setLoading = _100[1];
|
|
324
|
+
var _101 = (0, react_1.useState)(), notification = _101[0], setNotification = _101[1];
|
|
326
325
|
// INFO: a success toast is confirmation, not a decision — it clears itself so
|
|
327
326
|
// it never sits on the floating step bar; errors stay until dismissed
|
|
328
327
|
(0, react_1.useEffect)(function () {
|
|
@@ -332,63 +331,62 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
332
331
|
return function () { return clearTimeout(timer); };
|
|
333
332
|
}, [notification]);
|
|
334
333
|
//INFO : Used by List
|
|
335
|
-
var
|
|
336
|
-
var
|
|
337
|
-
var
|
|
338
|
-
var
|
|
339
|
-
var
|
|
340
|
-
var
|
|
341
|
-
var
|
|
334
|
+
var _102 = (0, react_1.useState)((_d = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _d !== void 0 ? _d : initialFilterSearch), filterSearch = _102[0], setFilterSearch = _102[1];
|
|
335
|
+
var _103 = (0, react_1.useState)((_e = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _e !== void 0 ? _e : initialFilterSearchParams), filterSearchParams = _103[0], setFilterSearchParams = _103[1];
|
|
336
|
+
var _104 = (0, react_1.useState)((_f = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSelection) !== null && _f !== void 0 ? _f : initialFilterSelection), filterSelection = _104[0], setFilterSelection = _104[1];
|
|
337
|
+
var _105 = (0, react_1.useState)((_g = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReference) !== null && _g !== void 0 ? _g : initialFilterReference), filterReference = _105[0], setFilterReference = _105[1];
|
|
338
|
+
var _106 = (0, react_1.useState)({}), filterReferenceSearch = _106[0], setFilterReferenceSearch = _106[1];
|
|
339
|
+
var _107 = (0, react_1.useState)({}), filterReferenceList = _107[0], setFilterReferenceList = _107[1];
|
|
340
|
+
var _108 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReferenceDate)
|
|
342
341
|
? (0, viewStatePersistence_1.parseDateFilterState)(persistedState.filterReferenceDate)
|
|
343
|
-
: initialFilterReferenceDate), filterReferenceDate =
|
|
344
|
-
var
|
|
345
|
-
var
|
|
346
|
-
var
|
|
347
|
-
var
|
|
348
|
-
var
|
|
342
|
+
: initialFilterReferenceDate), filterReferenceDate = _108[0], setFilterReferenceDate = _108[1];
|
|
343
|
+
var _109 = (0, react_1.useState)(true), tableLoading = _109[0], setTableLoading = _109[1];
|
|
344
|
+
var _110 = (0, react_1.useState)(""), cursor = _110[0], setCursor = _110[1];
|
|
345
|
+
var _111 = (0, react_1.useState)(""), lastCursor = _111[0], setLastCursor = _111[1];
|
|
346
|
+
var _112 = (0, react_1.useState)([]), tableData = _112[0], setTableData = _112[1];
|
|
347
|
+
var _113 = (0, react_1.useState)([]), spaceTableData = _113[0], setSpaceTableData = _113[1];
|
|
349
348
|
// INFO: a save resolves after later renders, so it reads the table from here —
|
|
350
349
|
// the state it closed over can predate an earlier save on the same row
|
|
351
350
|
var tableDataRef = (0, react_1.useRef)([]);
|
|
352
351
|
var spaceTableDataRef = (0, react_1.useRef)([]);
|
|
353
352
|
tableDataRef.current = tableData;
|
|
354
353
|
spaceTableDataRef.current = spaceTableData;
|
|
355
|
-
var
|
|
356
|
-
var
|
|
357
|
-
var
|
|
358
|
-
var
|
|
359
|
-
var
|
|
360
|
-
var
|
|
361
|
-
var
|
|
354
|
+
var _114 = (0, react_1.useState)(0), size = _114[0], setSize = _114[1];
|
|
355
|
+
var _115 = (0, react_1.useState)((_k = (_h = persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageIndex) !== null && _h !== void 0 ? _h : (_j = props.organise) === null || _j === void 0 ? void 0 : _j.pageIndex) !== null && _k !== void 0 ? _k : 0), pageIndex = _115[0], setPageIndex = _115[1];
|
|
356
|
+
var _116 = (0, react_1.useState)([]), selectedIds = _116[0], setSelectedIds = _116[1];
|
|
357
|
+
var _117 = (0, react_1.useState)(false), selectAll = _117[0], setSelectAll = _117[1];
|
|
358
|
+
var _118 = (0, react_1.useState)(""), deletePasscode = _118[0], setDeletePasscode = _118[1];
|
|
359
|
+
var _119 = (0, react_1.useState)(""), deletePasscodeInput = _119[0], setDeletePasscodeInput = _119[1];
|
|
360
|
+
var _120 = (0, react_1.useState)(""), deleteFeedId = _120[0], setDeleteFeedId = _120[1];
|
|
362
361
|
//INFO : Used by List Organise
|
|
363
362
|
// INFO: Internal sort state that overrides props.organise?.sort when
|
|
364
363
|
// persistViewState is enabled and a persisted sort exists
|
|
365
|
-
var
|
|
366
|
-
var
|
|
367
|
-
var
|
|
368
|
-
var
|
|
364
|
+
var _121 = (0, react_1.useState)((_l = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _l !== void 0 ? _l : undefined), persistedSort = _121[0], setPersistedSort = _121[1];
|
|
365
|
+
var _122 = (0, react_1.useState)(false), filterDraft = _122[0], setFilterDraft = _122[1];
|
|
366
|
+
var _123 = (0, react_1.useState)(false), addTabModal = _123[0], setAddTabModal = _123[1];
|
|
367
|
+
var _124 = (0, react_1.useState)(-1), editTabIndex = _124[0], setEditTabIndex = _124[1];
|
|
369
368
|
//INFO : resolve the initial tab synchronously so the mount cond is already
|
|
370
369
|
// tab-scoped — an empty initial tab caused a second wasted list fetch
|
|
371
|
-
var
|
|
370
|
+
var _125 = (0, react_1.useState)(function () {
|
|
372
371
|
var _a, _b;
|
|
373
372
|
return (0, listModule_1.renderSelectedRefreshTab)(props.localURLEndpoint, resolvedType, props.collectionId, props.id, (_a = props.organise) === null || _a === void 0 ? void 0 : _a.extendedTabs, (_b = props.organise) === null || _b === void 0 ? void 0 : _b.viewId);
|
|
374
|
-
}), selectedTab =
|
|
375
|
-
var
|
|
373
|
+
}), selectedTab = _125[0], setSelectedTab = _125[1];
|
|
374
|
+
var _126 = (0, react_1.useState)("dayGridMonth"), calendarView = _126[0], setCalendarView = _126[1];
|
|
376
375
|
// INFO: bareNewDTW calendar viewSwitch mode — drives the NewCalendar variant
|
|
377
376
|
// (calendarView above drives the matching range query)
|
|
378
|
-
var
|
|
379
|
-
var
|
|
377
|
+
var _127 = (0, react_1.useState)("month"), newCalendarViewMode = _127[0], setNewCalendarViewMode = _127[1];
|
|
378
|
+
var _128 = (0, react_1.useState)(new Date()), calendarTabMonth = _128[0], setCalendarTabMonth = _128[1];
|
|
380
379
|
// INFO: defaultViewSwitch picks the opening view only — the tab re-inits
|
|
381
380
|
// whenever its settings change, and that must not undo the user's switch
|
|
382
381
|
var calendarViewInitRef = (0, react_1.useRef)(false);
|
|
383
|
-
var
|
|
384
|
-
var
|
|
385
|
-
var
|
|
386
|
-
var
|
|
387
|
-
var _131 = (0, react_1.useState)({
|
|
382
|
+
var _129 = (0, react_1.useState)(true), kanbanDroppable = _129[0], setKanbanDroppable = _129[1];
|
|
383
|
+
var _130 = (0, react_1.useState)([]), kanbanOptions = _130[0], setKanbanOptions = _130[1];
|
|
384
|
+
var _131 = (0, react_1.useState)(false), batchUpdateModal = _131[0], setBatchUpdateModal = _131[1];
|
|
385
|
+
var _132 = (0, react_1.useState)({
|
|
388
386
|
columnId: "",
|
|
389
387
|
columnData: {},
|
|
390
|
-
}), batchUpdateData =
|
|
391
|
-
var
|
|
388
|
+
}), batchUpdateData = _132[0], setBatchUpdateData = _132[1];
|
|
389
|
+
var _133 = (0, react_1.useState)(function () {
|
|
392
390
|
var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
|
|
393
391
|
if (!persistedState)
|
|
394
392
|
return baseModel;
|
|
@@ -414,8 +412,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
414
412
|
});
|
|
415
413
|
}
|
|
416
414
|
return model;
|
|
417
|
-
}), structure =
|
|
418
|
-
var
|
|
415
|
+
}), structure = _133[0], setStructure = _133[1];
|
|
416
|
+
var _134 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _134[0], setAdditionalQuery = _134[1];
|
|
419
417
|
// INFO: State for user-configurable flex filters (Monday.com-style)
|
|
420
418
|
// INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
|
|
421
419
|
var defaultFlexFilterRow = [
|
|
@@ -426,9 +424,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
426
424
|
value: undefined,
|
|
427
425
|
},
|
|
428
426
|
];
|
|
429
|
-
var
|
|
427
|
+
var _135 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
430
428
|
? persistedState.flexFilters
|
|
431
|
-
: defaultFlexFilterRow), flexFilters =
|
|
429
|
+
: defaultFlexFilterRow), flexFilters = _135[0], setFlexFilters = _135[1];
|
|
432
430
|
// INFO: always-current mirror of flexFilters, read by the imperative apply/
|
|
433
431
|
// clear methods so chained calls in one tick aren't stale.
|
|
434
432
|
var flexFiltersRef = (0, react_1.useRef)(flexFilters);
|
|
@@ -441,74 +439,76 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
441
439
|
}, [flexFilters]);
|
|
442
440
|
// INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
|
|
443
441
|
// to prevent API calls on every keystroke when typing in value inputs
|
|
444
|
-
var
|
|
442
|
+
var _136 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
445
443
|
? persistedState.flexFilters
|
|
446
|
-
: defaultFlexFilterRow), flexFiltersDebounced =
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
var
|
|
450
|
-
var
|
|
444
|
+
: defaultFlexFilterRow), flexFiltersDebounced = _136[0], setFlexFiltersDebounced = _136[1];
|
|
445
|
+
// INFO: the filter rows of the export being set up — started from the
|
|
446
|
+
// list's own when the export opens, so changing them leaves the list as it is
|
|
447
|
+
var _137 = (0, react_1.useState)(defaultFlexFilterRow), exportFlexFilters = _137[0], setExportFlexFilters = _137[1];
|
|
448
|
+
var _138 = (0, react_1.useState)({}), flexFilterReferenceOptions = _138[0], setFlexFilterReferenceOptions = _138[1];
|
|
449
|
+
var _139 = (0, react_1.useState)({}), flexFilterReferenceSearch = _139[0], setFlexFilterReferenceSearch = _139[1];
|
|
450
|
+
var _140 = (0, react_1.useState)(false), flexFilterModalOpen = _140[0], setFlexFilterModalOpen = _140[1];
|
|
451
|
+
var _141 = (0, react_1.useState)(false), viewSettingsModalOpen = _141[0], setViewSettingsModalOpen = _141[1];
|
|
451
452
|
// INFO: Columns the end user chose to hide (bareSettings.bareViewSettings).
|
|
452
453
|
// Deliberately kept out of `structure`: the props-sync effect below resets
|
|
453
454
|
// structure to props.model whenever props change, which would wipe the
|
|
454
455
|
// choice, and the persist effect derives schema-level hiddenColumnIds from
|
|
455
456
|
// structure — writing user hides there would blur the two concepts.
|
|
456
|
-
var
|
|
457
|
-
var
|
|
458
|
-
var
|
|
459
|
-
var
|
|
457
|
+
var _142 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _142[0], setUserHiddenColumnIds = _142[1];
|
|
458
|
+
var _143 = (0, react_1.useState)(""), columnSearch = _143[0], setColumnSearch = _143[1];
|
|
459
|
+
var _144 = (0, react_1.useState)([]), savedViews = _144[0], setSavedViews = _144[1];
|
|
460
|
+
var _145 = (0, react_1.useState)(null), activeSavedViewId = _145[0], setActiveSavedViewId = _145[1];
|
|
460
461
|
// INFO: null while the name box is closed
|
|
461
|
-
var
|
|
462
|
-
var
|
|
463
|
-
var
|
|
462
|
+
var _146 = (0, react_1.useState)(null), savedViewName = _146[0], setSavedViewName = _146[1];
|
|
463
|
+
var _147 = (0, react_1.useState)(null), deletingSavedViewId = _147[0], setDeletingSavedViewId = _147[1];
|
|
464
|
+
var _148 = (0, react_1.useState)(null), draggingColumnId = _148[0], setDraggingColumnId = _148[1];
|
|
464
465
|
var columnRowRefs = (0, react_1.useRef)({});
|
|
465
466
|
//INFO : Used by Auth
|
|
466
|
-
var
|
|
467
|
+
var _149 = (0, react_1.useState)({
|
|
467
468
|
email: "",
|
|
468
469
|
google: "",
|
|
469
470
|
phone: "",
|
|
470
471
|
disabled: false,
|
|
471
472
|
create: false,
|
|
472
|
-
}), authMethods =
|
|
473
|
-
var
|
|
473
|
+
}), authMethods = _149[0], setAuthMethods = _149[1];
|
|
474
|
+
var _150 = (0, react_1.useState)(""), selectedAuthMethod = _150[0], setSelectedAuthMethod = _150[1];
|
|
474
475
|
// INFO: the sign-in check of a users datasheet's record is running; the
|
|
475
476
|
// panel shows a spinner rather than nothing, which read as "no login"
|
|
476
|
-
var
|
|
477
|
+
var _151 = (0, react_1.useState)(false), authLoading = _151[0], setAuthLoading = _151[1];
|
|
477
478
|
// INFO: a delete is running — the ref answers a second tap at once, before
|
|
478
479
|
// the state has rendered, and the state disables the confirm button
|
|
479
480
|
var deletingRef = (0, react_1.useRef)(false);
|
|
480
|
-
var
|
|
481
|
+
var _152 = (0, react_1.useState)(false), deleting = _152[0], setDeleting = _152[1];
|
|
481
482
|
// INFO: Used by Activity Log
|
|
482
|
-
var
|
|
483
|
-
var
|
|
483
|
+
var _153 = (0, react_1.useState)(false), activityModal = _153[0], setActivityModal = _153[1];
|
|
484
|
+
var _154 = (0, react_1.useState)(""), activityId = _154[0], setActivityId = _154[1];
|
|
484
485
|
//INFO : Used by Export
|
|
485
|
-
var
|
|
486
|
-
var
|
|
487
|
-
var
|
|
488
|
-
var
|
|
489
|
-
var
|
|
490
|
-
var
|
|
491
|
-
var
|
|
492
|
-
var
|
|
493
|
-
var
|
|
494
|
-
var
|
|
495
|
-
var
|
|
496
|
-
var
|
|
497
|
-
var
|
|
498
|
-
var
|
|
499
|
-
var
|
|
500
|
-
var _168 = (0, react_1.useState)(-1), queryIndex = _168[0], setQueryIndex = _168[1];
|
|
486
|
+
var _155 = (0, react_1.useState)(null), csvFile = _155[0], setCSVFile = _155[1];
|
|
487
|
+
var _156 = (0, react_1.useState)([]), csvFileData = _156[0], setCSVFileData = _156[1];
|
|
488
|
+
var _157 = (0, react_1.useState)(0), stepCSVIndex = _157[0], setStepCSVIndex = _157[1];
|
|
489
|
+
var _158 = (0, react_1.useState)({}), listCSVMapAttribute = _158[0], setListCSVMapAttribute = _158[1];
|
|
490
|
+
var _159 = (0, react_1.useState)({}), listCSVObjAttribute = _159[0], setListCSVObjAttribute = _159[1];
|
|
491
|
+
var _160 = (0, react_1.useState)([]), csvAPIAttribute = _160[0], setCSVAPIAttribute = _160[1];
|
|
492
|
+
var _161 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _161[0], setExportCSVEmail = _161[1];
|
|
493
|
+
var _162 = (0, react_1.useState)(((_r = (_q = props.organise) === null || _q === void 0 ? void 0 : _q.exportSettings) === null || _r === void 0 ? void 0 : _r.defaultExportPDFName) || ""), exportPDFTitle = _162[0], setExportPDFTitle = _162[1];
|
|
494
|
+
var _163 = (0, react_1.useState)(false), exportPDFLoading = _163[0], setExportPDFLoading = _163[1];
|
|
495
|
+
var _164 = (0, react_1.useState)(false), exportReadPDFLoading = _164[0], setExportReadPDFLoading = _164[1];
|
|
496
|
+
var _165 = (0, react_1.useState)((_u = (_t = (_s = props.organise) === null || _s === void 0 ? void 0 : _s.exportSettings) === null || _t === void 0 ? void 0 : _t.sumColumnId) !== null && _u !== void 0 ? _u : []), exportSumAttributeIds = _165[0], setExportSumAttributeIds = _165[1];
|
|
497
|
+
var _166 = (0, react_1.useState)((_x = (_w = (_v = props.organise) === null || _v === void 0 ? void 0 : _v.exportSettings) === null || _w === void 0 ? void 0 : _w.hideSubItems) !== null && _x !== void 0 ? _x : false), hideSubItems = _166[0], setHideSubItems = _166[1];
|
|
498
|
+
var _167 = (0, react_1.useState)([]), importTableData = _167[0], setImportTableData = _167[1];
|
|
499
|
+
var _168 = (0, react_1.useState)([]), queryList = _168[0], setQueryList = _168[1];
|
|
500
|
+
var _169 = (0, react_1.useState)(undefined), allQueryList = _169[0], setAllQueryList = _169[1];
|
|
501
501
|
// INFO: a restored state wins over the prop; its "" is a list the user
|
|
502
502
|
// ungrouped, so it opens ungrouped
|
|
503
|
-
var
|
|
503
|
+
var _170 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.groupBy) !== undefined
|
|
504
504
|
? persistedState.groupBy || undefined
|
|
505
|
-
: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId =
|
|
505
|
+
: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _170[0], setGroupId = _170[1];
|
|
506
506
|
// INFO: Monday-board per-group paging. Keyed by the group key that
|
|
507
507
|
// handleBuildNewTableGroups() produces (a list option or "Unknown/No Value").
|
|
508
508
|
// Each group tracks its own loaded cursor + total so it can lazily load its
|
|
509
509
|
// next page as the user scrolls inside that band, independent of every other
|
|
510
510
|
// group. Only used when renderCheckGroupPaging() is true.
|
|
511
|
-
var
|
|
511
|
+
var _171 = (0, react_1.useState)({}), groupPageState = _171[0], setGroupPageState = _171[1];
|
|
512
512
|
// INFO: read fresh inside the async per-group fetch so chained scroll fires
|
|
513
513
|
// in one tick do not re-fetch an already in-flight page.
|
|
514
514
|
var groupPageStateRef = (0, react_1.useRef)({});
|
|
@@ -517,59 +517,59 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
517
517
|
// list was re-read (new search, filter, sort or grouping) is dropped on
|
|
518
518
|
// arrival instead of appending rows that belong to the old list
|
|
519
519
|
var groupPagingGenRef = (0, react_1.useRef)(0);
|
|
520
|
-
var
|
|
521
|
-
var
|
|
520
|
+
var _172 = (0, react_1.useState)(""), readTabSection = _172[0], setReadTabSection = _172[1];
|
|
521
|
+
var _173 = (0, react_1.useState)(false), readFloatingNav = _173[0], setReadFloatingNav = _173[1];
|
|
522
522
|
var readTabSectionRefs = (0, react_1.useRef)({});
|
|
523
523
|
//INFO : Used by Read
|
|
524
524
|
//INFO : Used by Update
|
|
525
|
-
var
|
|
526
|
-
var
|
|
527
|
-
var
|
|
528
|
-
var
|
|
529
|
-
var
|
|
530
|
-
var
|
|
531
|
-
var
|
|
525
|
+
var _174 = (0, react_1.useState)(false), modalVisible = _174[0], setModalVisible = _174[1];
|
|
526
|
+
var _175 = (0, react_1.useState)(false), deleteModal = _175[0], setDeleteModal = _175[1];
|
|
527
|
+
var _176 = (0, react_1.useState)(false), excelModal = _176[0], setExcelModal = _176[1];
|
|
528
|
+
var _177 = (0, react_1.useState)(false), exportExcel = _177[0], setExportExcel = _177[1];
|
|
529
|
+
var _178 = (0, react_1.useState)(""), exportType = _178[0], setExportType = _178[1];
|
|
530
|
+
var _179 = (0, react_1.useState)(false), exportQR = _179[0], setExportQR = _179[1];
|
|
531
|
+
var _180 = (0, react_1.useState)(function () {
|
|
532
532
|
var _a, _b;
|
|
533
533
|
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
534
|
return firstTabId;
|
|
535
|
-
}), activeTab =
|
|
536
|
-
var
|
|
537
|
-
var
|
|
538
|
-
var
|
|
539
|
-
var
|
|
540
|
-
var
|
|
541
|
-
var
|
|
542
|
-
var
|
|
535
|
+
}), activeTab = _180[0], setActiveTab = _180[1];
|
|
536
|
+
var _181 = (0, react_1.useState)(false), signatureSigning = _181[0], setSignatureSigning = _181[1];
|
|
537
|
+
var _182 = (0, react_1.useState)({}), selectedData = _182[0], setSelectedData = _182[1];
|
|
538
|
+
var _183 = (0, react_1.useState)(""), selectedObjectStructureId = _183[0], setSelectedObjectStructureId = _183[1];
|
|
539
|
+
var _184 = (0, react_1.useState)(""), selectedObjectId = _184[0], setSelectedObjectId = _184[1];
|
|
540
|
+
var _185 = (0, react_1.useState)(""), selectedListAddressId = _185[0], setSelectedListAddressId = _185[1];
|
|
541
|
+
var _186 = (0, react_1.useState)(-1), selectedListAddressIndex = _186[0], setSelectedListAddressIndex = _186[1];
|
|
542
|
+
var _187 = (0, react_1.useState)({
|
|
543
543
|
lat: 0,
|
|
544
544
|
lng: 0,
|
|
545
545
|
name: "",
|
|
546
|
-
}), selectedListAddress =
|
|
547
|
-
var
|
|
548
|
-
var
|
|
549
|
-
var
|
|
550
|
-
var
|
|
551
|
-
var
|
|
552
|
-
var
|
|
553
|
-
var
|
|
554
|
-
var
|
|
555
|
-
var
|
|
556
|
-
var
|
|
546
|
+
}), selectedListAddress = _187[0], setSelectedListAddress = _187[1];
|
|
547
|
+
var _188 = (0, react_1.useState)({}), selectedObjectData = _188[0], setSelectedObjectData = _188[1];
|
|
548
|
+
var _189 = (0, react_1.useState)(null), objectCellEdit = _189[0], setObjectCellEdit = _189[1];
|
|
549
|
+
var _190 = (0, react_1.useState)(false), referenceLoading = _190[0], setReferenceLoading = _190[1];
|
|
550
|
+
var _191 = (0, react_1.useState)({}), referencesOptions = _191[0], setReferencesOptions = _191[1];
|
|
551
|
+
var _192 = (0, react_1.useState)({}), referencesDetails = _192[0], setReferencesDetails = _192[1];
|
|
552
|
+
var _193 = (0, react_1.useState)({}), listReferencesOptions = _193[0], setListReferencesOptions = _193[1];
|
|
553
|
+
var _194 = (0, react_1.useState)({}), referenceDeleteTableData = _194[0], setReferenceDeleteTableData = _194[1];
|
|
554
|
+
var _195 = (0, react_1.useState)([]), relatedSections = _195[0], setRelatedSections = _195[1];
|
|
555
|
+
var _196 = (0, react_1.useState)(0), referenceDeleteIndex = _196[0], setReferenceDeleteIndex = _196[1];
|
|
556
|
+
var _197 = (0, react_1.useState)({
|
|
557
557
|
id: "",
|
|
558
558
|
name: "",
|
|
559
559
|
type: "string",
|
|
560
|
-
}), referenceCreationModal =
|
|
561
|
-
var
|
|
562
|
-
var
|
|
560
|
+
}), referenceCreationModal = _197[0], setReferenceCreationModal = _197[1];
|
|
561
|
+
var _198 = (0, react_1.useState)({}), referenceModelSchema = _198[0], setReferenceSchema = _198[1];
|
|
562
|
+
var _199 = (0, react_1.useState)([]), kanbanChecked = _199[0], setKanbanChecked = _199[1];
|
|
563
563
|
//INFO : Offline
|
|
564
|
-
var
|
|
565
|
-
var
|
|
564
|
+
var _200 = (0, react_1.useState)(0), offlineDataLength = _200[0], setOfflineDataLength = _200[1];
|
|
565
|
+
var _201 = (0, react_1.useState)(false), offlineModal = _201[0], setOfflineModal = _201[1];
|
|
566
566
|
// INFO: live-stream state — driven by socket connection and navigator.onLine
|
|
567
|
-
var
|
|
568
|
-
var
|
|
567
|
+
var _202 = (0, react_1.useState)(false), isLive = _202[0], setIsLive = _202[1];
|
|
568
|
+
var _203 = (0, react_1.useState)(false), isLiveOffline = _203[0], setIsLiveOffline = _203[1];
|
|
569
569
|
// INFO: true when navigator is offline — used to switch ReadQueryHoc between
|
|
570
570
|
// server reads (online, full pagination) and IndexedDB reads (offline, cached data).
|
|
571
571
|
// Independent of SSE status so it works even when bareSocketName is not set.
|
|
572
|
-
var
|
|
572
|
+
var _204 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _204[0], setIsNetworkOffline = _204[1];
|
|
573
573
|
var previousType = (0, react_1.useRef)(null);
|
|
574
574
|
var previousSelectedData = (0, react_1.useRef)(null);
|
|
575
575
|
var scrollSentinelRef = (0, react_1.useRef)(null);
|
|
@@ -789,7 +789,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
789
789
|
var isSchemaHideMode = ((_10 = props.organise) === null || _10 === void 0 ? void 0 : _10.onChangeHide) ? true : false;
|
|
790
790
|
// INFO: rows per page is a view setting the user can change, so it starts from
|
|
791
791
|
// the persisted value and falls back to the consumer's limit
|
|
792
|
-
var
|
|
792
|
+
var _205 = (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 = _205[0], setPageLimit = _205[1];
|
|
793
793
|
var limit = pageLimit;
|
|
794
794
|
var isSavedViewsEnabled = !!((_13 = props.organise) === null || _13 === void 0 ? void 0 : _13.savedViews) && resolvedType === "list";
|
|
795
795
|
// INFO: an app that stores views takes over from this browser's storage, so
|
|
@@ -843,6 +843,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
843
843
|
var flexFilterStructure = isFormulaViewSupported
|
|
844
844
|
? structure
|
|
845
845
|
: structure.filter(function (eachModel) { return eachModel.type !== "formula"; });
|
|
846
|
+
// INFO: an export's filters run on the export server, which cannot work out
|
|
847
|
+
// a formula, so its rows leave formula columns out — a formula filter on
|
|
848
|
+
// the list still narrows the export, by the ids of the rows it kept
|
|
849
|
+
var exportFilterStructure = structure.filter(function (eachModel) { return eachModel.type !== "formula"; });
|
|
846
850
|
// INFO: every matching row of a formula view, unsorted — pages are cut
|
|
847
851
|
// from it locally, so paging does not read the collection again
|
|
848
852
|
// INFO: the formula sort and filter the row cap was last announced for
|
|
@@ -880,7 +884,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
880
884
|
displayRows: filtered.map(function (eachEntry) { return eachEntry.displayRow; }),
|
|
881
885
|
};
|
|
882
886
|
};
|
|
883
|
-
var
|
|
887
|
+
var _206 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _206.canUpdateRecord, canInlineUpdate = _206.canInlineUpdate, canBatchUpdate = _206.canBatchUpdate, canDeleteRecord = _206.canDeleteRecord;
|
|
884
888
|
var isEditor = ((_19 = props.edit) === null || _19 === void 0 ? void 0 : _19.allEditable) ? true : false;
|
|
885
889
|
var isOffline = (_20 = props.bareSettings) === null || _20 === void 0 ? void 0 : _20.bareOffline;
|
|
886
890
|
// INFO: when bareOfflineNetworkAware is true, the save path is also gated on
|
|
@@ -1245,8 +1249,61 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1245
1249
|
return (__assign(__assign({}, prev), (_a = {}, _a[columnId] = search, _a)));
|
|
1246
1250
|
});
|
|
1247
1251
|
};
|
|
1248
|
-
|
|
1252
|
+
// INFO: the export's own filter rows, handled like the list's but never
|
|
1253
|
+
// reading the list again — a reference column's options are shared with it
|
|
1254
|
+
var handleNewExportFilterRow = function () { return ({
|
|
1255
|
+
id: (0, uuid_1.v4)(),
|
|
1256
|
+
columnId: "",
|
|
1257
|
+
operator: "=",
|
|
1258
|
+
value: undefined,
|
|
1259
|
+
}); };
|
|
1260
|
+
var exportFlexActions = {
|
|
1261
|
+
handleAddFilter: function () {
|
|
1262
|
+
return setExportFlexFilters(function (previous) { return __spreadArray(__spreadArray([], previous, true), [
|
|
1263
|
+
handleNewExportFilterRow(),
|
|
1264
|
+
], false); });
|
|
1265
|
+
},
|
|
1266
|
+
handleRemoveFilter: function (filterId) {
|
|
1267
|
+
return setExportFlexFilters(function (previous) {
|
|
1268
|
+
var remaining = previous.filter(function (each) { return each.id !== filterId; });
|
|
1269
|
+
return remaining.length > 0 ? remaining : [handleNewExportFilterRow()];
|
|
1270
|
+
});
|
|
1271
|
+
},
|
|
1272
|
+
handleClearAllFilters: function () {
|
|
1273
|
+
return setExportFlexFilters([handleNewExportFilterRow()]);
|
|
1274
|
+
},
|
|
1275
|
+
handleColumnChange: function (filterId, columnId) {
|
|
1276
|
+
return setExportFlexFilters(function (previous) {
|
|
1277
|
+
return previous.map(function (each) {
|
|
1278
|
+
var _a, _b, _c;
|
|
1279
|
+
if (each.id !== filterId)
|
|
1280
|
+
return each;
|
|
1281
|
+
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 : ""];
|
|
1282
|
+
return __assign(__assign({}, each), { columnId: columnId, operator: (_c = operators === null || operators === void 0 ? void 0 : operators[0]) !== null && _c !== void 0 ? _c : "=", value: undefined });
|
|
1283
|
+
});
|
|
1284
|
+
});
|
|
1285
|
+
},
|
|
1286
|
+
handleOperatorChange: function (filterId, operator) {
|
|
1287
|
+
return setExportFlexFilters(function (previous) {
|
|
1288
|
+
return previous.map(function (each) {
|
|
1289
|
+
return each.id === filterId ? __assign(__assign({}, each), { operator: operator, value: undefined }) : each;
|
|
1290
|
+
});
|
|
1291
|
+
});
|
|
1292
|
+
},
|
|
1293
|
+
handleValueChange: function (filterId, value) {
|
|
1294
|
+
return setExportFlexFilters(function (previous) {
|
|
1295
|
+
return previous.map(function (each) {
|
|
1296
|
+
return each.id === filterId ? __assign(__assign({}, each), { value: value }) : each;
|
|
1297
|
+
});
|
|
1298
|
+
});
|
|
1299
|
+
},
|
|
1300
|
+
handleReferenceOptionsLoaded: handleFlexFilterReferenceOptionsLoaded,
|
|
1301
|
+
handleReferenceSearch: handleFlexFilterReferenceSearch,
|
|
1302
|
+
};
|
|
1303
|
+
// INFO: flexRows defaults to the list's filters; an export passes its own
|
|
1304
|
+
var renderImpSearchFilterConditions = function (flexRows) {
|
|
1249
1305
|
var _a;
|
|
1306
|
+
if (flexRows === void 0) { flexRows = flexFiltersDebounced; }
|
|
1250
1307
|
var query = (0, listModule_1.renderSearchFilterConditions)(structure, devSettings, {
|
|
1251
1308
|
filterSearchParams: filterSearchParams,
|
|
1252
1309
|
filterSelection: filterSelection,
|
|
@@ -1255,10 +1312,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1255
1312
|
filterDraft: filterDraft,
|
|
1256
1313
|
}, additionalQuery !== null && additionalQuery !== void 0 ? additionalQuery : [], (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareListFilterQuery, selectedTab);
|
|
1257
1314
|
// INFO: Merge flex filter conditions into the query array (uses debounced state to avoid API calls on every keystroke)
|
|
1258
|
-
if (
|
|
1315
|
+
if (flexRows.length > 0) {
|
|
1259
1316
|
// INFO: formula conditions never reach the server — the field is not
|
|
1260
1317
|
// stored — and are applied to the rows by handleApplyFormulaView
|
|
1261
|
-
var flexQuery = (0, listModule_1.renderFlexFilterConditions)(
|
|
1318
|
+
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
1319
|
if (flexQuery.length > 0) {
|
|
1263
1320
|
if (query) {
|
|
1264
1321
|
query = __spreadArray(__spreadArray([], query, true), flexQuery, true);
|
|
@@ -2113,6 +2170,17 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
2113
2170
|
if (props.devSettings.schemaReference)
|
|
2114
2171
|
setReferenceSchema(props.devSettings.schemaReference);
|
|
2115
2172
|
}, [props.devSettings.schemaReference]);
|
|
2173
|
+
// INFO: an export starts from the filters the list shows, formula rows
|
|
2174
|
+
// aside (see exportFilterStructure)
|
|
2175
|
+
(0, react_1.useEffect)(function () {
|
|
2176
|
+
if (!exportExcel && !exportQR)
|
|
2177
|
+
return;
|
|
2178
|
+
var rows = flexFiltersRef.current.filter(function (eachFilter) { return !formulaColumnIds.includes(eachFilter.columnId); });
|
|
2179
|
+
setExportFlexFilters(rows.length > 0
|
|
2180
|
+
? JSON.parse(JSON.stringify(rows))
|
|
2181
|
+
: [handleNewExportFilterRow()]);
|
|
2182
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2183
|
+
}, [exportExcel, exportQR]);
|
|
2116
2184
|
(0, react_1.useEffect)(function () {
|
|
2117
2185
|
var _a;
|
|
2118
2186
|
var newQuery = renderImpSearchFilterConditions();
|
|
@@ -6570,14 +6638,14 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6570
6638
|
}); };
|
|
6571
6639
|
var handleExportCSVData = function (downloadLinkOnly, printOnly) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6572
6640
|
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 (
|
|
6641
|
+
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;
|
|
6642
|
+
return __generator(this, function (_2) {
|
|
6643
|
+
switch (_2.label) {
|
|
6576
6644
|
case 0:
|
|
6577
|
-
|
|
6645
|
+
_2.trys.push([0, 5, , 6]);
|
|
6578
6646
|
setLoading(true);
|
|
6579
|
-
exportQueryList =
|
|
6580
|
-
if ((
|
|
6647
|
+
exportQueryList = ((_a = renderImpSearchFilterConditions(exportFlexFilters)) !== null && _a !== void 0 ? _a : []).filter(function (eachQuery) { return eachQuery.type !== "search"; });
|
|
6648
|
+
if ((_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareCSVExportSettings) {
|
|
6581
6649
|
if (props.bareSettings.bareListFilterQuery)
|
|
6582
6650
|
exportQueryList.push.apply(exportQueryList, props.bareSettings.bareListFilterQuery);
|
|
6583
6651
|
}
|
|
@@ -6607,20 +6675,20 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6607
6675
|
apiEndpoint += "/handleExportCSV";
|
|
6608
6676
|
reqData = __assign(__assign({ spaceId: props.collectionId, query: exportQueryList, userData: {
|
|
6609
6677
|
userEmail: downloadLinkOnly ? "" : exportCSVEmail,
|
|
6610
|
-
userName: (
|
|
6611
|
-
}, downloadLinkOnly: downloadLinkOnly, exportType: exportType === "excel" ? "excel" : undefined, excludeReferenceId: (
|
|
6678
|
+
userName: (_d = (_c = props.devSettings.currentUser) === null || _c === void 0 ? void 0 : _c.userName) !== null && _d !== void 0 ? _d : "",
|
|
6679
|
+
}, 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
6680
|
public: true,
|
|
6613
6681
|
publicLink: window.location.origin,
|
|
6614
6682
|
})), { hideSubItems: hideSubItems });
|
|
6615
|
-
return [4 /*yield*/, ((
|
|
6683
|
+
return [4 /*yield*/, ((_u = props.lib) === null || _u === void 0 ? void 0 : _u.axios({
|
|
6616
6684
|
url: apiEndpoint,
|
|
6617
6685
|
method: "post",
|
|
6618
6686
|
data: { data: reqData },
|
|
6619
6687
|
}))];
|
|
6620
6688
|
case 1:
|
|
6621
|
-
res =
|
|
6622
|
-
if (!(downloadLinkOnly && ((
|
|
6623
|
-
dataList = (
|
|
6689
|
+
res = _2.sent();
|
|
6690
|
+
if (!(downloadLinkOnly && ((_v = res === null || res === void 0 ? void 0 : res.data) === null || _v === void 0 ? void 0 : _v.dataList))) return [3 /*break*/, 4];
|
|
6691
|
+
dataList = (_w = res === null || res === void 0 ? void 0 : res.data) === null || _w === void 0 ? void 0 : _w.dataList;
|
|
6624
6692
|
if (!(dataList && typeof dataList === "object")) return [3 /*break*/, 4];
|
|
6625
6693
|
csvDownloadLink = Object.values(dataList)[0];
|
|
6626
6694
|
if (!(exportType === "csv" ||
|
|
@@ -6632,10 +6700,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6632
6700
|
if (!(exportType === "pdf" ||
|
|
6633
6701
|
printOnly ||
|
|
6634
6702
|
exportType === "print")) return [3 /*break*/, 4];
|
|
6635
|
-
return [4 /*yield*/, (0, listModule_1.handleExportPDF)(csvDownloadLink, exportPDFTitle, printOnly, (
|
|
6703
|
+
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
6704
|
case 3:
|
|
6637
|
-
|
|
6638
|
-
|
|
6705
|
+
_2.sent();
|
|
6706
|
+
_2.label = 4;
|
|
6639
6707
|
case 4:
|
|
6640
6708
|
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
6709
|
if (downloadLinkOnly)
|
|
@@ -6649,10 +6717,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
6649
6717
|
}
|
|
6650
6718
|
setLoading(false);
|
|
6651
6719
|
handlePopUpModal(false);
|
|
6652
|
-
setExportCSVEmail((
|
|
6720
|
+
setExportCSVEmail((_1 = (_0 = props.devSettings.currentUser) === null || _0 === void 0 ? void 0 : _0.userEmail) !== null && _1 !== void 0 ? _1 : "");
|
|
6653
6721
|
return [3 /*break*/, 6];
|
|
6654
6722
|
case 5:
|
|
6655
|
-
err_27 =
|
|
6723
|
+
err_27 = _2.sent();
|
|
6656
6724
|
setNotification({
|
|
6657
6725
|
type: true,
|
|
6658
6726
|
title: "Export Failed",
|
|
@@ -7038,43 +7106,6 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7038
7106
|
}
|
|
7039
7107
|
});
|
|
7040
7108
|
}); };
|
|
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
7109
|
//=====================================================================================
|
|
7079
7110
|
//SECTION: Handle Utils
|
|
7080
7111
|
//=====================================================================================
|
|
@@ -7139,16 +7170,18 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7139
7170
|
var header = Object.keys(csvFileData[0]);
|
|
7140
7171
|
var dataList = [];
|
|
7141
7172
|
csvAPIAttribute.map(function (eachAttribute) {
|
|
7173
|
+
var _a, _b;
|
|
7142
7174
|
dataList.push({
|
|
7143
7175
|
header: header[eachAttribute.ori],
|
|
7144
|
-
|
|
7176
|
+
// INFO: the field's name, as the mapping step showed it
|
|
7177
|
+
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
7178
|
});
|
|
7146
7179
|
return null;
|
|
7147
7180
|
});
|
|
7148
7181
|
return dataList;
|
|
7149
7182
|
};
|
|
7150
7183
|
var renderStepCSV = function () {
|
|
7151
|
-
var _a;
|
|
7184
|
+
var _a, _b;
|
|
7152
7185
|
switch (stepCSVIndex) {
|
|
7153
7186
|
case 0:
|
|
7154
7187
|
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 +7197,47 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7164
7197
|
}
|
|
7165
7198
|
return "";
|
|
7166
7199
|
});
|
|
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
|
-
|
|
7200
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, csvFileData.length > 0 && (
|
|
7201
|
+
// INFO: one compact row per Excel column — its header, then the
|
|
7202
|
+
// field it fills — so a wide sheet maps without a long form
|
|
7203
|
+
react_1.default.createElement("div", { className: "pb-32" },
|
|
7204
|
+
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") },
|
|
7205
|
+
react_1.default.createElement("span", null, "Excel column"),
|
|
7206
|
+
react_1.default.createElement("span", null),
|
|
7207
|
+
react_1.default.createElement("span", null, "Field")),
|
|
7208
|
+
Object.entries(csvFileData[0]).map(function (eachRow, index) {
|
|
7209
|
+
var _a;
|
|
7210
|
+
var eachKey = eachRow[0];
|
|
7211
|
+
if (!eachKey)
|
|
7212
|
+
return null;
|
|
7213
|
+
var clonedListValue = JSON.parse(JSON.stringify(listCSVMapAttribute));
|
|
7214
|
+
var selectedObjectModel = structure.find(function (eachModel) {
|
|
7215
|
+
return ((eachModel.id === clonedListValue[index] &&
|
|
7216
|
+
eachModel.type === "listObject") ||
|
|
7217
|
+
(eachModel.id === clonedListValue[index] &&
|
|
7218
|
+
eachModel.type === "object"));
|
|
7219
|
+
});
|
|
7220
|
+
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" },
|
|
7221
|
+
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),
|
|
7222
|
+
react_1.default.createElement(outline_1.ArrowRightIcon, { className: "h-4 w-4 text-gray-400", "aria-hidden": "true" }),
|
|
7223
|
+
react_1.default.createElement("div", { className: "flex min-w-0 gap-x-2" },
|
|
7224
|
+
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) {
|
|
7225
|
+
var clonedListValueAttribute = JSON.parse(JSON.stringify(listCSVMapAttribute));
|
|
7226
|
+
clonedListValueAttribute[index] = value;
|
|
7227
|
+
setListCSVMapAttribute(clonedListValueAttribute);
|
|
7228
|
+
} }),
|
|
7229
|
+
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) {
|
|
7230
|
+
var clonedListObjectValueAttribute = JSON.parse(JSON.stringify(listCSVObjAttribute));
|
|
7231
|
+
clonedListObjectValueAttribute[index] = value;
|
|
7232
|
+
setListCSVObjAttribute(clonedListObjectValueAttribute);
|
|
7233
|
+
} })))));
|
|
7234
|
+
})))));
|
|
7192
7235
|
case 2:
|
|
7193
7236
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
7194
7237
|
react_1.default.createElement("div", { className: "flex flex-col mx-auto mt-2" }, "Mapped Column"),
|
|
7195
7238
|
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: "
|
|
7239
|
+
{ key: "header", title: "Excel column" },
|
|
7240
|
+
{ key: "detail", title: "Field" },
|
|
7198
7241
|
] })));
|
|
7199
7242
|
case 3:
|
|
7200
7243
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -7207,40 +7250,6 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7207
7250
|
return null;
|
|
7208
7251
|
}
|
|
7209
7252
|
};
|
|
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
7253
|
//=====================================================================================
|
|
7245
7254
|
//SECTION: Render CRUD
|
|
7246
7255
|
//=====================================================================================
|
|
@@ -7943,7 +7952,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
7943
7952
|
else if (type === "list") {
|
|
7944
7953
|
var listActionBtns = [];
|
|
7945
7954
|
if (isActivityLog) {
|
|
7946
|
-
listActionBtns.push(react_1.default.createElement(iconButton_1.IconButton, { icon: react_1.default.createElement(HeroIcons.ClockIcon, { className: "h-7 w-7 text-white" }), onClick: function () {
|
|
7955
|
+
listActionBtns.push(react_1.default.createElement(iconButton_1.IconButton, { icon: react_1.default.createElement(HeroIcons.ClockIcon, { className: "h-7 w-7 text-white" }), onClick: function () {
|
|
7956
|
+
setActivityId("");
|
|
7957
|
+
setActivityModal(true);
|
|
7958
|
+
}, background: "bg-primary-500 hover:bg-primary-600" }));
|
|
7947
7959
|
}
|
|
7948
7960
|
if (bareActionComponent) {
|
|
7949
7961
|
listActionBtns.push(bareActionComponent);
|
|
@@ -9645,6 +9657,14 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
9645
9657
|
// INFO: when bareNewDTW is enabled, render NewTable instead of legacy Table
|
|
9646
9658
|
if ((_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareNewDTW) {
|
|
9647
9659
|
return (react_1.default.createElement(newTable_1.NewTable, { darkModeBg: (_c = props.organise) === null || _c === void 0 ? void 0 : _c.darkModeBg, showId: showId, paginationType: renderResolvedPaginationType(), data: tableData, spaceData: spaceTableData !== null && spaceTableData !== void 0 ? spaceTableData : [], referencesOptions: listReferencesOptions, groups: handleBuildNewTableGroups(),
|
|
9660
|
+
// INFO: the bubble beside each record's title opens its comments and
|
|
9661
|
+
// logs, for anyone who can see the row — not only those who can edit
|
|
9662
|
+
onRowActivity: isActivityLog
|
|
9663
|
+
? function (id) {
|
|
9664
|
+
setActivityId(id);
|
|
9665
|
+
setActivityModal(true);
|
|
9666
|
+
}
|
|
9667
|
+
: undefined,
|
|
9648
9668
|
// INFO: per-group paging — scroll appends inside a band, page
|
|
9649
9669
|
// mode gives each band its own pager; undefined = bands as before
|
|
9650
9670
|
onGroupLoadMore: renderCheckGroupPaging() && renderCheckScrollMode()
|
|
@@ -10984,52 +11004,37 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10984
11004
|
}
|
|
10985
11005
|
else if (exportExcel || exportQR) {
|
|
10986
11006
|
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
|
-
} }))))));
|
|
11007
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
11008
|
+
react_1.default.createElement("div", null,
|
|
11009
|
+
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,
|
|
11010
|
+
react_1.default.createElement("p", null, "Click the button below to download."),
|
|
11011
|
+
(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); } })),
|
|
11012
|
+
(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) {
|
|
11013
|
+
setExportSumAttributeIds(value);
|
|
11014
|
+
} })))),
|
|
11015
|
+
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, {
|
|
11016
|
+
darkMode: (_r = props.organise) === null || _r === void 0 ? void 0 : _r.darkMode,
|
|
11017
|
+
darkModeBg: (_s = props.organise) === null || _s === void 0 ? void 0 : _s.darkModeBg,
|
|
11018
|
+
})),
|
|
11019
|
+
react_1.default.createElement("div", { className: "mt-3 flex items-center justify-between" },
|
|
11020
|
+
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"),
|
|
11021
|
+
react_1.default.createElement(toggle_1.Toggle, { text: "", direction: "right", value: hideSubItems, onClick: function () { return setHideSubItems(!hideSubItems); } })),
|
|
11022
|
+
react_1.default.createElement("div", { className: "flex justify-end mt-5 " },
|
|
11023
|
+
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 () {
|
|
11024
|
+
return __generator(this, function (_a) {
|
|
11025
|
+
switch (_a.label) {
|
|
11026
|
+
case 0: return [4 /*yield*/, exportCSVEmailInputRef.current.handleSubmit()];
|
|
11027
|
+
case 1:
|
|
11028
|
+
if (_a.sent()) {
|
|
11029
|
+
handleExportCSVData();
|
|
11030
|
+
}
|
|
11031
|
+
return [2 /*return*/];
|
|
11032
|
+
}
|
|
11033
|
+
});
|
|
11034
|
+
}); } })),
|
|
11035
|
+
react_1.default.createElement(button_1.Button, { type: "normal", text: "Download", size: "small", className: "ml-3", onClick: function () {
|
|
11036
|
+
return handleExportCSVData(true, exportType === "print");
|
|
11037
|
+
} })))));
|
|
11033
11038
|
}
|
|
11034
11039
|
else if (addTabModal) {
|
|
11035
11040
|
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 +11396,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
11391
11396
|
var _a, _b;
|
|
11392
11397
|
if (loading)
|
|
11393
11398
|
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
|
-
}
|
|
11399
|
+
handlePopUpModal(false);
|
|
11400
|
+
setExportCSVEmail((_b = (_a = props.devSettings.currentUser) === null || _a === void 0 ? void 0 : _a.userEmail) !== null && _b !== void 0 ? _b : "");
|
|
11400
11401
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) })),
|
|
11401
11402
|
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
11403
|
return (react_1.default.createElement(referenceModal_1.ReferenceModal, { referenceModelSchema: referenceModelSchema, referenceDataStructure: referenceCreationModal, devSettings: props.devSettings, handleCreateRefId: function (dataId) {
|
|
@@ -11434,17 +11435,20 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
11434
11435
|
}, onClose: function () {
|
|
11435
11436
|
setSelectedAuthMethod("");
|
|
11436
11437
|
} }),
|
|
11437
|
-
isActivityLog && (react_1.default.createElement(modal_1.Modal, { darkMode: (_93 = props.organise) === null || _93 === void 0 ? void 0 : _93.darkMode, darkModeBg: (_94 = props.organise) === null || _94 === void 0 ? void 0 : _94.darkModeBg, open: activityModal, title: "Activity Log", renderContent: function () {
|
|
11438
|
-
var _a, _b;
|
|
11439
|
-
return (react_1.default.createElement(activityModal_1.ActivityModal, { title: props.title && typeof props.title === "string"
|
|
11440
|
-
? props.title
|
|
11441
|
-
: "this collection", devSettings: props.devSettings, collectionId: props.collectionId, dataId: resolvedType === "read" ? ((_a = props.id) !== null && _a !== void 0 ? _a : "") : activityId, activityLog: (_b = props.edit) === null || _b === void 0 ? void 0 : _b.activityLog, model: structure }));
|
|
11442
|
-
}, maxWidth: "4xl", onClose: function () {
|
|
11443
|
-
setActivityModal(false);
|
|
11444
|
-
setActivityId("");
|
|
11445
|
-
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) })),
|
|
11446
11438
|
renderContent(),
|
|
11447
11439
|
renderReadDrawer(),
|
|
11440
|
+
isActivityLog &&
|
|
11441
|
+
typeof document !== "undefined" &&
|
|
11442
|
+
(0, react_dom_1.createPortal)(
|
|
11443
|
+
// INFO: z-50 lifts it over a Modal the table may sit in (z-40)
|
|
11444
|
+
react_1.default.createElement("div", { className: "relative z-50" },
|
|
11445
|
+
react_1.default.createElement(drawer_1.Drawer, { darkMode: (_93 = props.organise) === null || _93 === void 0 ? void 0 : _93.darkMode, darkModeBg: (_94 = props.organise) === null || _94 === void 0 ? void 0 : _94.darkModeBg, testId: "dt-activity-drawer", open: activityModal,
|
|
11446
|
+
// INFO: the record stays set while the drawer slides out — clearing it
|
|
11447
|
+
// would remount the hidden panel collection-wide and fetch again. The
|
|
11448
|
+
// toolbar's collection-wide button clears it when it opens.
|
|
11449
|
+
onClose: function () { return setActivityModal(false); }, anchor: "responsive", maxWidth: "2xl", maxHeight: "75", title: "Activity Log", content: react_1.default.createElement(activityModal_1.ActivityModal, { title: props.title && typeof props.title === "string"
|
|
11450
|
+
? props.title
|
|
11451
|
+
: "this collection", devSettings: props.devSettings, collectionId: props.collectionId, dataId: resolvedType === "read" ? ((_95 = props.id) !== null && _95 !== void 0 ? _95 : "") : activityId, activityLog: (_96 = props.edit) === null || _96 === void 0 ? void 0 : _96.activityLog, model: structure }) })), document.body),
|
|
11448
11452
|
renderScrollSentinel()));
|
|
11449
11453
|
});
|
|
11450
11454
|
//# sourceMappingURL=index.js.map
|