blixify-ui-web 1.2.54 → 1.2.55

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.
@@ -151,6 +151,7 @@ var pagination_1 = require("./pagination");
151
151
  var referenceModal_1 = require("./referenceModal");
152
152
  var settingsModal_1 = require("./settingsModal");
153
153
  var flexFilter_1 = require("../flexFilter");
154
+ var viewStatePersistence_1 = require("./viewStatePersistence");
154
155
  // INFO: builds the notification message for a failed write. Callers must gate on
155
156
  // `err.response` alone, never on a specific status — a catch that only handles 400 shows
156
157
  // the user nothing at all for any other status, so a write silently disappears. A 5xx is
@@ -166,7 +167,7 @@ var handleGetWriteErrorMessage = function (response) {
166
167
  return "Please contact our administrator for assistance or try your request again later. We apologize for any inconvenience";
167
168
  };
168
169
  exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
169
- 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;
170
+ 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;
170
171
  var intialiseDefaultFilterValues = function () {
171
172
  var _a;
172
173
  var initialFilterSearch = {};
@@ -227,159 +228,195 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
227
228
  initialFilterReferenceDate: initialFilterReferenceDate,
228
229
  };
229
230
  };
230
- var _42 = intialiseDefaultFilterValues(), initialFilterSearch = _42.initialFilterSearch, initialFilterSearchParams = _42.initialFilterSearchParams, initialFilterSelection = _42.initialFilterSelection, initialFilterReference = _42.initialFilterReference, initialFilterReferenceDate = _42.initialFilterReferenceDate;
231
- var _43 = (0, react_1.useState)(false), loading = _43[0], setLoading = _43[1];
232
- var _44 = (0, react_1.useState)(), notification = _44[0], setNotification = _44[1];
231
+ var _50 = intialiseDefaultFilterValues(), initialFilterSearch = _50.initialFilterSearch, initialFilterSearchParams = _50.initialFilterSearchParams, initialFilterSelection = _50.initialFilterSelection, initialFilterReference = _50.initialFilterReference, initialFilterReferenceDate = _50.initialFilterReferenceDate;
232
+ // INFO: Persist view state hook handles storage read/write for filter/sort/column state
233
+ var _51 = (0, viewStatePersistence_1.usePersistedViewState)({
234
+ mode: (_a = props.organise) === null || _a === void 0 ? void 0 : _a.persistViewState,
235
+ collectionId: props.collectionId,
236
+ uniqueLabel: props.uniqueLabel,
237
+ type: props.type,
238
+ }), persistedState = _51.persistedState, isPersistEnabled = _51.isEnabled, handleSaveView = _51.handleSaveView;
239
+ var _52 = (0, react_1.useState)(false), loading = _52[0], setLoading = _52[1];
240
+ var _53 = (0, react_1.useState)(), notification = _53[0], setNotification = _53[1];
233
241
  //INFO : Used by List
234
- var _45 = (0, react_1.useState)(initialFilterSearch), filterSearch = _45[0], setFilterSearch = _45[1];
235
- var _46 = (0, react_1.useState)(initialFilterSearchParams), filterSearchParams = _46[0], setFilterSearchParams = _46[1];
236
- var _47 = (0, react_1.useState)(initialFilterSelection), filterSelection = _47[0], setFilterSelection = _47[1];
237
- var _48 = (0, react_1.useState)(initialFilterReference), filterReference = _48[0], setFilterReference = _48[1];
238
- var _49 = (0, react_1.useState)({}), filterReferenceSearch = _49[0], setFilterReferenceSearch = _49[1];
239
- var _50 = (0, react_1.useState)({}), filterReferenceList = _50[0], setFilterReferenceList = _50[1];
240
- var _51 = (0, react_1.useState)(initialFilterReferenceDate), filterReferenceDate = _51[0], setFilterReferenceDate = _51[1];
241
- var _52 = (0, react_1.useState)(true), tableLoading = _52[0], setTableLoading = _52[1];
242
- var _53 = (0, react_1.useState)(""), cursor = _53[0], setCursor = _53[1];
243
- var _54 = (0, react_1.useState)(""), lastCursor = _54[0], setLastCursor = _54[1];
244
- var _55 = (0, react_1.useState)([]), tableData = _55[0], setTableData = _55[1];
245
- var _56 = (0, react_1.useState)([]), spaceTableData = _56[0], setSpaceTableData = _56[1];
246
- var _57 = (0, react_1.useState)(0), size = _57[0], setSize = _57[1];
247
- var _58 = (0, react_1.useState)((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.pageIndex) !== null && _b !== void 0 ? _b : 0), pageIndex = _58[0], setPageIndex = _58[1];
248
- var _59 = (0, react_1.useState)([]), selectedIds = _59[0], setSelectedIds = _59[1];
249
- var _60 = (0, react_1.useState)(false), selectAll = _60[0], setSelectAll = _60[1];
250
- var _61 = (0, react_1.useState)(""), deletePasscode = _61[0], setDeletePasscode = _61[1];
251
- var _62 = (0, react_1.useState)(""), deletePasscodeInput = _62[0], setDeletePasscodeInput = _62[1];
252
- var _63 = (0, react_1.useState)(""), deleteFeedId = _63[0], setDeleteFeedId = _63[1];
242
+ var _54 = (0, react_1.useState)((_b = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _b !== void 0 ? _b : initialFilterSearch), filterSearch = _54[0], setFilterSearch = _54[1];
243
+ var _55 = (0, react_1.useState)((_c = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSearchParams) !== null && _c !== void 0 ? _c : initialFilterSearchParams), filterSearchParams = _55[0], setFilterSearchParams = _55[1];
244
+ var _56 = (0, react_1.useState)((_d = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterSelection) !== null && _d !== void 0 ? _d : initialFilterSelection), filterSelection = _56[0], setFilterSelection = _56[1];
245
+ var _57 = (0, react_1.useState)((_e = persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReference) !== null && _e !== void 0 ? _e : initialFilterReference), filterReference = _57[0], setFilterReference = _57[1];
246
+ var _58 = (0, react_1.useState)({}), filterReferenceSearch = _58[0], setFilterReferenceSearch = _58[1];
247
+ var _59 = (0, react_1.useState)({}), filterReferenceList = _59[0], setFilterReferenceList = _59[1];
248
+ var _60 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.filterReferenceDate)
249
+ ? (0, viewStatePersistence_1.parseDateFilterState)(persistedState.filterReferenceDate)
250
+ : initialFilterReferenceDate), filterReferenceDate = _60[0], setFilterReferenceDate = _60[1];
251
+ var _61 = (0, react_1.useState)(true), tableLoading = _61[0], setTableLoading = _61[1];
252
+ var _62 = (0, react_1.useState)(""), cursor = _62[0], setCursor = _62[1];
253
+ var _63 = (0, react_1.useState)(""), lastCursor = _63[0], setLastCursor = _63[1];
254
+ var _64 = (0, react_1.useState)([]), tableData = _64[0], setTableData = _64[1];
255
+ var _65 = (0, react_1.useState)([]), spaceTableData = _65[0], setSpaceTableData = _65[1];
256
+ var _66 = (0, react_1.useState)(0), size = _66[0], setSize = _66[1];
257
+ var _67 = (0, react_1.useState)((_h = (_f = persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageIndex) !== null && _f !== void 0 ? _f : (_g = props.organise) === null || _g === void 0 ? void 0 : _g.pageIndex) !== null && _h !== void 0 ? _h : 0), pageIndex = _67[0], setPageIndex = _67[1];
258
+ var _68 = (0, react_1.useState)([]), selectedIds = _68[0], setSelectedIds = _68[1];
259
+ var _69 = (0, react_1.useState)(false), selectAll = _69[0], setSelectAll = _69[1];
260
+ var _70 = (0, react_1.useState)(""), deletePasscode = _70[0], setDeletePasscode = _70[1];
261
+ var _71 = (0, react_1.useState)(""), deletePasscodeInput = _71[0], setDeletePasscodeInput = _71[1];
262
+ var _72 = (0, react_1.useState)(""), deleteFeedId = _72[0], setDeleteFeedId = _72[1];
253
263
  //INFO : Used by List Organise
254
- var _64 = (0, react_1.useState)(false), sortModal = _64[0], setSortModal = _64[1];
255
- var _65 = (0, react_1.useState)(false), filterModal = _65[0], setFilterModal = _65[1];
256
- var _66 = (0, react_1.useState)(false), filterDraft = _66[0], setFilterDraft = _66[1];
257
- var _67 = (0, react_1.useState)(false), addTabModal = _67[0], setAddTabModal = _67[1];
258
- var _68 = (0, react_1.useState)(false), overviewModal = _68[0], setOverviewModal = _68[1];
264
+ var _73 = (0, react_1.useState)(false), sortModal = _73[0], setSortModal = _73[1];
265
+ var _74 = (0, react_1.useState)(false), filterModal = _74[0], setFilterModal = _74[1];
266
+ // INFO: Internal sort state that overrides props.organise?.sort when
267
+ // persistViewState is enabled and a persisted sort exists
268
+ var _75 = (0, react_1.useState)((_j = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _j !== void 0 ? _j : undefined), persistedSort = _75[0], setPersistedSort = _75[1];
269
+ var _76 = (0, react_1.useState)(false), filterDraft = _76[0], setFilterDraft = _76[1];
270
+ var _77 = (0, react_1.useState)(false), addTabModal = _77[0], setAddTabModal = _77[1];
271
+ var _78 = (0, react_1.useState)(false), overviewModal = _78[0], setOverviewModal = _78[1];
259
272
  //INFO : resolve the initial tab synchronously so the mount cond is already
260
273
  // tab-scoped — an empty initial tab caused a second wasted list fetch
261
- var _69 = (0, react_1.useState)(function () {
274
+ var _79 = (0, react_1.useState)(function () {
262
275
  var _a, _b;
263
276
  return (0, listModule_1.renderSelectedRefreshTab)(props.localURLEndpoint, props.type, 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);
264
- }), selectedTab = _69[0], setSelectedTab = _69[1];
265
- var _70 = (0, react_1.useState)("dayGridMonth"), calendarView = _70[0], setCalendarView = _70[1];
277
+ }), selectedTab = _79[0], setSelectedTab = _79[1];
278
+ var _80 = (0, react_1.useState)("dayGridMonth"), calendarView = _80[0], setCalendarView = _80[1];
266
279
  // INFO: bareNewDTW calendar viewSwitch mode — drives the NewCalendar variant
267
280
  // (calendarView above drives the matching range query)
268
- var _71 = (0, react_1.useState)("month"), newCalendarViewMode = _71[0], setNewCalendarViewMode = _71[1];
269
- var _72 = (0, react_1.useState)(new Date()), calendarTabMonth = _72[0], setCalendarTabMonth = _72[1];
270
- var _73 = (0, react_1.useState)(true), kanbanDroppable = _73[0], setKanbanDroppable = _73[1];
271
- var _74 = (0, react_1.useState)([]), kanbanOptions = _74[0], setKanbanOptions = _74[1];
272
- var _75 = (0, react_1.useState)(false), queryForm = _75[0], setQueryForm = _75[1];
273
- var _76 = (0, react_1.useState)(false), batchUpdateModal = _76[0], setBatchUpdateModal = _76[1];
274
- var _77 = (0, react_1.useState)({
281
+ var _81 = (0, react_1.useState)("month"), newCalendarViewMode = _81[0], setNewCalendarViewMode = _81[1];
282
+ var _82 = (0, react_1.useState)(new Date()), calendarTabMonth = _82[0], setCalendarTabMonth = _82[1];
283
+ var _83 = (0, react_1.useState)(true), kanbanDroppable = _83[0], setKanbanDroppable = _83[1];
284
+ var _84 = (0, react_1.useState)([]), kanbanOptions = _84[0], setKanbanOptions = _84[1];
285
+ var _85 = (0, react_1.useState)(false), queryForm = _85[0], setQueryForm = _85[1];
286
+ var _86 = (0, react_1.useState)(false), batchUpdateModal = _86[0], setBatchUpdateModal = _86[1];
287
+ var _87 = (0, react_1.useState)({
275
288
  columnId: "",
276
289
  columnData: {},
277
- }), batchUpdateData = _77[0], setBatchUpdateData = _77[1];
278
- var _78 = (0, react_1.useState)((props === null || props === void 0 ? void 0 : props.model) || []), structure = _78[0], setStructure = _78[1];
279
- var _79 = (0, react_1.useState)(((_c = props === null || props === void 0 ? void 0 : props.organise) === null || _c === void 0 ? void 0 : _c.additionalQuery) || []), additionalQuery = _79[0], setAdditionalQuery = _79[1];
290
+ }), batchUpdateData = _87[0], setBatchUpdateData = _87[1];
291
+ var _88 = (0, react_1.useState)(function () {
292
+ var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
293
+ if (!persistedState)
294
+ return baseModel;
295
+ // INFO: Apply persisted column visibility (hiddenColumnIds) and order (columnOrder)
296
+ var model = baseModel.map(function (col) {
297
+ var _a, _b;
298
+ return (__assign(__assign({}, col), { hide: ((_a = persistedState.hiddenColumnIds) === null || _a === void 0 ? void 0 : _a.includes(col.id))
299
+ ? true
300
+ : ((_b = col.hide) !== null && _b !== void 0 ? _b : false) }));
301
+ });
302
+ if (persistedState.columnOrder && persistedState.columnOrder.length > 0) {
303
+ // INFO: Filter out stale IDs that no longer exist in the model
304
+ var modelIds_1 = new Set(model.map(function (col) { return col.id; }));
305
+ var validOrder = persistedState.columnOrder.filter(function (id) {
306
+ return modelIds_1.has(id);
307
+ });
308
+ var orderMap_1 = new Map(validOrder.map(function (id, idx) { return [id, idx]; }));
309
+ model = __spreadArray([], model, true).sort(function (a, b) {
310
+ var _a, _b;
311
+ var aIdx = (_a = orderMap_1.get(a.id)) !== null && _a !== void 0 ? _a : Infinity;
312
+ var bIdx = (_b = orderMap_1.get(b.id)) !== null && _b !== void 0 ? _b : Infinity;
313
+ return aIdx - bIdx;
314
+ });
315
+ }
316
+ return model;
317
+ }), structure = _88[0], setStructure = _88[1];
318
+ var _89 = (0, react_1.useState)(((_k = props === null || props === void 0 ? void 0 : props.organise) === null || _k === void 0 ? void 0 : _k.additionalQuery) || []), additionalQuery = _89[0], setAdditionalQuery = _89[1];
280
319
  // INFO: State for user-configurable flex filters (Monday.com-style)
281
320
  // INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
282
- var _80 = (0, react_1.useState)([
321
+ var defaultFlexFilterRow = [
283
322
  {
284
323
  id: "flex-filter-init-row",
285
324
  columnId: "",
286
325
  operator: "=",
287
326
  value: undefined,
288
327
  },
289
- ]), flexFilters = _80[0], setFlexFilters = _80[1];
328
+ ];
329
+ var _90 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
330
+ ? persistedState.flexFilters
331
+ : defaultFlexFilterRow), flexFilters = _90[0], setFlexFilters = _90[1];
290
332
  // INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
