blixify-ui-web 1.2.124 → 1.2.126
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/chat/chatAnchor/index.d.ts.map +1 -1
- package/lib/components/chat/chatAnchor/index.js +10 -4
- package/lib/components/chat/chatAnchor/index.js.map +1 -1
- package/lib/components/chat/chatBase/index.d.ts +23 -0
- package/lib/components/chat/chatBase/index.d.ts.map +1 -1
- package/lib/components/chat/chatBase/index.js +266 -47
- package/lib/components/chat/chatBase/index.js.map +1 -1
- package/lib/components/chat/chatDashboard/index.d.ts +3 -1
- package/lib/components/chat/chatDashboard/index.d.ts.map +1 -1
- package/lib/components/chat/chatDashboard/index.js +47 -39
- package/lib/components/chat/chatDashboard/index.js.map +1 -1
- package/lib/components/data/dataTemplate/dataStateModel.d.ts +7 -1
- package/lib/components/data/dataTemplate/dataStateModel.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/dataStateModel.js.map +1 -1
- package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/index.js +260 -172
- package/lib/components/data/dataTemplate/index.js.map +1 -1
- package/lib/components/data/dataTemplate/viewStatePersistence.d.ts +1 -1
- package/lib/components/data/dataTemplate/viewStatePersistence.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/viewStatePersistence.js +10 -5
- package/lib/components/data/dataTemplate/viewStatePersistence.js.map +1 -1
- package/lib/components/display/newList/index.d.ts +4 -0
- package/lib/components/display/newList/index.d.ts.map +1 -1
- package/lib/components/display/newList/index.js +18 -13
- package/lib/components/display/newList/index.js.map +1 -1
- package/lib/tail.css +2 -2
- package/package.json +1 -1
|
@@ -200,10 +200,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
200
200
|
// Every read of the view type below uses resolvedType. The distinction matters
|
|
201
201
|
// most in effect dependency arrays — following props.type there would leave
|
|
202
202
|
// the list never refetching while the panel is open, which fails silently.
|
|
203
|
-
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;
|
|
203
|
+
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;
|
|
204
204
|
// INFO: the panel cannot navigate its way out — handleNavigate("read") is
|
|
205
205
|
// routed straight back into it — so expand-to-full-page is local state.
|
|
206
|
-
var
|
|
206
|
+
var _85 = (0, react_1.useState)(false), drawerPageView = _85[0], setDrawerPageView = _85[1];
|
|
207
207
|
// INFO: the panel keeps rendering the record it was opened with rather than
|
|
208
208
|
// live props. Without this, navigating back to the list would re-render the
|
|
209
209
|
// still-mounted panel as a second list behind the overlay.
|
|
@@ -285,18 +285,18 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
285
285
|
initialFilterReferenceDate: initialFilterReferenceDate,
|
|
286
286
|
};
|
|
287
287
|
};
|
|
288
|
-
var
|
|
288
|
+
var _86 = intialiseDefaultFilterValues(), initialFilterSearch = _86.initialFilterSearch, initialFilterSearchParams = _86.initialFilterSearchParams, initialFilterSelection = _86.initialFilterSelection, initialFilterReference = _86.initialFilterReference, initialFilterReferenceDate = _86.initialFilterReferenceDate;
|
|
289
289
|
// INFO: Persist view state hook — handles storage read/write for filter/sort/column state
|
|
290
|
-
var
|
|
290
|
+
var _87 = (0, viewStatePersistence_1.usePersistedViewState)({
|
|
291
291
|
mode: (_b = props.organise) === null || _b === void 0 ? void 0 : _b.persistViewState,
|
|
292
292
|
collectionId: props.collectionId,
|
|
293
293
|
persistKey: (_c = props.organise) === null || _c === void 0 ? void 0 : _c.persistKey,
|
|
294
294
|
type: resolvedType,
|
|
295
|
-
}), rawPersistedState =
|
|
295
|
+
}), rawPersistedState = _87.persistedState, isPersistEnabled = _87.isEnabled, handleSaveView = _87.handleSaveView, handleRegisterViewSnapshot = _87.handleRegisterViewSnapshot;
|
|
296
296
|
// INFO: drop stored filters/sort on removed columns — they would empty the table
|
|
297
297
|
var persistedState = (0, react_1.useMemo)(function () { return (0, viewStatePersistence_1.handlePruneStaleColumns)(rawPersistedState, props.model); }, [rawPersistedState, props.model]);
|
|
298
|
-
var
|
|
299
|
-
var
|
|
298
|
+
var _88 = (0, react_1.useState)(false), loading = _88[0], setLoading = _88[1];
|
|
299
|
+
var _89 = (0, react_1.useState)(), notification = _89[0], setNotification = _89[1];
|
|
300
300
|
// INFO: a success toast is confirmation, not a decision — it clears itself so
|
|
301
301
|
// it never sits on the floating step bar; errors stay until dismissed
|
|
302
302
|
(0, react_1.useEffect)(function () {
|
|
@@ -306,59 +306,59 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
306
306
|
return function () { return clearTimeout(timer); };
|
|
307
307
|
}, [notification]);
|
|
308
308
|
//INFO : Used by List
|
|
309
|
-
var
|
|
310
|
-
var
|
|
311
|
-
var
|
|
312
|
-
var
|
|
313
|
-
var
|
|
314
|
-
var
|
|
315
|
-
var
|
|
309
|
+
var _90 = (0, react_1.useState)((_d = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _d !== void 0 ? _d : initialFilterSearch), filterSearch = _90[0], setFilterSearch = _90[1];
|
|
310
|
+
var _91 = (0, react_1.useState)((_e = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _e !== void 0 ? _e : initialFilterSearchParams), filterSearchParams = _91[0], setFilterSearchParams = _91[1];
|
|
311
|
+
var _92 = (0, react_1.useState)((_f = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSelection) !== null && _f !== void 0 ? _f : initialFilterSelection), filterSelection = _92[0], setFilterSelection = _92[1];
|
|
312
|
+
var _93 = (0, react_1.useState)((_g = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReference) !== null && _g !== void 0 ? _g : initialFilterReference), filterReference = _93[0], setFilterReference = _93[1];
|
|
313
|
+
var _94 = (0, react_1.useState)({}), filterReferenceSearch = _94[0], setFilterReferenceSearch = _94[1];
|
|
314
|
+
var _95 = (0, react_1.useState)({}), filterReferenceList = _95[0], setFilterReferenceList = _95[1];
|
|
315
|
+
var _96 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReferenceDate)
|
|
316
316
|
? (0, viewStatePersistence_1.parseDateFilterState)(persistedState.filterReferenceDate)
|
|
317
|
-
: initialFilterReferenceDate), filterReferenceDate =
|
|
318
|
-
var
|
|
319
|
-
var
|
|
320
|
-
var
|
|
321
|
-
var
|
|
322
|
-
var
|
|
317
|
+
: initialFilterReferenceDate), filterReferenceDate = _96[0], setFilterReferenceDate = _96[1];
|
|
318
|
+
var _97 = (0, react_1.useState)(true), tableLoading = _97[0], setTableLoading = _97[1];
|
|
319
|
+
var _98 = (0, react_1.useState)(""), cursor = _98[0], setCursor = _98[1];
|
|
320
|
+
var _99 = (0, react_1.useState)(""), lastCursor = _99[0], setLastCursor = _99[1];
|
|
321
|
+
var _100 = (0, react_1.useState)([]), tableData = _100[0], setTableData = _100[1];
|
|
322
|
+
var _101 = (0, react_1.useState)([]), spaceTableData = _101[0], setSpaceTableData = _101[1];
|
|
323
323
|
// INFO: a save resolves after later renders, so it reads the table from here —
|
|
324
324
|
// the state it closed over can predate an earlier save on the same row
|
|
325
325
|
var tableDataRef = (0, react_1.useRef)([]);
|
|
326
326
|
var spaceTableDataRef = (0, react_1.useRef)([]);
|
|
327
327
|
tableDataRef.current = tableData;
|
|
328
328
|
spaceTableDataRef.current = spaceTableData;
|
|
329
|
-
var
|
|
330
|
-
var
|
|
331
|
-
var
|
|
332
|
-
var
|
|
333
|
-
var
|
|
334
|
-
var
|
|
335
|
-
var
|
|
329
|
+
var _102 = (0, react_1.useState)(0), size = _102[0], setSize = _102[1];
|
|
330
|
+
var _103 = (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 = _103[0], setPageIndex = _103[1];
|
|
331
|
+
var _104 = (0, react_1.useState)([]), selectedIds = _104[0], setSelectedIds = _104[1];
|
|
332
|
+
var _105 = (0, react_1.useState)(false), selectAll = _105[0], setSelectAll = _105[1];
|
|
333
|
+
var _106 = (0, react_1.useState)(""), deletePasscode = _106[0], setDeletePasscode = _106[1];
|
|
334
|
+
var _107 = (0, react_1.useState)(""), deletePasscodeInput = _107[0], setDeletePasscodeInput = _107[1];
|
|
335
|
+
var _108 = (0, react_1.useState)(""), deleteFeedId = _108[0], setDeleteFeedId = _108[1];
|
|
336
336
|
//INFO : Used by List Organise
|
|
337
337
|
// INFO: Internal sort state that overrides props.organise?.sort when
|
|
338
338
|
// persistViewState is enabled and a persisted sort exists
|
|
339
|
-
var
|
|
340
|
-
var
|
|
341
|
-
var
|
|
339
|
+
var _109 = (0, react_1.useState)((_l = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _l !== void 0 ? _l : undefined), persistedSort = _109[0], setPersistedSort = _109[1];
|
|
340
|
+
var _110 = (0, react_1.useState)(false), filterDraft = _110[0], setFilterDraft = _110[1];
|
|
341
|
+
var _111 = (0, react_1.useState)(false), addTabModal = _111[0], setAddTabModal = _111[1];
|
|
342
342
|
//INFO : resolve the initial tab synchronously so the mount cond is already
|
|
343
343
|
// tab-scoped — an empty initial tab caused a second wasted list fetch
|
|
344
|
-
var
|
|
344
|
+
var _112 = (0, react_1.useState)(function () {
|
|
345
345
|
var _a, _b;
|
|
346
346
|
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);
|
|
347
|
-
}), selectedTab =
|
|
348
|
-
var
|
|
347
|
+
}), selectedTab = _112[0], setSelectedTab = _112[1];
|
|
348
|
+
var _113 = (0, react_1.useState)("dayGridMonth"), calendarView = _113[0], setCalendarView = _113[1];
|
|
349
349
|
// INFO: bareNewDTW calendar viewSwitch mode — drives the NewCalendar variant
|
|
350
350
|
// (calendarView above drives the matching range query)
|
|
351
|
-
var
|
|
352
|
-
var
|
|
353
|
-
var
|
|
354
|
-
var
|
|
355
|
-
var
|
|
356
|
-
var
|
|
357
|
-
var
|
|
351
|
+
var _114 = (0, react_1.useState)("month"), newCalendarViewMode = _114[0], setNewCalendarViewMode = _114[1];
|
|
352
|
+
var _115 = (0, react_1.useState)(new Date()), calendarTabMonth = _115[0], setCalendarTabMonth = _115[1];
|
|
353
|
+
var _116 = (0, react_1.useState)(true), kanbanDroppable = _116[0], setKanbanDroppable = _116[1];
|
|
354
|
+
var _117 = (0, react_1.useState)([]), kanbanOptions = _117[0], setKanbanOptions = _117[1];
|
|
355
|
+
var _118 = (0, react_1.useState)(false), queryForm = _118[0], setQueryForm = _118[1];
|
|
356
|
+
var _119 = (0, react_1.useState)(false), batchUpdateModal = _119[0], setBatchUpdateModal = _119[1];
|
|
357
|
+
var _120 = (0, react_1.useState)({
|
|
358
358
|
columnId: "",
|
|
359
359
|
columnData: {},
|
|
360
|
-
}), batchUpdateData =
|
|
361
|
-
var
|
|
360
|
+
}), batchUpdateData = _120[0], setBatchUpdateData = _120[1];
|
|
361
|
+
var _121 = (0, react_1.useState)(function () {
|
|
362
362
|
var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
|
|
363
363
|
if (!persistedState)
|
|
364
364
|
return baseModel;
|
|
@@ -384,8 +384,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
384
384
|
});
|
|
385
385
|
}
|
|
386
386
|
return model;
|
|
387
|
-
}), structure =
|
|
388
|
-
var
|
|
387
|
+
}), structure = _121[0], setStructure = _121[1];
|
|
388
|
+
var _122 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _122[0], setAdditionalQuery = _122[1];
|
|
389
389
|
// INFO: State for user-configurable flex filters (Monday.com-style)
|
|
390
390
|
// INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
|
|
391
391
|
var defaultFlexFilterRow = [
|
|
@@ -396,9 +396,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
396
396
|
value: undefined,
|
|
397
397
|
},
|
|
398
398
|
];
|
|
399
|
-
var
|
|
399
|
+
var _123 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
400
400
|
? persistedState.flexFilters
|
|
401
|
-
: defaultFlexFilterRow), flexFilters =
|
|
401
|
+
: defaultFlexFilterRow), flexFilters = _123[0], setFlexFilters = _123[1];
|
|
402
402
|
// INFO: always-current mirror of flexFilters, read by the imperative apply/
|
|
403
403
|
// clear methods so chained calls in one tick aren't stale.
|
|
404
404
|
var flexFiltersRef = (0, react_1.useRef)(flexFilters);
|
|
@@ -411,109 +411,109 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
411
411
|
}, [flexFilters]);
|
|
412
412
|
// INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
|
|
413
413
|
// to prevent API calls on every keystroke when typing in value inputs
|
|
414
|
-
var
|
|
414
|
+
var _124 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
|
|
415
415
|
? persistedState.flexFilters
|
|
416
|
-
: defaultFlexFilterRow), flexFiltersDebounced =
|
|
417
|
-
var
|
|
418
|
-
var
|
|
419
|
-
var
|
|
420
|
-
var
|
|
416
|
+
: defaultFlexFilterRow), flexFiltersDebounced = _124[0], setFlexFiltersDebounced = _124[1];
|
|
417
|
+
var _125 = (0, react_1.useState)({}), flexFilterReferenceOptions = _125[0], setFlexFilterReferenceOptions = _125[1];
|
|
418
|
+
var _126 = (0, react_1.useState)({}), flexFilterReferenceSearch = _126[0], setFlexFilterReferenceSearch = _126[1];
|
|
419
|
+
var _127 = (0, react_1.useState)(false), flexFilterModalOpen = _127[0], setFlexFilterModalOpen = _127[1];
|
|
420
|
+
var _128 = (0, react_1.useState)(false), viewSettingsModalOpen = _128[0], setViewSettingsModalOpen = _128[1];
|
|
421
421
|
// INFO: Columns the end user chose to hide (bareSettings.bareViewSettings).
|
|
422
422
|
// Deliberately kept out of `structure`: the props-sync effect below resets
|
|
423
423
|
// structure to props.model whenever props change, which would wipe the
|
|
424
424
|
// choice, and the persist effect derives schema-level hiddenColumnIds from
|
|
425
425
|
// structure — writing user hides there would blur the two concepts.
|
|
426
|
-
var
|
|
427
|
-
var
|
|
428
|
-
var
|
|
429
|
-
var
|
|
426
|
+
var _129 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _129[0], setUserHiddenColumnIds = _129[1];
|
|
427
|
+
var _130 = (0, react_1.useState)(""), columnSearch = _130[0], setColumnSearch = _130[1];
|
|
428
|
+
var _131 = (0, react_1.useState)([]), savedViews = _131[0], setSavedViews = _131[1];
|
|
429
|
+
var _132 = (0, react_1.useState)(null), activeSavedViewId = _132[0], setActiveSavedViewId = _132[1];
|
|
430
430
|
// INFO: null while the name box is closed
|
|
431
|
-
var
|
|
432
|
-
var
|
|
433
|
-
var
|
|
431
|
+
var _133 = (0, react_1.useState)(null), savedViewName = _133[0], setSavedViewName = _133[1];
|
|
432
|
+
var _134 = (0, react_1.useState)(null), deletingSavedViewId = _134[0], setDeletingSavedViewId = _134[1];
|
|
433
|
+
var _135 = (0, react_1.useState)(null), draggingColumnId = _135[0], setDraggingColumnId = _135[1];
|
|
434
434
|
var columnRowRefs = (0, react_1.useRef)({});
|
|
435
435
|
//INFO : Used by Auth
|
|
436
|
-
var
|
|
436
|
+
var _136 = (0, react_1.useState)({
|
|
437
437
|
email: "",
|
|
438
438
|
google: "",
|
|
439
439
|
phone: "",
|
|
440
440
|
disabled: false,
|
|
441
441
|
create: false,
|
|
442
|
-
}), authMethods =
|
|
443
|
-
var
|
|
442
|
+
}), authMethods = _136[0], setAuthMethods = _136[1];
|
|
443
|
+
var _137 = (0, react_1.useState)(""), selectedAuthMethod = _137[0], setSelectedAuthMethod = _137[1];
|
|
444
444
|
// INFO: Used by Activity Log
|
|
445
|
-
var
|
|
446
|
-
var
|
|
445
|
+
var _138 = (0, react_1.useState)(false), activityModal = _138[0], setActivityModal = _138[1];
|
|
446
|
+
var _139 = (0, react_1.useState)(""), activityId = _139[0], setActivityId = _139[1];
|
|
447
447
|
//INFO : Used by Export
|
|
448
|
-
var
|
|
449
|
-
var
|
|
450
|
-
var
|
|
451
|
-
var
|
|
452
|
-
var
|
|
453
|
-
var
|
|
454
|
-
var
|
|
455
|
-
var
|
|
456
|
-
var
|
|
457
|
-
var
|
|
458
|
-
var
|
|
459
|
-
var
|
|
460
|
-
var
|
|
461
|
-
var
|
|
462
|
-
var
|
|
463
|
-
var
|
|
464
|
-
var
|
|
465
|
-
var
|
|
466
|
-
var
|
|
448
|
+
var _140 = (0, react_1.useState)(null), csvFile = _140[0], setCSVFile = _140[1];
|
|
449
|
+
var _141 = (0, react_1.useState)([]), csvFileData = _141[0], setCSVFileData = _141[1];
|
|
450
|
+
var _142 = (0, react_1.useState)(0), stepCSVIndex = _142[0], setStepCSVIndex = _142[1];
|
|
451
|
+
var _143 = (0, react_1.useState)({}), listCSVMapAttribute = _143[0], setListCSVMapAttribute = _143[1];
|
|
452
|
+
var _144 = (0, react_1.useState)({}), listCSVObjAttribute = _144[0], setListCSVObjAttribute = _144[1];
|
|
453
|
+
var _145 = (0, react_1.useState)([]), csvAPIAttribute = _145[0], setCSVAPIAttribute = _145[1];
|
|
454
|
+
var _146 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _146[0], setExportCSVEmail = _146[1];
|
|
455
|
+
var _147 = (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 = _147[0], setExportPDFTitle = _147[1];
|
|
456
|
+
var _148 = (0, react_1.useState)(false), exportPDFLoading = _148[0], setExportPDFLoading = _148[1];
|
|
457
|
+
var _149 = (0, react_1.useState)(false), exportReadPDFLoading = _149[0], setExportReadPDFLoading = _149[1];
|
|
458
|
+
var _150 = (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 = _150[0], setExportSumAttributeIds = _150[1];
|
|
459
|
+
var _151 = (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 = _151[0], setHideSubItems = _151[1];
|
|
460
|
+
var _152 = (0, react_1.useState)([]), importTableData = _152[0], setImportTableData = _152[1];
|
|
461
|
+
var _153 = (0, react_1.useState)([]), queryList = _153[0], setQueryList = _153[1];
|
|
462
|
+
var _154 = (0, react_1.useState)(undefined), allQueryList = _154[0], setAllQueryList = _154[1];
|
|
463
|
+
var _155 = (0, react_1.useState)(-1), queryIndex = _155[0], setQueryIndex = _155[1];
|
|
464
|
+
var _156 = (0, react_1.useState)((_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _156[0], setGroupId = _156[1];
|
|
465
|
+
var _157 = (0, react_1.useState)(""), readTabSection = _157[0], setReadTabSection = _157[1];
|
|
466
|
+
var _158 = (0, react_1.useState)(false), readFloatingNav = _158[0], setReadFloatingNav = _158[1];
|
|
467
467
|
var readTabSectionRefs = (0, react_1.useRef)({});
|
|
468
468
|
//INFO : Used by Read
|
|
469
469
|
//INFO : Used by Update
|
|
470
|
-
var
|
|
471
|
-
var
|
|
472
|
-
var
|
|
473
|
-
var
|
|
474
|
-
var
|
|
475
|
-
var
|
|
476
|
-
var
|
|
470
|
+
var _159 = (0, react_1.useState)(false), modalVisible = _159[0], setModalVisible = _159[1];
|
|
471
|
+
var _160 = (0, react_1.useState)(false), deleteModal = _160[0], setDeleteModal = _160[1];
|
|
472
|
+
var _161 = (0, react_1.useState)(false), excelModal = _161[0], setExcelModal = _161[1];
|
|
473
|
+
var _162 = (0, react_1.useState)(false), exportExcel = _162[0], setExportExcel = _162[1];
|
|
474
|
+
var _163 = (0, react_1.useState)(""), exportType = _163[0], setExportType = _163[1];
|
|
475
|
+
var _164 = (0, react_1.useState)(false), exportQR = _164[0], setExportQR = _164[1];
|
|
476
|
+
var _165 = (0, react_1.useState)(function () {
|
|
477
477
|
var _a, _b;
|
|
478
478
|
var firstTabId = (_b = (_a = structure.find(function (item) { return item.tabId; })) === null || _a === void 0 ? void 0 : _a.tabId) !== null && _b !== void 0 ? _b : "";
|
|
479
479
|
return firstTabId;
|
|
480
|
-
}), activeTab =
|
|
481
|
-
var
|
|
482
|
-
var
|
|
483
|
-
var
|
|
484
|
-
var
|
|
485
|
-
var
|
|
486
|
-
var
|
|
487
|
-
var
|
|
480
|
+
}), activeTab = _165[0], setActiveTab = _165[1];
|
|
481
|
+
var _166 = (0, react_1.useState)(false), signatureSigning = _166[0], setSignatureSigning = _166[1];
|
|
482
|
+
var _167 = (0, react_1.useState)({}), selectedData = _167[0], setSelectedData = _167[1];
|
|
483
|
+
var _168 = (0, react_1.useState)(""), selectedObjectStructureId = _168[0], setSelectedObjectStructureId = _168[1];
|
|
484
|
+
var _169 = (0, react_1.useState)(""), selectedObjectId = _169[0], setSelectedObjectId = _169[1];
|
|
485
|
+
var _170 = (0, react_1.useState)(""), selectedListAddressId = _170[0], setSelectedListAddressId = _170[1];
|
|
486
|
+
var _171 = (0, react_1.useState)(-1), selectedListAddressIndex = _171[0], setSelectedListAddressIndex = _171[1];
|
|
487
|
+
var _172 = (0, react_1.useState)({
|
|
488
488
|
lat: 0,
|
|
489
489
|
lng: 0,
|
|
490
490
|
name: "",
|
|
491
|
-
}), selectedListAddress =
|
|
492
|
-
var
|
|
493
|
-
var
|
|
494
|
-
var
|
|
495
|
-
var
|
|
496
|
-
var
|
|
497
|
-
var
|
|
498
|
-
var
|
|
499
|
-
var
|
|
500
|
-
var
|
|
491
|
+
}), selectedListAddress = _172[0], setSelectedListAddress = _172[1];
|
|
492
|
+
var _173 = (0, react_1.useState)({}), selectedObjectData = _173[0], setSelectedObjectData = _173[1];
|
|
493
|
+
var _174 = (0, react_1.useState)(null), objectCellEdit = _174[0], setObjectCellEdit = _174[1];
|
|
494
|
+
var _175 = (0, react_1.useState)(false), referenceLoading = _175[0], setReferenceLoading = _175[1];
|
|
495
|
+
var _176 = (0, react_1.useState)({}), referencesOptions = _176[0], setReferencesOptions = _176[1];
|
|
496
|
+
var _177 = (0, react_1.useState)({}), referencesDetails = _177[0], setReferencesDetails = _177[1];
|
|
497
|
+
var _178 = (0, react_1.useState)({}), listReferencesOptions = _178[0], setListReferencesOptions = _178[1];
|
|
498
|
+
var _179 = (0, react_1.useState)({}), referenceDeleteTableData = _179[0], setReferenceDeleteTableData = _179[1];
|
|
499
|
+
var _180 = (0, react_1.useState)(0), referenceDeleteIndex = _180[0], setReferenceDeleteIndex = _180[1];
|
|
500
|
+
var _181 = (0, react_1.useState)({
|
|
501
501
|
id: "",
|
|
502
502
|
name: "",
|
|
503
503
|
type: "string",
|
|
504
|
-
}), referenceCreationModal =
|
|
505
|
-
var
|
|
506
|
-
var
|
|
504
|
+
}), referenceCreationModal = _181[0], setReferenceCreationModal = _181[1];
|
|
505
|
+
var _182 = (0, react_1.useState)({}), referenceModelSchema = _182[0], setReferenceSchema = _182[1];
|
|
506
|
+
var _183 = (0, react_1.useState)([]), kanbanChecked = _183[0], setKanbanChecked = _183[1];
|
|
507
507
|
//INFO : Offline
|
|
508
|
-
var
|
|
509
|
-
var
|
|
508
|
+
var _184 = (0, react_1.useState)(0), offlineDataLength = _184[0], setOfflineDataLength = _184[1];
|
|
509
|
+
var _185 = (0, react_1.useState)(false), offlineModal = _185[0], setOfflineModal = _185[1];
|
|
510
510
|
// INFO: live-stream state — driven by socket connection and navigator.onLine
|
|
511
|
-
var
|
|
512
|
-
var
|
|
511
|
+
var _186 = (0, react_1.useState)(false), isLive = _186[0], setIsLive = _186[1];
|
|
512
|
+
var _187 = (0, react_1.useState)(false), isLiveOffline = _187[0], setIsLiveOffline = _187[1];
|
|
513
513
|
// INFO: true when navigator is offline — used to switch ReadQueryHoc between
|
|
514
514
|
// server reads (online, full pagination) and IndexedDB reads (offline, cached data).
|
|
515
515
|
// Independent of SSE status so it works even when bareSocketName is not set.
|
|
516
|
-
var
|
|
516
|
+
var _188 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _188[0], setIsNetworkOffline = _188[1];
|
|
517
517
|
var previousType = (0, react_1.useRef)(null);
|
|
518
518
|
var previousSelectedData = (0, react_1.useRef)(null);
|
|
519
519
|
var scrollSentinelRef = (0, react_1.useRef)(null);
|
|
@@ -587,6 +587,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
587
587
|
var exportCSVEmailInputRef = (0, react_1.createRef)();
|
|
588
588
|
var readQueryHocRef = (0, react_1.useRef)(null);
|
|
589
589
|
var listRQueryHocRef = (0, react_1.useRef)(null);
|
|
590
|
+
// INFO: the list request as it was before a saved view was applied; checked
|
|
591
|
+
// after the next render to tell whether the view changed what is fetched
|
|
592
|
+
var pendingViewCondKeyRef = (0, react_1.useRef)(null);
|
|
593
|
+
// INFO: the schema's own columns while a saved view overlays hide/order on
|
|
594
|
+
// screen; null when nothing is overlaid and structure is the schema itself
|
|
595
|
+
var schemaStructureRef = (0, react_1.useRef)(null);
|
|
590
596
|
var typingTimeout = (0, react_1.useRef)(null);
|
|
591
597
|
var flexFilterTypingTimeout = (0, react_1.useRef)(null);
|
|
592
598
|
var mapViewRef = (0, react_1.useRef)(null);
|
|
@@ -634,12 +640,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
634
640
|
? true
|
|
635
641
|
: false;
|
|
636
642
|
// INFO: a consumer that wires onChangeHide owns the hide at schema level
|
|
637
|
-
// (
|
|
643
|
+
// (shared by every user) — toggling writes to the model and calls back. Without it
|
|
638
644
|
// the hide is this user's own and lives in userHiddenColumnIds.
|
|
639
645
|
var isSchemaHideMode = ((_8 = props.organise) === null || _8 === void 0 ? void 0 : _8.onChangeHide) ? true : false;
|
|
640
646
|
// INFO: rows per page is a view setting the user can change, so it starts from
|
|
641
647
|
// the persisted value and falls back to the consumer's limit
|
|
642
|
-
var
|
|
648
|
+
var _189 = (0, react_1.useState)((_10 = (_9 = (isPersistEnabled ? persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageLimit : undefined)) !== null && _9 !== void 0 ? _9 : props.limit) !== null && _10 !== void 0 ? _10 : 10), pageLimit = _189[0], setPageLimit = _189[1];
|
|
643
649
|
var limit = pageLimit;
|
|
644
650
|
var isSavedViewsEnabled = !!((_11 = props.organise) === null || _11 === void 0 ? void 0 : _11.savedViews) && resolvedType === "list";
|
|
645
651
|
// INFO: a saved view carries its sort, so the sort is held here as with persistViewState
|
|
@@ -651,7 +657,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
651
657
|
setPersistedSort(value);
|
|
652
658
|
(_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeSort) === null || _b === void 0 ? void 0 : _b.call(_a, value);
|
|
653
659
|
};
|
|
654
|
-
var
|
|
660
|
+
var _190 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _190.canUpdateRecord, canInlineUpdate = _190.canInlineUpdate, canBatchUpdate = _190.canBatchUpdate, canDeleteRecord = _190.canDeleteRecord;
|
|
655
661
|
var isEditor = ((_13 = props.edit) === null || _13 === void 0 ? void 0 : _13.allEditable) ? true : false;
|
|
656
662
|
var isOffline = (_14 = props.bareSettings) === null || _14 === void 0 ? void 0 : _14.bareOffline;
|
|
657
663
|
// INFO: when bareOfflineNetworkAware is true, the save path is also gated on
|
|
@@ -793,15 +799,30 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
793
799
|
//=====================================================================================
|
|
794
800
|
//SECTION: User Column Visibility Handlers
|
|
795
801
|
//=====================================================================================
|
|
796
|
-
|
|
802
|
+
// INFO: a write-back carries the schema's columns plus the user's one change,
|
|
803
|
+
// never the hide/order a personal saved view put on screen
|
|
804
|
+
var handleUpdateSchemaStructure = function (update) {
|
|
797
805
|
var _a;
|
|
806
|
+
var schemaColumns = update((_a = schemaStructureRef.current) !== null && _a !== void 0 ? _a : structure);
|
|
807
|
+
if (schemaStructureRef.current)
|
|
808
|
+
schemaStructureRef.current = schemaColumns;
|
|
809
|
+
return schemaColumns;
|
|
810
|
+
};
|
|
811
|
+
var handleToggleUserHiddenColumn = function (columnId) {
|
|
812
|
+
var _a, _b;
|
|
798
813
|
if ((_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeHide) {
|
|
799
|
-
var
|
|
800
|
-
|
|
801
|
-
|
|
814
|
+
var nextHide_1 = !((_b = structure.find(function (eachColumn) { return eachColumn.id === columnId; })) === null || _b === void 0 ? void 0 : _b.hide);
|
|
815
|
+
var handleSetHide = function (columns) {
|
|
816
|
+
return columns.map(function (eachColumn) {
|
|
817
|
+
return eachColumn.id === columnId
|
|
818
|
+
? __assign(__assign({}, eachColumn), { hide: nextHide_1 }) : eachColumn;
|
|
819
|
+
});
|
|
820
|
+
};
|
|
821
|
+
setStructure(handleSetHide(structure));
|
|
822
|
+
props.organise.onChangeHide(handleUpdateSchemaStructure(handleSetHide), {
|
|
823
|
+
columnId: columnId,
|
|
824
|
+
hide: nextHide_1,
|
|
802
825
|
});
|
|
803
|
-
setStructure(updatedModel);
|
|
804
|
-
props.organise.onChangeHide(updatedModel);
|
|
805
826
|
return;
|
|
806
827
|
}
|
|
807
828
|
setUserHiddenColumnIds(function (prevIds) {
|
|
@@ -813,9 +834,13 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
813
834
|
var handleShowAllUserHiddenColumns = function () {
|
|
814
835
|
var _a;
|
|
815
836
|
if ((_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeHide) {
|
|
816
|
-
var
|
|
817
|
-
|
|
818
|
-
|
|
837
|
+
var handleShowAll = function (columns) {
|
|
838
|
+
return columns.map(function (eachColumn) { return (__assign(__assign({}, eachColumn), { hide: false })); });
|
|
839
|
+
};
|
|
840
|
+
setStructure(handleShowAll(structure));
|
|
841
|
+
props.organise.onChangeHide(handleUpdateSchemaStructure(handleShowAll), {
|
|
842
|
+
showAll: true,
|
|
843
|
+
});
|
|
819
844
|
return;
|
|
820
845
|
}
|
|
821
846
|
setUserHiddenColumnIds([]);
|
|
@@ -826,15 +851,21 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
826
851
|
var _a, _b;
|
|
827
852
|
if (dragId === dropId)
|
|
828
853
|
return;
|
|
829
|
-
var
|
|
830
|
-
|
|
831
|
-
|
|
854
|
+
var handleMove = function (columns) {
|
|
855
|
+
var dragIndex = columns.findIndex(function (eachCol) { return eachCol.id === dragId; });
|
|
856
|
+
var dropIndex = columns.findIndex(function (eachCol) { return eachCol.id === dropId; });
|
|
857
|
+
if (dragIndex < 0 || dropIndex < 0)
|
|
858
|
+
return columns;
|
|
859
|
+
var moved = __spreadArray([], columns, true);
|
|
860
|
+
var dragged = moved.splice(dragIndex, 1)[0];
|
|
861
|
+
moved.splice(dropIndex, 0, dragged);
|
|
862
|
+
return moved;
|
|
863
|
+
};
|
|
864
|
+
var updatedModel = handleMove(structure);
|
|
865
|
+
if (updatedModel === structure)
|
|
832
866
|
return;
|
|
833
|
-
var updatedModel = __spreadArray([], structure, true);
|
|
834
|
-
var moved = updatedModel.splice(dragIndex, 1)[0];
|
|
835
|
-
updatedModel.splice(dropIndex, 0, moved);
|
|
836
867
|
setStructure(updatedModel);
|
|
837
|
-
(_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeDrag) === null || _b === void 0 ? void 0 : _b.call(_a, dragId, dropId,
|
|
868
|
+
(_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeDrag) === null || _b === void 0 ? void 0 : _b.call(_a, dragId, dropId, handleUpdateSchemaStructure(handleMove).map(function (eachCol) { return ({
|
|
838
869
|
key: eachCol.id,
|
|
839
870
|
title: eachCol.name,
|
|
840
871
|
}); }));
|
|
@@ -1085,10 +1116,25 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1085
1116
|
setSavedViewName(null);
|
|
1086
1117
|
setDeletingSavedViewId(null);
|
|
1087
1118
|
}, [viewType]);
|
|
1119
|
+
// INFO: a view can change the saved state without changing the request —
|
|
1120
|
+
// rows per page on a calendar, map or grouped tab (no limit is sent), or a
|
|
1121
|
+
// filter with no value. ReadQueryHoc only reads when its cond changes, so
|
|
1122
|
+
// the loading set by the apply would never clear; ask for the read here.
|
|
1123
|
+
(0, react_1.useEffect)(function () {
|
|
1124
|
+
var _a;
|
|
1125
|
+
if (pendingViewCondKeyRef.current === null)
|
|
1126
|
+
return;
|
|
1127
|
+
var isSameRequest = pendingViewCondKeyRef.current ===
|
|
1128
|
+
JSON.stringify(handleReadQueryHocCond());
|
|
1129
|
+
pendingViewCondKeyRef.current = null;
|
|
1130
|
+
if (isSameRequest)
|
|
1131
|
+
(_a = listRQueryHocRef.current) === null || _a === void 0 ? void 0 : _a.handleRefresh();
|
|
1132
|
+
});
|
|
1133
|
+
// INFO: fallback ids are numbered over the full list, before the tab filter,
|
|
1134
|
+
// so one default view keeps the same id on every tab it shows on
|
|
1088
1135
|
var handleGetTabSavedViews = function () {
|
|
1089
1136
|
var _a, _b;
|
|
1090
1137
|
return __spreadArray(__spreadArray([], ((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.defaultSavedViews) !== null && _b !== void 0 ? _b : [])
|
|
1091
|
-
.filter(function (eachView) { return !eachView.tabId || eachView.tabId === viewType; })
|
|
1092
1138
|
.map(function (eachView, index) {
|
|
1093
1139
|
var _a, _b;
|
|
1094
1140
|
return ({
|
|
@@ -1098,8 +1144,20 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1098
1144
|
state: eachView.state,
|
|
1099
1145
|
locked: true,
|
|
1100
1146
|
});
|
|
1101
|
-
})
|
|
1147
|
+
})
|
|
1148
|
+
.filter(function (eachView) { return eachView.tabId === viewType; }), true), savedViews.filter(function (eachView) { return eachView.tabId === viewType; }), true);
|
|
1102
1149
|
};
|
|
1150
|
+
var defaultSavedViewIds = ((_58 = (_57 = props.organise) === null || _57 === void 0 ? void 0 : _57.defaultSavedViews) !== null && _58 !== void 0 ? _58 : [])
|
|
1151
|
+
.map(function (eachView) { var _a; return (_a = eachView.id) !== null && _a !== void 0 ? _a : ""; })
|
|
1152
|
+
.join("|");
|
|
1153
|
+
// INFO: keyed on the ids, not the array, so an inline literal passed on every
|
|
1154
|
+
// render does not repeat the warning on every render
|
|
1155
|
+
(0, react_1.useEffect)(function () {
|
|
1156
|
+
var ids = defaultSavedViewIds.split("|").filter(Boolean);
|
|
1157
|
+
var repeated = ids.filter(function (eachId, index) { return ids.indexOf(eachId) !== index; });
|
|
1158
|
+
if (repeated.length > 0)
|
|
1159
|
+
console.warn("DataTemplate: defaultSavedViews ids must be unique, repeated: ".concat(Array.from(new Set(repeated)).join(", ")));
|
|
1160
|
+
}, [defaultSavedViewIds]);
|
|
1103
1161
|
// INFO: a view is the defaults overridden by its own fields, so a field it
|
|
1104
1162
|
// leaves out is reset rather than carried over from whatever was on screen
|
|
1105
1163
|
var handleResolveViewState = function (state) {
|
|
@@ -1123,7 +1181,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1123
1181
|
});
|
|
1124
1182
|
};
|
|
1125
1183
|
var handleApplySavedView = function (view) {
|
|
1126
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1184
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
1127
1185
|
var next = handleResolveViewState((_a = view === null || view === void 0 ? void 0 : view.state) !== null && _a !== void 0 ? _a : null);
|
|
1128
1186
|
var isQueryChanged = !(0, viewStatePersistence_1.handleIsSameViewState)((0, viewStatePersistence_1.handlePickQueryState)(handleBuildViewSnapshot()), (0, viewStatePersistence_1.handlePickQueryState)(next));
|
|
1129
1187
|
handleClearFlexFilterTypingTimeout();
|
|
@@ -1140,17 +1198,38 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1140
1198
|
: initialFilterReferenceDate);
|
|
1141
1199
|
handleCommitFlexFilters(((_f = next.flexFilters) === null || _f === void 0 ? void 0 : _f.length) ? next.flexFilters : defaultFlexFilterRow);
|
|
1142
1200
|
setPersistedSort(next.sort);
|
|
1201
|
+
if (next.sort && !(0, viewStatePersistence_1.handleIsSameViewState)(next.sort, activeSortId !== null && activeSortId !== void 0 ? activeSortId : {}))
|
|
1202
|
+
(_h = (_g = props.organise) === null || _g === void 0 ? void 0 : _g.onChangeSort) === null || _h === void 0 ? void 0 : _h.call(_g, next.sort);
|
|
1143
1203
|
if (next.pageLimit)
|
|
1144
1204
|
setPageLimit(next.pageLimit);
|
|
1145
|
-
setUserHiddenColumnIds((
|
|
1205
|
+
setUserHiddenColumnIds((_j = next.userHiddenColumnIds) !== null && _j !== void 0 ? _j : []);
|
|
1206
|
+
if (view) {
|
|
1207
|
+
if (!schemaStructureRef.current)
|
|
1208
|
+
schemaStructureRef.current = structure;
|
|
1209
|
+
}
|
|
1210
|
+
else {
|
|
1211
|
+
schemaStructureRef.current = null;
|
|
1212
|
+
}
|
|
1146
1213
|
setStructure(function (prev) { return handleApplyViewColumns(prev, next); });
|
|
1147
|
-
|
|
1148
|
-
|
|
1214
|
+
if (isQueryChanged) {
|
|
1215
|
+
// INFO: the list loads until a new read lands; whether the request itself
|
|
1216
|
+
// changed is only known after this render, so the effect below compares
|
|
1217
|
+
pendingViewCondKeyRef.current = JSON.stringify(handleReadQueryHocCond());
|
|
1149
1218
|
handleClearDataByFilter();
|
|
1150
|
-
|
|
1219
|
+
if (pageIndex !== 0)
|
|
1220
|
+
(_l = (_k = props.organise) === null || _k === void 0 ? void 0 : _k.onChangePagination) === null || _l === void 0 ? void 0 : _l.call(_k, 0);
|
|
1221
|
+
(_o = (_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareListHandleFilter) === null || _o === void 0 ? void 0 : _o.call(_m, (_p = next.filterSearchParams) !== null && _p !== void 0 ? _p : {}, (_q = next.filterSelection) !== null && _q !== void 0 ? _q : {}, next.filterReferenceDate
|
|
1222
|
+
? (0, viewStatePersistence_1.parseDateFilterState)(next.filterReferenceDate)
|
|
1223
|
+
: initialFilterReferenceDate, (_r = next.filterReference) !== null && _r !== void 0 ? _r : {});
|
|
1224
|
+
}
|
|
1225
|
+
setActiveSavedViewId((_s = view === null || view === void 0 ? void 0 : view.id) !== null && _s !== void 0 ? _s : null);
|
|
1151
1226
|
setDeletingSavedViewId(null);
|
|
1152
1227
|
};
|
|
1153
|
-
|
|
1228
|
+
// INFO: re-read storage before each write so a change made in another browser
|
|
1229
|
+
// tab on the same list is kept rather than overwritten by this tab's copy;
|
|
1230
|
+
// with storage unavailable the in-memory list is the only copy, so it is used
|
|
1231
|
+
var handleStoreSavedViews = function (update) {
|
|
1232
|
+
var views = update((0, viewStatePersistence_1.handleReadSavedViews)(savedViewsKey, savedViews));
|
|
1154
1233
|
setSavedViews(views);
|
|
1155
1234
|
(0, viewStatePersistence_1.handleWriteSavedViews)(savedViewsKey, views);
|
|
1156
1235
|
};
|
|
@@ -1160,25 +1239,33 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1160
1239
|
if (!trimmed)
|
|
1161
1240
|
return;
|
|
1162
1241
|
var state = (0, viewStatePersistence_1.handlePickViewState)(handleBuildViewSnapshot());
|
|
1163
|
-
var
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1242
|
+
var savedId = "";
|
|
1243
|
+
handleStoreSavedViews(function (views) {
|
|
1244
|
+
var existing = views.find(function (eachView) { return eachView.tabId === viewType && eachView.name === trimmed; });
|
|
1245
|
+
var saved = existing
|
|
1246
|
+
? __assign(__assign({}, existing), { state: state }) : { id: (0, uuid_1.v4)(), name: trimmed, tabId: viewType, state: state };
|
|
1247
|
+
savedId = saved.id;
|
|
1248
|
+
return existing
|
|
1249
|
+
? views.map(function (eachView) {
|
|
1250
|
+
return eachView.id === existing.id ? saved : eachView;
|
|
1251
|
+
})
|
|
1252
|
+
: __spreadArray(__spreadArray([], views, true), [saved], false);
|
|
1253
|
+
});
|
|
1254
|
+
setActiveSavedViewId(savedId);
|
|
1172
1255
|
setSavedViewName(null);
|
|
1173
1256
|
};
|
|
1174
1257
|
var handleUpdateSavedView = function (id) {
|
|
1175
1258
|
var state = (0, viewStatePersistence_1.handlePickViewState)(handleBuildViewSnapshot());
|
|
1176
|
-
handleStoreSavedViews(
|
|
1177
|
-
return
|
|
1178
|
-
|
|
1259
|
+
handleStoreSavedViews(function (views) {
|
|
1260
|
+
return views.map(function (eachView) {
|
|
1261
|
+
return eachView.id === id ? __assign(__assign({}, eachView), { state: state }) : eachView;
|
|
1262
|
+
});
|
|
1263
|
+
});
|
|
1179
1264
|
};
|
|
1180
1265
|
var handleDeleteSavedView = function (id) {
|
|
1181
|
-
handleStoreSavedViews(
|
|
1266
|
+
handleStoreSavedViews(function (views) {
|
|
1267
|
+
return views.filter(function (eachView) { return eachView.id !== id; });
|
|
1268
|
+
});
|
|
1182
1269
|
if (activeSavedViewId === id)
|
|
1183
1270
|
setActiveSavedViewId(null);
|
|
1184
1271
|
setDeletingSavedViewId(null);
|
|
@@ -1267,7 +1354,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1267
1354
|
var isOtherListReturn = !(0, viewStatePersistence_1.handleIsLastDrill)(props.collectionId, (_c = props.organise) === null || _c === void 0 ? void 0 : _c.persistKey);
|
|
1268
1355
|
scrollRestoredRef.current = isSwitch || isOtherListReturn;
|
|
1269
1356
|
/* eslint-disable */
|
|
1270
|
-
}, [props.collectionId, (
|
|
1357
|
+
}, [props.collectionId, (_59 = props.organise) === null || _59 === void 0 ? void 0 : _59.persistKey]);
|
|
1271
1358
|
/* eslint-enable */
|
|
1272
1359
|
// INFO: wait a frame — rows land in state one tick before layout
|
|
1273
1360
|
(0, react_1.useEffect)(function () {
|
|
@@ -1302,7 +1389,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1302
1389
|
(0, react_1.useEffect)(function () {
|
|
1303
1390
|
handleOfflinePrefetch();
|
|
1304
1391
|
/* eslint-disable */
|
|
1305
|
-
}, [props.collectionId, (
|
|
1392
|
+
}, [props.collectionId, (_60 = props.bareSettings) === null || _60 === void 0 ? void 0 : _60.bareOffline]);
|
|
1306
1393
|
/* eslint-enable */
|
|
1307
1394
|
// INFO: MRQ polling — calls handleRefresh every N ms (e.g. 1500) as a fallback.
|
|
1308
1395
|
// Calls through handleRefreshRef so the interval always dispatches the latest
|
|
@@ -1322,7 +1409,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1322
1409
|
}, interval);
|
|
1323
1410
|
return function () { return clearInterval(timer); };
|
|
1324
1411
|
/* eslint-disable */
|
|
1325
|
-
}, [(
|
|
1412
|
+
}, [(_61 = props.bareSettings) === null || _61 === void 0 ? void 0 : _61.barePollingInterval, isLive, isNetworkOffline]);
|
|
1326
1413
|
/* eslint-enable */
|
|
1327
1414
|
// INFO: Pub/Sub → SSE live-stream — driven by bareSettings.bareSocketName
|
|
1328
1415
|
// EventSource URL: {sseEndpoint}/{room}?bm_apiToken={token}
|
|
@@ -1364,7 +1451,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1364
1451
|
};
|
|
1365
1452
|
/* eslint-disable */
|
|
1366
1453
|
}, [
|
|
1367
|
-
(
|
|
1454
|
+
(_62 = props.bareSettings) === null || _62 === void 0 ? void 0 : _62.bareSocketName,
|
|
1368
1455
|
props.collectionId,
|
|
1369
1456
|
props.devSettings.sseEndpoint,
|
|
1370
1457
|
props.devSettings.dbAPIToken,
|
|
@@ -1570,6 +1657,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1570
1657
|
!persistedState ||
|
|
1571
1658
|
persistedViewMountedRef.current) {
|
|
1572
1659
|
setStructure((_a = props.model) !== null && _a !== void 0 ? _a : []);
|
|
1660
|
+
schemaStructureRef.current = null;
|
|
1573
1661
|
}
|
|
1574
1662
|
persistedViewMountedRef.current = true;
|
|
1575
1663
|
setAdditionalQuery((_c = (_b = props.organise) === null || _b === void 0 ? void 0 : _b.additionalQuery) !== null && _c !== void 0 ? _c : []);
|
|
@@ -1609,10 +1697,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1609
1697
|
props.collectionId,
|
|
1610
1698
|
props.model,
|
|
1611
1699
|
props.localURLEndpoint,
|
|
1612
|
-
(
|
|
1613
|
-
(
|
|
1614
|
-
(
|
|
1615
|
-
(
|
|
1700
|
+
(_63 = props.organise) === null || _63 === void 0 ? void 0 : _63.extendedTabs,
|
|
1701
|
+
(_64 = props.organise) === null || _64 === void 0 ? void 0 : _64.viewId,
|
|
1702
|
+
(_65 = props.organise) === null || _65 === void 0 ? void 0 : _65.additionalQuery,
|
|
1703
|
+
(_66 = props.organise) === null || _66 === void 0 ? void 0 : _66.groupBy,
|
|
1616
1704
|
resolvedType,
|
|
1617
1705
|
]);
|
|
1618
1706
|
/**
|
|
@@ -1753,7 +1841,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
1753
1841
|
};
|
|
1754
1842
|
}, 100);
|
|
1755
1843
|
return function () { return clearTimeout(timeoutId); };
|
|
1756
|
-
}, [(
|
|
1844
|
+
}, [(_67 = props.organise) === null || _67 === void 0 ? void 0 : _67.showReadFloatingNav, resolvedType, props.id, loading]);
|
|
1757
1845
|
(0, react_1.useEffect)(function () {
|
|
1758
1846
|
if (resolvedType !== "read")
|
|
1759
1847
|
return;
|
|
@@ -10192,7 +10280,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10192
10280
|
};
|
|
10193
10281
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
10194
10282
|
renderNotification("root"),
|
|
10195
|
-
((
|
|
10283
|
+
((_69 = (_68 = props.renderSettings) === null || _68 === void 0 ? void 0 : _68.renderLoadingUI) === null || _69 === void 0 ? void 0 : _69.call(_68)) && loading ? ((_70 = props.renderSettings) === null || _70 === void 0 ? void 0 : _70.renderLoadingUI()) : (react_1.default.createElement(modal_1.Modal, { darkMode: (_71 = props.organise) === null || _71 === void 0 ? void 0 : _71.darkMode, darkModeBg: (_72 = props.organise) === null || _72 === void 0 ? void 0 : _72.darkModeBg, maxWidth: selectedObjectStructureId || excelModal ? "2xl" : undefined, open: modalVisible, title: renderModalTitle(), renderContent: renderModalContent, onClose: function () {
|
|
10196
10284
|
var _a, _b;
|
|
10197
10285
|
if (loading)
|
|
10198
10286
|
return;
|
|
@@ -10203,7 +10291,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10203
10291
|
setExportCSVEmail((_b = (_a = props.devSettings.currentUser) === null || _a === void 0 ? void 0 : _a.userEmail) !== null && _b !== void 0 ? _b : "");
|
|
10204
10292
|
}
|
|
10205
10293
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) })),
|
|
10206
|
-
react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10294
|
+
react_1.default.createElement(modal_1.Modal, { darkMode: (_73 = props.organise) === null || _73 === void 0 ? void 0 : _73.darkMode, darkModeBg: (_74 = props.organise) === null || _74 === void 0 ? void 0 : _74.darkModeBg, maxWidth: "2xl", open: referenceCreationModal.id ? true : false, renderContent: function () {
|
|
10207
10295
|
return (react_1.default.createElement(referenceModal_1.ReferenceModal, { referenceModelSchema: referenceModelSchema, referenceDataStructure: referenceCreationModal, devSettings: props.devSettings, handleCreateRefId: function (dataId) {
|
|
10208
10296
|
if (dataId) {
|
|
10209
10297
|
var currentValue = selectedData[referenceCreationModal.id];
|
|
@@ -10219,19 +10307,19 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10219
10307
|
}, onClose: function () {
|
|
10220
10308
|
setReferenceCreationModal({ id: "", name: "", type: "string" });
|
|
10221
10309
|
} }),
|
|
10222
|
-
react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10310
|
+
react_1.default.createElement(modal_1.Modal, { darkMode: (_75 = props.organise) === null || _75 === void 0 ? void 0 : _75.darkMode, darkModeBg: (_76 = props.organise) === null || _76 === void 0 ? void 0 : _76.darkModeBg, maxWidth: "2xl", open: Object.keys(referenceDeleteTableData).length > 0, renderContent: renderReferenceDeleteTable, onClose: function () {
|
|
10223
10311
|
setReferenceDeleteTableData({});
|
|
10224
10312
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
|
|
10225
|
-
react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10313
|
+
react_1.default.createElement(modal_1.Modal, { darkMode: (_77 = props.organise) === null || _77 === void 0 ? void 0 : _77.darkMode, darkModeBg: (_78 = props.organise) === null || _78 === void 0 ? void 0 : _78.darkModeBg, open: deleteModal, renderContent: renderDeleteModalContent, onClose: function () {
|
|
10226
10314
|
setDeletePasscodeInput("");
|
|
10227
10315
|
setDeleteModal(!deleteModal);
|
|
10228
10316
|
setDeleteFeedId("");
|
|
10229
10317
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
|
|
10230
|
-
react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10318
|
+
react_1.default.createElement(modal_1.Modal, { darkMode: (_79 = props.organise) === null || _79 === void 0 ? void 0 : _79.darkMode, darkModeBg: (_80 = props.organise) === null || _80 === void 0 ? void 0 : _80.darkModeBg, open: batchUpdateModal, renderContent: renderBatchUpdateModalContent, onClose: function () {
|
|
10231
10319
|
setBatchUpdateData({ columnId: "", columnData: {} });
|
|
10232
10320
|
setBatchUpdateModal(false);
|
|
10233
10321
|
}, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
|
|
10234
|
-
react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10322
|
+
react_1.default.createElement(modal_1.Modal, { darkMode: (_81 = props.organise) === null || _81 === void 0 ? void 0 : _81.darkMode, darkModeBg: (_82 = props.organise) === null || _82 === void 0 ? void 0 : _82.darkModeBg, title: "Edit Auth Method", open: selectedAuthMethod ? true : false, renderContent: function () {
|
|
10235
10323
|
var _a;
|
|
10236
10324
|
if (props.space)
|
|
10237
10325
|
return (react_1.default.createElement(authModal_1.AuthModal, { space: props.space, userId: (_a = props.id) !== null && _a !== void 0 ? _a : "", type: selectedAuthMethod, authMethods: authMethods, onComplete: handleAuthComplete }));
|
|
@@ -10239,7 +10327,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
10239
10327
|
}, onClose: function () {
|
|
10240
10328
|
setSelectedAuthMethod("");
|
|
10241
10329
|
} }),
|
|
10242
|
-
isActivityLog && (react_1.default.createElement(modal_1.Modal, { darkMode: (
|
|
10330
|
+
isActivityLog && (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, open: activityModal, title: "Activity Log", renderContent: function () {
|
|
10243
10331
|
var _a, _b;
|
|
10244
10332
|
return (react_1.default.createElement(activityModal_1.ActivityModal, { title: props.title && typeof props.title === "string"
|
|
10245
10333
|
? props.title
|