blixify-ui-web 1.2.122 → 1.2.124

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.
Files changed (79) hide show
  1. package/lib/components/data/dataTemplate/dataStateModel.d.ts +3 -0
  2. package/lib/components/data/dataTemplate/dataStateModel.d.ts.map +1 -1
  3. package/lib/components/data/dataTemplate/dataStateModel.js.map +1 -1
  4. package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
  5. package/lib/components/data/dataTemplate/index.js +594 -281
  6. package/lib/components/data/dataTemplate/index.js.map +1 -1
  7. package/lib/components/data/dataTemplate/model.d.ts +13 -13
  8. package/lib/components/data/dataTemplate/model.d.ts.map +1 -1
  9. package/lib/components/data/dataTemplate/viewStatePersistence.d.ts +70 -2
  10. package/lib/components/data/dataTemplate/viewStatePersistence.d.ts.map +1 -1
  11. package/lib/components/data/dataTemplate/viewStatePersistence.js +382 -15
  12. package/lib/components/data/dataTemplate/viewStatePersistence.js.map +1 -1
  13. package/lib/components/data/flexFilter/index.d.ts.map +1 -1
  14. package/lib/components/data/flexFilter/index.js +16 -16
  15. package/lib/components/data/flexFilter/index.js.map +1 -1
  16. package/lib/components/data/writeQuery/index.d.ts +1 -0
  17. package/lib/components/data/writeQuery/index.d.ts.map +1 -1
  18. package/lib/components/data/writeQuery/index.js +2 -0
  19. package/lib/components/data/writeQuery/index.js.map +1 -1
  20. package/lib/components/display/grid/index.d.ts.map +1 -1
  21. package/lib/components/display/grid/index.js +1 -1
  22. package/lib/components/display/grid/index.js.map +1 -1
  23. package/lib/components/display/kanban/index.d.ts.map +1 -1
  24. package/lib/components/display/kanban/index.js +1 -1
  25. package/lib/components/display/kanban/index.js.map +1 -1
  26. package/lib/components/display/list/index.d.ts.map +1 -1
  27. package/lib/components/display/list/index.js +1 -1
  28. package/lib/components/display/list/index.js.map +1 -1
  29. package/lib/components/display/newFeeds/index.d.ts.map +1 -1
  30. package/lib/components/display/newFeeds/index.js +1 -1
  31. package/lib/components/display/newFeeds/index.js.map +1 -1
  32. package/lib/components/display/newGrid/index.d.ts +41 -0
  33. package/lib/components/display/newGrid/index.d.ts.map +1 -0
  34. package/lib/components/display/newGrid/index.js +248 -0
  35. package/lib/components/display/newGrid/index.js.map +1 -0
  36. package/lib/components/display/newKanban/index.d.ts +11 -4
  37. package/lib/components/display/newKanban/index.d.ts.map +1 -1
  38. package/lib/components/display/newKanban/index.js +73 -41
  39. package/lib/components/display/newKanban/index.js.map +1 -1
  40. package/lib/components/display/newList/index.js +1 -1
  41. package/lib/components/display/newList/index.js.map +1 -1
  42. package/lib/components/display/newTable/index.d.ts +3 -3
  43. package/lib/components/display/newTable/index.d.ts.map +1 -1
  44. package/lib/components/display/newTable/index.js +47 -36
  45. package/lib/components/display/newTable/index.js.map +1 -1
  46. package/lib/components/display/table/index.d.ts.map +1 -1
  47. package/lib/components/display/table/index.js +2 -2
  48. package/lib/components/display/table/index.js.map +1 -1
  49. package/lib/components/display/tag/index.d.ts.map +1 -1
  50. package/lib/components/display/tag/index.js +13 -1
  51. package/lib/components/display/tag/index.js.map +1 -1
  52. package/lib/components/input/datePicker/index.d.ts +2 -0
  53. package/lib/components/input/datePicker/index.d.ts.map +1 -1
  54. package/lib/components/input/datePicker/index.js +11 -3
  55. package/lib/components/input/datePicker/index.js.map +1 -1
  56. package/lib/components/input/select/index.d.ts +1 -0
  57. package/lib/components/input/select/index.d.ts.map +1 -1
  58. package/lib/components/input/select/index.js +20 -13
  59. package/lib/components/input/select/index.js.map +1 -1
  60. package/lib/components/input/signature/index.d.ts +1 -0
  61. package/lib/components/input/signature/index.d.ts.map +1 -1
  62. package/lib/components/input/signature/index.js +8 -1
  63. package/lib/components/input/signature/index.js.map +1 -1
  64. package/lib/components/input/textInput/index.d.ts +2 -0
  65. package/lib/components/input/textInput/index.d.ts.map +1 -1
  66. package/lib/components/input/textInput/index.js +16 -3
  67. package/lib/components/input/textInput/index.js.map +1 -1
  68. package/lib/components/navigation/bars/index.d.ts +7 -4
  69. package/lib/components/navigation/bars/index.d.ts.map +1 -1
  70. package/lib/components/navigation/bars/index.js +56 -20
  71. package/lib/components/navigation/bars/index.js.map +1 -1
  72. package/lib/components/navigation/leftNav/index.d.ts +12 -2
  73. package/lib/components/navigation/leftNav/index.d.ts.map +1 -1
  74. package/lib/components/navigation/leftNav/index.js +48 -15
  75. package/lib/components/navigation/leftNav/index.js.map +1 -1
  76. package/lib/components/storyUtils.js +1 -1
  77. package/lib/components/storyUtils.js.map +1 -1
  78. package/lib/tail.css +2 -2
  79. package/package.json +1 -1
@@ -125,6 +125,7 @@ var stepper_1 = require("../../display/stepper");
125
125
  var table_1 = require("../../display/table");
126
126
  var newTable_1 = require("../../display/newTable");
127
127
  var newList_1 = require("../../display/newList");
128
+ var newGrid_1 = require("../../display/newGrid");
128
129
  var newKanban_1 = require("../../display/newKanban");
129
130
  var newCalendar_1 = require("../../display/newCalendar");
130
131
  var address_1 = require("../../input/address");
@@ -199,10 +200,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
199
200
  // Every read of the view type below uses resolvedType. The distinction matters
200
201
  // most in effect dependency arrays — following props.type there would leave
201
202
  // the list never refetching while the panel is open, which fails silently.
202
- 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;
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
204
  // INFO: the panel cannot navigate its way out — handleNavigate("read") is
204
205
  // routed straight back into it — so expand-to-full-page is local state.
205
- var _79 = (0, react_1.useState)(false), drawerPageView = _79[0], setDrawerPageView = _79[1];
206
+ var _83 = (0, react_1.useState)(false), drawerPageView = _83[0], setDrawerPageView = _83[1];
206
207
  // INFO: the panel keeps rendering the record it was opened with rather than
207
208
  // live props. Without this, navigating back to the list would re-render the
208
209
  // still-mounted panel as a second list behind the overlay.
@@ -284,16 +285,18 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
284
285
  initialFilterReferenceDate: initialFilterReferenceDate,
285
286
  };
286
287
  };
287
- var _80 = intialiseDefaultFilterValues(), initialFilterSearch = _80.initialFilterSearch, initialFilterSearchParams = _80.initialFilterSearchParams, initialFilterSelection = _80.initialFilterSelection, initialFilterReference = _80.initialFilterReference, initialFilterReferenceDate = _80.initialFilterReferenceDate;
288
+ var _84 = intialiseDefaultFilterValues(), initialFilterSearch = _84.initialFilterSearch, initialFilterSearchParams = _84.initialFilterSearchParams, initialFilterSelection = _84.initialFilterSelection, initialFilterReference = _84.initialFilterReference, initialFilterReferenceDate = _84.initialFilterReferenceDate;
288
289
  // INFO: Persist view state hook — handles storage read/write for filter/sort/column state
289
- var _81 = (0, viewStatePersistence_1.usePersistedViewState)({
290
+ var _85 = (0, viewStatePersistence_1.usePersistedViewState)({
290
291
  mode: (_b = props.organise) === null || _b === void 0 ? void 0 : _b.persistViewState,
291
292
  collectionId: props.collectionId,
292
293
  persistKey: (_c = props.organise) === null || _c === void 0 ? void 0 : _c.persistKey,
293
294
  type: resolvedType,
294
- }), persistedState = _81.persistedState, isPersistEnabled = _81.isEnabled, handleSaveView = _81.handleSaveView;
295
- var _82 = (0, react_1.useState)(false), loading = _82[0], setLoading = _82[1];
296
- var _83 = (0, react_1.useState)(), notification = _83[0], setNotification = _83[1];
295
+ }), rawPersistedState = _85.persistedState, isPersistEnabled = _85.isEnabled, handleSaveView = _85.handleSaveView, handleRegisterViewSnapshot = _85.handleRegisterViewSnapshot;
296
+ // INFO: drop stored filters/sort on removed columns — they would empty the table
297
+ var persistedState = (0, react_1.useMemo)(function () { return (0, viewStatePersistence_1.handlePruneStaleColumns)(rawPersistedState, props.model); }, [rawPersistedState, props.model]);
298
+ var _86 = (0, react_1.useState)(false), loading = _86[0], setLoading = _86[1];
299
+ var _87 = (0, react_1.useState)(), notification = _87[0], setNotification = _87[1];
297
300
  // INFO: a success toast is confirmation, not a decision — it clears itself so
298
301
  // it never sits on the floating step bar; errors stay until dismissed
299
302
  (0, react_1.useEffect)(function () {
@@ -303,59 +306,59 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
303
306
  return function () { return clearTimeout(timer); };
304
307
  }, [notification]);
305
308
  //INFO : Used by List
306
- var _84 = (0, react_1.useState)((_d = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _d !== void 0 ? _d : initialFilterSearch), filterSearch = _84[0], setFilterSearch = _84[1];
307
- var _85 = (0, react_1.useState)((_e = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _e !== void 0 ? _e : initialFilterSearchParams), filterSearchParams = _85[0], setFilterSearchParams = _85[1];
308
- var _86 = (0, react_1.useState)((_f = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSelection) !== null && _f !== void 0 ? _f : initialFilterSelection), filterSelection = _86[0], setFilterSelection = _86[1];
309
- var _87 = (0, react_1.useState)((_g = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReference) !== null && _g !== void 0 ? _g : initialFilterReference), filterReference = _87[0], setFilterReference = _87[1];
310
- var _88 = (0, react_1.useState)({}), filterReferenceSearch = _88[0], setFilterReferenceSearch = _88[1];
311
- var _89 = (0, react_1.useState)({}), filterReferenceList = _89[0], setFilterReferenceList = _89[1];
312
- var _90 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReferenceDate)
309
+ var _88 = (0, react_1.useState)((_d = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _d !== void 0 ? _d : initialFilterSearch), filterSearch = _88[0], setFilterSearch = _88[1];
310
+ var _89 = (0, react_1.useState)((_e = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _e !== void 0 ? _e : initialFilterSearchParams), filterSearchParams = _89[0], setFilterSearchParams = _89[1];
311
+ var _90 = (0, react_1.useState)((_f = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSelection) !== null && _f !== void 0 ? _f : initialFilterSelection), filterSelection = _90[0], setFilterSelection = _90[1];
312
+ var _91 = (0, react_1.useState)((_g = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReference) !== null && _g !== void 0 ? _g : initialFilterReference), filterReference = _91[0], setFilterReference = _91[1];
313
+ var _92 = (0, react_1.useState)({}), filterReferenceSearch = _92[0], setFilterReferenceSearch = _92[1];
314
+ var _93 = (0, react_1.useState)({}), filterReferenceList = _93[0], setFilterReferenceList = _93[1];
315
+ var _94 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReferenceDate)
313
316
  ? (0, viewStatePersistence_1.parseDateFilterState)(persistedState.filterReferenceDate)
314
- : initialFilterReferenceDate), filterReferenceDate = _90[0], setFilterReferenceDate = _90[1];
315
- var _91 = (0, react_1.useState)(true), tableLoading = _91[0], setTableLoading = _91[1];
316
- var _92 = (0, react_1.useState)(""), cursor = _92[0], setCursor = _92[1];
317
- var _93 = (0, react_1.useState)(""), lastCursor = _93[0], setLastCursor = _93[1];
318
- var _94 = (0, react_1.useState)([]), tableData = _94[0], setTableData = _94[1];
319
- var _95 = (0, react_1.useState)([]), spaceTableData = _95[0], setSpaceTableData = _95[1];
317
+ : initialFilterReferenceDate), filterReferenceDate = _94[0], setFilterReferenceDate = _94[1];
318
+ var _95 = (0, react_1.useState)(true), tableLoading = _95[0], setTableLoading = _95[1];
319
+ var _96 = (0, react_1.useState)(""), cursor = _96[0], setCursor = _96[1];
320
+ var _97 = (0, react_1.useState)(""), lastCursor = _97[0], setLastCursor = _97[1];
321
+ var _98 = (0, react_1.useState)([]), tableData = _98[0], setTableData = _98[1];
322
+ var _99 = (0, react_1.useState)([]), spaceTableData = _99[0], setSpaceTableData = _99[1];
320
323
  // INFO: a save resolves after later renders, so it reads the table from here —
321
324
  // the state it closed over can predate an earlier save on the same row
322
325
  var tableDataRef = (0, react_1.useRef)([]);
323
326
  var spaceTableDataRef = (0, react_1.useRef)([]);
324
327
  tableDataRef.current = tableData;
325
328
  spaceTableDataRef.current = spaceTableData;
326
- var _96 = (0, react_1.useState)(0), size = _96[0], setSize = _96[1];
327
- var _97 = (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 = _97[0], setPageIndex = _97[1];
328
- var _98 = (0, react_1.useState)([]), selectedIds = _98[0], setSelectedIds = _98[1];
329
- var _99 = (0, react_1.useState)(false), selectAll = _99[0], setSelectAll = _99[1];
330
- var _100 = (0, react_1.useState)(""), deletePasscode = _100[0], setDeletePasscode = _100[1];
331
- var _101 = (0, react_1.useState)(""), deletePasscodeInput = _101[0], setDeletePasscodeInput = _101[1];
332
- var _102 = (0, react_1.useState)(""), deleteFeedId = _102[0], setDeleteFeedId = _102[1];
329
+ var _100 = (0, react_1.useState)(0), size = _100[0], setSize = _100[1];
330
+ var _101 = (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 = _101[0], setPageIndex = _101[1];
331
+ var _102 = (0, react_1.useState)([]), selectedIds = _102[0], setSelectedIds = _102[1];
332
+ var _103 = (0, react_1.useState)(false), selectAll = _103[0], setSelectAll = _103[1];
333
+ var _104 = (0, react_1.useState)(""), deletePasscode = _104[0], setDeletePasscode = _104[1];
334
+ var _105 = (0, react_1.useState)(""), deletePasscodeInput = _105[0], setDeletePasscodeInput = _105[1];
335
+ var _106 = (0, react_1.useState)(""), deleteFeedId = _106[0], setDeleteFeedId = _106[1];
333
336
  //INFO : Used by List Organise
334
337
  // INFO: Internal sort state that overrides props.organise?.sort when
335
338
  // persistViewState is enabled and a persisted sort exists
336
- var _103 = (0, react_1.useState)((_l = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _l !== void 0 ? _l : undefined), persistedSort = _103[0], setPersistedSort = _103[1];
337
- var _104 = (0, react_1.useState)(false), filterDraft = _104[0], setFilterDraft = _104[1];
338
- var _105 = (0, react_1.useState)(false), addTabModal = _105[0], setAddTabModal = _105[1];
339
+ var _107 = (0, react_1.useState)((_l = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _l !== void 0 ? _l : undefined), persistedSort = _107[0], setPersistedSort = _107[1];
340
+ var _108 = (0, react_1.useState)(false), filterDraft = _108[0], setFilterDraft = _108[1];
341
+ var _109 = (0, react_1.useState)(false), addTabModal = _109[0], setAddTabModal = _109[1];
339
342
  //INFO : resolve the initial tab synchronously so the mount cond is already
340
343
  // tab-scoped — an empty initial tab caused a second wasted list fetch
341
- var _106 = (0, react_1.useState)(function () {
344
+ var _110 = (0, react_1.useState)(function () {
342
345
  var _a, _b;
343
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);
344
- }), selectedTab = _106[0], setSelectedTab = _106[1];
345
- var _107 = (0, react_1.useState)("dayGridMonth"), calendarView = _107[0], setCalendarView = _107[1];
347
+ }), selectedTab = _110[0], setSelectedTab = _110[1];
348
+ var _111 = (0, react_1.useState)("dayGridMonth"), calendarView = _111[0], setCalendarView = _111[1];
346
349
  // INFO: bareNewDTW calendar viewSwitch mode — drives the NewCalendar variant
347
350
  // (calendarView above drives the matching range query)
348
- var _108 = (0, react_1.useState)("month"), newCalendarViewMode = _108[0], setNewCalendarViewMode = _108[1];
349
- var _109 = (0, react_1.useState)(new Date()), calendarTabMonth = _109[0], setCalendarTabMonth = _109[1];
350
- var _110 = (0, react_1.useState)(true), kanbanDroppable = _110[0], setKanbanDroppable = _110[1];
351
- var _111 = (0, react_1.useState)([]), kanbanOptions = _111[0], setKanbanOptions = _111[1];
352
- var _112 = (0, react_1.useState)(false), queryForm = _112[0], setQueryForm = _112[1];
353
- var _113 = (0, react_1.useState)(false), batchUpdateModal = _113[0], setBatchUpdateModal = _113[1];
354
- var _114 = (0, react_1.useState)({
351
+ var _112 = (0, react_1.useState)("month"), newCalendarViewMode = _112[0], setNewCalendarViewMode = _112[1];
352
+ var _113 = (0, react_1.useState)(new Date()), calendarTabMonth = _113[0], setCalendarTabMonth = _113[1];
353
+ var _114 = (0, react_1.useState)(true), kanbanDroppable = _114[0], setKanbanDroppable = _114[1];
354
+ var _115 = (0, react_1.useState)([]), kanbanOptions = _115[0], setKanbanOptions = _115[1];
355
+ var _116 = (0, react_1.useState)(false), queryForm = _116[0], setQueryForm = _116[1];
356
+ var _117 = (0, react_1.useState)(false), batchUpdateModal = _117[0], setBatchUpdateModal = _117[1];
357
+ var _118 = (0, react_1.useState)({
355
358
  columnId: "",
356
359
  columnData: {},
357
- }), batchUpdateData = _114[0], setBatchUpdateData = _114[1];
358
- var _115 = (0, react_1.useState)(function () {
360
+ }), batchUpdateData = _118[0], setBatchUpdateData = _118[1];
361
+ var _119 = (0, react_1.useState)(function () {
359
362
  var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
360
363
  if (!persistedState)
361
364
  return baseModel;
@@ -381,8 +384,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
381
384
  });
382
385
  }
383
386
  return model;
384
- }), structure = _115[0], setStructure = _115[1];
385
- var _116 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _116[0], setAdditionalQuery = _116[1];
387
+ }), structure = _119[0], setStructure = _119[1];
388
+ var _120 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _120[0], setAdditionalQuery = _120[1];
386
389
  // INFO: State for user-configurable flex filters (Monday.com-style)