291
333
  // to prevent API calls on every keystroke when typing in value inputs
292
- var _81 = (0, react_1.useState)([
293
- {
294
- id: "flex-filter-init-row",
295
- columnId: "",
296
- operator: "=",
297
- value: undefined,
298
- },
299
- ]), flexFiltersDebounced = _81[0], setFlexFiltersDebounced = _81[1];
300
- var _82 = (0, react_1.useState)({}), flexFilterReferenceOptions = _82[0], setFlexFilterReferenceOptions = _82[1];
301
- var _83 = (0, react_1.useState)({}), flexFilterReferenceSearch = _83[0], setFlexFilterReferenceSearch = _83[1];
302
- var _84 = (0, react_1.useState)(false), flexFilterModalOpen = _84[0], setFlexFilterModalOpen = _84[1];
334
+ var _91 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
335
+ ? persistedState.flexFilters
336
+ : defaultFlexFilterRow), flexFiltersDebounced = _91[0], setFlexFiltersDebounced = _91[1];
337
+ var _92 = (0, react_1.useState)({}), flexFilterReferenceOptions = _92[0], setFlexFilterReferenceOptions = _92[1];
338
+ var _93 = (0, react_1.useState)({}), flexFilterReferenceSearch = _93[0], setFlexFilterReferenceSearch = _93[1];
339
+ var _94 = (0, react_1.useState)(false), flexFilterModalOpen = _94[0], setFlexFilterModalOpen = _94[1];
303
340
  //INFO : Used by Auth
304
- var _85 = (0, react_1.useState)({
341
+ var _95 = (0, react_1.useState)({
305
342
  email: "",
306
343
  google: "",
307
344
  phone: "",
308
345
  disabled: false,
309
346
  create: false,
310
- }), authMethods = _85[0], setAuthMethods = _85[1];
311
- var _86 = (0, react_1.useState)(""), selectedAuthMethod = _86[0], setSelectedAuthMethod = _86[1];
347
+ }), authMethods = _95[0], setAuthMethods = _95[1];
348
+ var _96 = (0, react_1.useState)(""), selectedAuthMethod = _96[0], setSelectedAuthMethod = _96[1];
312
349
  // INFO: Used by Activity Log
313
- var _87 = (0, react_1.useState)(false), activityModal = _87[0], setActivityModal = _87[1];
314
- var _88 = (0, react_1.useState)(""), activityId = _88[0], setActivityId = _88[1];
350
+ var _97 = (0, react_1.useState)(false), activityModal = _97[0], setActivityModal = _97[1];
351
+ var _98 = (0, react_1.useState)(""), activityId = _98[0], setActivityId = _98[1];
315
352
  //INFO : Used by Export
316
- var _89 = (0, react_1.useState)(null), csvFile = _89[0], setCSVFile = _89[1];
317
- var _90 = (0, react_1.useState)([]), csvFileData = _90[0], setCSVFileData = _90[1];
318
- var _91 = (0, react_1.useState)(0), stepCSVIndex = _91[0], setStepCSVIndex = _91[1];
319
- var _92 = (0, react_1.useState)({}), listCSVMapAttribute = _92[0], setListCSVMapAttribute = _92[1];
320
- var _93 = (0, react_1.useState)({}), listCSVObjAttribute = _93[0], setListCSVObjAttribute = _93[1];
321
- var _94 = (0, react_1.useState)([]), csvAPIAttribute = _94[0], setCSVAPIAttribute = _94[1];
322
- var _95 = (0, react_1.useState)(((_d = props.devSettings.currentUser) === null || _d === void 0 ? void 0 : _d.userEmail) || ""), exportCSVEmail = _95[0], setExportCSVEmail = _95[1];
323
- var _96 = (0, react_1.useState)(((_f = (_e = props.organise) === null || _e === void 0 ? void 0 : _e.exportSettings) === null || _f === void 0 ? void 0 : _f.defaultExportPDFName) || ""), exportPDFTitle = _96[0], setExportPDFTitle = _96[1];
324
- var _97 = (0, react_1.useState)(false), exportPDFLoading = _97[0], setExportPDFLoading = _97[1];
325
- var _98 = (0, react_1.useState)(false), exportReadPDFLoading = _98[0], setExportReadPDFLoading = _98[1];
326
- var _99 = (0, react_1.useState)((_j = (_h = (_g = props.organise) === null || _g === void 0 ? void 0 : _g.exportSettings) === null || _h === void 0 ? void 0 : _h.sumColumnId) !== null && _j !== void 0 ? _j : []), exportSumAttributeIds = _99[0], setExportSumAttributeIds = _99[1];
327
- var _100 = (0, react_1.useState)((_m = (_l = (_k = props.organise) === null || _k === void 0 ? void 0 : _k.exportSettings) === null || _l === void 0 ? void 0 : _l.hideSubItems) !== null && _m !== void 0 ? _m : false), hideSubItems = _100[0], setHideSubItems = _100[1];
328
- var _101 = (0, react_1.useState)([]), importTableData = _101[0], setImportTableData = _101[1];
329
- var _102 = (0, react_1.useState)([]), queryList = _102[0], setQueryList = _102[1];
330
- var _103 = (0, react_1.useState)(undefined), allQueryList = _103[0], setAllQueryList = _103[1];
331
- var _104 = (0, react_1.useState)(-1), queryIndex = _104[0], setQueryIndex = _104[1];
332
- var _105 = (0, react_1.useState)((_o = props.organise) === null || _o === void 0 ? void 0 : _o.groupBy), groupId = _105[0], setGroupId = _105[1];
333
- var _106 = (0, react_1.useState)(""), readTabSection = _106[0], setReadTabSection = _106[1];
334
- var _107 = (0, react_1.useState)(false), readFloatingNav = _107[0], setReadFloatingNav = _107[1];
353
+ var _99 = (0, react_1.useState)(null), csvFile = _99[0], setCSVFile = _99[1];
354
+ var _100 = (0, react_1.useState)([]), csvFileData = _100[0], setCSVFileData = _100[1];
355
+ var _101 = (0, react_1.useState)(0), stepCSVIndex = _101[0], setStepCSVIndex = _101[1];
356
+ var _102 = (0, react_1.useState)({}), listCSVMapAttribute = _102[0], setListCSVMapAttribute = _102[1];
357
+ var _103 = (0, react_1.useState)({}), listCSVObjAttribute = _103[0], setListCSVObjAttribute = _103[1];
358
+ var _104 = (0, react_1.useState)([]), csvAPIAttribute = _104[0], setCSVAPIAttribute = _104[1];
359
+ var _105 = (0, react_1.useState)(((_l = props.devSettings.currentUser) === null || _l === void 0 ? void 0 : _l.userEmail) || ""), exportCSVEmail = _105[0], setExportCSVEmail = _105[1];
360
+ var _106 = (0, react_1.useState)(((_o = (_m = props.organise) === null || _m === void 0 ? void 0 : _m.exportSettings) === null || _o === void 0 ? void 0 : _o.defaultExportPDFName) || ""), exportPDFTitle = _106[0], setExportPDFTitle = _106[1];
361
+ var _107 = (0, react_1.useState)(false), exportPDFLoading = _107[0], setExportPDFLoading = _107[1];
362
+ var _108 = (0, react_1.useState)(false), exportReadPDFLoading = _108[0], setExportReadPDFLoading = _108[1];
363
+ var _109 = (0, react_1.useState)((_r = (_q = (_p = props.organise) === null || _p === void 0 ? void 0 : _p.exportSettings) === null || _q === void 0 ? void 0 : _q.sumColumnId) !== null && _r !== void 0 ? _r : []), exportSumAttributeIds = _109[0], setExportSumAttributeIds = _109[1];
364
+ var _110 = (0, react_1.useState)((_u = (_t = (_s = props.organise) === null || _s === void 0 ? void 0 : _s.exportSettings) === null || _t === void 0 ? void 0 : _t.hideSubItems) !== null && _u !== void 0 ? _u : false), hideSubItems = _110[0], setHideSubItems = _110[1];
365
+ var _111 = (0, react_1.useState)([]), importTableData = _111[0], setImportTableData = _111[1];
366
+ var _112 = (0, react_1.useState)([]), queryList = _112[0], setQueryList = _112[1];
367
+ var _113 = (0, react_1.useState)(undefined), allQueryList = _113[0], setAllQueryList = _113[1];
368
+ var _114 = (0, react_1.useState)(-1), queryIndex = _114[0], setQueryIndex = _114[1];
369
+ var _115 = (0, react_1.useState)((_v = props.organise) === null || _v === void 0 ? void 0 : _v.groupBy), groupId = _115[0], setGroupId = _115[1];
370
+ var _116 = (0, react_1.useState)(""), readTabSection = _116[0], setReadTabSection = _116[1];
371
+ var _117 = (0, react_1.useState)(false), readFloatingNav = _117[0], setReadFloatingNav = _117[1];
335
372
  var readTabSectionRefs = (0, react_1.useRef)({});
336
373
  //INFO : Used by Read
337
374
  //INFO : Used by Update
338
- var _108 = (0, react_1.useState)(false), modalVisible = _108[0], setModalVisible = _108[1];
339
- var _109 = (0, react_1.useState)(false), deleteModal = _109[0], setDeleteModal = _109[1];
340
- var _110 = (0, react_1.useState)(false), excelModal = _110[0], setExcelModal = _110[1];
341
- var _111 = (0, react_1.useState)(false), exportExcel = _111[0], setExportExcel = _111[1];
342
- var _112 = (0, react_1.useState)(""), exportType = _112[0], setExportType = _112[1];
343
- var _113 = (0, react_1.useState)(false), exportQR = _113[0], setExportQR = _113[1];
344
- var _114 = (0, react_1.useState)(function () {
375
+ var _118 = (0, react_1.useState)(false), modalVisible = _118[0], setModalVisible = _118[1];
376
+ var _119 = (0, react_1.useState)(false), deleteModal = _119[0], setDeleteModal = _119[1];
377
+ var _120 = (0, react_1.useState)(false), excelModal = _120[0], setExcelModal = _120[1];
378
+ var _121 = (0, react_1.useState)(false), exportExcel = _121[0], setExportExcel = _121[1];
379
+ var _122 = (0, react_1.useState)(""), exportType = _122[0], setExportType = _122[1];
380
+ var _123 = (0, react_1.useState)(false), exportQR = _123[0], setExportQR = _123[1];
381
+ var _124 = (0, react_1.useState)(function () {
345
382
  var _a, _b;
346
383
  var firstTabId = (_b = (_a = structure.find(function (item) { return item.tabId; })) === null || _a === void 0 ? void 0 : _a.tabId) !== null && _b !== void 0 ? _b : "";
347
384
  return firstTabId;
348
- }), activeTab = _114[0], setActiveTab = _114[1];
349
- var _115 = (0, react_1.useState)(false), signatureSigning = _115[0], setSignatureSigning = _115[1];
350
- var _116 = (0, react_1.useState)({}), selectedData = _116[0], setSelectedData = _116[1];
351
- var _117 = (0, react_1.useState)(""), selectedObjectStructureId = _117[0], setSelectedObjectStructureId = _117[1];
352
- var _118 = (0, react_1.useState)(""), selectedObjectId = _118[0], setSelectedObjectId = _118[1];
353
- var _119 = (0, react_1.useState)(""), selectedListAddressId = _119[0], setSelectedListAddressId = _119[1];
354
- var _120 = (0, react_1.useState)(-1), selectedListAddressIndex = _120[0], setSelectedListAddressIndex = _120[1];
355
- var _121 = (0, react_1.useState)({
385
+ }), activeTab = _124[0], setActiveTab = _124[1];
386
+ var _125 = (0, react_1.useState)(false), signatureSigning = _125[0], setSignatureSigning = _125[1];
387
+ var _126 = (0, react_1.useState)({}), selectedData = _126[0], setSelectedData = _126[1];
388
+ var _127 = (0, react_1.useState)(""), selectedObjectStructureId = _127[0], setSelectedObjectStructureId = _127[1];
389
+ var _128 = (0, react_1.useState)(""), selectedObjectId = _128[0], setSelectedObjectId = _128[1];
390
+ var _129 = (0, react_1.useState)(""), selectedListAddressId = _129[0], setSelectedListAddressId = _129[1];
391
+ var _130 = (0, react_1.useState)(-1), selectedListAddressIndex = _130[0], setSelectedListAddressIndex = _130[1];
392
+ var _131 = (0, react_1.useState)({
356
393
  lat: 0,
357
394
  lng: 0,
358
395
  name: "",
359
- }), selectedListAddress = _121[0], setSelectedListAddress = _121[1];
360
- var _122 = (0, react_1.useState)({}), selectedObjectData = _122[0], setSelectedObjectData = _122[1];
361
- var _123 = (0, react_1.useState)(false), referenceLoading = _123[0], setReferenceLoading = _123[1];
362
- var _124 = (0, react_1.useState)({}), referencesOptions = _124[0], setReferencesOptions = _124[1];
363
- var _125 = (0, react_1.useState)({}), referencesDetails = _125[0], setReferencesDetails = _125[1];
364
- var _126 = (0, react_1.useState)({}), referenceDeleteTableData = _126[0], setReferenceDeleteTableData = _126[1];
365
- var _127 = (0, react_1.useState)(0), referenceDeleteIndex = _127[0], setReferenceDeleteIndex = _127[1];
366
- var _128 = (0, react_1.useState)({
396
+ }), selectedListAddress = _131[0], setSelectedListAddress = _131[1];
397
+ var _132 = (0, react_1.useState)({}), selectedObjectData = _132[0], setSelectedObjectData = _132[1];
398
+ var _133 = (0, react_1.useState)(false), referenceLoading = _133[0], setReferenceLoading = _133[1];
399
+ var _134 = (0, react_1.useState)({}), referencesOptions = _134[0], setReferencesOptions = _134[1];
400
+ var _135 = (0, react_1.useState)({}), referencesDetails = _135[0], setReferencesDetails = _135[1];
401
+ var _136 = (0, react_1.useState)({}), referenceDeleteTableData = _136[0], setReferenceDeleteTableData = _136[1];
402
+ var _137 = (0, react_1.useState)(0), referenceDeleteIndex = _137[0], setReferenceDeleteIndex = _137[1];
403
+ var _138 = (0, react_1.useState)({
367
404
  id: "",
368
405
  name: "",
369
406
  type: "string",
370
- }), referenceCreationModal = _128[0], setReferenceCreationModal = _128[1];
371
- var _129 = (0, react_1.useState)({}), referenceModelSchema = _129[0], setReferenceSchema = _129[1];
372
- var _130 = (0, react_1.useState)([]), kanbanChecked = _130[0], setKanbanChecked = _130[1];
407
+ }), referenceCreationModal = _138[0], setReferenceCreationModal = _138[1];
408
+ var _139 = (0, react_1.useState)({}), referenceModelSchema = _139[0], setReferenceSchema = _139[1];
409
+ var _140 = (0, react_1.useState)([]), kanbanChecked = _140[0], setKanbanChecked = _140[1];
373
410
  //INFO : Offline
374
- var _131 = (0, react_1.useState)(0), offlineDataLength = _131[0], setOfflineDataLength = _131[1];
375
- var _132 = (0, react_1.useState)(false), offlineModal = _132[0], setOfflineModal = _132[1];
411
+ var _141 = (0, react_1.useState)(0), offlineDataLength = _141[0], setOfflineDataLength = _141[1];
412
+ var _142 = (0, react_1.useState)(false), offlineModal = _142[0], setOfflineModal = _142[1];
376
413
  // INFO: live-stream state — driven by socket connection and navigator.onLine
377
- var _133 = (0, react_1.useState)(false), isLive = _133[0], setIsLive = _133[1];
378
- var _134 = (0, react_1.useState)(false), isLiveOffline = _134[0], setIsLiveOffline = _134[1];
414
+ var _143 = (0, react_1.useState)(false), isLive = _143[0], setIsLive = _143[1];
415
+ var _144 = (0, react_1.useState)(false), isLiveOffline = _144[0], setIsLiveOffline = _144[1];
379
416
  // INFO: true when navigator is offline — used to switch ReadQueryHoc between
380
417
  // server reads (online, full pagination) and IndexedDB reads (offline, cached data).
381
418
  // Independent of SSE status so it works even when bareSocketName is not set.
382
- var _135 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _135[0], setIsNetworkOffline = _135[1];
419
+ var _145 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _145[0], setIsNetworkOffline = _145[1];
383
420
  var previousType = (0, react_1.useRef)(null);
384
421
  var previousSelectedData = (0, react_1.useRef)(null);
385
422
  var scrollSentinelRef = (0, react_1.useRef)(null);
@@ -413,6 +450,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
413
450
  // socket merges, prefills). When true, the next changedAttributeIds from the useEffect should NOT
414
451
  // be added to dirtyFields because the change was programmatic, not user-driven.
415
452
  var programmaticUpdateRef = (0, react_1.useRef)(false);
453
+ // INFO: tracks whether the initial mount has completed — used to skip
454
+ // overwriting persisted structure with props.model on the first render
455
+ var persistedViewMountedRef = (0, react_1.useRef)(false);
416
456
  var formRef = (0, react_1.createRef)();
417
457
  var objectFormRef = (0, react_1.createRef)();
418
458
  var listAddressFromRef = (0, react_1.createRef)();
@@ -452,40 +492,47 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
452
492
  var isSubmittingRef = (0, react_1.useRef)(false);
453
493
  var devSettings = props.devSettings;
454
494
  var serverId = (0, utils_1.parseServerId)(devSettings.server);
455
- var viewType = (_q = (_p = props.organise) === null || _p === void 0 ? void 0 : _p.viewId) !== null && _q !== void 0 ? _q : "general";
495
+ var viewType = (_x = (_w = props.organise) === null || _w === void 0 ? void 0 : _w.viewId) !== null && _x !== void 0 ? _x : "general";
456
496
  var isFirebaseClient = devSettings.server === "firebase";
457
497
  var isFirebase = isFirebaseClient || devSettings.server === "fbServer";
458
- var dbModule = isFirebaseClient ? (_r = props.lib) === null || _r === void 0 ? void 0 : _r.firebase : (_s = props.lib) === null || _s === void 0 ? void 0 : _s.axios;
498
+ var dbModule = isFirebaseClient ? (_y = props.lib) === null || _y === void 0 ? void 0 : _y.firebase : (_z = props.lib) === null || _z === void 0 ? void 0 : _z.axios;
459
499
  var schemaPresent = props.devSettings.schemaEndpoint ? true : false;
460
500
  var limit = props.limit ? props.limit : 10;
461
- var isEditor = ((_t = props.edit) === null || _t === void 0 ? void 0 : _t.allEditable) ? true : false;
462
- var isOffline = (_u = props.bareSettings) === null || _u === void 0 ? void 0 : _u.bareOffline;
501
+ var activeSortId = (isPersistEnabled && persistedSort) || ((_0 = props.organise) === null || _0 === void 0 ? void 0 : _0.sort);
502
+ var handleSortColumn = function (value) {
503
+ var _a, _b;
504
+ if (isPersistEnabled)
505
+ setPersistedSort(value);
506
+ (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeSort) === null || _b === void 0 ? void 0 : _b.call(_a, value);
507
+ };
508
+ var isEditor = ((_1 = props.edit) === null || _1 === void 0 ? void 0 : _1.allEditable) ? true : false;
509
+ var isOffline = (_2 = props.bareSettings) === null || _2 === void 0 ? void 0 : _2.bareOffline;
463
510
  // INFO: when bareOfflineNetworkAware is true, the save path is also gated on
464
511
  // the live network state — online saves go to the server even if bareOffline
465
512
  // is true, offline saves go to IDB as normal.
466
- var isOfflineNetworkListener = isOffline && ((_v = props.bareSettings) === null || _v === void 0 ? void 0 : _v.bareOfflineNetworkListener);
467
- var showId = (_w = props.space) === null || _w === void 0 ? void 0 : _w.showId;
513
+ var isOfflineNetworkListener = isOffline && ((_3 = props.bareSettings) === null || _3 === void 0 ? void 0 : _3.bareOfflineNetworkListener);
514
+ var showId = (_4 = props.space) === null || _4 === void 0 ? void 0 : _4.showId;
468
515
  var remainId = showId || selectedObjectStructureId ? true : false;