387
390
  // INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
388
391
  var defaultFlexFilterRow = [
@@ -393,9 +396,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
393
396
  value: undefined,
394
397
  },
395
398
  ];
396
- var _117 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
399
+ var _121 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
397
400
  ? persistedState.flexFilters
398
- : defaultFlexFilterRow), flexFilters = _117[0], setFlexFilters = _117[1];
401
+ : defaultFlexFilterRow), flexFilters = _121[0], setFlexFilters = _121[1];
399
402
  // INFO: always-current mirror of flexFilters, read by the imperative apply/
400
403
  // clear methods so chained calls in one tick aren't stale.
401
404
  var flexFiltersRef = (0, react_1.useRef)(flexFilters);
@@ -408,108 +411,124 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
408
411
  }, [flexFilters]);
409
412
  // INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
410
413
  // to prevent API calls on every keystroke when typing in value inputs
411
- var _118 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
414
+ var _122 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
412
415
  ? persistedState.flexFilters
413
- : defaultFlexFilterRow), flexFiltersDebounced = _118[0], setFlexFiltersDebounced = _118[1];
414
- var _119 = (0, react_1.useState)({}), flexFilterReferenceOptions = _119[0], setFlexFilterReferenceOptions = _119[1];
415
- var _120 = (0, react_1.useState)({}), flexFilterReferenceSearch = _120[0], setFlexFilterReferenceSearch = _120[1];
416
- var _121 = (0, react_1.useState)(false), flexFilterModalOpen = _121[0], setFlexFilterModalOpen = _121[1];
417
- var _122 = (0, react_1.useState)(false), viewSettingsModalOpen = _122[0], setViewSettingsModalOpen = _122[1];
416
+ : defaultFlexFilterRow), flexFiltersDebounced = _122[0], setFlexFiltersDebounced = _122[1];
417
+ var _123 = (0, react_1.useState)({}), flexFilterReferenceOptions = _123[0], setFlexFilterReferenceOptions = _123[1];
418
+ var _124 = (0, react_1.useState)({}), flexFilterReferenceSearch = _124[0], setFlexFilterReferenceSearch = _124[1];
419
+ var _125 = (0, react_1.useState)(false), flexFilterModalOpen = _125[0], setFlexFilterModalOpen = _125[1];
420
+ var _126 = (0, react_1.useState)(false), viewSettingsModalOpen = _126[0], setViewSettingsModalOpen = _126[1];
418
421
  // INFO: Columns the end user chose to hide (bareSettings.bareViewSettings).
419
422
  // Deliberately kept out of `structure`: the props-sync effect below resets
420
423
  // structure to props.model whenever props change, which would wipe the
421
424
  // choice, and the persist effect derives schema-level hiddenColumnIds from
422
425
  // structure — writing user hides there would blur the two concepts.
423
- var _123 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _123[0], setUserHiddenColumnIds = _123[1];
424
- var _124 = (0, react_1.useState)(""), columnSearch = _124[0], setColumnSearch = _124[1];
425
- var _125 = (0, react_1.useState)(null), draggingColumnId = _125[0], setDraggingColumnId = _125[1];
426
+ var _127 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _127[0], setUserHiddenColumnIds = _127[1];
427
+ var _128 = (0, react_1.useState)(""), columnSearch = _128[0], setColumnSearch = _128[1];
428
+ var _129 = (0, react_1.useState)([]), savedViews = _129[0], setSavedViews = _129[1];
429
+ var _130 = (0, react_1.useState)(null), activeSavedViewId = _130[0], setActiveSavedViewId = _130[1];
430
+ // INFO: null while the name box is closed
431
+ var _131 = (0, react_1.useState)(null), savedViewName = _131[0], setSavedViewName = _131[1];
432
+ var _132 = (0, react_1.useState)(null), deletingSavedViewId = _132[0], setDeletingSavedViewId = _132[1];
433
+ var _133 = (0, react_1.useState)(null), draggingColumnId = _133[0], setDraggingColumnId = _133[1];
426
434
  var columnRowRefs = (0, react_1.useRef)({});
427
435
  //INFO : Used by Auth
428
- var _126 = (0, react_1.useState)({
436
+ var _134 = (0, react_1.useState)({
429
437
  email: "",
430
438
  google: "",
431
439
  phone: "",
432
440
  disabled: false,
433
441
  create: false,
434
- }), authMethods = _126[0], setAuthMethods = _126[1];
435
- var _127 = (0, react_1.useState)(""), selectedAuthMethod = _127[0], setSelectedAuthMethod = _127[1];
442
+ }), authMethods = _134[0], setAuthMethods = _134[1];
443
+ var _135 = (0, react_1.useState)(""), selectedAuthMethod = _135[0], setSelectedAuthMethod = _135[1];
436
444
  // INFO: Used by Activity Log
437
- var _128 = (0, react_1.useState)(false), activityModal = _128[0], setActivityModal = _128[1];
438
- var _129 = (0, react_1.useState)(""), activityId = _129[0], setActivityId = _129[1];
445
+ var _136 = (0, react_1.useState)(false), activityModal = _136[0], setActivityModal = _136[1];
446
+ var _137 = (0, react_1.useState)(""), activityId = _137[0], setActivityId = _137[1];
439
447
  //INFO : Used by Export