469
- var idField = ((_x = props.space) === null || _x === void 0 ? void 0 : _x.idField) || ((_y = props.organise) === null || _y === void 0 ? void 0 : _y.idField);
470
- var pipeline = (_z = props === null || props === void 0 ? void 0 : props.space) === null || _z === void 0 ? void 0 : _z.pipeline;
471
- if ((_0 = props.bareSettings) === null || _0 === void 0 ? void 0 : _0.bareListPipeline) {
516
+ var idField = ((_5 = props.space) === null || _5 === void 0 ? void 0 : _5.idField) || ((_6 = props.organise) === null || _6 === void 0 ? void 0 : _6.idField);
517
+ var pipeline = (_7 = props === null || props === void 0 ? void 0 : props.space) === null || _7 === void 0 ? void 0 : _7.pipeline;
518
+ if ((_8 = props.bareSettings) === null || _8 === void 0 ? void 0 : _8.bareListPipeline) {
472
519
  pipeline = pipeline
473
520
  ? __spreadArray(__spreadArray([], pipeline, true), props.bareSettings.bareListPipeline, true) : props.bareSettings.bareListPipeline;
474
521
  }
475
- var hasNavigation = ((_1 = props.organise) === null || _1 === void 0 ? void 0 : _1.handleNavigate) ? true : false;
522
+ var hasNavigation = ((_9 = props.organise) === null || _9 === void 0 ? void 0 : _9.handleNavigate) ? true : false;
476
523
  var formColumn = "grid-cols-12";
477
- var useMobileView = (_3 = (_2 = props.bareSettings) === null || _2 === void 0 ? void 0 : _2.bareUpdateMobileView) !== null && _3 !== void 0 ? _3 : false;
524
+ var useMobileView = (_11 = (_10 = props.bareSettings) === null || _10 === void 0 ? void 0 : _10.bareUpdateMobileView) !== null && _11 !== void 0 ? _11 : false;
478
525
  var gridGap = useMobileView ? "gap-x-6 gap-y-2 md:gap-y-6" : "gap-6";
479
- var isActivityLog = (((_5 = (_4 = props.edit) === null || _4 === void 0 ? void 0 : _4.activityLog) === null || _5 === void 0 ? void 0 : _5.enableComments) &&
480
- ((_6 = props.edit) === null || _6 === void 0 ? void 0 : _6.activityLog.commentCollectionId)) ||
481
- (((_8 = (_7 = props.edit) === null || _7 === void 0 ? void 0 : _7.activityLog) === null || _8 === void 0 ? void 0 : _8.enableLogs) &&
482
- ((_9 = props.edit) === null || _9 === void 0 ? void 0 : _9.activityLog.logsCollectionId));
483
- var customPaginationSize = ((_10 = props.organise) === null || _10 === void 0 ? void 0 : _10.customPaginationCount)
526
+ var isActivityLog = (((_13 = (_12 = props.edit) === null || _12 === void 0 ? void 0 : _12.activityLog) === null || _13 === void 0 ? void 0 : _13.enableComments) &&
527
+ ((_14 = props.edit) === null || _14 === void 0 ? void 0 : _14.activityLog.commentCollectionId)) ||
528
+ (((_16 = (_15 = props.edit) === null || _15 === void 0 ? void 0 : _15.activityLog) === null || _16 === void 0 ? void 0 : _16.enableLogs) &&
529
+ ((_17 = props.edit) === null || _17 === void 0 ? void 0 : _17.activityLog.logsCollectionId));
530
+ var customPaginationSize = ((_18 = props.organise) === null || _18 === void 0 ? void 0 : _18.customPaginationCount)
484
531
  ? props.organise.customPaginationCount(size)
485
532
  : undefined;
486
533
  //TODO : Code - Pass ...devSettings, search dbEndpoint:
487
534
  var writeServerQuery = new writeQuery_1.WriteQuery({
488
- dbModule: (_11 = props.lib) === null || _11 === void 0 ? void 0 : _11.axios,
535
+ dbModule: (_19 = props.lib) === null || _19 === void 0 ? void 0 : _19.axios,
489
536
  dbType: devSettings.server,
490
537
  dbCollection: props.collectionId,
491
538
  dbEndpoint: devSettings.dbEndpoint,
@@ -493,7 +540,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
493
540
  dbUserToken: devSettings.dbUserToken,
494
541
  });
495
542
  var readServerQuery = new readQuery_1.ReadQuery({
496
- dbModule: (_12 = props.lib) === null || _12 === void 0 ? void 0 : _12.axios,
543
+ dbModule: (_20 = props.lib) === null || _20 === void 0 ? void 0 : _20.axios,
497
544
  dbType: devSettings.server,
498
545
  dbCollection: props.collectionId,
499
546
  dbEndpoint: devSettings.dbEndpoint,
@@ -501,9 +548,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
501
548
  dbUserToken: devSettings.dbUserToken,
502
549
  });
503
550
  var moreButtonPopUp = [
504
- ((_13 = props.edit) === null || _13 === void 0 ? void 0 : _13.allEditable) &&
551
+ ((_21 = props.edit) === null || _21 === void 0 ? void 0 : _21.allEditable) &&
505
552
  !isFirebase &&
506
- !((_15 = (_14 = props.organise) === null || _14 === void 0 ? void 0 : _14.exportSettings) === null || _15 === void 0 ? void 0 : _15.hideImportCSV)
553
+ !((_23 = (_22 = props.organise) === null || _22 === void 0 ? void 0 : _22.exportSettings) === null || _23 === void 0 ? void 0 : _23.hideImportCSV)
507
554
  ? {
508
555
  text: "Import Excel",
509
556
  onClick: function () {
@@ -512,7 +559,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
512
559
  },
513
560
  }
514
561
  : null,
515
- !((_17 = (_16 = props.organise) === null || _16 === void 0 ? void 0 : _16.exportSettings) === null || _17 === void 0 ? void 0 : _17.hideExportCSV)
562
+ !((_25 = (_24 = props.organise) === null || _24 === void 0 ? void 0 : _24.exportSettings) === null || _25 === void 0 ? void 0 : _25.hideExportCSV)
516
563
  ? {
517
564
  text: "Export CSV",
518
565
  onClick: function () {
@@ -522,7 +569,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
522
569
  },
523
570
  }
524
571
  : null,
525
- !((_19 = (_18 = props.organise) === null || _18 === void 0 ? void 0 : _18.exportSettings) === null || _19 === void 0 ? void 0 : _19.hideExportExcel)
572
+ !((_27 = (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.exportSettings) === null || _27 === void 0 ? void 0 : _27.hideExportExcel)
526
573
  ? {
527
574
  text: "Export Excel",
528
575
  onClick: function () {
@@ -532,7 +579,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
532
579
  },
533
580
  }
534
581
  : null,
535
- !((_21 = (_20 = props.organise) === null || _20 === void 0 ? void 0 : _20.exportSettings) === null || _21 === void 0 ? void 0 : _21.hideExportPDF)
582
+ !((_29 = (_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.exportSettings) === null || _29 === void 0 ? void 0 : _29.hideExportPDF)
536
583
  ? {
537
584
  text: "Export PDF",
538
585
  onClick: function () {
@@ -542,7 +589,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
542
589
  },
543
590
  }
544
591
  : null,
545
- !((_23 = (_22 = props.organise) === null || _22 === void 0 ? void 0 : _22.exportSettings) === null || _23 === void 0 ? void 0 : _23.hideExportQR)
592
+ !((_31 = (_30 = props.organise) === null || _30 === void 0 ? void 0 : _30.exportSettings) === null || _31 === void 0 ? void 0 : _31.hideExportQR)
546
593
  ? {
547
594
  text: "Export QR",
548
595
  onClick: function () {
@@ -552,7 +599,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
552
599
  },
553
600
  }
554
601
  : null,
555
- !((_25 = (_24 = props.organise) === null || _24 === void 0 ? void 0 : _24.exportSettings) === null || _25 === void 0 ? void 0 : _25.hideExportQR)
602
+ !((_33 = (_32 = props.organise) === null || _32 === void 0 ? void 0 : _32.exportSettings) === null || _33 === void 0 ? void 0 : _33.hideExportQR)
556
603
  ? {
557
604
  text: "Export QR(Data)",
558
605
  onClick: function () {
@@ -562,7 +609,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
562
609
  },
563
610
  }
564
611
  : null,
565
- !((_27 = (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.exportSettings) === null || _27 === void 0 ? void 0 : _27.hideExportPrint)
612
+ !((_35 = (_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.exportSettings) === null || _35 === void 0 ? void 0 : _35.hideExportPrint)
566
613
  ? {
567
614
  text: "Print",
568
615
  onClick: function () {
@@ -572,7 +619,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
572
619
  },
573
620
  }
574
621
  : null,
575
- !((_29 = (_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.exportSettings) === null || _29 === void 0 ? void 0 : _29.hideExportDraft)
622
+ !((_37 = (_36 = props.organise) === null || _36 === void 0 ? void 0 : _36.exportSettings) === null || _37 === void 0 ? void 0 : _37.hideExportDraft)
576
623
  ? {
577
624
  text: filterDraft ? "Show All Items" : "Filter Draft",
578
625
  onClick: function () {
@@ -581,7 +628,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
581
628
  }
582
629
  : null,
583
630
  ].filter(Boolean);
584
- if ((_30 = props.organise) === null || _30 === void 0 ? void 0 : _30.moreSettings)
631
+ if ((_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.moreSettings)
585
632
  moreButtonPopUp = moreButtonPopUp.concat(props.organise.moreSettings);
586
633
  //=====================================================================================
587
634
  //SECTION: Flex Filter Handlers
@@ -621,6 +668,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
621
668
  handleClearFlexFilterTypingTimeout();
622
669
  setFlexFilters(updatedFilters);
623
670
  setFlexFiltersDebounced(updatedFilters);
671
+ setPageIndex(0);
624
672
  };
625
673
  var handleFlexFilterClearAll = function () {
626
674
  // INFO: Reset to one empty row so the UI never shows a blank state
@@ -630,6 +678,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
630
678
  handleClearFlexFilterTypingTimeout();
631
679
  setFlexFilters(updatedFilters);
632
680
  setFlexFiltersDebounced(updatedFilters);
681
+ setPageIndex(0);
633
682
  };
634
683
  var handleFlexFilterColumnChange = function (filterId, columnId) {
635
684
  var updatedFilters = flexFilters.map(function (f) {
@@ -666,6 +715,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
666
715
  handleClearFlexFilterTypingTimeout();
667
716
  flexFilterTypingTimeout.current = setTimeout(function () {
668
717
  setFlexFiltersDebounced(updatedFilters);
718
+ setPageIndex(0);
669
719
  }, 500);
670
720
  };
671
721
  var handleFlexFilterReferenceOptionsLoaded = function (columnId, options) {
@@ -726,6 +776,48 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
726
776
  isLive: isLive,
727
777
  isLiveOffline: isLiveOffline,
728
778
  }); });
779
+ // INFO: Auto-save view state to storage whenever filters, sort, page index,
780
+ // or column visibility change. Active for both "persistent" and "session" modes.
781
+ var persistSaveInitialised = (0, react_1.useRef)(false);
782
+ (0, react_1.useEffect)(function () {
783
+ var _a;
784
+ if (!isPersistEnabled)
785
+ return;
786
+ // INFO: Skip the first invocation — deps have hydrated initial values from storage,
787
+ // writing them back immediately is wasteful and can trigger referential loops.
788
+ if (!persistSaveInitialised.current) {
789
+ persistSaveInitialised.current = true;
790
+ return;
791
+ }
792
+ handleSaveView({
793
+ filterSearchParams: filterSearchParams,
794
+ filterSelection: filterSelection,
795
+ filterReference: filterReference,
796
+ filterReferenceDate: (0, viewStatePersistence_1.serializeDateFilterState)(filterReferenceDate),
797
+ flexFilters: flexFiltersDebounced.some(function (eachFilter) {
798
+ return eachFilter.columnId && eachFilter.operator && eachFilter.value;
799
+ })
800
+ ? flexFiltersDebounced.filter(function (eachFilter) {
801
+ return eachFilter.columnId && eachFilter.operator && eachFilter.value;
802
+ })
803
+ : undefined,
804
+ sort: persistedSort !== null && persistedSort !== void 0 ? persistedSort : (_a = props.organise) === null || _a === void 0 ? void 0 : _a.sort,
805
+ // INFO: scroll mode always starts from page 0 on reload — persisting
806
+ // a mid-scroll pageIndex would skip rows on next hydration.
807
+ pageIndex: renderCheckScrollMode() ? 0 : pageIndex,
808
+ hiddenColumnIds: structure.filter(function (col) { return col.hide; }).map(function (col) { return col.id; }),
809
+ columnOrder: structure.map(function (col) { return col.id; }),
810
+ });
811
+ }, [
812
+ filterSearchParams,
813
+ filterSelection,
814
+ filterReference,
815
+ filterReferenceDate,
816
+ flexFiltersDebounced,
817
+ pageIndex,
818
+ structure,
819
+ persistedSort,
820
+ ]);
729
821
  (0, react_1.useEffect)(function () {
730
822
  handleCheckOfflineDataLength();
731
823
  /* eslint-disable */
@@ -737,7 +829,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
737
829
  (0, react_1.useEffect)(function () {
738
830
  handleOfflinePrefetch();
739
831
  /* eslint-disable */
740
- }, [props.collectionId, (_31 = props.bareSettings) === null || _31 === void 0 ? void 0 : _31.bareOffline]);
832
+ }, [props.collectionId, (_39 = props.bareSettings) === null || _39 === void 0 ? void 0 : _39.bareOffline]);
741
833
  /* eslint-enable */
742
834
  // INFO: MRQ polling — calls handleRefresh every N ms (e.g. 1500) as a fallback.
743
835
  // Calls through handleRefreshRef so the interval always dispatches the latest
@@ -757,7 +849,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
757
849
  }, interval);
758
850
  return function () { return clearInterval(timer); };
759
851
  /* eslint-disable */
760
- }, [(_32 = props.bareSettings) === null || _32 === void 0 ? void 0 : _32.barePollingInterval, isLive, isNetworkOffline]);
852
+ }, [(_40 = props.bareSettings) === null || _40 === void 0 ? void 0 : _40.barePollingInterval, isLive, isNetworkOffline]);
761
853
  /* eslint-enable */
762
854
  // INFO: Pub/Sub → SSE live-stream — driven by bareSettings.bareSocketName
763
855
  // EventSource URL: {sseEndpoint}/{room}?bm_apiToken={token}
@@ -799,7 +891,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
799
891
  };
800
892
  /* eslint-disable */
801
893
  }, [
802
- (_33 = props.bareSettings) === null || _33 === void 0 ? void 0 : _33.bareSocketName,
894
+ (_41 = props.bareSettings) === null || _41 === void 0 ? void 0 : _41.bareSocketName,
803
895
  props.collectionId,
804
896
  props.devSettings.sseEndpoint,
805
897
  props.devSettings.dbAPIToken,
@@ -993,8 +1085,14 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
993
1085
  }
994
1086
  });
995
1087
  }); };
996
- // INFO : Set Updated Structure
997
- setStructure((_a = props.model) !== null && _a !== void 0 ? _a : []);
1088
+ // INFO : Set Updated Structure — skip on initial mount when persistViewState
1089
+ // restored column visibility/order from localStorage
1090
+ if (!isPersistEnabled ||
1091
+ !persistedState ||
1092
+ persistedViewMountedRef.current) {
1093
+ setStructure((_a = props.model) !== null && _a !== void 0 ? _a : []);
1094
+ }
1095
+ persistedViewMountedRef.current = true;
998
1096
  setAdditionalQuery((_c = (_b = props.organise) === null || _b === void 0 ? void 0 : _b.additionalQuery) !== null && _c !== void 0 ? _c : []);
999
1097
  setGroupId((_e = (_d = props.organise) === null || _d === void 0 ? void 0 : _d.groupBy) !== null && _e !== void 0 ? _e : "");
1000
1098
  setExportPDFTitle((_h = (_g = (_f = props.organise) === null || _f === void 0 ? void 0 : _f.exportSettings) === null || _g === void 0 ? void 0 : _g.defaultExportPDFName) !== null && _h !== void 0 ? _h : "");
@@ -1032,10 +1130,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1032
1130
  props.collectionId,
1033
1131
  props.model,
1034
1132
  props.localURLEndpoint,
1035
- (_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.extendedTabs,
1036
- (_35 = props.organise) === null || _35 === void 0 ? void 0 : _35.viewId,
1037
- (_36 = props.organise) === null || _36 === void 0 ? void 0 : _36.additionalQuery,
1038
- (_37 = props.organise) === null || _37 === void 0 ? void 0 : _37.groupBy,
1133
+ (_42 = props.organise) === null || _42 === void 0 ? void 0 : _42.extendedTabs,
1134
+ (_43 = props.organise) === null || _43 === void 0 ? void 0 : _43.viewId,
1135
+ (_44 = props.organise) === null || _44 === void 0 ? void 0 : _44.additionalQuery,
1136
+ (_45 = props.organise) === null || _45 === void 0 ? void 0 : _45.groupBy,
1039
1137
  props.type,
1040
1138
  ]);
1041
1139
  (0, react_1.useEffect)(function () {
@@ -1125,7 +1223,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1125
1223
  };
1126
1224
  }, 100);
1127
1225
  return function () { return clearTimeout(timeoutId); };