440
- var _130 = (0, react_1.useState)(null), csvFile = _130[0], setCSVFile = _130[1];
441
- var _131 = (0, react_1.useState)([]), csvFileData = _131[0], setCSVFileData = _131[1];
442
- var _132 = (0, react_1.useState)(0), stepCSVIndex = _132[0], setStepCSVIndex = _132[1];
443
- var _133 = (0, react_1.useState)({}), listCSVMapAttribute = _133[0], setListCSVMapAttribute = _133[1];
444
- var _134 = (0, react_1.useState)({}), listCSVObjAttribute = _134[0], setListCSVObjAttribute = _134[1];
445
- var _135 = (0, react_1.useState)([]), csvAPIAttribute = _135[0], setCSVAPIAttribute = _135[1];
446
- var _136 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _136[0], setExportCSVEmail = _136[1];
447
- var _137 = (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 = _137[0], setExportPDFTitle = _137[1];
448
- var _138 = (0, react_1.useState)(false), exportPDFLoading = _138[0], setExportPDFLoading = _138[1];
449
- var _139 = (0, react_1.useState)(false), exportReadPDFLoading = _139[0], setExportReadPDFLoading = _139[1];
450
- var _140 = (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 = _140[0], setExportSumAttributeIds = _140[1];
451
- var _141 = (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 = _141[0], setHideSubItems = _141[1];
452
- var _142 = (0, react_1.useState)([]), importTableData = _142[0], setImportTableData = _142[1];
453
- var _143 = (0, react_1.useState)([]), queryList = _143[0], setQueryList = _143[1];
454
- var _144 = (0, react_1.useState)(undefined), allQueryList = _144[0], setAllQueryList = _144[1];
455
- var _145 = (0, react_1.useState)(-1), queryIndex = _145[0], setQueryIndex = _145[1];
456
- var _146 = (0, react_1.useState)((_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _146[0], setGroupId = _146[1];
457
- var _147 = (0, react_1.useState)(""), readTabSection = _147[0], setReadTabSection = _147[1];
458
- var _148 = (0, react_1.useState)(false), readFloatingNav = _148[0], setReadFloatingNav = _148[1];
448
+ var _138 = (0, react_1.useState)(null), csvFile = _138[0], setCSVFile = _138[1];
449
+ var _139 = (0, react_1.useState)([]), csvFileData = _139[0], setCSVFileData = _139[1];
450
+ var _140 = (0, react_1.useState)(0), stepCSVIndex = _140[0], setStepCSVIndex = _140[1];
451
+ var _141 = (0, react_1.useState)({}), listCSVMapAttribute = _141[0], setListCSVMapAttribute = _141[1];
452
+ var _142 = (0, react_1.useState)({}), listCSVObjAttribute = _142[0], setListCSVObjAttribute = _142[1];
453
+ var _143 = (0, react_1.useState)([]), csvAPIAttribute = _143[0], setCSVAPIAttribute = _143[1];
454
+ var _144 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _144[0], setExportCSVEmail = _144[1];
455
+ var _145 = (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 = _145[0], setExportPDFTitle = _145[1];
456
+ var _146 = (0, react_1.useState)(false), exportPDFLoading = _146[0], setExportPDFLoading = _146[1];
457
+ var _147 = (0, react_1.useState)(false), exportReadPDFLoading = _147[0], setExportReadPDFLoading = _147[1];
458
+ var _148 = (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 = _148[0], setExportSumAttributeIds = _148[1];
459
+ var _149 = (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 = _149[0], setHideSubItems = _149[1];
460
+ var _150 = (0, react_1.useState)([]), importTableData = _150[0], setImportTableData = _150[1];
461
+ var _151 = (0, react_1.useState)([]), queryList = _151[0], setQueryList = _151[1];
462
+ var _152 = (0, react_1.useState)(undefined), allQueryList = _152[0], setAllQueryList = _152[1];
463
+ var _153 = (0, react_1.useState)(-1), queryIndex = _153[0], setQueryIndex = _153[1];
464
+ var _154 = (0, react_1.useState)((_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _154[0], setGroupId = _154[1];
465
+ var _155 = (0, react_1.useState)(""), readTabSection = _155[0], setReadTabSection = _155[1];
466
+ var _156 = (0, react_1.useState)(false), readFloatingNav = _156[0], setReadFloatingNav = _156[1];
459
467
  var readTabSectionRefs = (0, react_1.useRef)({});
460
468
  //INFO : Used by Read
461
469
  //INFO : Used by Update
462
- var _149 = (0, react_1.useState)(false), modalVisible = _149[0], setModalVisible = _149[1];
463
- var _150 = (0, react_1.useState)(false), deleteModal = _150[0], setDeleteModal = _150[1];
464
- var _151 = (0, react_1.useState)(false), excelModal = _151[0], setExcelModal = _151[1];
465
- var _152 = (0, react_1.useState)(false), exportExcel = _152[0], setExportExcel = _152[1];
466
- var _153 = (0, react_1.useState)(""), exportType = _153[0], setExportType = _153[1];
467
- var _154 = (0, react_1.useState)(false), exportQR = _154[0], setExportQR = _154[1];
468
- var _155 = (0, react_1.useState)(function () {
470
+ var _157 = (0, react_1.useState)(false), modalVisible = _157[0], setModalVisible = _157[1];
471
+ var _158 = (0, react_1.useState)(false), deleteModal = _158[0], setDeleteModal = _158[1];
472
+ var _159 = (0, react_1.useState)(false), excelModal = _159[0], setExcelModal = _159[1];
473
+ var _160 = (0, react_1.useState)(false), exportExcel = _160[0], setExportExcel = _160[1];
474
+ var _161 = (0, react_1.useState)(""), exportType = _161[0], setExportType = _161[1];
475
+ var _162 = (0, react_1.useState)(false), exportQR = _162[0], setExportQR = _162[1];
476
+ var _163 = (0, react_1.useState)(function () {
469
477
  var _a, _b;
470
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 : "";
471
479
  return firstTabId;
472
- }), activeTab = _155[0], setActiveTab = _155[1];
473
- var _156 = (0, react_1.useState)(false), signatureSigning = _156[0], setSignatureSigning = _156[1];
474
- var _157 = (0, react_1.useState)({}), selectedData = _157[0], setSelectedData = _157[1];
475
- var _158 = (0, react_1.useState)(""), selectedObjectStructureId = _158[0], setSelectedObjectStructureId = _158[1];
476
- var _159 = (0, react_1.useState)(""), selectedObjectId = _159[0], setSelectedObjectId = _159[1];
477
- var _160 = (0, react_1.useState)(""), selectedListAddressId = _160[0], setSelectedListAddressId = _160[1];
478
- var _161 = (0, react_1.useState)(-1), selectedListAddressIndex = _161[0], setSelectedListAddressIndex = _161[1];
479
- var _162 = (0, react_1.useState)({
480
+ }), activeTab = _163[0], setActiveTab = _163[1];
481
+ var _164 = (0, react_1.useState)(false), signatureSigning = _164[0], setSignatureSigning = _164[1];
482
+ var _165 = (0, react_1.useState)({}), selectedData = _165[0], setSelectedData = _165[1];
483
+ var _166 = (0, react_1.useState)(""), selectedObjectStructureId = _166[0], setSelectedObjectStructureId = _166[1];
484
+ var _167 = (0, react_1.useState)(""), selectedObjectId = _167[0], setSelectedObjectId = _167[1];
485
+ var _168 = (0, react_1.useState)(""), selectedListAddressId = _168[0], setSelectedListAddressId = _168[1];
486
+ var _169 = (0, react_1.useState)(-1), selectedListAddressIndex = _169[0], setSelectedListAddressIndex = _169[1];
487
+ var _170 = (0, react_1.useState)({
480
488
  lat: 0,
481
489
  lng: 0,
482
490
  name: "",
483
- }), selectedListAddress = _162[0], setSelectedListAddress = _162[1];
484
- var _163 = (0, react_1.useState)({}), selectedObjectData = _163[0], setSelectedObjectData = _163[1];
485
- var _164 = (0, react_1.useState)(null), objectCellEdit = _164[0], setObjectCellEdit = _164[1];
486
- var _165 = (0, react_1.useState)(false), referenceLoading = _165[0], setReferenceLoading = _165[1];
487
- var _166 = (0, react_1.useState)({}), referencesOptions = _166[0], setReferencesOptions = _166[1];
488
- var _167 = (0, react_1.useState)({}), referencesDetails = _167[0], setReferencesDetails = _167[1];
489
- var _168 = (0, react_1.useState)({}), listReferencesOptions = _168[0], setListReferencesOptions = _168[1];
490
- var _169 = (0, react_1.useState)({}), referenceDeleteTableData = _169[0], setReferenceDeleteTableData = _169[1];
491
- var _170 = (0, react_1.useState)(0), referenceDeleteIndex = _170[0], setReferenceDeleteIndex = _170[1];
492
- var _171 = (0, react_1.useState)({
491
+ }), selectedListAddress = _170[0], setSelectedListAddress = _170[1];
492
+ var _171 = (0, react_1.useState)({}), selectedObjectData = _171[0], setSelectedObjectData = _171[1];
493
+ var _172 = (0, react_1.useState)(null), objectCellEdit = _172[0], setObjectCellEdit = _172[1];
494
+ var _173 = (0, react_1.useState)(false), referenceLoading = _173[0], setReferenceLoading = _173[1];
495
+ var _174 = (0, react_1.useState)({}), referencesOptions = _174[0], setReferencesOptions = _174[1];
496
+ var _175 = (0, react_1.useState)({}), referencesDetails = _175[0], setReferencesDetails = _175[1];
497
+ var _176 = (0, react_1.useState)({}), listReferencesOptions = _176[0], setListReferencesOptions = _176[1];
498
+ var _177 = (0, react_1.useState)({}), referenceDeleteTableData = _177[0], setReferenceDeleteTableData = _177[1];
499
+ var _178 = (0, react_1.useState)(0), referenceDeleteIndex = _178[0], setReferenceDeleteIndex = _178[1];
500
+ var _179 = (0, react_1.useState)({
493
501
  id: "",
494
502
  name: "",
495
503
  type: "string",
496
- }), referenceCreationModal = _171[0], setReferenceCreationModal = _171[1];
497
- var _172 = (0, react_1.useState)({}), referenceModelSchema = _172[0], setReferenceSchema = _172[1];
498
- var _173 = (0, react_1.useState)([]), kanbanChecked = _173[0], setKanbanChecked = _173[1];
504
+ }), referenceCreationModal = _179[0], setReferenceCreationModal = _179[1];
505
+ var _180 = (0, react_1.useState)({}), referenceModelSchema = _180[0], setReferenceSchema = _180[1];
506
+ var _181 = (0, react_1.useState)([]), kanbanChecked = _181[0], setKanbanChecked = _181[1];
499
507
  //INFO : Offline
500
- var _174 = (0, react_1.useState)(0), offlineDataLength = _174[0], setOfflineDataLength = _174[1];
501
- var _175 = (0, react_1.useState)(false), offlineModal = _175[0], setOfflineModal = _175[1];
508
+ var _182 = (0, react_1.useState)(0), offlineDataLength = _182[0], setOfflineDataLength = _182[1];
509
+ var _183 = (0, react_1.useState)(false), offlineModal = _183[0], setOfflineModal = _183[1];
502
510
  // INFO: live-stream state — driven by socket connection and navigator.onLine
503
- var _176 = (0, react_1.useState)(false), isLive = _176[0], setIsLive = _176[1];
504
- var _177 = (0, react_1.useState)(false), isLiveOffline = _177[0], setIsLiveOffline = _177[1];
511
+ var _184 = (0, react_1.useState)(false), isLive = _184[0], setIsLive = _184[1];
512
+ var _185 = (0, react_1.useState)(false), isLiveOffline = _185[0], setIsLiveOffline = _185[1];
505
513
  // INFO: true when navigator is offline — used to switch ReadQueryHoc between
506
514
  // server reads (online, full pagination) and IndexedDB reads (offline, cached data).
507
515
  // Independent of SSE status so it works even when bareSocketName is not set.
508
- var _178 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _178[0], setIsNetworkOffline = _178[1];
516
+ var _186 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _186[0], setIsNetworkOffline = _186[1];
509
517
  var previousType = (0, react_1.useRef)(null);
510
518
  var previousSelectedData = (0, react_1.useRef)(null);
511
519
  var scrollSentinelRef = (0, react_1.useRef)(null);
512
520
  var scrollSentinelDebounce = (0, react_1.useRef)(false);
521
+ // INFO: a ref, filled in the row click before navigating unmounts the list
522
+ var scrollCaptureRef = (0, react_1.useRef)({
523
+ scrollAnchorId: persistedState === null || persistedState === void 0 ? void 0 : persistedState.scrollAnchorId,
524
+ scrollOffset: persistedState === null || persistedState === void 0 ? void 0 : persistedState.scrollOffset,
525
+ });
526
+ // INFO: one restore per mount — polling and SSE refetches must not scroll the user back
527
+ var scrollRestoredRef = (0, react_1.useRef)(false);
528
+ // INFO: tells a mount apart from a tab switch on a mounted instance
529
+ var scrollIdentityRef = (0, react_1.useRef)(null);
530
+ var scrollScopeStartRef = (0, react_1.useRef)(null);
531
+ var scrollScopeEndRef = (0, react_1.useRef)(null);
513
532
  // INFO: captures the doc exactly as loaded from the server — used by
514
533
  // bareUpsertPartialUpdate to diff only the fields the user actually changed.
515
534
  // Intentionally separate from previousSelectedData, which advances on every
@@ -620,27 +639,30 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
620
639
  var isSchemaHideMode = ((_8 = props.organise) === null || _8 === void 0 ? void 0 : _8.onChangeHide) ? true : false;
621
640
  // INFO: rows per page is a view setting the user can change, so it starts from
622
641
  // the persisted value and falls back to the consumer's limit
623
- var _179 = (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 = _179[0], setPageLimit = _179[1];
642
+ var _187 = (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 = _187[0], setPageLimit = _187[1];
624
643
  var limit = pageLimit;
625
- var activeSortId = (isPersistEnabled && persistedSort) || ((_11 = props.organise) === null || _11 === void 0 ? void 0 : _11.sort);
644
+ var isSavedViewsEnabled = !!((_11 = props.organise) === null || _11 === void 0 ? void 0 : _11.savedViews) && resolvedType === "list";
645
+ // INFO: a saved view carries its sort, so the sort is held here as with persistViewState
646
+ var isInternalSort = isPersistEnabled || isSavedViewsEnabled;
647
+ var activeSortId = (isInternalSort && persistedSort) || ((_12 = props.organise) === null || _12 === void 0 ? void 0 : _12.sort);
626
648
  var handleSortColumn = function (value) {
627
649
  var _a, _b;
628
- if (isPersistEnabled)
650
+ if (isInternalSort)
629
651
  setPersistedSort(value);
630
652
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeSort) === null || _b === void 0 ? void 0 : _b.call(_a, value);
631
653
  };
632
- var _180 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _180.canUpdateRecord, canInlineUpdate = _180.canInlineUpdate, canBatchUpdate = _180.canBatchUpdate, canDeleteRecord = _180.canDeleteRecord;
633
- var isEditor = ((_12 = props.edit) === null || _12 === void 0 ? void 0 : _12.allEditable) ? true : false;
634
- var isOffline = (_13 = props.bareSettings) === null || _13 === void 0 ? void 0 : _13.bareOffline;
654
+ var _188 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _188.canUpdateRecord, canInlineUpdate = _188.canInlineUpdate, canBatchUpdate = _188.canBatchUpdate, canDeleteRecord = _188.canDeleteRecord;
655
+ var isEditor = ((_13 = props.edit) === null || _13 === void 0 ? void 0 : _13.allEditable) ? true : false;
656
+ var isOffline = (_14 = props.bareSettings) === null || _14 === void 0 ? void 0 : _14.bareOffline;
635
657
  // INFO: when bareOfflineNetworkAware is true, the save path is also gated on
636
658
  // the live network state — online saves go to the server even if bareOffline
637
659
  // is true, offline saves go to IDB as normal.
638
- var isOfflineNetworkListener = isOffline && ((_14 = props.bareSettings) === null || _14 === void 0 ? void 0 : _14.bareOfflineNetworkListener);
639
- var showId = (_15 = props.space) === null || _15 === void 0 ? void 0 : _15.showId;
660
+ var isOfflineNetworkListener = isOffline && ((_15 = props.bareSettings) === null || _15 === void 0 ? void 0 : _15.bareOfflineNetworkListener);
661
+ var showId = (_16 = props.space) === null || _16 === void 0 ? void 0 : _16.showId;
640
662
  var remainId = showId || selectedObjectStructureId ? true : false;
641
- var idField = ((_16 = props.space) === null || _16 === void 0 ? void 0 : _16.idField) || ((_17 = props.organise) === null || _17 === void 0 ? void 0 : _17.idField);
642
- var pipeline = (_18 = props === null || props === void 0 ? void 0 : props.space) === null || _18 === void 0 ? void 0 : _18.pipeline;
643
- if ((_19 = props.bareSettings) === null || _19 === void 0 ? void 0 : _19.bareListPipeline) {
663
+ var idField = ((_17 = props.space) === null || _17 === void 0 ? void 0 : _17.idField) || ((_18 = props.organise) === null || _18 === void 0 ? void 0 : _18.idField);
664
+ var pipeline = (_19 = props === null || props === void 0 ? void 0 : props.space) === null || _19 === void 0 ? void 0 : _19.pipeline;
665
+ if ((_20 = props.bareSettings) === null || _20 === void 0 ? void 0 : _20.bareListPipeline) {
644
666
  pipeline = pipeline
645
667
  ? __spreadArray(__spreadArray([], pipeline, true), props.bareSettings.bareListPipeline, true) : props.bareSettings.bareListPipeline;
646
668
  }
@@ -653,24 +675,24 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
653
675
  * three records came back instead of five files, and each tile received the
654
676
  * whole array rather than one file, so every one of them read "Attachment".
655
677
  */
656
- var fileViewColumnId = (_23 = (_22 = ((_21 = (_20 = props.organise) === null || _20 === void 0 ? void 0 : _20.extendedTabs) !== null && _21 !== void 0 ? _21 : []).find(function (eachTab) {
678
+ var fileViewColumnId = (_24 = (_23 = ((_22 = (_21 = props.organise) === null || _21 === void 0 ? void 0 : _21.extendedTabs) !== null && _22 !== void 0 ? _22 : []).find(function (eachTab) {
657
679
  return eachTab.viewType === "file" &&
658
680
  (0, utils_1.lowercaseTextToId)(eachTab.name) === viewType;
659
- })) === null || _22 === void 0 ? void 0 : _22.fileSettings) === null || _23 === void 0 ? void 0 : _23.columnId;
660
- var hasNavigation = ((_24 = props.organise) === null || _24 === void 0 ? void 0 : _24.handleNavigate) ? true : false;
681
+ })) === null || _23 === void 0 ? void 0 : _23.fileSettings) === null || _24 === void 0 ? void 0 : _24.columnId;
682
+ var hasNavigation = ((_25 = props.organise) === null || _25 === void 0 ? void 0 : _25.handleNavigate) ? true : false;
661
683
  var formColumn = "grid-cols-12";
662
- var useMobileView = (_26 = (_25 = props.bareSettings) === null || _25 === void 0 ? void 0 : _25.bareUpdateMobileView) !== null && _26 !== void 0 ? _26 : false;
684
+ var useMobileView = (_27 = (_26 = props.bareSettings) === null || _26 === void 0 ? void 0 : _26.bareUpdateMobileView) !== null && _27 !== void 0 ? _27 : false;
663
685
  var gridGap = useMobileView ? "gap-x-6 gap-y-2 md:gap-y-6" : "gap-6";
664
- var isActivityLog = (((_28 = (_27 = props.edit) === null || _27 === void 0 ? void 0 : _27.activityLog) === null || _28 === void 0 ? void 0 : _28.enableComments) &&
665
- ((_29 = props.edit) === null || _29 === void 0 ? void 0 : _29.activityLog.commentCollectionId)) ||
666
- (((_31 = (_30 = props.edit) === null || _30 === void 0 ? void 0 : _30.activityLog) === null || _31 === void 0 ? void 0 : _31.enableLogs) &&
667
- ((_32 = props.edit) === null || _32 === void 0 ? void 0 : _32.activityLog.logsCollectionId));
668
- var customPaginationSize = ((_33 = props.organise) === null || _33 === void 0 ? void 0 : _33.customPaginationCount)
686
+ var isActivityLog = (((_29 = (_28 = props.edit) === null || _28 === void 0 ? void 0 : _28.activityLog) === null || _29 === void 0 ? void 0 : _29.enableComments) &&
687
+ ((_30 = props.edit) === null || _30 === void 0 ? void 0 : _30.activityLog.commentCollectionId)) ||
688
+ (((_32 = (_31 = props.edit) === null || _31 === void 0 ? void 0 : _31.activityLog) === null || _32 === void 0 ? void 0 : _32.enableLogs) &&
689
+ ((_33 = props.edit) === null || _33 === void 0 ? void 0 : _33.activityLog.logsCollectionId));
690
+ var customPaginationSize = ((_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.customPaginationCount)
669
691
  ? props.organise.customPaginationCount(size)
670
692
  : undefined;
671
693
  //TODO : Code - Pass ...devSettings, search dbEndpoint:
672
694
  var writeServerQuery = new writeQuery_1.WriteQuery({
673
- dbModule: (_34 = props.lib) === null || _34 === void 0 ? void 0 : _34.axios,
695
+ dbModule: (_35 = props.lib) === null || _35 === void 0 ? void 0 : _35.axios,
674
696
  dbType: devSettings.server,
675
697
  dbCollection: props.collectionId,
676
698
  dbEndpoint: devSettings.dbEndpoint,
@@ -678,7 +700,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
678
700
  dbUserToken: devSettings.dbUserToken,
679
701
  });
680
702
  var readServerQuery = new readQuery_1.ReadQuery({
681
- dbModule: (_35 = props.lib) === null || _35 === void 0 ? void 0 : _35.axios,
703
+ dbModule: (_36 = props.lib) === null || _36 === void 0 ? void 0 : _36.axios,
682
704
  dbType: devSettings.server,
683
705
  dbCollection: props.collectionId,
684
706
  dbEndpoint: devSettings.dbEndpoint,
@@ -686,9 +708,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
686
708
  dbUserToken: devSettings.dbUserToken,
687
709
  });
688
710
  var moreButtonPopUp = [
689
- ((_36 = props.edit) === null || _36 === void 0 ? void 0 : _36.allEditable) &&
711
+ ((_37 = props.edit) === null || _37 === void 0 ? void 0 : _37.allEditable) &&
690
712
  !isFirebase &&
691
- !((_38 = (_37 = props.organise) === null || _37 === void 0 ? void 0 : _37.exportSettings) === null || _38 === void 0 ? void 0 : _38.hideImportCSV)
713
+ !((_39 = (_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.exportSettings) === null || _39 === void 0 ? void 0 : _39.hideImportCSV)
692
714
  ? {
693
715
  text: "Import Excel",
694
716
  onClick: function () {
@@ -697,7 +719,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
697
719
  },
698
720
  }
699
721
  : null,
700
- !((_40 = (_39 = props.organise) === null || _39 === void 0 ? void 0 : _39.exportSettings) === null || _40 === void 0 ? void 0 : _40.hideExportCSV)
722
+ !((_41 = (_40 = props.organise) === null || _40 === void 0 ? void 0 : _40.exportSettings) === null || _41 === void 0 ? void 0 : _41.hideExportCSV)
701
723
  ? {
702
724
  text: "Export CSV",
703
725
  onClick: function () {
@@ -707,7 +729,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
707
729
  },
708
730
  }
709
731
  : null,
710
- !((_42 = (_41 = props.organise) === null || _41 === void 0 ? void 0 : _41.exportSettings) === null || _42 === void 0 ? void 0 : _42.hideExportExcel)
732
+ !((_43 = (_42 = props.organise) === null || _42 === void 0 ? void 0 : _42.exportSettings) === null || _43 === void 0 ? void 0 : _43.hideExportExcel)
711
733
  ? {
712
734
  text: "Export Excel",
713
735
  onClick: function () {
@@ -717,7 +739,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
717
739
  },
718
740
  }
719
741
  : null,
720
- !((_44 = (_43 = props.organise) === null || _43 === void 0 ? void 0 : _43.exportSettings) === null || _44 === void 0 ? void 0 : _44.hideExportPDF)
742
+ !((_45 = (_44 = props.organise) === null || _44 === void 0 ? void 0 : _44.exportSettings) === null || _45 === void 0 ? void 0 : _45.hideExportPDF)
721
743
  ? {
722
744
  text: "Export PDF",
723
745
  onClick: function () {
@@ -727,7 +749,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
727
749
  },
728
750
  }
729
751
  : null,
730
- !((_46 = (_45 = props.organise) === null || _45 === void 0 ? void 0 : _45.exportSettings) === null || _46 === void 0 ? void 0 : _46.hideExportQR)
752
+ !((_47 = (_46 = props.organise) === null || _46 === void 0 ? void 0 : _46.exportSettings) === null || _47 === void 0 ? void 0 : _47.hideExportQR)
731
753
  ? {
732
754
  text: "Export QR",
733
755
  onClick: function () {
@@ -737,7 +759,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
737
759
  },
738
760
  }
739
761
  : null,
740
- !((_48 = (_47 = props.organise) === null || _47 === void 0 ? void 0 : _47.exportSettings) === null || _48 === void 0 ? void 0 : _48.hideExportQR)
762
+ !((_49 = (_48 = props.organise) === null || _48 === void 0 ? void 0 : _48.exportSettings) === null || _49 === void 0 ? void 0 : _49.hideExportQR)
741
763
  ? {
742
764
  text: "Export QR(Data)",
743
765
  onClick: function () {
@@ -747,7 +769,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
747
769
  },
748
770
  }
749
771
  : null,
750
- !((_50 = (_49 = props.organise) === null || _49 === void 0 ? void 0 : _49.exportSettings) === null || _50 === void 0 ? void 0 : _50.hideExportPrint)
772
+ !((_51 = (_50 = props.organise) === null || _50 === void 0 ? void 0 : _50.exportSettings) === null || _51 === void 0 ? void 0 : _51.hideExportPrint)
751
773
  ? {
752
774
  text: "Print",
753
775
  onClick: function () {
@@ -757,7 +779,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
757
779
  },
758
780
  }
759
781
  : null,
760
- !((_52 = (_51 = props.organise) === null || _51 === void 0 ? void 0 : _51.exportSettings) === null || _52 === void 0 ? void 0 : _52.hideExportDraft)
782
+ !((_53 = (_52 = props.organise) === null || _52 === void 0 ? void 0 : _52.exportSettings) === null || _53 === void 0 ? void 0 : _53.hideExportDraft)
761
783
  ? {
762
784
  text: filterDraft ? "Show All Items" : "Filter Draft",
763
785
  onClick: function () {
@@ -766,7 +788,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
766
788
  }
767
789
  : null,
768
790
  ].filter(Boolean);
769
- if ((_53 = props.organise) === null || _53 === void 0 ? void 0 : _53.moreSettings)
791
+ if ((_54 = props.organise) === null || _54 === void 0 ? void 0 : _54.moreSettings)
770
792
  moreButtonPopUp = moreButtonPopUp.concat(props.organise.moreSettings);
771
793
  //=====================================================================================
772
794
  //SECTION: User Column Visibility Handlers
@@ -1024,6 +1046,173 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1024
1046
  isLive: isLive,
1025
1047
  isLiveOffline: isLiveOffline,
1026
1048
  }); });
1049
+ // INFO: only a gridScroll grid scrolls horizontally
1050
+ var handleResolveScrollScope = function () { return ({
1051
+ start: scrollScopeStartRef.current,
1052
+ end: scrollScopeEndRef.current,
1053
+ }); };
1054
+ var handleResolveScrollAxis = function () {
1055
+ var isGridTab = (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.viewType) === "grid";
1056
+ return isGridTab && renderCheckScrollMode() ? "horizontal" : "vertical";
1057
+ };
1058
+ // INFO: one payload builder for the save effect, the drill-in capture and the flush
1059
+ var handleBuildViewSnapshot = function () {
1060
+ var _a;
1061
+ return (__assign({ filterSearchParams: filterSearchParams, filterSelection: filterSelection, filterReference: filterReference, filterReferenceDate: (0, viewStatePersistence_1.serializeDateFilterState)(filterReferenceDate), flexFilters: flexFiltersDebounced.some(function (eachFilter) {
1062
+ return (0, flexFilter_1.isFlexFilterActive)(eachFilter, structure);
1063
+ })
1064
+ ? flexFiltersDebounced.filter(function (eachFilter) {
1065
+ return (0, flexFilter_1.isFlexFilterActive)(eachFilter, structure);
1066
+ })
1067
+ : undefined, sort: persistedSort !== null && persistedSort !== void 0 ? persistedSort : (_a = props.organise) === null || _a === void 0 ? void 0 : _a.sort, pageLimit: pageLimit,
1068
+ // INFO: scroll mode reloads from page 0; the anchor restores the position
1069
+ pageIndex: renderCheckScrollMode() ? 0 : pageIndex, hiddenColumnIds: structure.filter(function (col) { return col.hide; }).map(function (col) { return col.id; }),
1070
+ // INFO: raw, so switching bareViewSettings off does not wipe the user's choice
1071
+ userHiddenColumnIds: userHiddenColumnIds, columnOrder: structure.map(function (col) { return col.id; }) }, scrollCaptureRef.current));
1072
+ };
1073
+ handleRegisterViewSnapshot(handleBuildViewSnapshot);
1074
+ //=====================================================================================
1075
+ //SECTION: Saved Views
1076
+ //=====================================================================================
1077
+ var savedViewsKey = (0, viewStatePersistence_1.buildSavedViewsKey)(props.collectionId, (_55 = props.organise) === null || _55 === void 0 ? void 0 : _55.persistKey, (_56 = devSettings.currentUser) === null || _56 === void 0 ? void 0 : _56.userEmail);
1078
+ (0, react_1.useEffect)(function () {
1079
+ if (isSavedViewsEnabled)
1080
+ setSavedViews((0, viewStatePersistence_1.handleReadSavedViews)(savedViewsKey));
1081
+ }, [isSavedViewsEnabled, savedViewsKey]);
1082
+ // INFO: views belong to a tab, so another tab starts with none selected
1083
+ (0, react_1.useEffect)(function () {
1084
+ setActiveSavedViewId(null);
1085
+ setSavedViewName(null);
1086
+ setDeletingSavedViewId(null);
1087
+ }, [viewType]);
1088
+ var handleGetTabSavedViews = function () {
1089
+ var _a, _b;
1090
+ 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
+ .map(function (eachView, index) {
1093
+ var _a, _b;
1094
+ return ({
1095
+ id: (_a = eachView.id) !== null && _a !== void 0 ? _a : "default-".concat(index),
1096
+ name: eachView.name,
1097
+ tabId: (_b = eachView.tabId) !== null && _b !== void 0 ? _b : viewType,
1098
+ state: eachView.state,
1099
+ locked: true,
1100
+ });
1101
+ }), true), savedViews.filter(function (eachView) { return eachView.tabId === viewType; }), true);
1102
+ };
1103
+ // INFO: a view is the defaults overridden by its own fields, so a field it
1104
+ // leaves out is reset rather than carried over from whatever was on screen
1105
+ var handleResolveViewState = function (state) {
1106
+ var _a, _b, _c, _d;
1107
+ var model = (_a = props.model) !== null && _a !== void 0 ? _a : [];
1108
+ return ((_d = (0, viewStatePersistence_1.handlePruneStaleColumns)(__assign({ filterSearchParams: initialFilterSearchParams, filterSelection: initialFilterSelection, filterReference: initialFilterReference, filterReferenceDate: (0, viewStatePersistence_1.serializeDateFilterState)(initialFilterReferenceDate), sort: (_b = props.organise) === null || _b === void 0 ? void 0 : _b.sort, pageLimit: (_c = props.limit) !== null && _c !== void 0 ? _c : 10, userHiddenColumnIds: [], hiddenColumnIds: model
1109
+ .filter(function (eachColumn) { return eachColumn.hide; })
1110
+ .map(function (eachColumn) { return eachColumn.id; }), columnOrder: model.map(function (eachColumn) { return eachColumn.id; }) }, (state !== null && state !== void 0 ? state : {})), model)) !== null && _d !== void 0 ? _d : {});
1111
+ };
1112
+ var handleApplyViewColumns = function (columns, state) {
1113
+ var _a;
1114
+ var order = new Map(((_a = state.columnOrder) !== null && _a !== void 0 ? _a : []).map(function (eachId, index) { return [eachId, index]; }));
1115
+ var ordered = __spreadArray([], columns, true).sort(function (a, b) { var _a, _b; return ((_a = order.get(a.id)) !== null && _a !== void 0 ? _a : order.size) - ((_b = order.get(b.id)) !== null && _b !== void 0 ? _b : order.size); });
1116
+ // INFO: schema-level hides move only in schema-hide mode, and only on this
1117
+ // screen — a personal view never writes back through onChangeHide
1118
+ if (!isSchemaHideMode || !state.hiddenColumnIds)
1119
+ return ordered;
1120
+ return ordered.map(function (eachColumn) {
1121
+ var _a, _b;
1122
+ return (__assign(__assign({}, eachColumn), { hide: (_b = (_a = state.hiddenColumnIds) === null || _a === void 0 ? void 0 : _a.includes(eachColumn.id)) !== null && _b !== void 0 ? _b : false }));
1123
+ });
1124
+ };
1125
+ var handleApplySavedView = function (view) {
1126
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1127
+ var next = handleResolveViewState((_a = view === null || view === void 0 ? void 0 : view.state) !== null && _a !== void 0 ? _a : null);
1128
+ var isQueryChanged = !(0, viewStatePersistence_1.handleIsSameViewState)((0, viewStatePersistence_1.handlePickQueryState)(handleBuildViewSnapshot()), (0, viewStatePersistence_1.handlePickQueryState)(next));
1129
+ handleClearFlexFilterTypingTimeout();
1130
+ if (typingTimeout.current) {
1131
+ clearTimeout(typingTimeout.current);
1132
+ typingTimeout.current = null;
1133
+ }
1134
+ setFilterSearch((_b = next.filterSearchParams) !== null && _b !== void 0 ? _b : {});
1135
+ setFilterSearchParams((_c = next.filterSearchParams) !== null && _c !== void 0 ? _c : {});
1136
+ setFilterSelection(((_d = next.filterSelection) !== null && _d !== void 0 ? _d : {}));
1137
+ setFilterReference(((_e = next.filterReference) !== null && _e !== void 0 ? _e : {}));
1138
+ setFilterReferenceDate(next.filterReferenceDate
1139
+ ? (0, viewStatePersistence_1.parseDateFilterState)(next.filterReferenceDate)
1140
+ : initialFilterReferenceDate);
1141
+ handleCommitFlexFilters(((_f = next.flexFilters) === null || _f === void 0 ? void 0 : _f.length) ? next.flexFilters : defaultFlexFilterRow);
1142
+ setPersistedSort(next.sort);
1143
+ if (next.pageLimit)
1144
+ setPageLimit(next.pageLimit);
1145
+ setUserHiddenColumnIds((_g = next.userHiddenColumnIds) !== null && _g !== void 0 ? _g : []);
1146
+ setStructure(function (prev) { return handleApplyViewColumns(prev, next); });
1147
+ // INFO: only a query change refetches — loading with no refetch never ends
1148
+ if (isQueryChanged)
1149
+ handleClearDataByFilter();
1150
+ setActiveSavedViewId((_h = view === null || view === void 0 ? void 0 : view.id) !== null && _h !== void 0 ? _h : null);
1151
+ setDeletingSavedViewId(null);
1152
+ };
1153
+ var handleStoreSavedViews = function (views) {
1154
+ setSavedViews(views);
1155
+ (0, viewStatePersistence_1.handleWriteSavedViews)(savedViewsKey, views);
1156
+ };
1157
+ // INFO: a name already used on this tab is overwritten
1158
+ var handleSaveSavedView = function (name) {
1159
+ var trimmed = name.trim();
1160
+ if (!trimmed)
1161
+ return;
1162
+ var state = (0, viewStatePersistence_1.handlePickViewState)(handleBuildViewSnapshot());
1163
+ var existing = savedViews.find(function (eachView) { return eachView.tabId === viewType && eachView.name === trimmed; });
1164
+ var saved = existing
1165
+ ? __assign(__assign({}, existing), { state: state }) : { id: (0, uuid_1.v4)(), name: trimmed, tabId: viewType, state: state };
1166
+ handleStoreSavedViews(existing
1167
+ ? savedViews.map(function (eachView) {
1168
+ return eachView.id === existing.id ? saved : eachView;
1169
+ })
1170
+ : __spreadArray(__spreadArray([], savedViews, true), [saved], false));
1171
+ setActiveSavedViewId(saved.id);
1172
+ setSavedViewName(null);
1173
+ };
1174
+ var handleUpdateSavedView = function (id) {
1175
+ var state = (0, viewStatePersistence_1.handlePickViewState)(handleBuildViewSnapshot());
1176
+ handleStoreSavedViews(savedViews.map(function (eachView) {
1177
+ return eachView.id === id ? __assign(__assign({}, eachView), { state: state }) : eachView;
1178
+ }));
1179
+ };
1180
+ var handleDeleteSavedView = function (id) {
1181
+ handleStoreSavedViews(savedViews.filter(function (eachView) { return eachView.id !== id; }));
1182
+ if (activeSavedViewId === id)
1183
+ setActiveSavedViewId(null);
1184
+ setDeletingSavedViewId(null);
1185
+ };
1186
+ // INFO: called in the row click, while the list is still mounted and scrolled
1187
+ var handleCaptureListScroll = function (recordId) {
1188
+ var _a, _b;
1189
+ if (!isPersistEnabled)
1190
+ return;
1191
+ scrollCaptureRef.current = (0, viewStatePersistence_1.handleCaptureScrollPosition)(recordId, handleResolveScrollAxis(), handleResolveScrollScope());
1192
+ handleSaveView(handleBuildViewSnapshot());
1193
+ (0, viewStatePersistence_1.handleMarkLastDrill)((_a = props.organise) === null || _a === void 0 ? void 0 : _a.persistViewState, props.collectionId, (_b = props.organise) === null || _b === void 0 ? void 0 : _b.persistKey);
1194
+ };
1195
+ // INFO: a filter, sort or page change shows different rows, so the old position is dropped
1196
+ var scrollCaptureResetInitialised = (0, react_1.useRef)(false);
1197
+ (0, react_1.useEffect)(function () {
1198
+ if (!isPersistEnabled)
1199
+ return;
1200
+ if (!scrollCaptureResetInitialised.current) {
1201
+ scrollCaptureResetInitialised.current = true;
1202
+ return;
1203
+ }
1204
+ scrollCaptureRef.current = {};
1205
+ /* eslint-disable */
1206
+ }, [
1207
+ filterSearchParams,
1208
+ filterSelection,
1209
+ filterReference,
1210
+ filterReferenceDate,
1211
+ flexFiltersDebounced,
1212
+ pageIndex,
1213
+ persistedSort,
1214
+ ]);
1215
+ /* eslint-enable */
1027
1216
  // INFO: notify the consumer whenever the applied flex filters change, so a
1028
1217
  // parent can observe live filter state. Uses the debounced state so it fires
1029
1218
  // on committed changes, not every keystroke.
@@ -1035,7 +1224,6 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1035
1224
  // or column visibility change. Active for both "persistent" and "session" modes.
1036
1225
  var persistSaveInitialised = (0, react_1.useRef)(false);
1037
1226
  (0, react_1.useEffect)(function () {
1038
- var _a;
1039
1227
  if (!isPersistEnabled)
1040
1228
  return;
1041
1229
  // INFO: Skip the first invocation — deps have hydrated initial values from storage,
@@ -1044,26 +1232,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1044
1232
  persistSaveInitialised.current = true;
1045
1233
  return;
1046
1234
  }
1047
- var activeFlexFilters = flexFiltersDebounced.filter(function (eachFilter) {
1048
- return (0, flexFilter_1.isFlexFilterActive)(eachFilter, structure);
1049
- });
1050
- handleSaveView({
1051
- filterSearchParams: filterSearchParams,
1052
- filterSelection: filterSelection,
1053
- filterReference: filterReference,
1054
- filterReferenceDate: (0, viewStatePersistence_1.serializeDateFilterState)(filterReferenceDate),
1055
- flexFilters: activeFlexFilters.length ? activeFlexFilters : undefined,
1056
- sort: persistedSort !== null && persistedSort !== void 0 ? persistedSort : (_a = props.organise) === null || _a === void 0 ? void 0 : _a.sort,
1057
- // INFO: scroll mode always starts from page 0 on reload — persisting
1058
- // a mid-scroll pageIndex would skip rows on next hydration.
1059
- pageIndex: renderCheckScrollMode() ? 0 : pageIndex,
1060
- hiddenColumnIds: structure.filter(function (col) { return col.hide; }).map(function (col) { return col.id; }),
1061
- // INFO: stored raw rather than through getActiveUserHiddenColumnIds so a
1062
- // consumer temporarily switching bareViewSettings off does not wipe the
1063
- // user's saved choice.
1064
- userHiddenColumnIds: userHiddenColumnIds,
1065
- columnOrder: structure.map(function (col) { return col.id; }),
1066
- });
1235
+ handleSaveView(handleBuildViewSnapshot());
1236
+ /* eslint-disable */
1067
1237
  }, [
1068
1238
  filterSearchParams,
1069
1239
  filterSelection,
@@ -1074,7 +1244,53 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1074
1244
  structure,
1075
1245
  persistedSort,
1076
1246
  userHiddenColumnIds,
1247
+ pageLimit,
1077
1248
  ]);
1249
+ /* eslint-enable */
1250
+ // INFO: re-arm on leaving the list, so each return from a record restores once
1251
+ (0, react_1.useEffect)(function () {
1252
+ if (props.type !== "list")
1253
+ scrollRestoredRef.current = false;
1254
+ }, [props.type]);
1255
+ // INFO: restore only on mount, and only for the list a record was last opened from —
1256
+ // not on a tab switch, and not for the other lists on the page
1257
+ (0, react_1.useEffect)(function () {
1258
+ var _a, _b, _c;
1259
+ var identity = "".concat(props.collectionId, "|").concat((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.persistKey) !== null && _b !== void 0 ? _b : "");
1260
+ var isSwitch = scrollIdentityRef.current !== null &&
1261
+ scrollIdentityRef.current !== identity;
1262
+ scrollIdentityRef.current = identity;
1263
+ scrollCaptureRef.current = {
1264
+ scrollAnchorId: persistedState === null || persistedState === void 0 ? void 0 : persistedState.scrollAnchorId,
1265
+ scrollOffset: persistedState === null || persistedState === void 0 ? void 0 : persistedState.scrollOffset,
1266
+ };
1267
+ var isOtherListReturn = !(0, viewStatePersistence_1.handleIsLastDrill)(props.collectionId, (_c = props.organise) === null || _c === void 0 ? void 0 : _c.persistKey);
1268
+ scrollRestoredRef.current = isSwitch || isOtherListReturn;
1269
+ /* eslint-disable */
1270
+ }, [props.collectionId, (_57 = props.organise) === null || _57 === void 0 ? void 0 : _57.persistKey]);
1271
+ /* eslint-enable */
1272
+ // INFO: wait a frame — rows land in state one tick before layout
1273
+ (0, react_1.useEffect)(function () {
1274
+ if (!isPersistEnabled)
1275
+ return;
1276
+ if (scrollRestoredRef.current)
1277
+ return;
1278
+ if (props.type !== "list")
1279
+ return;
1280
+ if (tableLoading || spaceTableData.length === 0)
1281
+ return;
1282
+ var frame = requestAnimationFrame(function () {
1283
+ if (scrollRestoredRef.current)
1284
+ return;
1285
+ // INFO: done even if nothing applied, so later data changes do not scroll
1286
+ scrollRestoredRef.current = true;
1287
+ // INFO: the ref, not persistedState — returning from a record often does not remount
1288
+ (0, viewStatePersistence_1.handleRestoreScrollPosition)(scrollCaptureRef.current, handleResolveScrollAxis(), handleResolveScrollScope());
1289
+ });
1290
+ return function () { return cancelAnimationFrame(frame); };
1291
+ /* eslint-disable */
1292
+ }, [isPersistEnabled, props.type, tableLoading, spaceTableData.length]);
1293
+ /* eslint-enable */
1078
1294
  (0, react_1.useEffect)(function () {
1079
1295
  handleCheckOfflineDataLength();
1080
1296
  /* eslint-disable */
@@ -1086,7 +1302,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1086
1302
  (0, react_1.useEffect)(function () {
1087
1303
  handleOfflinePrefetch();
1088
1304
  /* eslint-disable */
1089
- }, [props.collectionId, (_54 = props.bareSettings) === null || _54 === void 0 ? void 0 : _54.bareOffline]);
1305
+ }, [props.collectionId, (_58 = props.bareSettings) === null || _58 === void 0 ? void 0 : _58.bareOffline]);
1090
1306
  /* eslint-enable */
1091
1307
  // INFO: MRQ polling — calls handleRefresh every N ms (e.g. 1500) as a fallback.
1092
1308
  // Calls through handleRefreshRef so the interval always dispatches the latest
@@ -1106,7 +1322,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1106
1322
  }, interval);
1107
1323
  return function () { return clearInterval(timer); };
1108
1324
  /* eslint-disable */
1109
- }, [(_55 = props.bareSettings) === null || _55 === void 0 ? void 0 : _55.barePollingInterval, isLive, isNetworkOffline]);
1325
+ }, [(_59 = props.bareSettings) === null || _59 === void 0 ? void 0 : _59.barePollingInterval, isLive, isNetworkOffline]);
1110
1326
  /* eslint-enable */
1111
1327
  // INFO: Pub/Sub → SSE live-stream — driven by bareSettings.bareSocketName
1112
1328
  // EventSource URL: {sseEndpoint}/{room}?bm_apiToken={token}
@@ -1148,7 +1364,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1148
1364
  };
1149
1365
  /* eslint-disable */
1150
1366
  }, [
1151
- (_56 = props.bareSettings) === null || _56 === void 0 ? void 0 : _56.bareSocketName,
1367
+ (_60 = props.bareSettings) === null || _60 === void 0 ? void 0 : _60.bareSocketName,
1152
1368
  props.collectionId,
1153
1369
  props.devSettings.sseEndpoint,
1154
1370
  props.devSettings.dbAPIToken,
@@ -1393,10 +1609,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1393
1609
  props.collectionId,
1394
1610
  props.model,
1395
1611
  props.localURLEndpoint,
1396
- (_57 = props.organise) === null || _57 === void 0 ? void 0 : _57.extendedTabs,
1397
- (_58 = props.organise) === null || _58 === void 0 ? void 0 : _58.viewId,
1398
- (_59 = props.organise) === null || _59 === void 0 ? void 0 : _59.additionalQuery,
1399
- (_60 = props.organise) === null || _60 === void 0 ? void 0 : _60.groupBy,
1612
+ (_61 = props.organise) === null || _61 === void 0 ? void 0 : _61.extendedTabs,
1613
+ (_62 = props.organise) === null || _62 === void 0 ? void 0 : _62.viewId,
1614
+ (_63 = props.organise) === null || _63 === void 0 ? void 0 : _63.additionalQuery,
1615
+ (_64 = props.organise) === null || _64 === void 0 ? void 0 : _64.groupBy,
1400
1616
  resolvedType,
1401
1617
  ]);
1402
1618
  /**
@@ -1493,7 +1709,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1493
1709
  changedAttributeIds.forEach(function (id) { return dirtyFieldsRef.current.add(id); });
1494
1710
  }
1495
1711
  }
1496
- props.bareSettings.bareUpdateHandleData(selectedData, changedAttributeIds);
1712
+ props.bareSettings.bareUpdateHandleData(selectedData, changedAttributeIds, handleResolveRawData());
1497
1713
  }
1498
1714
  previousSelectedData.current = selectedData;
1499
1715
  }, [selectedData]);
@@ -1537,7 +1753,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1537
1753
  };
1538
1754
  }, 100);
1539
1755
  return function () { return clearTimeout(timeoutId); };
1540
- }, [(_61 = props.organise) === null || _61 === void 0 ? void 0 : _61.showReadFloatingNav, resolvedType, props.id, loading]);
1756
+ }, [(_65 = props.organise) === null || _65 === void 0 ? void 0 : _65.showReadFloatingNav, resolvedType, props.id, loading]);
1541
1757
  (0, react_1.useEffect)(function () {
1542
1758
  if (resolvedType !== "read")
1543
1759
  return;
@@ -2792,6 +3008,15 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
2792
3008
  handlePopUpModal(false);
2793
3009
  };
2794
3010
  //TODO: Bug - try to solve clicking List Object too fast
3011
+ // INFO: the stored document as loaded, only while it belongs to the current id —
3012
+ // a switch to another record keeps the previous doc until the new fetch lands
3013
+ var handleResolveRawData = function () {
3014
+ var _a;
3015
+ var raw = rawReadData.current;
3016
+ if (!props.id || props.id === "new" || !raw)
3017
+ return undefined;
3018
+ return String((_a = raw._id) !== null && _a !== void 0 ? _a : raw.id) === String(props.id) ? raw : undefined;
3019
+ };
2795
3020
  var handleSelectListObjectData = function (id, structureId, objectIndex) {
2796
3021
  var _a;
2797
3022
  var filterObjectModel = structure.find(function (eachModel) {
@@ -3704,7 +3929,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
3704
3929
  if (deleteIds && deleteIds.length <= 0)
3705
3930
  deletable = false;
3706
3931
  if (!(deletable && ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateHandlePreComplete))) return [3 /*break*/, 3];