1128
- }, [(_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.showReadFloatingNav, props.type, props.id, loading]);
1226
+ }, [(_46 = props.organise) === null || _46 === void 0 ? void 0 : _46.showReadFloatingNav, props.type, props.id, loading]);
1129
1227
  (0, react_1.useEffect)(function () {
1130
1228
  if (props.type !== "read")
1131
1229
  return;
@@ -1591,8 +1689,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1591
1689
  // useEffect to re-run (which would tear down and rebuild the EventSource).
1592
1690
  handleApplyEnvelopeRef.current = handleApplyEnvelope;
1593
1691
  var handleReadQueryHocSort = function (query) {
1594
- var _a, _b;
1595
- var sort = (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.sort) !== null && _b !== void 0 ? _b : undefined;
1692
+ // INFO: Use persisted sort when persistViewState is active, otherwise fall back to prop sort
1693
+ var sort = activeSortId || undefined;
1596
1694
  if (isFirebase) {
1597
1695
  query === null || query === void 0 ? void 0 : query.map(function (eachQuery) {
1598
1696
  var _a, _b;
@@ -1916,8 +2014,15 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
1916
2014
  else {
1917
2015
  newTableData = [];
1918
2016
  newPrettierTableData = [];
2017
+ // INFO: Replace (not append) when any filter is active and we're at
2018
+ // the start of the result set — covers search, reference, and flex filters.
1919
2019
  if ((Object.values(filterSearchParams).some(function (eachValue) { return eachValue && eachValue.length > 0; }) ||
1920
- Object.values(filterReference).some(function (eachValue) { return eachValue && eachValue.length > 0; })) &&
2020
+ Object.values(filterReference).some(function (eachValue) { return eachValue && eachValue.length > 0; }) ||
2021
+ flexFiltersDebounced.some(function (eachFilter) {
2022
+ return eachFilter.columnId &&
2023
+ eachFilter.operator &&
2024
+ eachFilter.value;
2025
+ })) &&
1921
2026
  pageIndex === 0) {
1922
2027
  newTableData = dataList;
1923
2028
  newPrettierTableData = prettierDataList;
@@ -6420,7 +6525,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6420
6525
  authList));
6421
6526
  };
6422
6527
  var renderContent = function () {
6423
- 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;
6528
+ 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;
6424
6529
  var isBottom = ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareUpdateActionBottom) ? true : false;
6425
6530
  var tabs = renderTabs();
6426
6531
  var pages = [
@@ -6707,23 +6812,29 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6707
6812
  var filterComponent_1 = renderSearchContent();
6708
6813
  var dataComponent = renderTabContent(tabs, props.type, viewType);
6709
6814
  var actionComponent = renderActionButtons(props.type);
6815
+ // INFO: Active flex filter count — used by both the filter icon badge and floating search bar
6816
+ var activeFlexFilterCount_1 = ((_19 = props.bareSettings) === null || _19 === void 0 ? void 0 : _19.bareFlexFilters)
6817
+ ? flexFilters.filter(function (eachFilter) {
6818
+ return eachFilter.columnId && eachFilter.operator && eachFilter.value;
6819
+ }).length
6820
+ : 0;
6710
6821
  var listReadQueryHOC = (react_1.default.createElement(readQueryHoc_1.ReadQueryHoc, { ref: listRQueryHocRef, database: {
6711
6822
  dbModule: dbModule,
6712
6823
  dbType: devSettings.server,
6713
- dbCollection: (_20 = (_19 = props === null || props === void 0 ? void 0 : props.space) === null || _19 === void 0 ? void 0 : _19.pipelineDefaultSpaceId) !== null && _20 !== void 0 ? _20 : props.collectionId,
6824
+ dbCollection: (_21 = (_20 = props === null || props === void 0 ? void 0 : props.space) === null || _20 === void 0 ? void 0 : _20.pipelineDefaultSpaceId) !== null && _21 !== void 0 ? _21 : props.collectionId,
6714
6825
  dbEndpoint: devSettings.dbEndpoint,
6715
6826
  dbAPIToken: devSettings.dbAPIToken,
6716
6827
  dbUserToken: devSettings.dbUserToken,
6717
- }, cond: handleReadQueryHocCond(), offline: ((_21 = props.bareSettings) === null || _21 === void 0 ? void 0 : _21.bareOffline) && isNetworkOffline, onChangeData: function (data) {
6828
+ }, cond: handleReadQueryHocCond(), offline: ((_22 = props.bareSettings) === null || _22 === void 0 ? void 0 : _22.bareOffline) && isNetworkOffline, onChangeData: function (data) {
6718
6829
  handleGetListData(data, "", "");
6719
6830
  }, onError: handleGetItemError }));
6720
- if ((_22 = props.renderSettings) === null || _22 === void 0 ? void 0 : _22.renderListUI) {
6831
+ if ((_23 = props.renderSettings) === null || _23 === void 0 ? void 0 : _23.renderListUI) {
6721
6832
  return (react_1.default.createElement(react_1.default.Fragment, null,
6722
6833
  listReadQueryHOC,
6723
6834
  props.renderSettings.renderListUI(actionComponent, filterComponent_1, dataComponent)));
6724
6835
  }
6725
6836
  var renderListFilterElements = function () {
6726
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
6837
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
6727
6838
  // INFO: When bareListFilterAsPopup is true, filters are shown in a popup instead.
6728
6839
  if ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareListFilterAsPopup)
6729
6840
  return null;
@@ -6740,14 +6851,16 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6740
6851
  filterComponent_1.length > 0 &&
6741
6852
  !((_d = props.organise) === null || _d === void 0 ? void 0 : _d.hideSearch)) {
6742
6853
  var searchInput = filterComponent_1[filterComponent_1.length - 1];
6743
- return (react_1.default.createElement("div", { className: "flex-1 sm:flex-none sm:w-64 min-w-0 mr-3" }, searchInput));
6854
+ return (react_1.default.createElement("div", { className: "flex-1 sm:flex-none sm:w-64 min-w-0 mr-3".concat(((_e = props.bareSettings) === null || _e === void 0 ? void 0 : _e.bareListMobileFloatingSearch)
6855
+ ? " hidden md:block"
6856
+ : "") }, searchInput));
6744
6857
  }
6745
6858
  return null;
6746
6859
  }
6747
6860
  var filterElementList = [];
6748
- if (!((_e = props.organise) === null || _e === void 0 ? void 0 : _e.filterComponentNewRow)) {
6749
- if ((_f = props.organise) === null || _f === void 0 ? void 0 : _f.showGroupByFeature) {
6750
- filterElementList.push(react_1.default.createElement(select_1.Select, { label: "Group", options: (_m = (_j = (_h = (_g = props === null || props === void 0 ? void 0 : props.organise) === null || _g === void 0 ? void 0 : _g.renderGroupByOptions) === null || _h === void 0 ? void 0 : _h.call(_g)) !== null && _j !== void 0 ? _j : (_l = (_k = props === null || props === void 0 ? void 0 : props.organise) === null || _k === void 0 ? void 0 : _k.renderReferenceLabelOptions) === null || _l === void 0 ? void 0 : _l.call(_k, props.collectionId, true)) !== null && _m !== void 0 ? _m : [], value: groupId !== null && groupId !== void 0 ? groupId : "", onChange: function (value) { return setGroupId(value); } }));
6861
+ if (!((_f = props.organise) === null || _f === void 0 ? void 0 : _f.filterComponentNewRow)) {
6862
+ if ((_g = props.organise) === null || _g === void 0 ? void 0 : _g.showGroupByFeature) {
6863
+ filterElementList.push(react_1.default.createElement(select_1.Select, { label: "Group", options: (_o = (_k = (_j = (_h = props === null || props === void 0 ? void 0 : props.organise) === null || _h === void 0 ? void 0 : _h.renderGroupByOptions) === null || _j === void 0 ? void 0 : _j.call(_h)) !== null && _k !== void 0 ? _k : (_m = (_l = props === null || props === void 0 ? void 0 : props.organise) === null || _l === void 0 ? void 0 : _l.renderReferenceLabelOptions) === null || _m === void 0 ? void 0 : _m.call(_l, props.collectionId, true)) !== null && _o !== void 0 ? _o : [], value: groupId !== null && groupId !== void 0 ? groupId : "", onChange: function (value) { return setGroupId(value); } }));
6751
6864
  }
6752
6865
  if (filterComponent_1 &&
6753
6866
  Array.isArray(filterComponent_1) &&
@@ -6817,11 +6930,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6817
6930
  filterComponent_1.length > 0
6818
6931
  ? filterComponent_1[filterComponent_1.length - 1]
6819
6932
  : undefined;
6820
- var flexFilterLength_1 = (_k = flexFilters.filter(function (eachFilter) {
6821
- return eachFilter.columnId && eachFilter.operator && eachFilter.value;
6822
- })) === null || _k === void 0 ? void 0 : _k.length;
6823
- if (!((_l = props.organise) === null || _l === void 0 ? void 0 : _l.hideSearch) &&
6824
- ((_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareListFilterAsPopup) &&
6933
+ var flexFilterLength_1 = activeFlexFilterCount_1;
6934
+ if (!((_k = props.organise) === null || _k === void 0 ? void 0 : _k.hideSearch) &&
6935
+ ((_l = props.bareSettings) === null || _l === void 0 ? void 0 : _l.bareListFilterAsPopup) &&
6825
6936
  (filterSearchParams === null || filterSearchParams === void 0 ? void 0 : filterSearchParams["search"]))
6826
6937
  flexFilterLength_1 += 1;
6827
6938
  var flexFilterIconBtn = function (mobile) {
@@ -6831,10 +6942,11 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6831
6942
  };
6832
6943
  // INFO: Desktop — PopUp (hidden on mobile)
6833
6944
  actionElementList.push(react_1.default.createElement("div", { className: "hidden md:block" },
6834
- react_1.default.createElement(popUp_1.PopUp, { ctaComp: flexFilterIconBtn(), renderComp: (0, flexFilter_1.renderFlexFilterPopupContent)(flexFilters, structure, devSettings, dbModule, flexFilterReferenceOptions, flexFilterReferenceSearch, flexActions, (_o = props.bareSettings) === null || _o === void 0 ? void 0 : _o.bareListFilterQuery, searchInput, (_p = props.bareSettings) === null || _p === void 0 ? void 0 : _p.bareListFilterAddComponent), anchor: "right", excludePortalIds: ["datepicker-portal", "select-portal"], lib: { Transition: (_q = props === null || props === void 0 ? void 0 : props.lib) === null || _q === void 0 ? void 0 : _q.Transition } })));
6945
+ react_1.default.createElement(popUp_1.PopUp, { ctaComp: flexFilterIconBtn(), renderComp: (0, flexFilter_1.renderFlexFilterPopupContent)(flexFilters, structure, devSettings, dbModule, flexFilterReferenceOptions, flexFilterReferenceSearch, flexActions, (_m = props.bareSettings) === null || _m === void 0 ? void 0 : _m.bareListFilterQuery, searchInput, (_o = props.bareSettings) === null || _o === void 0 ? void 0 : _o.bareListFilterAddComponent), anchor: "right", excludePortalIds: ["datepicker-portal", "select-portal"], lib: { Transition: (_p = props === null || props === void 0 ? void 0 : props.lib) === null || _p === void 0 ? void 0 : _p.Transition } })));
6835
6946
  // INFO: Mobile — IconButton that opens a Modal (hidden on desktop)
6836
6947
  actionElementList.push(react_1.default.createElement("div", { className: "block md:hidden" },
6837
- flexFilterIconBtn(true),
6948
+ !((_q = props.bareSettings) === null || _q === void 0 ? void 0 : _q.bareListMobileFloatingSearch) &&
6949
+ flexFilterIconBtn(true),
6838
6950
  (0, flexFilter_1.renderFlexFilterModal)(flexFilterModalOpen, flexFilters, structure, devSettings, dbModule, flexFilterReferenceOptions, flexFilterReferenceSearch, flexActions, function () { return setFlexFilterModalOpen(false); }, (_r = props.bareSettings) === null || _r === void 0 ? void 0 : _r.bareListFilterQuery, searchInput, (_s = props.bareSettings) === null || _s === void 0 ? void 0 : _s.bareListFilterAddComponent)));
6839
6951
  }
6840
6952
  if (!isBottom) {
@@ -6892,30 +7004,53 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6892
7004
  };
6893
7005
  return (react_1.default.createElement(react_1.default.Fragment, null,
6894
7006
  listReadQueryHOC,
6895
- react_1.default.createElement("div", { className: "flex py-2 ".concat(((_23 = props.bareSettings) === null || _23 === void 0 ? void 0 : _23.bareCompactMode)
7007
+ react_1.default.createElement("div", { className: "flex py-2 ".concat(((_24 = props.bareSettings) === null || _24 === void 0 ? void 0 : _24.bareCompactMode)
6896
7008
  ? "w-full flex-row flex-wrap sm:flex-nowrap items-end"
6897
7009
  : "flex-col md:items-end md:flex-row") },
6898
7010
  (props.title || props.description) && (react_1.default.createElement("div", { className: "flex flex-col" },
6899
7011
  props.title && (react_1.default.createElement("div", { className: "flex items-center gap-2" },
6900
7012
  react_1.default.createElement("p", { className: "text-xl font-medium" }, props.title),
6901
- ((_24 = props.bareSettings) === null || _24 === void 0 ? void 0 : _24.bareSocketName) &&
7013
+ ((_25 = props.bareSettings) === null || _25 === void 0 ? void 0 : _25.bareSocketName) &&
6902
7014
  isLive &&
6903
7015
  !isLiveOffline && (react_1.default.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700" },
6904
7016
  react_1.default.createElement("span", { className: "h-1.5 w-1.5 rounded-full bg-green-500" }),
6905
7017
  "LIVE")),
6906
- ((_25 = props.bareSettings) === null || _25 === void 0 ? void 0 : _25.bareSocketName) && isLiveOffline && (react_1.default.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-700" },
7018
+ ((_26 = props.bareSettings) === null || _26 === void 0 ? void 0 : _26.bareSocketName) && isLiveOffline && (react_1.default.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-700" },
6907
7019
  react_1.default.createElement("span", { className: "h-1.5 w-1.5 rounded-full bg-orange-400" }),
6908
7020
  "OFFLINE")))),
6909
7021
  props.description && (react_1.default.createElement("span", { className: "text-sm text-gray-500" }, props.description)))),
6910
- react_1.default.createElement("div", { className: ((_26 = props.bareSettings) === null || _26 === void 0 ? void 0 : _26.bareCompactMode)
7022
+ react_1.default.createElement("div", { className: ((_27 = props.bareSettings) === null || _27 === void 0 ? void 0 : _27.bareCompactMode)
6911
7023
  ? "hidden sm:block grow"
6912
7024
  : "grow" }),
6913
7025
  renderListFilterElements(),
6914
7026
  renderListActionElements()),
6915
7027
  renderListNewRowFilterElements(),
6916
- (schemaPresent || ((_27 = props.bareSettings) === null || _27 === void 0 ? void 0 : _27.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: (_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.darkMode })),
7028
+ (schemaPresent || ((_28 = props.bareSettings) === null || _28 === void 0 ? void 0 : _28.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: (_29 = props.organise) === null || _29 === void 0 ? void 0 : _29.darkMode })),
6917
7029
  renderTabContent(tabs, props.type, viewType),
6918
- isBottom && renderActionButtons(props.type, true)));
7030
+ isBottom && renderActionButtons(props.type, true),
7031
+ ((_30 = props.bareSettings) === null || _30 === void 0 ? void 0 : _30.bareListMobileFloatingSearch) &&
7032
+ (0, listModule_1.renderFloatingMobileSearch)({
7033
+ filterSearch: filterSearch,
7034
+ handleNameSearch: handleNameSearch,
7035
+ onFilterClick: function () {
7036
+ var _a;
7037
+ if ((_a = props.bareSettings) === null || _a === void 0 ? void 0 : _a.bareFlexFilters) {
7038
+ setFlexFilterModalOpen(true);
7039
+ }
7040
+ else {
7041
+ handlePopUpModal(true, "filter");
7042
+ }
7043
+ },
7044
+ hideSearch: (_31 = props.organise) === null || _31 === void 0 ? void 0 : _31.hideSearch,
7045
+ darkMode: (_32 = props.organise) === null || _32 === void 0 ? void 0 : _32.darkMode,
7046
+ floatingOffset: (_33 = props.bareSettings) === null || _33 === void 0 ? void 0 : _33.bareListFloatingActionOffset,
7047
+ hideFilter: !((_34 = props.bareSettings) === null || _34 === void 0 ? void 0 : _34.bareFlexFilters),
7048
+ activeFilterCount: ((_35 = props.bareSettings) === null || _35 === void 0 ? void 0 : _35.bareFlexFilters)
7049
+ ? activeFlexFilterCount_1
7050
+ : undefined,
7051
+ // INFO: Hides when items are selected so NewTable's multi-action bar takes over.
7052
+ hidden: selectAll || ((_36 = selectedIds === null || selectedIds === void 0 ? void 0 : selectedIds.length) !== null && _36 !== void 0 ? _36 : 0) > 0,
7053
+ })));
6919
7054
  default:
6920
7055
  return react_1.default.createElement(react_1.default.Fragment, null);
6921
7056
  }
@@ -7273,7 +7408,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7273
7408
  return (react_1.default.createElement(settingsModal_1.ExpressionModal, { selectedId: id, model: structure, renderReferenceLabelOptions: (_a = props.organise) === null || _a === void 0 ? void 0 : _a.renderReferenceLabelOptions, renderReferenceSpaceOptions: (_b = props.organise) === null || _b === void 0 ? void 0 : _b.renderReferenceSpaceOptions, onAddModelSchema: (_c = props.organise) === null || _c === void 0 ? void 0 : _c.onAddColumns, onClose: onClose }));
7274
7409
  };
7275
7410
  var renderGroupTable = function (multipleSelect) {
7276
- 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;
7411
+ 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;
7277
7412
  if (groupId) {
7278
7413
  var groupAttributeDS_1 = structure.find(function (eachDS) { return eachDS.id === groupId; });
7279
7414
  var groupedSpaceTableData = spaceTableData.reduce(function (acc, eachData) {
@@ -7301,7 +7436,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7301
7436
  }
7302
7437
  else {
7303
7438
  return Object.entries(groupedSpaceTableData).map(function (_a) {
7304
- var _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;
7439
+ var _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;
7305
7440
  var eachKey = _a[0], eachValue = _a[1];
7306
7441
  var dataList = eachValue;
7307
7442
  var ids = (dataList === null || dataList === void 0 ? void 0 : dataList.map(function (eachData) { return eachData._id; })) || [];
@@ -7346,10 +7481,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7346
7481
  filterEnabled: ((_w = props.bareSettings) === null || _w === void 0 ? void 0 : _w.bareFlexFilters)
7347
7482
  ? false
7348
7483
  : (_x = props.organise) === null || _x === void 0 ? void 0 : _x.advFilterEnabled,
7349
- sortId: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.sort,
7350
- sortOptions: (_0 = (_z = props.organise) === null || _z === void 0 ? void 0 : _z.renderReferenceLabelOptions) === null || _0 === void 0 ? void 0 : _0.call(_z),
7351
- onSortColumn: (_1 = props.organise) === null || _1 === void 0 ? void 0 : _1.onChangeSort,
7352
- onDragColumn: (_2 = props.organise) === null || _2 === void 0 ? void 0 : _2.onChangeDrag,
7484
+ sortId: activeSortId,
7485
+ sortOptions: (_z = (_y = props.organise) === null || _y === void 0 ? void 0 : _y.renderReferenceLabelOptions) === null || _z === void 0 ? void 0 : _z.call(_y),
7486
+ onSortColumn: handleSortColumn,
7487
+ onDragColumn: (_0 = props.organise) === null || _0 === void 0 ? void 0 : _0.onChangeDrag,
7353
7488
  filterOptions: additionalQuery === null || additionalQuery === void 0 ? void 0 : additionalQuery.map(function (eachQuery) {
7354
7489
  var _a;
7355
7490
  return {
@@ -7366,7 +7501,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7366
7501
  return renderSearchContent(newQuery);
7367
7502
  },
7368
7503
  }, editable: {
7369
- active: ((_3 = props.edit) === null || _3 === void 0 ? void 0 : _3.listEditable) && !props.edit.disabledUpdate
7504
+ active: ((_1 = props.edit) === null || _1 === void 0 ? void 0 : _1.listEditable) && !props.edit.disabledUpdate
7370
7505
  ? true
7371
7506
  : false,
7372
7507
  onUpdateData: function (rowId, columnId, data) { return __awaiter(void 0, void 0, void 0, function () {
@@ -7380,7 +7515,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7380
7515
  });
7381
7516
  }); },
7382
7517
  }, addable: {
7383
- active: ((_4 = props.edit) === null || _4 === void 0 ? void 0 : _4.listAddable) ? true : false,
7518
+ active: ((_2 = props.edit) === null || _2 === void 0 ? void 0 : _2.listAddable) ? true : false,
7384
7519
  onAddData: function (data) { return __awaiter(void 0, void 0, void 0, function () {
7385
7520
  return __generator(this, function (_a) {
7386
7521
  switch (_a.label) {
@@ -7391,7 +7526,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7391
7526
  }
7392
7527
  });
7393
7528
  }); },
7394
- }, darkMode: (_5 = props.organise) === null || _5 === void 0 ? void 0 : _5.darkMode, hidePagination: true, disableEllipsisOnLongWord: (_6 = props.organise) === null || _6 === void 0 ? void 0 : _6.disableEllipsisOnLongWord })));
7529
+ }, darkMode: (_3 = props.organise) === null || _3 === void 0 ? void 0 : _3.darkMode, hidePagination: true, disableEllipsisOnLongWord: (_4 = props.organise) === null || _4 === void 0 ? void 0 : _4.disableEllipsisOnLongWord })));
7395
7530
  });