3707
- return [4 /*yield*/, props.bareSettings.bareUpdateHandlePreComplete({})];
3932
+ return [4 /*yield*/, props.bareSettings.bareUpdateHandlePreComplete({}, handleResolveRawData())];
3708
3933
  case 2:
3709
3934
  deletable = _k.sent();
3710
3935
  _k.label = 3;
@@ -3763,7 +3988,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
3763
3988
  case 9:
3764
3989
  if (!res) return [3 /*break*/, 12];
3765
3990
  if (!((_e = props.bareSettings) === null || _e === void 0 ? void 0 : _e.bareUpdateHandlePostComplete)) return [3 /*break*/, 11];
3766
- return [4 /*yield*/, props.bareSettings.bareUpdateHandlePostComplete({})];
3991
+ return [4 /*yield*/, props.bareSettings.bareUpdateHandlePostComplete({}, handleResolveRawData())];
3767
3992
  case 10:
3768
3993
  _k.sent();
3769
3994
  _k.label = 11;
@@ -4401,7 +4626,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
4401
4626
  });
4402
4627
  uniqueColumnId = uniqueDataStructure.length > 0 ? uniqueDataStructure[0].id : undefined;
4403
4628
  if ((_g = props.bareSettings) === null || _g === void 0 ? void 0 : _g.bareUpdatePrefill) {
4404
- props.bareSettings.bareUpdatePrefill(selectedData).map(function (eachField) {
4629
+ props.bareSettings
4630
+ .bareUpdatePrefill(selectedData, handleResolveRawData())
4631
+ .map(function (eachField) {
4405
4632
  var key = eachField.key, value = eachField.value;
4406
4633
  createSelectedData_1[key] = value;
4407
4634
  return null;
@@ -4750,7 +4977,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
4750
4977
  !offlineId &&
4751
4978
  (!isOffline || (isOfflineNetworkListener && !isNetworkOffline));
4752
4979
  if (!(wentToServer && ((_v = props.bareSettings) === null || _v === void 0 ? void 0 : _v.bareUpdateHandlePostComplete))) return [3 /*break*/, 37];
4753
- return [4 /*yield*/, props.bareSettings.bareUpdateHandlePostComplete(__assign((_e = {}, _e[serverId] = id, _e), createSelectedData_1))];
4980
+ return [4 /*yield*/, props.bareSettings.bareUpdateHandlePostComplete(__assign((_e = {}, _e[serverId] = id, _e), createSelectedData_1), handleResolveRawData())];
4754
4981
  case 36:
4755
4982
  _y.sent();
4756
4983
  _y.label = 37;
@@ -4914,16 +5141,15 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
4914
5141
  setModalVisible(true);
4915
5142
  preComplete = true;
4916
5143
  if (!((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateHandlePreComplete)) return [3 /*break*/, 3];
4917
- return [4 /*yield*/, props.bareSettings.bareUpdateHandlePreComplete(selectedData)];
5144
+ return [4 /*yield*/, props.bareSettings.bareUpdateHandlePreComplete(selectedData, handleResolveRawData())];
4918
5145
  case 2:
4919
- preComplete =
4920
- _m.sent();
5146
+ preComplete = _m.sent();
4921
5147
  _m.label = 3;
4922
5148
  case 3:
4923
5149
  if (!preComplete)
4924
5150
  throw "Error";
4925
5151
  if (!((_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareUpdateHandleComplete)) return [3 /*break*/, 5];
4926
- return [4 /*yield*/, props.bareSettings.bareUpdateHandleComplete(selectedData)];
5152
+ return [4 /*yield*/, props.bareSettings.bareUpdateHandleComplete(selectedData, handleResolveRawData())];
4927
5153
  case 4:
4928
5154
  _m.sent();
4929
5155
  return [3 /*break*/, 7];
@@ -5679,7 +5905,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
5679
5905
  excelFormData.append("data[spaceId]", props.collectionId);
5680
5906
  excelFormData.append("file", csvFile);
5681
5907
  if ((_j = props.bareSettings) === null || _j === void 0 ? void 0 : _j.bareCSVImportSettings) {
5682
- updateFields = (_l = (_k = props.bareSettings) === null || _k === void 0 ? void 0 : _k.bareUpdatePrefill) === null || _l === void 0 ? void 0 : _l.call(_k, selectedData);
5908
+ updateFields = (_l = (_k = props.bareSettings) === null || _k === void 0 ? void 0 : _k.bareUpdatePrefill) === null || _l === void 0 ? void 0 : _l.call(_k, selectedData, handleResolveRawData());
5683
5909
  excelFormData.append("prefillValue", JSON.stringify(updateFields));
5684
5910
  }
5685
5911
  return [4 /*yield*/, ((_m = props.lib) === null || _m === void 0 ? void 0 : _m.axios({
@@ -6257,9 +6483,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6257
6483
  };
6258
6484
  var handleDeleteModal = function () {
6259
6485
  if ((selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.viewType) !== "feeds") {
6260
- if (resolvedType === "read" &&
6261
- props.id &&
6262
- props.id !== "new") {
6486
+ if (resolvedType === "read" && props.id && props.id !== "new") {
6263
6487
  setDeleteModal(true);
6264
6488
  }
6265
6489
  else if (resolvedType === "update" && props.id) {
@@ -6710,7 +6934,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6710
6934
  if (((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdatePrefill) && type === "update") {
6711
6935
  var present_1 = false;
6712
6936
  props.bareSettings
6713
- .bareUpdatePrefill(selectedData)
6937
+ .bareUpdatePrefill(selectedData, handleResolveRawData())
6714
6938
  .map(function (eachField) {
6715
6939
  if (eachField.key === eachAttribute.id)
6716
6940
  present_1 = true;
@@ -6907,7 +7131,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6907
7131
  }
6908
7132
  });
6909
7133
  }); };
6910
- var bareActionComponent = (_e = (_d = (_c = props.bareSettings) === null || _c === void 0 ? void 0 : _c.bareUpdateActionComponent) === null || _d === void 0 ? void 0 : _d.call(_c, selectedData, formRef)) !== null && _e !== void 0 ? _e : undefined;
7134
+ var bareActionComponent = (_e = (_d = (_c = props.bareSettings) === null || _c === void 0 ? void 0 : _c.bareUpdateActionComponent) === null || _d === void 0 ? void 0 : _d.call(_c, selectedData, formRef, handleResolveRawData())) !== null && _e !== void 0 ? _e : undefined;
6911
7135
  var hasCustomActions = !!bareActionComponent && !handleIsEmptyElement(bareActionComponent);
6912
7136
  var hasActions = bareActionComponent ? hasCustomActions : true;
6913
7137
  var showDelete = canDeleteRecord && props.id !== "new";
@@ -6975,7 +7199,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6975
7199
  var _a, _b, _c, _d, _e;
6976
7200
  if (resolvedType !== "read")
6977
7201
  return null;
6978
- var bareActionComponent = (_c = (_b = (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateActionComponent) === null || _b === void 0 ? void 0 : _b.call(_a, selectedData, formRef)) !== null && _c !== void 0 ? _c : undefined;
7202
+ var bareActionComponent = (_c = (_b = (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateActionComponent) === null || _b === void 0 ? void 0 : _b.call(_a, selectedData, formRef, handleResolveRawData())) !== null && _c !== void 0 ? _c : undefined;
6979
7203
  var hasCustomActions = !!bareActionComponent && !handleIsEmptyElement(bareActionComponent);
6980
7204
  var showUpdate = !bareActionComponent && canUpdateRecord;
6981
7205
  var showExport = !!((_e = (_d = props.organise) === null || _d === void 0 ? void 0 : _d.exportSettings) === null || _e === void 0 ? void 0 : _e.enableExportReadPDF);
@@ -7013,7 +7237,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7013
7237
  // should not sit at the end of a "continue, continue" flow.
7014
7238
  var renderActionButtons = function (type, _hasTabAlign, _uniqueTabIds) {
7015
7239
  var _a, _b, _c, _d, _e, _f;
7016
- var bareActionComponent = (_c = (_b = (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateActionComponent) === null || _b === void 0 ? void 0 : _b.call(_a, selectedData, formRef)) !== null && _c !== void 0 ? _c : undefined;
7240
+ var bareActionComponent = (_c = (_b = (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateActionComponent) === null || _b === void 0 ? void 0 : _b.call(_a, selectedData, formRef, handleResolveRawData())) !== null && _c !== void 0 ? _c : undefined;
7017
7241
  // INFO: every update form carries Save / Submit in the floating bar, so
7018
7242
  // the header keeps only Delete
7019
7243
  var isTabbedUpdate = type === "update";
@@ -7290,7 +7514,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7290
7514
  }
7291
7515
  if ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdatePrefill) {
7292
7516
  props.bareSettings
7293
- .bareUpdatePrefill(selectedData)
7517
+ .bareUpdatePrefill(selectedData, handleResolveRawData())
7294
7518
  .map(function (eachField) {
7295
7519
  if (eachField.key === eachModel.id)
7296
7520
  present = true;
@@ -7474,7 +7698,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7474
7698
  } })),
7475
7699
  ((_11 = props.bareSettings) === null || _11 === void 0 ? void 0 : _11.bareUpdateComponentAbove) &&
7476
7700
  ((_12 = props.bareSettings) === null || _12 === void 0 ? void 0 : _12.bareUpdateComponent) &&
7477
- ((_13 = props.bareSettings) === null || _13 === void 0 ? void 0 : _13.bareUpdateComponent(selectedData)),
7701
+ ((_13 = props.bareSettings) === null || _13 === void 0 ? void 0 : _13.bareUpdateComponent(selectedData, handleResolveRawData())),
7478
7702
  ((_14 = props.bareSettings) === null || _14 === void 0 ? void 0 : _14.bareUpdateActionTop) &&
7479
7703
  renderStepBar(uniqueTabIds_2),
7480
7704
  react_1.default.createElement(form_1.Form, { className: "mt-6", ref: formRef, refList: __spreadArray(__spreadArray([], modalFormInputRefs, true), flexTableRefs, true), handleComplete: handleSubmit, disabledOnEnter: disabledOnEnter_1, handleOnFailValidation: handleOnFailValidation },
@@ -7505,7 +7729,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7505
7729
  // the grid, so a consumer's own col-span, a fragment of several cells,
7506
7730
  // or a null return all lay out exactly as before; only children with no
7507
7731
  // col-span of their own are given the full row.
7508
- react_1.default.createElement("div", { className: "contents [&>*:not([class*=col-span])]:col-span-12" }, props.bareSettings.bareUpdateComponent(selectedData)))),
7732
+ react_1.default.createElement("div", { className: "contents [&>*:not([class*=col-span])]:col-span-12" }, props.bareSettings.bareUpdateComponent(selectedData, handleResolveRawData())))),
7509
7733
  react_1.default.createElement("div", { className: "mt-8" }, renderListAddress(resolvedType)),
7510
7734
  react_1.default.createElement("div", { className: "mt-8" }, renderListObject(resolvedType)),
7511
7735
  !((_17 = props.bareSettings) === null || _17 === void 0 ? void 0 : _17.bareUpdateActionTop) &&
@@ -7515,7 +7739,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7515
7739
  renderActionButtons(resolvedType, hasTabAlign_1, uniqueTabIds_2)))) : (react_1.default.createElement("div", null,
7516
7740
  ((_18 = props.bareSettings) === null || _18 === void 0 ? void 0 : _18.bareUpdateComponentAbove) &&
7517
7741
  ((_19 = props.bareSettings) === null || _19 === void 0 ? void 0 : _19.bareUpdateComponent) &&
7518
- ((_20 = props.bareSettings) === null || _20 === void 0 ? void 0 : _20.bareUpdateComponent(selectedData)),
7742
+ ((_20 = props.bareSettings) === null || _20 === void 0 ? void 0 : _20.bareUpdateComponent(selectedData, handleResolveRawData())),
7519
7743
  ((_21 = props.bareSettings) === null || _21 === void 0 ? void 0 : _21.bareUpdateActionTop) &&
7520
7744
  renderStepBar(uniqueTabIds_2),
7521
7745
  react_1.default.createElement(form_1.Form, { className: "grid ".concat(formColumn, " ").concat(gridGap, " mt-6"), ref: formRef, refList: __spreadArray(__spreadArray([], modalFormInputRefs, true), flexTableRefs, true), handleComplete: handleSubmit, disabledOnEnter: disabledOnEnter_1, handleOnFailValidation: handleOnFailValidation },
@@ -7528,7 +7752,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7528
7752
  // the grid, so a consumer's own col-span, a fragment of several cells,
7529
7753
  // or a null return all lay out exactly as before; only children with no
7530
7754
  // col-span of their own are given the full row.
7531
- react_1.default.createElement("div", { className: "contents [&>*:not([class*=col-span])]:col-span-12" }, props.bareSettings.bareUpdateComponent(selectedData)))),
7755
+ react_1.default.createElement("div", { className: "contents [&>*:not([class*=col-span])]:col-span-12" }, props.bareSettings.bareUpdateComponent(selectedData, handleResolveRawData())))),
7532
7756
  react_1.default.createElement("div", { className: "mt-8" }, renderListAddress(resolvedType)),
7533
7757
  react_1.default.createElement("div", { className: "mt-8" }, renderListObject(resolvedType)),
7534
7758
  !((_24 = props.bareSettings) === null || _24 === void 0 ? void 0 : _24.bareUpdateActionTop) &&
@@ -7536,7 +7760,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7536
7760
  case "list":
7537
7761
  case "union":
7538
7762
  var filterComponent_1 = renderSearchContent();
7539
- var dataComponent = renderTabContent(tabs, resolvedType, viewType);
7763
+ var dataComponent = renderScopedTabContent(tabs, resolvedType, viewType);
7540
7764
  var actionComponent = renderActionButtons(resolvedType);
7541
7765
  // INFO: active flex filter count for the icon badge + floating search.
7542
7766
  // Counts query output so the badge matches what's actually filtered.
@@ -7787,7 +8011,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7787
8011
  renderListActionElements())),
7788
8012
  renderListNewRowFilterElements(),
7789
8013
  (schemaPresent || ((_35 = props.bareSettings) === null || _35 === void 0 ? void 0 : _35.bareReadListTabs)) && (react_1.default.createElement(tabs_1.Tabs, { tabs: tabs, selectedId: viewType, linkType: props.linkType, custom: props.custom, onClick: function (id) { return handleSelectTab(id); }, darkMode: (_36 = props.organise) === null || _36 === void 0 ? void 0 : _36.darkMode })),
7790
- renderTabContent(tabs, resolvedType, viewType),
8014
+ renderScopedTabContent(tabs, resolvedType, viewType),
7791
8015
  ((_37 = props.bareSettings) === null || _37 === void 0 ? void 0 : _37.bareListMobileFloatingSearch) && (react_1.default.createElement("div", { className: "h-28 md:hidden", "aria-hidden": "true" })),
7792
8016
  ((_38 = props.bareSettings) === null || _38 === void 0 ? void 0 : _38.bareListMobileFloatingSearch) &&
7793
8017
  (0, listModule_1.renderFloatingMobileSearch)({
@@ -7868,7 +8092,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7868
8092
  renderObjectTags: renderObjectTags,
7869
8093
  setSelectedData: setSelectedData,
7870
8094
  flexTableRefs: flexTableRefs,
7871
- }, { signing: signatureSigning, setSigning: setSignatureSigning }, props.onComplete ? true : false, (_j = props.bareSettings) === null || _j === void 0 ? void 0 : _j.bareOffline, (_l = (_k = props.bareSettings) === null || _k === void 0 ? void 0 : _k.bareUpdateColumnType) !== null && _l !== void 0 ? _l : "two", (_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareUpdateIndividualComponent, (_o = props.bareSettings) === null || _o === void 0 ? void 0 : _o.bareUpdateMobileView);
8095
+ }, { signing: signatureSigning, setSigning: setSignatureSigning }, props.onComplete ? true : false, (_j = props.bareSettings) === null || _j === void 0 ? void 0 : _j.bareOffline, (_l = (_k = props.bareSettings) === null || _k === void 0 ? void 0 : _k.bareUpdateColumnType) !== null && _l !== void 0 ? _l : "two", ((_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareUpdateIndividualComponent)
8096
+ ? function (columnId, ref, data, setData) {
8097
+ var _a, _b, _c;
8098
+ return (_c = (_b = (_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateIndividualComponent) === null || _b === void 0 ? void 0 : _b.call(_a, columnId, ref, data, setData, handleResolveRawData())) !== null && _c !== void 0 ? _c : null;
8099
+ }
8100
+ : undefined, (_o = props.bareSettings) === null || _o === void 0 ? void 0 : _o.bareUpdateMobileView);
7872
8101
  };
7873
8102
  var renderGridAndListData = function (imageTag, type, kanbanGroupId, useColumnName) {
7874
8103
  var gridData = [];
@@ -7891,7 +8120,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7891
8120
  !eachModel.disabled;
7892
8121
  });
7893
8122
  spaceTableData.forEach(function (eachData, index) {
7894
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
8123
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
7895
8124
  var clonedEachData = JSON.parse(JSON.stringify(eachData));
7896
8125
  var allValues = Object.values(clonedEachData);
7897
8126
  var title = "";
@@ -7977,9 +8206,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7977
8206
  }
7978
8207
  return null;
7979
8208
  });
7980
- if (booleanModels.length &&
7981
- isKanban &&
7982
- isListEditable) {
8209
+ if (booleanModels.length && isKanban && isListEditable) {
7983
8210
  booleanModels.map(function (eachModel) {
7984
8211
  return listDescArray.push(react_1.default.createElement("div", { className: "flex space-x-1 items-center", key: "kanban-checkbox-".concat(eachModel.id) },
7985
8212
  react_1.default.createElement("p", null,
@@ -8012,12 +8239,11 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8012
8239
  if (type === "grid" || type === "kanban") {
8013
8240
  if (kanbanGroupId)
8014
8241
  data[kanbanGroupId] = selectedTData[kanbanGroupId];
8015
- if ((_c = (_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareListGridComponent) === null || _c === void 0 ? void 0 : _c.call(_b, eachData)) {
8016
- data[type === "grid" ? "extra" : "action"] =
8017
- (_e = (_d = props.bareSettings) === null || _d === void 0 ? void 0 : _d.bareListGridComponent) === null || _e === void 0 ? void 0 : _e.call(_d, eachData);
8018
- }
8019
- if ((_g = (_f = props.bareSettings) === null || _f === void 0 ? void 0 : _f.bareListGridTags) === null || _g === void 0 ? void 0 : _g.call(_f, eachData)) {
8020
- var eachDataTags = (_j = (_h = props.bareSettings) === null || _h === void 0 ? void 0 : _h.bareListGridTags) === null || _j === void 0 ? void 0 : _j.call(_h, eachData);
8242
+ var gridComponent = (_c = (_b = props.bareSettings) === null || _b === void 0 ? void 0 : _b.bareListGridComponent) === null || _c === void 0 ? void 0 : _c.call(_b, eachData, selectedTData);
8243
+ if (gridComponent)
8244
+ data[type === "grid" ? "extra" : "action"] = gridComponent;
8245
+ var eachDataTags = (_e = (_d = props.bareSettings) === null || _d === void 0 ? void 0 : _d.bareListGridTags) === null || _e === void 0 ? void 0 : _e.call(_d, eachData, selectedTData);
8246
+ if (eachDataTags) {
8021
8247
  if (Array.isArray(eachDataTags)) {
8022
8248
  var gridTagList_1 = [];
8023
8249
  eachDataTags.forEach(function (eachTag) {
@@ -8029,14 +8255,13 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8029
8255
  data["tags"] = gridTagList_1;
8030
8256
  }
8031
8257
  }
8032
- if ((_l = (_k = props.bareSettings) === null || _k === void 0 ? void 0 : _k.bareListGridRibbonText) === null || _l === void 0 ? void 0 : _l.call(_k, eachData)) {
8033
- data["ribbonText"] =
8034
- props.bareSettings.bareListGridRibbonText(eachData);
8035
- }
8258
+ var ribbonText = (_g = (_f = props.bareSettings) === null || _f === void 0 ? void 0 : _f.bareListGridRibbonText) === null || _g === void 0 ? void 0 : _g.call(_f, eachData, selectedTData);
8259
+ if (ribbonText)
8260
+ data["ribbonText"] = ribbonText;
8036
8261
  var eachDataGridImage = "";
8037
- var gridFallbackImg = (_o = (_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareListGridFallbackImg) === null || _o === void 0 ? void 0 : _o.call(_m, eachData);
8262
+ var gridFallbackImg = (_j = (_h = props.bareSettings) === null || _h === void 0 ? void 0 : _h.bareListGridFallbackImg) === null || _j === void 0 ? void 0 : _j.call(_h, eachData, selectedTData);
8038
8263
  if (clonedEachData[imageTag] && clonedEachData[imageTag] !== " - ") {
8039
- eachDataGridImage = (_q = (_p = clonedEachData[imageTag]) === null || _p === void 0 ? void 0 : _p.props) === null || _q === void 0 ? void 0 : _q.src;
8264
+ eachDataGridImage = (_l = (_k = clonedEachData[imageTag]) === null || _k === void 0 ? void 0 : _k.props) === null || _l === void 0 ? void 0 : _l.src;
8040
8265
  }
8041
8266
  else if (gridFallbackImg) {
8042
8267
  if (typeof gridFallbackImg === "string") {
@@ -8051,7 +8276,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8051
8276
  }
8052
8277
  else {
8053
8278
  data["img"] = clonedEachData[imageTag]
8054
- ? (_s = (_r = clonedEachData[imageTag]) === null || _r === void 0 ? void 0 : _r.props) === null || _s === void 0 ? void 0 : _s.src
8279
+ ? (_o = (_m = clonedEachData[imageTag]) === null || _m === void 0 ? void 0 : _m.props) === null || _o === void 0 ? void 0 : _o.src
8055
8280
  : "";
8056
8281
  }
8057
8282
  gridData.push(data);
@@ -8327,6 +8552,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8327
8552
  } }));
8328
8553
  }))), handleSelectAll: handleSelectAllPages, handleSelectedIds: handleSelectIds, header: renderTableHeader(), onClickRow: function (id) {
8329
8554
  var _a, _b;
8555
+ handleCaptureListScroll(id);
8330
8556
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8331
8557
  }, linkType: props.linkType, custom: props.custom, newTabUrl: (_k = (_j = props.newTabUrl) === null || _j === void 0 ? void 0 : _j.default) !== null && _k !== void 0 ? _k : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_m = (_l = props.newTabUrl) === null || _l === void 0 ? void 0 : _l.addons) !== null && _m !== void 0 ? _m : "&type=read&collection=".concat(props.collectionId, "&view=general"), className: "mt-5", lib: { axios: (_o = props.lib) === null || _o === void 0 ? void 0 : _o.axios }, devSettings: props.devSettings, bareSettings: props.bareSettings, fixedPagination: (_p = props.organise) === null || _p === void 0 ? void 0 : _p.fixedPagination, advSettings: {
8332
8558
  addColumnEnabled: (_q = props.organise) === null || _q === void 0 ? void 0 : _q.addColumnEnabled,
@@ -8446,6 +8672,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8446
8672
  }); })
8447
8673
  : []), true), multiActionFloatingOffset: (_l = props.bareSettings) === null || _l === void 0 ? void 0 : _l.bareListFloatingActionOffset, handleSelectAll: handleSelectAllPages, handleSelectedIds: handleSelectIds, header: renderTableHeader(), pageIndex: pageIndex !== null && pageIndex !== void 0 ? pageIndex : 0, onClickRow: function (id) {
8448
8674
  var _a, _b;
8675
+ handleCaptureListScroll(id);
8449
8676
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8450
8677
  }, linkType: props.linkType, custom: props.custom, newTabUrl: (_o = (_m = props.newTabUrl) === null || _m === void 0 ? void 0 : _m.default) !== null && _o !== void 0 ? _o : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_q = (_p = props.newTabUrl) === null || _p === void 0 ? void 0 : _p.addons) !== null && _q !== void 0 ? _q : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8451
8678
  handlePagination(value);
@@ -8559,6 +8786,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8559
8786
  } }));
8560
8787
  }))), handleSelectAll: handleSelectAllPages, handleSelectedIds: handleSelectIds, header: renderTableHeader(), pageIndex: pageIndex !== null && pageIndex !== void 0 ? pageIndex : 0, onClickRow: function (id) {
8561
8788
  var _a, _b;
8789
+ handleCaptureListScroll(id);
8562
8790
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8563
8791
  }, linkType: props.linkType, custom: props.custom, newTabUrl: (_15 = (_14 = props.newTabUrl) === null || _14 === void 0 ? void 0 : _14.default) !== null && _15 !== void 0 ? _15 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_17 = (_16 = props.newTabUrl) === null || _16 === void 0 ? void 0 : _16.addons) !== null && _17 !== void 0 ? _17 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8564
8792
  handlePagination(value);
@@ -8628,8 +8856,74 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8628
8856
  }, darkMode: (_25 = props.organise) === null || _25 === void 0 ? void 0 : _25.darkMode, hidePagination: (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.hidePagination, customPaginationSize: customPaginationSize, disableEllipsisOnLongWord: (_27 = props.organise) === null || _27 === void 0 ? void 0 : _27.disableEllipsisOnLongWord }));
8629
8857
  }
8630
8858
  };
8859
+ // INFO: `hidden` keeps the markers out of space-y spacing
8860
+ var renderSavedViews = function () {
8861
+ var _a;
8862
+ if (!isSavedViewsEnabled)
8863
+ return null;
8864
+ var views = handleGetTabSavedViews();
8865
+ var activeView = views.find(function (eachView) { return eachView.id === activeSavedViewId; });
8866
+ var isModified = !!activeView &&
8867
+ !(0, viewStatePersistence_1.handleIsSameViewState)((0, viewStatePersistence_1.handlePickViewState)(handleBuildViewSnapshot()), (0, viewStatePersistence_1.handlePickViewState)(handleResolveViewState(activeView.state)));
8868
+ var darkMode = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.darkMode;
8869
+ var renderChipClass = function (active) {
8870
+ return "inline-flex items-center gap-1 rounded-full border px-3 py-1 text-xs font-medium ".concat(active
8871
+ ? "border-primary-500 bg-primary-50 text-primary-700"
8872
+ : darkMode
8873
+ ? "border-gray-600 text-gray-200 hover:bg-gray-700"
8874
+ : "border-gray-300 text-gray-600 hover:bg-gray-50");
8875
+ };
8876
+ var actionClass = "text-xs font-medium ".concat(darkMode ? "text-primary-300" : "text-primary-600", " hover:underline");
8877
+ return (react_1.default.createElement("div", { "data-testid": "dtw-saved-views", className: "mt-3 flex flex-wrap items-center gap-2" },
8878
+ react_1.default.createElement("span", { className: "text-xs font-medium ".concat(darkMode ? "text-gray-400" : "text-gray-500") }, "Views"),
8879
+ react_1.default.createElement("button", { type: "button", "data-testid": "dtw-saved-view-all", className: renderChipClass(!activeView), onClick: function () { return handleApplySavedView(null); } }, "All"),
8880
+ views.map(function (eachView) {
8881
+ return deletingSavedViewId === eachView.id ? (react_1.default.createElement("span", { key: eachView.id, className: renderChipClass(false) },
8882
+ "Delete \u201C",
8883
+ eachView.name,
8884
+ "\u201D?",
8885
+ react_1.default.createElement("button", { type: "button", "data-testid": "dtw-saved-view-confirm-delete-".concat(eachView.id), className: "font-semibold text-red-600", onClick: function () { return handleDeleteSavedView(eachView.id); } }, "Delete"),
8886
+ react_1.default.createElement("button", { type: "button", className: "text-gray-500", onClick: function () { return setDeletingSavedViewId(null); } }, "Keep"))) : (react_1.default.createElement("span", { key: eachView.id, className: renderChipClass(eachView.id === (activeView === null || activeView === void 0 ? void 0 : activeView.id)) },
8887
+ react_1.default.createElement("button", { type: "button", "data-testid": "dtw-saved-view-".concat(eachView.id), title: eachView.id === (activeView === null || activeView === void 0 ? void 0 : activeView.id) && isModified
8888
+ ? "Changed since saved"
8889
+ : undefined, onClick: function () { return handleApplySavedView(eachView); } },
8890
+ eachView.name,
8891
+ eachView.id === (activeView === null || activeView === void 0 ? void 0 : activeView.id) && isModified ? " •" : ""),
8892
+ !eachView.locked && (react_1.default.createElement("button", { type: "button", "aria-label": "Delete ".concat(eachView.name), "data-testid": "dtw-saved-view-delete-".concat(eachView.id), onClick: function () { return setDeletingSavedViewId(eachView.id); } },
8893
+ react_1.default.createElement(outline_1.XMarkIcon, { className: "h-3.5 w-3.5" })))));
8894
+ }),
8895
+ activeView && isModified && !activeView.locked && (react_1.default.createElement("button", { type: "button", "data-testid": "dtw-saved-view-update", className: actionClass, onClick: function () { return handleUpdateSavedView(activeView.id); } },
8896
+ "Update \u201C",
8897
+ activeView.name,
8898
+ "\u201D")),
8899
+ savedViewName === null ? (react_1.default.createElement("button", { type: "button", "data-testid": "dtw-saved-view-new", className: actionClass, onClick: function () { return setSavedViewName(""); } }, "+ Save view")) : (
8900
+ // INFO: a form, so a mobile keyboard's Done saves the view; stopPropagation
8901
+ // keeps the submit from reaching any form around the template
8902
+ react_1.default.createElement("form", { "data-testid": "dtw-saved-view-form", className: "flex items-center gap-1", onSubmit: function (event) {
8903
+ event.preventDefault();
8904
+ event.stopPropagation();
8905
+ handleSaveSavedView(savedViewName);
8906
+ } },
8907
+ react_1.default.createElement(textInput_1.TextInput, { id: "dtw-saved-view-name", type: "text", label: "", size: "xs", autoFocus: true, enterKeyHint: "done", darkMode: darkMode, value: savedViewName, placeholder: "View name", containerClassName: "w-32 sm:w-44", onChange: function (event) { return setSavedViewName(event.target.value); }, onKeyDown: function (event) {
8908
+ if (event.key === "Escape")
8909
+ setSavedViewName(null);
8910
+ // INFO: some mobile keyboards send only the keyCode
8911
+ if (event.key === "Enter" || event.keyCode === 13) {
8912
+ event.preventDefault();
8913
+ event.stopPropagation();
8914
+ handleSaveSavedView(savedViewName);
8915
+ }
8916
+ } }),
8917
+ react_1.default.createElement("button", { type: "submit", className: actionClass }, "Save"),
8918
+ react_1.default.createElement("button", { type: "button", className: "text-xs text-gray-500", onClick: function () { return setSavedViewName(null); } }, "Cancel")))));
8919
+ };
8920
+ var renderScopedTabContent = function (tabs, dataType, requestedViewType) { return (react_1.default.createElement(react_1.default.Fragment, null,
8921
+ renderSavedViews(),
8922
+ react_1.default.createElement("span", { ref: scrollScopeStartRef, hidden: true, "aria-hidden": "true" }),
8923
+ renderTabContent(tabs, dataType, requestedViewType),
8924
+ react_1.default.createElement("span", { ref: scrollScopeEndRef, hidden: true, "aria-hidden": "true" }))); };
8631
8925
  var renderTabContent = function (tabs, dataType, requestedViewType) {
8632
- 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;
8926
+ 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;
8633
8927
  var matchedTab = tabs.find(function (eachTab) { return eachTab.id === requestedViewType; });
8634
8928
  /**
8635
8929
  * INFO: a list tab must not supply the content of a read view. The selected
@@ -8836,6 +9130,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8836
9130
  setBatchUpdateModal(true);
8837
9131
  } }))), onClickRow: function (id) {
8838
9132
  var _a, _b;
9133
+ handleCaptureListScroll(id);
8839
9134
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8840
9135
  }, linkType: props.linkType, custom: props.custom, newTabUrl: (_z = (_y = props.newTabUrl) === null || _y === void 0 ? void 0 : _y.default) !== null && _z !== void 0 ? _z : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_1 = (_0 = props.newTabUrl) === null || _0 === void 0 ? void 0 : _0.addons) !== null && _1 !== void 0 ? _1 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8841
9136
  handlePagination(value);
@@ -8858,6 +9153,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8858
9153
  setBatchUpdateModal(true);
8859
9154
  } }))), onClickRow: function (id) {
8860
9155
  var _a, _b;
9156
+ handleCaptureListScroll(id);
8861
9157
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8862
9158
  }, linkType: props.linkType, custom: props.custom, newTabUrl: (_9 = (_8 = props.newTabUrl) === null || _8 === void 0 ? void 0 : _8.default) !== null && _9 !== void 0 ? _9 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_11 = (_10 = props.newTabUrl) === null || _10 === void 0 ? void 0 : _10.addons) !== null && _11 !== void 0 ? _11 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8863
9159
  handlePagination(value);
@@ -8956,22 +9252,26 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8956
9252
  }
8957
9253
  else if (selectedTabData.viewType === "grid") {
8958
9254
  var isScrollMode = renderCheckScrollMode();
8959
- return (react_1.default.createElement(react_1.default.Fragment, null,
8960
- react_1.default.createElement(grid_1.Grid, { darkMode: (_18 = props.organise) === null || _18 === void 0 ? void 0 : _18.darkMode, darkModeBg: (_19 = props.organise) === null || _19 === void 0 ? void 0 : _19.darkModeBg, paginationType: renderResolvedPaginationType(), data: renderGridAndListData(selectedTabData.viewImage, "grid"), size: size, limit: limit, cursor: cursor, loading: tableLoading, horizontalScroll: isScrollMode, pageIndex: pageIndex, onClickData: function (id) {
9255
+ // INFO: when bareNewDTW is enabled, render NewGrid instead of legacy Grid
9256
+ if ((_18 = props.bareSettings) === null || _18 === void 0 ? void 0 : _18.bareNewDTW) {
9257
+ return (react_1.default.createElement(newGrid_1.NewGrid, { darkMode: (_19 = props.organise) === null || _19 === void 0 ? void 0 : _19.darkMode, darkModeBg: (_20 = props.organise) === null || _20 === void 0 ? void 0 : _20.darkModeBg, paginationType: renderResolvedPaginationType(), data: renderGridAndListData(selectedTabData.viewImage, "grid"), size: size, limit: limit, cursor: cursor, loading: tableLoading, horizontalScroll: isScrollMode, pageIndex: pageIndex, onClickData: function (id) {
8961
9258
  var _a, _b;
9259
+ // INFO: before handleNavigate, which unmounts the grid
9260
+ handleCaptureListScroll(id);
8962
9261
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
8963
- }, linkType: props.linkType, custom: props.custom, newTabUrl: (_21 = (_20 = props.newTabUrl) === null || _20 === void 0 ? void 0 : _20.default) !== null && _21 !== void 0 ? _21 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_23 = (_22 = props.newTabUrl) === null || _22 === void 0 ? void 0 : _22.addons) !== null && _23 !== void 0 ? _23 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
9262
+ }, linkType: props.linkType, custom: props.custom, newTabUrl: (_22 = (_21 = props.newTabUrl) === null || _21 === void 0 ? void 0 : _21.default) !== null && _22 !== void 0 ? _22 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_24 = (_23 = props.newTabUrl) === null || _23 === void 0 ? void 0 : _23.addons) !== null && _24 !== void 0 ? _24 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8964
9263
  handlePagination(value);
8965
- }, imgContain: selectedTabData === null || selectedTabData === void 0 ? void 0 : selectedTabData.gridContain, gridColClassName: (_24 = props.bareSettings) === null || _24 === void 0 ? void 0 : _24.bareListGridColClassName, className: "mt-5",
8966
- // INFO: under the new DTW the grid keeps the same footer as the
8967
- // table and list views instead of its own legacy page buttons
8968
- hidePagination: ((_25 = props.organise) === null || _25 === void 0 ? void 0 : _25.hidePagination) ||
8969
- !!((_26 = props.bareSettings) === null || _26 === void 0 ? void 0 : _26.bareNewDTW), customPaginationSize: customPaginationSize }),
8970
- ((_27 = props.bareSettings) === null || _27 === void 0 ? void 0 : _27.bareNewDTW) &&
8971
- !((_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.hidePagination) && (react_1.default.createElement(newPagination_1.NewPagination, { paginationType: renderResolvedPaginationType(), pageIndex: pageIndex, limit: limit, size: size, cursor: cursor, resultCount: renderGridAndListData(selectedTabData.viewImage, "grid")
8972
- .length, customPaginationSize: customPaginationSize, darkMode: (_29 = props.organise) === null || _29 === void 0 ? void 0 : _29.darkMode, darkModeBg: (_30 = props.organise) === null || _30 === void 0 ? void 0 : _30.darkModeBg, handleUpdatePageIndex: function (value) {
9264
+ }, imgContain: selectedTabData === null || selectedTabData === void 0 ? void 0 : selectedTabData.gridContain, gridColClassName: (_25 = props.bareSettings) === null || _25 === void 0 ? void 0 : _25.bareListGridColClassName, className: "mt-5", hidePagination: (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.hidePagination, customPaginationSize: customPaginationSize }));
9265
+ }
9266
+ return (react_1.default.createElement(react_1.default.Fragment, null,
9267
+ react_1.default.createElement(grid_1.Grid, { darkMode: (_27 = props.organise) === null || _27 === void 0 ? void 0 : _27.darkMode, darkModeBg: (_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.darkModeBg, paginationType: renderResolvedPaginationType(), data: renderGridAndListData(selectedTabData.viewImage, "grid"), size: size, limit: limit, cursor: cursor, loading: tableLoading, horizontalScroll: isScrollMode, pageIndex: pageIndex, onClickData: function (id) {
9268
+ var _a, _b;
9269
+ // INFO: before handleNavigate, which unmounts the grid
9270
+ handleCaptureListScroll(id);
9271
+ (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
9272
+ }, linkType: props.linkType, custom: props.custom, newTabUrl: (_30 = (_29 = props.newTabUrl) === null || _29 === void 0 ? void 0 : _29.default) !== null && _30 !== void 0 ? _30 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_32 = (_31 = props.newTabUrl) === null || _31 === void 0 ? void 0 : _31.addons) !== null && _32 !== void 0 ? _32 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
8973
9273
  handlePagination(value);
8974
- } }))));
9274
+ }, imgContain: selectedTabData === null || selectedTabData === void 0 ? void 0 : selectedTabData.gridContain, gridColClassName: (_33 = props.bareSettings) === null || _33 === void 0 ? void 0 : _33.bareListGridColClassName, className: "mt-5", hidePagination: (_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.hidePagination, customPaginationSize: customPaginationSize })));
8975
9275
  }
8976
9276
  else if (selectedTabData.viewType === "calendar") {
8977
9277
  var calendarSettings_1 = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.calendarSettings;
@@ -9071,7 +9371,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9071
9371
  return eventAvailabilities;
9072
9372
  };
9073
9373
  // INFO: when bareNewDTW is enabled, render NewCalendar instead of legacy Calendar
9074
- if ((_31 = props.bareSettings) === null || _31 === void 0 ? void 0 : _31.bareNewDTW) {
9374
+ if ((_35 = props.bareSettings) === null || _35 === void 0 ? void 0 : _35.bareNewDTW) {
9075
9375
  var newCalendarEvents = renderEventAvailabilities().map(function (ev) {
9076
9376
  var _a, _b, _c, _d;
9077
9377
  return ({
@@ -9091,13 +9391,13 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9091
9391
  // INFO: viewSwitch — optional Month/Week/Agenda toggle. The range
9092
9392
  // query follows via calendarView ("dayGridMonth" ↔ "timeGridWeek");
9093
9393
  // agenda lists the fetched month chronologically.
9094
- var viewSwitchOptions = (_32 = calendarSettings_1 === null || calendarSettings_1 === void 0 ? void 0 : calendarSettings_1.viewSwitch) !== null && _32 !== void 0 ? _32 : [];
9394
+ var viewSwitchOptions = (_36 = calendarSettings_1 === null || calendarSettings_1 === void 0 ? void 0 : calendarSettings_1.viewSwitch) !== null && _36 !== void 0 ? _36 : [];
9095
9395
  var VIEW_VARIANT_MAP = {
9096
9396
  month: "fullMonth",
9097
9397
  week: "weekTimeGrid",
9098
9398
  agenda: "agenda",
9099
9399
  };
9100
- var activeVariant = (_33 = VIEW_VARIANT_MAP[newCalendarViewMode]) !== null && _33 !== void 0 ? _33 : "fullMonth";
9400
+ var activeVariant = (_37 = VIEW_VARIANT_MAP[newCalendarViewMode]) !== null && _37 !== void 0 ? _37 : "fullMonth";
9101
9401
  return (react_1.default.createElement("div", { className: "mt-4" },
9102
9402
  viewSwitchOptions.length > 1 && (react_1.default.createElement("div", { className: "mb-2 flex justify-end" },
9103
9403
  react_1.default.createElement("div", { className: "inline-flex rounded-lg border border-gray-200 bg-white p-0.5" }, viewSwitchOptions.map(function (view) { return (react_1.default.createElement("button", { key: view, type: "button", onClick: function () {
@@ -9139,9 +9439,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9139
9439
  var _a, _b;
9140
9440
  if (event.id)
9141
9441
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", event.id, "general");
9142
- }, darkMode: (_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.darkMode, className: "w-full" }))));
9442
+ }, darkMode: (_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.darkMode, className: "w-full" }))));
9143
9443
  }
9144
- return (react_1.default.createElement("div", { className: "mt-4" }, tableLoading ? (react_1.default.createElement(loading_1.Loading, null)) : (react_1.default.createElement(calendar_1.Calendar, { currentDate: calendarTabMonth, calendarView: (_35 = calendarSettings_1 === null || calendarSettings_1 === void 0 ? void 0 : calendarSettings_1.defaultView) !== null && _35 !== void 0 ? _35 : calendarView, handleMonthChange: function (date) {
9444
+ return (react_1.default.createElement("div", { className: "mt-4" }, tableLoading ? (react_1.default.createElement(loading_1.Loading, null)) : (react_1.default.createElement(calendar_1.Calendar, { currentDate: calendarTabMonth, calendarView: (_39 = calendarSettings_1 === null || calendarSettings_1 === void 0 ? void 0 : calendarSettings_1.defaultView) !== null && _39 !== void 0 ? _39 : calendarView, handleMonthChange: function (date) {
9145
9445
  var startOfMonth = (0, dayjs_1.default)(calendarTabMonth).startOf("month");
9146
9446
  var endOfMonth = (0, dayjs_1.default)(calendarTabMonth).endOf("month");
9147
9447
  if (!(0, dayjs_1.default)(date).isBetween(startOfMonth, endOfMonth)) {
@@ -9159,7 +9459,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9159
9459
  else if (selectedTabData.viewType === "feeds") {
9160
9460
  var contentList_1 = [];
9161
9461
  var feedsSettings_1 = selectedTabData.feedsSettings;
9162
- var customFeedsData = (_36 = feedsSettings_1 === null || feedsSettings_1 === void 0 ? void 0 : feedsSettings_1.customFeedsData) === null || _36 === void 0 ? void 0 : _36.call(feedsSettings_1, tableData, spaceTableData);
9462
+ var customFeedsData = (_40 = feedsSettings_1 === null || feedsSettings_1 === void 0 ? void 0 : feedsSettings_1.customFeedsData) === null || _40 === void 0 ? void 0 : _40.call(feedsSettings_1, tableData, spaceTableData);
9163
9463
  if (customFeedsData && customFeedsData.length > 0) {
9164
9464
  customFeedsData.map(function (eachData) {
9165
9465
  var _a, _b, _c, _d;
@@ -9204,21 +9504,25 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9204
9504
  return (react_1.default.createElement("div", { className: "mt-4" }, tableLoading ? (react_1.default.createElement(loading_1.Loading, null)) : (react_1.default.createElement("div", {
9205
9505
  // INFO: NewFeeds is already a card like the table and list, so the new
9206
9506
  // DTW renders it bare; the legacy feed still needs its own surface
9207
- className: ((_37 = props.bareSettings) === null || _37 === void 0 ? void 0 : _37.bareNewDTW)
9507
+ className: ((_41 = props.bareSettings) === null || _41 === void 0 ? void 0 : _41.bareNewDTW)
9208
9508
  ? ""
9209
- : "p-4 rounded-lg ".concat(((_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.darkMode) ? "bg-white/5" : "bg-white") },
9210
- ((_39 = props.bareSettings) === null || _39 === void 0 ? void 0 : _39.bareNewDTW) ? (react_1.default.createElement(newFeeds_1.NewFeeds, { bold: true, content: contentList_1, darkMode: (_40 = props.organise) === null || _40 === void 0 ? void 0 : _40.darkMode, onClickItem: function (id) { var _a, _b; return (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general"); } })) : (react_1.default.createElement(feeds_1.Feeds, { bold: true, content: contentList_1, darkMode: (_41 = props.organise) === null || _41 === void 0 ? void 0 : _41.darkMode })),
9509
+ : "p-4 rounded-lg ".concat(((_42 = props.organise) === null || _42 === void 0 ? void 0 : _42.darkMode) ? "bg-white/5" : "bg-white") },
9510
+ ((_43 = props.bareSettings) === null || _43 === void 0 ? void 0 : _43.bareNewDTW) ? (react_1.default.createElement(newFeeds_1.NewFeeds, { bold: true, content: contentList_1, darkMode: (_44 = props.organise) === null || _44 === void 0 ? void 0 : _44.darkMode, onClickItem: function (id) {
9511
+ var _a, _b;
9512
+ handleCaptureListScroll(id);
9513
+ (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
9514
+ } })) : (react_1.default.createElement(feeds_1.Feeds, { bold: true, content: contentList_1, darkMode: (_45 = props.organise) === null || _45 === void 0 ? void 0 : _45.darkMode })),
9211
9515
  react_1.default.createElement("div", { className: "my-10" }),
9212
9516
  contentList_1.length > 0 &&
9213
- !((_42 = props.organise) === null || _42 === void 0 ? void 0 : _42.hidePagination) &&
9214
- ((_43 = props.bareSettings) === null || _43 === void 0 ? void 0 : _43.bareNewDTW) && (react_1.default.createElement(newPagination_1.NewPagination, { paginationType: renderResolvedPaginationType(), pageIndex: pageIndex, limit: limit, size: size, cursor: cursor, resultCount: tableData.length, customPaginationSize: customPaginationSize, darkMode: (_44 = props.organise) === null || _44 === void 0 ? void 0 : _44.darkMode, darkModeBg: (_45 = props.organise) === null || _45 === void 0 ? void 0 : _45.darkModeBg, handleUpdatePageIndex: function (value) {
9517
+ !((_46 = props.organise) === null || _46 === void 0 ? void 0 : _46.hidePagination) &&
9518
+ ((_47 = props.bareSettings) === null || _47 === void 0 ? void 0 : _47.bareNewDTW) && (react_1.default.createElement(newPagination_1.NewPagination, { paginationType: renderResolvedPaginationType(), pageIndex: pageIndex, limit: limit, size: size, cursor: cursor, resultCount: tableData.length, customPaginationSize: customPaginationSize, darkMode: (_48 = props.organise) === null || _48 === void 0 ? void 0 : _48.darkMode, darkModeBg: (_49 = props.organise) === null || _49 === void 0 ? void 0 : _49.darkModeBg, handleUpdatePageIndex: function (value) {
9215
9519
  handlePagination(value);
9216
9520
  } })),
9217
9521
  contentList_1.length > 0 &&
9218
- !((_46 = props.organise) === null || _46 === void 0 ? void 0 : _46.hidePagination) &&
9219
- !((_47 = props.bareSettings) === null || _47 === void 0 ? void 0 : _47.bareNewDTW) && (react_1.default.createElement(pagination_1.Pagination, { data: tableData, size: size, limit: limit, cursor: cursor, pageIndex: pageIndex, paginationType: renderResolvedPaginationType(), handleUpdatePageIndex: function (value) {
9522
+ !((_50 = props.organise) === null || _50 === void 0 ? void 0 : _50.hidePagination) &&
9523
+ !((_51 = props.bareSettings) === null || _51 === void 0 ? void 0 : _51.bareNewDTW) && (react_1.default.createElement(pagination_1.Pagination, { data: tableData, size: size, limit: limit, cursor: cursor, pageIndex: pageIndex, paginationType: renderResolvedPaginationType(), handleUpdatePageIndex: function (value) {
9220
9524
  handlePagination(value);
9221
- }, darkMode: (_48 = props.organise) === null || _48 === void 0 ? void 0 : _48.darkMode, customPaginationSize: customPaginationSize }))))));
9525
+ }, darkMode: (_52 = props.organise) === null || _52 === void 0 ? void 0 : _52.darkMode, customPaginationSize: customPaginationSize }))))));
9222
9526
  }
9223
9527
  else if (selectedTabData.viewType === "map") {
9224
9528
  var mapSettings_1 = selectedTabData.mapSettings;
@@ -9321,7 +9625,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9321
9625
  }
9322
9626
  else if (selectedTabData.viewType === "kanban") {
9323
9627
  var kanbanSettings = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.kanbanSettings;
9324
- var kanbanTitle_2 = (_49 = kanbanSettings === null || kanbanSettings === void 0 ? void 0 : kanbanSettings.title) !== null && _49 !== void 0 ? _49 : "";
9628
+ var kanbanTitle_2 = (_53 = kanbanSettings === null || kanbanSettings === void 0 ? void 0 : kanbanSettings.title) !== null && _53 !== void 0 ? _53 : "";
9325
9629
  var nullColumn_1 = false;
9326
9630
  var groupBy_1 = [];
9327
9631
  var groupLabel_1 = [];
@@ -9342,34 +9646,40 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9342
9646
  });
9343
9647
  var kanbanData = renderGridAndListData("", "kanban", kanbanTitle_2, kanbanSettings === null || kanbanSettings === void 0 ? void 0 : kanbanSettings.useColumnName);
9344
9648
  // INFO: when bareNewDTW is enabled, render NewKanban instead of legacy Kanban
9345
- if ((_50 = props.bareSettings) === null || _50 === void 0 ? void 0 : _50.bareNewDTW) {
9346
- return (react_1.default.createElement(newKanban_1.NewKanban, { className: "inline-flex", data: kanbanData, loading: tableLoading, groupBy: groupBy_1, groupId: kanbanTitle_2 !== null && kanbanTitle_2 !== void 0 ? kanbanTitle_2 : "", groupLabel: groupLabel_1.length > 0 ? groupLabel_1 : undefined, nullColumn: nullColumn_1, alertMessage: kanbanData.length === limit
9347
- ? "Data has exceeded limit, please apply filters"
9348
- : "", groupCluster: kanbanSettings === null || kanbanSettings === void 0 ? void 0 : kanbanSettings.groupCluster, draggable: canUpdateRecord, droppable: canUpdateRecord && kanbanDroppable, mobileView: (_51 = props.bareSettings) === null || _51 === void 0 ? void 0 : _51.bareListMobileView, onUpdateData: canUpdateRecord
9349
- ? function (cardId, _fromCol, toCol) { return __awaiter(void 0, void 0, void 0, function () {
9350
- var _a;
9351
- return __generator(this, function (_b) {
9352
- switch (_b.label) {
9353
- case 0:
9354
- setKanbanDroppable(false);
9355
- _b.label = 1;
9356
- case 1:
9357
- _b.trys.push([1, , 3, 4]);
9358
- return [4 /*yield*/, handleSubmitData("update", cardId, kanbanTitle_2, (_a = {}, _a[kanbanTitle_2] = toCol, _a))];
9359
- case 2:
9360
- _b.sent();
9361
- return [3 /*break*/, 4];
9362
- case 3:
9363
- setKanbanDroppable(true);
9364
- return [7 /*endfinally*/];
9365
- case 4: return [2 /*return*/];
9366
- }
9367
- });
9368
- }); }
9369
- : undefined, onClickData: function (id) {
9370
- var _a, _b;
9371
- (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
9372
- }, darkMode: (_52 = props.organise) === null || _52 === void 0 ? void 0 : _52.darkMode }));
9649
+ if ((_54 = props.bareSettings) === null || _54 === void 0 ? void 0 : _54.bareNewDTW) {
9650
+ return (
9651
+ // INFO: the same top spacing as the table, list and grid
9652
+ react_1.default.createElement("div", { className: "mt-5" },
9653
+ react_1.default.createElement(newKanban_1.NewKanban, { className: "inline-flex", data: kanbanData, loading: tableLoading, groupBy: groupBy_1, groupId: kanbanTitle_2 !== null && kanbanTitle_2 !== void 0 ? kanbanTitle_2 : "", groupLabel: groupLabel_1.length > 0 ? groupLabel_1 : undefined, nullColumn: nullColumn_1, alertMessage: kanbanData.length === limit
9654
+ ? "Data has exceeded limit, please apply filters"
9655
+ : "", groupCluster: kanbanSettings === null || kanbanSettings === void 0 ? void 0 : kanbanSettings.groupCluster, draggable: canUpdateRecord, droppable: canUpdateRecord && kanbanDroppable, mobileView: (_55 = props.bareSettings) === null || _55 === void 0 ? void 0 : _55.bareListMobileView, onUpdateData: canUpdateRecord
9656
+ ? function (cardId, _fromCol, toCol) { return __awaiter(void 0, void 0, void 0, function () {
9657
+ var _a;
9658
+ return __generator(this, function (_b) {
9659
+ switch (_b.label) {
9660
+ case 0:
9661
+ setKanbanDroppable(false);
9662
+ _b.label = 1;
9663
+ case 1:
9664
+ _b.trys.push([1, , 3, 4]);
9665
+ return [4 /*yield*/, handleSubmitData("update", cardId, kanbanTitle_2, (_a = {},
9666
+ _a[kanbanTitle_2] = toCol,
9667
+ _a))];
9668
+ case 2:
9669
+ _b.sent();
9670
+ return [3 /*break*/, 4];
9671
+ case 3:
9672
+ setKanbanDroppable(true);
9673
+ return [7 /*endfinally*/];
9674
+ case 4: return [2 /*return*/];
9675
+ }
9676
+ });
9677
+ }); }
9678
+ : undefined, onClickData: function (id) {
9679
+ var _a, _b;
9680
+ handleCaptureListScroll(id);
9681
+ (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
9682
+ }, darkMode: (_56 = props.organise) === null || _56 === void 0 ? void 0 : _56.darkMode, darkModeBg: (_57 = props.organise) === null || _57 === void 0 ? void 0 : _57.darkModeBg })));
9373
9683
  }
9374
9684
  return (react_1.default.createElement(kanban_1.Kanban, { className: "inline-flex", data: kanbanData, loading: tableLoading, groupBy: groupBy_1, groupId: kanbanTitle_2 !== null && kanbanTitle_2 !== void 0 ? kanbanTitle_2 : "", groupLabel: groupLabel_1.length > 0 ? groupLabel_1 : undefined, nullColumn: nullColumn_1, alertMessage: kanbanData.length === limit
9375
9685
  ? "Data has exceeded limit, please apply filters"
@@ -9398,6 +9708,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9398
9708
  }); }
9399
9709
  : undefined, onClickData: function (id) {
9400
9710
  var _a, _b;
9711
+ handleCaptureListScroll(id);
9401
9712
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
9402
9713
  } }));