7396
7531
  }
7397
7532
  }
@@ -7455,10 +7590,10 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7455
7590
  filterEnabled: ((_w = props.bareSettings) === null || _w === void 0 ? void 0 : _w.bareFlexFilters)
7456
7591
  ? false
7457
7592
  : (_x = props.organise) === null || _x === void 0 ? void 0 : _x.advFilterEnabled,
7458
- sortId: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.sort,
7459
- sortOptions: (_0 = (_z = props.organise) === null || _z === void 0 ? void 0 : _z.renderReferenceLabelOptions) === null || _0 === void 0 ? void 0 : _0.call(_z),
7460
- onSortColumn: (_1 = props.organise) === null || _1 === void 0 ? void 0 : _1.onChangeSort,
7461
- onDragColumn: (_2 = props.organise) === null || _2 === void 0 ? void 0 : _2.onChangeDrag,
7593
+ sortId: activeSortId,
7594
+ sortOptions: (_z = (_y = props.organise) === null || _y === void 0 ? void 0 : _y.renderReferenceLabelOptions) === null || _z === void 0 ? void 0 : _z.call(_y),
7595
+ onSortColumn: handleSortColumn,
7596
+ onDragColumn: (_0 = props.organise) === null || _0 === void 0 ? void 0 : _0.onChangeDrag,
7462
7597
  filterOptions: additionalQuery === null || additionalQuery === void 0 ? void 0 : additionalQuery.map(function (eachQuery) {
7463
7598
  var _a;
7464
7599
  return {
@@ -7475,7 +7610,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7475
7610
  return renderSearchContent(newQuery);
7476
7611
  },
7477
7612
  }, editable: {
7478
- active: ((_3 = props.edit) === null || _3 === void 0 ? void 0 : _3.listEditable) && !props.edit.disabledUpdate
7613
+ active: ((_1 = props.edit) === null || _1 === void 0 ? void 0 : _1.listEditable) && !props.edit.disabledUpdate
7479
7614
  ? true
7480
7615
  : false,
7481
7616
  onUpdateData: function (rowId, columnId, data) { return __awaiter(void 0, void 0, void 0, function () {
@@ -7489,7 +7624,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7489
7624
  });
7490
7625
  }); },
7491
7626
  }, addable: {
7492
- active: ((_4 = props.edit) === null || _4 === void 0 ? void 0 : _4.listAddable) ? true : false,
7627
+ active: ((_2 = props.edit) === null || _2 === void 0 ? void 0 : _2.listAddable) ? true : false,
7493
7628
  onAddData: function (data) { return __awaiter(void 0, void 0, void 0, function () {
7494
7629
  return __generator(this, function (_a) {
7495
7630
  switch (_a.label) {
@@ -7500,27 +7635,27 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7500
7635
  }
7501
7636
  });
7502
7637
  }); },
7503
- }, darkMode: (_5 = props.organise) === null || _5 === void 0 ? void 0 : _5.darkMode, hidePagination: (_6 = props.organise) === null || _6 === void 0 ? void 0 : _6.hidePagination, customPaginationSize: customPaginationSize, disableEllipsisOnLongWord: (_7 = props.organise) === null || _7 === void 0 ? void 0 : _7.disableEllipsisOnLongWord, pinColumns: (_8 = props.bareSettings) === null || _8 === void 0 ? void 0 : _8.bareListTablePinColumns }));
7638
+ }, darkMode: (_3 = props.organise) === null || _3 === void 0 ? void 0 : _3.darkMode, hidePagination: (_4 = props.organise) === null || _4 === void 0 ? void 0 : _4.hidePagination, customPaginationSize: customPaginationSize, disableEllipsisOnLongWord: (_5 = props.organise) === null || _5 === void 0 ? void 0 : _5.disableEllipsisOnLongWord, pinColumns: (_6 = props.bareSettings) === null || _6 === void 0 ? void 0 : _6.bareListTablePinColumns }));
7504
7639
  }
7505
- return (react_1.default.createElement(table_1.Table, { showId: showId, paginationType: renderResolvedPaginationType(), data: tableData, spaceData: spaceTableData !== null && spaceTableData !== void 0 ? spaceTableData : [], size: size !== null && size !== void 0 ? size : 0, limit: limit, cursor: cursor !== null && cursor !== void 0 ? cursor : "", loading: tableLoading !== null && tableLoading !== void 0 ? tableLoading : true, checkbox: multipleSelect, selectAll: selectAll, selectedIds: selectedIds, selectAllText: selectAll ? "from filter" : "", disableSelectFullData: (_10 = (_9 = props.organise) === null || _9 === void 0 ? void 0 : _9.disableSelectFullData) === null || _10 === void 0 ? void 0 : _10.table, multiActionButton: react_1.default.createElement("div", { className: "flex flex-row space-x-3" },
7640
+ return (react_1.default.createElement(table_1.Table, { showId: showId, paginationType: renderResolvedPaginationType(), data: tableData, spaceData: spaceTableData !== null && spaceTableData !== void 0 ? spaceTableData : [], size: size !== null && size !== void 0 ? size : 0, limit: limit, cursor: cursor !== null && cursor !== void 0 ? cursor : "", loading: tableLoading !== null && tableLoading !== void 0 ? tableLoading : true, checkbox: multipleSelect, selectAll: selectAll, selectedIds: selectedIds, selectAllText: selectAll ? "from filter" : "", disableSelectFullData: (_8 = (_7 = props.organise) === null || _7 === void 0 ? void 0 : _7.disableSelectFullData) === null || _8 === void 0 ? void 0 : _8.table, multiActionButton: react_1.default.createElement("div", { className: "flex flex-row space-x-3" },
7506
7641
  selectedIds.length > 0 &&
7507
- !((_11 = props.edit) === null || _11 === void 0 ? void 0 : _11.disabledUpdate) &&
7508
- !((_12 = props.bareSettings) === null || _12 === void 0 ? void 0 : _12.bareHideTableExtraMultipleAction) && (react_1.default.createElement(react_1.default.Fragment, null,
7642
+ !((_9 = props.edit) === null || _9 === void 0 ? void 0 : _9.disabledUpdate) &&
7643
+ !((_10 = props.bareSettings) === null || _10 === void 0 ? void 0 : _10.bareHideTableExtraMultipleAction) && (react_1.default.createElement(react_1.default.Fragment, null,
7509
7644
  react_1.default.createElement(textButton_1.TextButton, { className: "text-sm", text: "Change to Draft", disable: loading, onClick: function () {
7510
7645
  handleBatchDraftData();
7511
7646
  } }),
7512
7647
  react_1.default.createElement(textButton_1.TextButton, { className: "text-sm", text: "Clone Items", disable: loading, onClick: function () {
7513
7648
  handleCloneSelectedData();
7514
7649
  } }))),
7515
- ((_13 = props.edit) === null || _13 === void 0 ? void 0 : _13.deleteBtn) && (react_1.default.createElement(textButton_1.TextButton, { className: "text-sm text-red-500 hover:text-red-600", text: "Delete", onClick: function () {
7650
+ ((_11 = props.edit) === null || _11 === void 0 ? void 0 : _11.deleteBtn) && (react_1.default.createElement(textButton_1.TextButton, { className: "text-sm text-red-500 hover:text-red-600", text: "Delete", onClick: function () {
7516
7651
  handleGenerateDeletePasscode();
7517
7652
  setDeleteModal(true);
7518
7653
  } })),
7519
- !isFirebase && !((_14 = props.edit) === null || _14 === void 0 ? void 0 : _14.disableBatchUpdate) && (react_1.default.createElement(textButton_1.TextButton, { className: "text-sm", text: "Update", onClick: function () {
7654
+ !isFirebase && !((_12 = props.edit) === null || _12 === void 0 ? void 0 : _12.disableBatchUpdate) && (react_1.default.createElement(textButton_1.TextButton, { className: "text-sm", text: "Update", onClick: function () {
7520
7655
  setBatchUpdateModal(true);
7521
7656
  } })),
7522
- ((_15 = props.bareSettings) === null || _15 === void 0 ? void 0 : _15.bareListMultipleSelectAddtionalActions) &&
7523
- ((_17 = (_16 = props.bareSettings) === null || _16 === void 0 ? void 0 : _16.bareListMultipleSelectAddtionalActions) === null || _17 === void 0 ? void 0 : _17.map(function (eachButton) {
7657
+ ((_13 = props.bareSettings) === null || _13 === void 0 ? void 0 : _13.bareListMultipleSelectAddtionalActions) &&
7658
+ ((_15 = (_14 = props.bareSettings) === null || _14 === void 0 ? void 0 : _14.bareListMultipleSelectAddtionalActions) === null || _15 === void 0 ? void 0 : _15.map(function (eachButton) {
7524
7659
  return (react_1.default.createElement(textButton_1.TextButton, { className: "text-sm ".concat(eachButton.className), text: eachButton.text, onClick: function () {
7525
7660
  var _a, _b;
7526
7661
  (_a = eachButton.onClick) === null || _a === void 0 ? void 0 : _a.call(eachButton, selectedIds, selectAll, (_b = renderImpSearchFilterConditions()) !== null && _b !== void 0 ? _b : []);
@@ -7528,20 +7663,20 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7528
7663
  }))), handleSelectAll: handleSelectAllPages, handleSelectedIds: handleSelectIds, header: renderTableHeader(), pageIndex: pageIndex !== null && pageIndex !== void 0 ? pageIndex : 0, onClickRow: function (id) {
7529
7664
  var _a, _b;
7530
7665
  (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.handleNavigate) === null || _b === void 0 ? void 0 : _b.call(_a, "read", id, "general");
7531
- }, linkType: props.linkType, custom: props.custom, newTabUrl: (_19 = (_18 = props.newTabUrl) === null || _18 === void 0 ? void 0 : _18.default) !== null && _19 !== void 0 ? _19 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_21 = (_20 = props.newTabUrl) === null || _20 === void 0 ? void 0 : _20.addons) !== null && _21 !== void 0 ? _21 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
7666
+ }, linkType: props.linkType, custom: props.custom, newTabUrl: (_17 = (_16 = props.newTabUrl) === null || _16 === void 0 ? void 0 : _16.default) !== null && _17 !== void 0 ? _17 : "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: (_19 = (_18 = props.newTabUrl) === null || _18 === void 0 ? void 0 : _18.addons) !== null && _19 !== void 0 ? _19 : "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: function (value) {
7532
7667
  handlePagination(value);
7533
- }, className: "mt-5", lib: { axios: (_22 = props.lib) === null || _22 === void 0 ? void 0 : _22.axios }, devSettings: props.devSettings, bareSettings: props.bareSettings, fixedPagination: (_23 = props.organise) === null || _23 === void 0 ? void 0 : _23.fixedPagination, advSettings: {
7534
- addColumnEnabled: (_24 = props.organise) === null || _24 === void 0 ? void 0 : _24.addColumnEnabled,
7668
+ }, className: "mt-5", lib: { axios: (_20 = props.lib) === null || _20 === void 0 ? void 0 : _20.axios }, devSettings: props.devSettings, bareSettings: props.bareSettings, fixedPagination: (_21 = props.organise) === null || _21 === void 0 ? void 0 : _21.fixedPagination, advSettings: {
7669
+ addColumnEnabled: (_22 = props.organise) === null || _22 === void 0 ? void 0 : _22.addColumnEnabled,
7535
7670
  renderAddColumnElements: renderAddMathColumn,
7536
- dragEnabled: (_25 = props.organise) === null || _25 === void 0 ? void 0 : _25.advDragEnabled,
7537
- sortEnabled: (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.advSortEnabled,
7538
- filterEnabled: ((_27 = props.bareSettings) === null || _27 === void 0 ? void 0 : _27.bareFlexFilters)
7671
+ dragEnabled: (_23 = props.organise) === null || _23 === void 0 ? void 0 : _23.advDragEnabled,
7672
+ sortEnabled: (_24 = props.organise) === null || _24 === void 0 ? void 0 : _24.advSortEnabled,
7673
+ filterEnabled: ((_25 = props.bareSettings) === null || _25 === void 0 ? void 0 : _25.bareFlexFilters)
7539
7674
  ? false
7540
- : (_28 = props.organise) === null || _28 === void 0 ? void 0 : _28.advFilterEnabled,
7541
- sortId: (_29 = props.organise) === null || _29 === void 0 ? void 0 : _29.sort,
7542
- sortOptions: (_31 = (_30 = props.organise) === null || _30 === void 0 ? void 0 : _30.renderReferenceLabelOptions) === null || _31 === void 0 ? void 0 : _31.call(_30),
7543
- onSortColumn: (_32 = props.organise) === null || _32 === void 0 ? void 0 : _32.onChangeSort,
7544
- onDragColumn: (_33 = props.organise) === null || _33 === void 0 ? void 0 : _33.onChangeDrag,
7675
+ : (_26 = props.organise) === null || _26 === void 0 ? void 0 : _26.advFilterEnabled,
7676
+ sortId: activeSortId,
7677
+ sortOptions: (_28 = (_27 = props.organise) === null || _27 === void 0 ? void 0 : _27.renderReferenceLabelOptions) === null || _28 === void 0 ? void 0 : _28.call(_27),
7678
+ onSortColumn: handleSortColumn,
7679
+ onDragColumn: (_29 = props.organise) === null || _29 === void 0 ? void 0 : _29.onChangeDrag,
7545
7680
  filterOptions: additionalQuery === null || additionalQuery === void 0 ? void 0 : additionalQuery.map(function (eachQuery) {
7546
7681
  var _a;
7547
7682
  return {
@@ -7558,7 +7693,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7558
7693
  return renderSearchContent(newQuery);
7559
7694
  },
7560
7695
  }, editable: {
7561
- active: ((_34 = props.edit) === null || _34 === void 0 ? void 0 : _34.listEditable) && !props.edit.disabledUpdate
7696
+ active: ((_30 = props.edit) === null || _30 === void 0 ? void 0 : _30.listEditable) && !props.edit.disabledUpdate
7562
7697
  ? true
7563
7698
  : false,
7564
7699
  onUpdateData: function (rowId, columnId, data) { return __awaiter(void 0, void 0, void 0, function () {
@@ -7572,7 +7707,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7572
7707
  });
7573
7708
  }); },
7574
7709
  }, addable: {
7575
- active: ((_35 = props.edit) === null || _35 === void 0 ? void 0 : _35.listAddable) ? true : false,
7710
+ active: ((_31 = props.edit) === null || _31 === void 0 ? void 0 : _31.listAddable) ? true : false,
7576
7711
  onAddData: function (data) { return __awaiter(void 0, void 0, void 0, function () {
7577
7712
  return __generator(this, function (_a) {
7578
7713
  switch (_a.label) {
@@ -7583,7 +7718,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
7583
7718
  }
7584
7719
  });
7585
7720
  }); },
7586
- }, darkMode: (_36 = props.organise) === null || _36 === void 0 ? void 0 : _36.darkMode, hidePagination: (_37 = props.organise) === null || _37 === void 0 ? void 0 : _37.hidePagination, customPaginationSize: customPaginationSize, disableEllipsisOnLongWord: (_38 = props.organise) === null || _38 === void 0 ? void 0 : _38.disableEllipsisOnLongWord }));
7721
+ }, darkMode: (_32 = props.organise) === null || _32 === void 0 ? void 0 : _32.darkMode, hidePagination: (_33 = props.organise) === null || _33 === void 0 ? void 0 : _33.hidePagination, customPaginationSize: customPaginationSize, disableEllipsisOnLongWord: (_34 = props.organise) === null || _34 === void 0 ? void 0 : _34.disableEllipsisOnLongWord }));
7587
7722
  }
7588
7723
  };
7589
7724
  var renderTabContent = function (tabs, dataType, viewType) {
@@ -8239,7 +8374,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8239
8374
  return null;
8240
8375
  };
8241
8376
  var renderModalContent = function () {
8242
- 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;
8377
+ 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;
8243
8378
  if (loading) {
8244
8379
  return (react_1.default.createElement("div", { className: "mt-5" },
8245
8380
  react_1.default.createElement(loading_1.Loading, null),
@@ -8329,22 +8464,27 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8329
8464
  } }))))));
8330
8465
  }
8331
8466
  else if (sortModal) {
8332
- return (react_1.default.createElement(settingsModal_1.SortModal, { sort: (_p = props.organise) === null || _p === void 0 ? void 0 : _p.sort, onChangeSort: (_q = props.organise) === null || _q === void 0 ? void 0 : _q.onChangeSort, renderReferenceLabelOptions: (_r = props.organise) === null || _r === void 0 ? void 0 : _r.renderReferenceLabelOptions, onClose: function () {
8467
+ return (react_1.default.createElement(settingsModal_1.SortModal, { sort: activeSortId, onChangeSort: handleSortColumn, renderReferenceLabelOptions: (_p = props.organise) === null || _p === void 0 ? void 0 : _p.renderReferenceLabelOptions, onClose: function () {
8333
8468
  handlePopUpModal(false);
8334
8469
  } }));
8335
8470
  }
8336
8471
  else if (overviewModal) {
8337
- return (react_1.default.createElement(settingsModal_1.OverviewModal, { model: structure, referenceSchema: referenceModelSchema, setReferenceSchema: setReferenceSchema, onChangeHide: (_s = props.organise) === null || _s === void 0 ? void 0 : _s.onChangeHide, onClose: function () {
8472
+ return (react_1.default.createElement(settingsModal_1.OverviewModal, { model: structure, referenceSchema: referenceModelSchema, setReferenceSchema: setReferenceSchema, onChangeHide: function (updatedModel) {
8473
+ var _a, _b;
8474
+ // INFO: Update internal structure state so persistence captures the change
8475
+ setStructure(updatedModel);
8476
+ (_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.onChangeHide) === null || _b === void 0 ? void 0 : _b.call(_a, updatedModel);
8477
+ }, onClose: function () {
8338
8478
  handlePopUpModal(false);
8339
8479
  } }));
8340
8480
  }
8341
8481
  else if (filterModal) {
8342
- return (react_1.default.createElement(settingsModal_1.FilterModal, { server: props.devSettings.server, filter: additionalQuery, model: props.model, onChangeFilter: (_t = props.organise) === null || _t === void 0 ? void 0 : _t.onChangeFilter, renderReferenceLabelOptions: (_u = props.organise) === null || _u === void 0 ? void 0 : _u.renderReferenceLabelOptions, renderReferenceSpaceOptions: (_v = props.organise) === null || _v === void 0 ? void 0 : _v.renderReferenceSpaceOptions, setNotification: setNotification, onClose: function () {
8482
+ return (react_1.default.createElement(settingsModal_1.FilterModal, { server: props.devSettings.server, filter: additionalQuery, model: props.model, onChangeFilter: (_q = props.organise) === null || _q === void 0 ? void 0 : _q.onChangeFilter, renderReferenceLabelOptions: (_r = props.organise) === null || _r === void 0 ? void 0 : _r.renderReferenceLabelOptions, renderReferenceSpaceOptions: (_s = props.organise) === null || _s === void 0 ? void 0 : _s.renderReferenceSpaceOptions, setNotification: setNotification, onClose: function () {
8343
8483
  handlePopUpModal(false);
8344
8484
  } }));
8345
8485
  }
8346
8486
  else if (addTabModal) {
8347
- return (react_1.default.createElement(settingsModal_1.TabModal, { type: props.type, tabs: (_w = props.organise) === null || _w === void 0 ? void 0 : _w.extendedTabs, onChangeTabs: (_x = props.organise) === null || _x === void 0 ? void 0 : _x.onChangeTabs, model: structure, renderReferenceLabelOptions: (_y = props.organise) === null || _y === void 0 ? void 0 : _y.renderReferenceLabelOptions, onClose: function () {
8487
+ return (react_1.default.createElement(settingsModal_1.TabModal, { type: props.type, tabs: (_t = props.organise) === null || _t === void 0 ? void 0 : _t.extendedTabs, onChangeTabs: (_u = props.organise) === null || _u === void 0 ? void 0 : _u.onChangeTabs, model: structure, renderReferenceLabelOptions: (_v = props.organise) === null || _v === void 0 ? void 0 : _v.renderReferenceLabelOptions, onClose: function () {
8348
8488
  handlePopUpModal(false);
8349
8489
  } }));
8350
8490
  }
@@ -8406,7 +8546,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8406
8546
  return eachModel.id === selectedObjectStructureId;
8407
8547
  });
8408
8548
  if (filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) {
8409
- var modalModel_1 = (_z = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _z !== void 0 ? _z : [];
8549
+ var modalModel_1 = (_w = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _w !== void 0 ? _w : [];
8410
8550
  var handleOnFailValidation = function (refList) {
8411
8551
  var _a, _b;
8412
8552
  if ((refList === null || refList === void 0 ? void 0 : refList.length) > 0) {
@@ -8478,16 +8618,16 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8478
8618
  disabledOnEnter_2 = true;
8479
8619
  return null;
8480
8620
  });
8481
- if ((_0 = props.bareSettings) === null || _0 === void 0 ? void 0 : _0.bareListObjectHandleData) {
8621
+ if ((_x = props.bareSettings) === null || _x === void 0 ? void 0 : _x.bareListObjectHandleData) {
8482
8622
  var listObjectViewType = props.type === "read"
8483
8623
  ? "read"
8484
8624
  : selectedObjectId
8485
8625
  ? "update"
8486
8626
  : "new";
8487
- (_2 = (_1 = props.bareSettings) === null || _1 === void 0 ? void 0 : _1.bareListObjectHandleData) === null || _2 === void 0 ? void 0 : _2.call(_1, listObjectViewType, selectedObjectData);
8627
+ (_z = (_y = props.bareSettings) === null || _y === void 0 ? void 0 : _y.bareListObjectHandleData) === null || _z === void 0 ? void 0 : _z.call(_y, listObjectViewType, selectedObjectData);
8488
8628
  }
8489
8629
  return (react_1.default.createElement(react_1.default.Fragment, null,
8490
- 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, (_3 = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _3 !== void 0 ? _3 : [], objectFormInputRefs, true, filterObjectModel.type === "listObject", undefined, filterObjectModel.type === "listObject"
8630
+ 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, (_0 = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _0 !== void 0 ? _0 : [], objectFormInputRefs, true, filterObjectModel.type === "listObject", undefined, filterObjectModel.type === "listObject"
8491
8631
  ? selectedData
8492
8632
  : undefined)),
8493
8633
  react_1.default.createElement("div", { className: "flex justify-end pt-8" },
@@ -8700,7 +8840,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8700
8840
  };
8701
8841
  return (react_1.default.createElement(react_1.default.Fragment, null,
8702
8842
  renderNotification("root"),
8703
- ((_40 = (_39 = props.renderSettings) === null || _39 === void 0 ? void 0 : _39.renderLoadingUI) === null || _40 === void 0 ? void 0 : _40.call(_39)) && loading ? ((_41 = props.renderSettings) === null || _41 === void 0 ? void 0 : _41.renderLoadingUI()) : (react_1.default.createElement(modal_1.Modal, { maxWidth: selectedObjectStructureId || excelModal ? "2xl" : undefined, open: modalVisible, title: renderModalTitle(), renderContent: renderModalContent, onClose: function () {
8843
+ ((_48 = (_47 = props.renderSettings) === null || _47 === void 0 ? void 0 : _47.renderLoadingUI) === null || _48 === void 0 ? void 0 : _48.call(_47)) && loading ? ((_49 = props.renderSettings) === null || _49 === void 0 ? void 0 : _49.renderLoadingUI()) : (react_1.default.createElement(modal_1.Modal, { maxWidth: selectedObjectStructureId || excelModal ? "2xl" : undefined, open: modalVisible, title: renderModalTitle(), renderContent: renderModalContent, onClose: function () {
8704
8844
  var _a, _b;
8705
8845
  if (loading)
8706
8846
  return;