9403
9714
  }
@@ -9436,7 +9747,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9436
9747
  return null;
9437
9748
  };
9438
9749
  var renderModalContent = function () {
9439
- 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;
9750
+ 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;
9440
9751
  if (loading) {
9441
9752
  return (react_1.default.createElement("div", { className: "mt-5" },
9442
9753
  react_1.default.createElement(loading_1.Loading, null),
@@ -9668,10 +9979,12 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9668
9979
  : selectedObjectId
9669
9980
  ? "update"
9670
9981
  : "new";
9671
- (_0 = (_z = props.bareSettings) === null || _z === void 0 ? void 0 : _z.bareListObjectHandleData) === null || _0 === void 0 ? void 0 : _0.call(_z, listObjectViewType, selectedObjectData);
9982
+ (_0 = (_z = props.bareSettings) === null || _z === void 0 ? void 0 : _z.bareListObjectHandleData) === null || _0 === void 0 ? void 0 : _0.call(_z, listObjectViewType, selectedObjectData, selectedObjectId
9983
+ ? (_3 = (_2 = (_1 = handleResolveRawData()) === null || _1 === void 0 ? void 0 : _1[selectedObjectStructureId]) === null || _2 === void 0 ? void 0 : _2.find) === null || _3 === void 0 ? void 0 : _3.call(_2, function (eachRow) { return (eachRow === null || eachRow === void 0 ? void 0 : eachRow.id) === selectedObjectId; })
9984
+ : undefined);
9672
9985
  }
9673
9986
  return (react_1.default.createElement(react_1.default.Fragment, null,
9674
- react_1.default.createElement(form_1.Form, { className: "grid ".concat(formColumn, " ").concat(gridGap, " pb-32 mt-6 sm:pb-36"), ref: objectFormRef, refList: objectFormInputRefs, handleComplete: handleSubmitObjectDataType, disabledOnEnter: disabledOnEnter_2, handleOnFailValidation: handleOnFailValidation }, renderDataTemplateFormContent(selectedObjectData, (_1 = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _1 !== void 0 ? _1 : [], objectFormInputRefs, true, filterObjectModel.type === "listObject", undefined, filterObjectModel.type === "listObject"
9987
+ react_1.default.createElement(form_1.Form, { className: "grid ".concat(formColumn, " ").concat(gridGap, " pb-32 mt-6 sm:pb-36"), ref: objectFormRef, refList: objectFormInputRefs, handleComplete: handleSubmitObjectDataType, disabledOnEnter: disabledOnEnter_2, handleOnFailValidation: handleOnFailValidation }, renderDataTemplateFormContent(selectedObjectData, (_4 = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _4 !== void 0 ? _4 : [], objectFormInputRefs, true, filterObjectModel.type === "listObject", undefined, filterObjectModel.type === "listObject"
9675
9988
  ? selectedData
9676
9989
  : undefined)),
9677
9990
  react_1.default.createElement("div", { className: "flex justify-end pt-8" },
@@ -9879,7 +10192,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9879
10192
  };
9880
10193
  return (react_1.default.createElement(react_1.default.Fragment, null,
9881
10194
  renderNotification("root"),
9882
- ((_63 = (_62 = props.renderSettings) === null || _62 === void 0 ? void 0 : _62.renderLoadingUI) === null || _63 === void 0 ? void 0 : _63.call(_62)) && loading ? ((_64 = props.renderSettings) === null || _64 === void 0 ? void 0 : _64.renderLoadingUI()) : (react_1.default.createElement(modal_1.Modal, { darkMode: (_65 = props.organise) === null || _65 === void 0 ? void 0 : _65.darkMode, darkModeBg: (_66 = props.organise) === null || _66 === void 0 ? void 0 : _66.darkModeBg, maxWidth: selectedObjectStructureId || excelModal ? "2xl" : undefined, open: modalVisible, title: renderModalTitle(), renderContent: renderModalContent, onClose: function () {
10195
+ ((_67 = (_66 = props.renderSettings) === null || _66 === void 0 ? void 0 : _66.renderLoadingUI) === null || _67 === void 0 ? void 0 : _67.call(_66)) && loading ? ((_68 = props.renderSettings) === null || _68 === void 0 ? void 0 : _68.renderLoadingUI()) : (react_1.default.createElement(modal_1.Modal, { darkMode: (_69 = props.organise) === null || _69 === void 0 ? void 0 : _69.darkMode, darkModeBg: (_70 = props.organise) === null || _70 === void 0 ? void 0 : _70.darkModeBg, maxWidth: selectedObjectStructureId || excelModal ? "2xl" : undefined, open: modalVisible, title: renderModalTitle(), renderContent: renderModalContent, onClose: function () {
9883
10196
  var _a, _b;
9884
10197
  if (loading)
9885
10198
  return;
@@ -9890,7 +10203,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9890
10203
  setExportCSVEmail((_b = (_a = props.devSettings.currentUser) === null || _a === void 0 ? void 0 : _a.userEmail) !== null && _b !== void 0 ? _b : "");
9891
10204
  }
9892
10205
  }, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) })),
9893
- react_1.default.createElement(modal_1.Modal, { darkMode: (_67 = props.organise) === null || _67 === void 0 ? void 0 : _67.darkMode, darkModeBg: (_68 = props.organise) === null || _68 === void 0 ? void 0 : _68.darkModeBg, maxWidth: "2xl", open: referenceCreationModal.id ? true : false, renderContent: function () {
10206
+ 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: "2xl", open: referenceCreationModal.id ? true : false, renderContent: function () {
9894
10207
  return (react_1.default.createElement(referenceModal_1.ReferenceModal, { referenceModelSchema: referenceModelSchema, referenceDataStructure: referenceCreationModal, devSettings: props.devSettings, handleCreateRefId: function (dataId) {
9895
10208
  if (dataId) {
9896
10209
  var currentValue = selectedData[referenceCreationModal.id];
@@ -9906,19 +10219,19 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9906
10219
  }, onClose: function () {
9907
10220
  setReferenceCreationModal({ id: "", name: "", type: "string" });
9908
10221
  } }),
9909
- react_1.default.createElement(modal_1.Modal, { darkMode: (_69 = props.organise) === null || _69 === void 0 ? void 0 : _69.darkMode, darkModeBg: (_70 = props.organise) === null || _70 === void 0 ? void 0 : _70.darkModeBg, maxWidth: "2xl", open: Object.keys(referenceDeleteTableData).length > 0, renderContent: renderReferenceDeleteTable, onClose: function () {
10222
+ 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: Object.keys(referenceDeleteTableData).length > 0, renderContent: renderReferenceDeleteTable, onClose: function () {
9910
10223
  setReferenceDeleteTableData({});
9911
10224
  }, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
9912
- 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, open: deleteModal, renderContent: renderDeleteModalContent, onClose: function () {
10225
+ 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, open: deleteModal, renderContent: renderDeleteModalContent, onClose: function () {
9913
10226
  setDeletePasscodeInput("");
9914
10227
  setDeleteModal(!deleteModal);
9915
10228
  setDeleteFeedId("");
9916
10229
  }, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
9917
- 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, open: batchUpdateModal, renderContent: renderBatchUpdateModalContent, onClose: function () {
10230
+ 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: batchUpdateModal, renderContent: renderBatchUpdateModalContent, onClose: function () {
9918
10231
  setBatchUpdateData({ columnId: "", columnData: {} });
9919
10232
  setBatchUpdateModal(false);
9920
10233
  }, notification: react_1.default.createElement(react_1.default.Fragment, null, renderNotification("modal")) }),
9921
- 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, title: "Edit Auth Method", open: selectedAuthMethod ? true : false, renderContent: function () {
10234
+ 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, title: "Edit Auth Method", open: selectedAuthMethod ? true : false, renderContent: function () {
9922
10235
  var _a;
9923
10236
  if (props.space)
9924
10237
  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 }));
@@ -9926,7 +10239,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
9926
10239
  }, onClose: function () {
9927
10240
  setSelectedAuthMethod("");
9928
10241
  } }),
9929
- isActivityLog && (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: activityModal, title: "Activity Log", renderContent: function () {
10242
+ isActivityLog && (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, open: activityModal, title: "Activity Log", renderContent: function () {
9930
10243
  var _a, _b;
9931
10244
  return (react_1.default.createElement(activityModal_1.ActivityModal, { title: props.title && typeof props.title === "string"
9932
10245
  ? props.title