blixify-ui-web 1.2.179 → 1.2.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
  2. package/lib/components/data/dataTemplate/index.js +129 -104
  3. package/lib/components/data/dataTemplate/index.js.map +1 -1
  4. package/lib/components/data/dataTemplate/settingsModal.d.ts +3 -0
  5. package/lib/components/data/dataTemplate/settingsModal.d.ts.map +1 -1
  6. package/lib/components/data/dataTemplate/settingsModal.js +83 -9
  7. package/lib/components/data/dataTemplate/settingsModal.js.map +1 -1
  8. package/lib/components/data/flexFilter/index.d.ts +21 -2
  9. package/lib/components/data/flexFilter/index.d.ts.map +1 -1
  10. package/lib/components/data/flexFilter/index.js +180 -34
  11. package/lib/components/data/flexFilter/index.js.map +1 -1
  12. package/lib/components/data/flexFilter/model.d.ts +1 -1
  13. package/lib/components/data/flexFilter/model.d.ts.map +1 -1
  14. package/lib/components/display/newTable/index.d.ts.map +1 -1
  15. package/lib/components/display/newTable/index.js +44 -12
  16. package/lib/components/display/newTable/index.js.map +1 -1
  17. package/lib/components/input/markdown/index.d.ts.map +1 -1
  18. package/lib/components/input/markdown/index.js +65 -40
  19. package/lib/components/input/markdown/index.js.map +1 -1
  20. package/lib/components/input/markdown/tableControls.d.ts +24 -0
  21. package/lib/components/input/markdown/tableControls.d.ts.map +1 -0
  22. package/lib/components/input/markdown/tableControls.js +471 -0
  23. package/lib/components/input/markdown/tableControls.js.map +1 -0
  24. package/lib/components/input/markdown/tableMarkdown.d.ts +34 -0
  25. package/lib/components/input/markdown/tableMarkdown.d.ts.map +1 -0
  26. package/lib/components/input/markdown/tableMarkdown.js +182 -0
  27. package/lib/components/input/markdown/tableMarkdown.js.map +1 -0
  28. package/lib/components/input/markdown/textColor.d.ts +40 -0
  29. package/lib/components/input/markdown/textColor.d.ts.map +1 -0
  30. package/lib/components/input/markdown/textColor.js +285 -0
  31. package/lib/components/input/markdown/textColor.js.map +1 -0
  32. package/lib/tail.css +2 -2
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data/dataTemplate/index.tsx"],"names":[],"mappings":"AAqCA,OAAO,KASN,MAAM,OAAO,CAAC;AAqGf,OAAO,EACL,iBAAiB,EAKlB,MAAM,kBAAkB,CAAC;AAyH1B,eAAO,MAAM,YAAY,mFA+4cvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data/dataTemplate/index.tsx"],"names":[],"mappings":"AAqCA,OAAO,KASN,MAAM,OAAO,CAAC;AAqGf,OAAO,EACL,iBAAiB,EAKlB,MAAM,kBAAkB,CAAC;AAyH1B,eAAO,MAAM,YAAY,mFAm7cvB,CAAC"}
@@ -361,29 +361,30 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
361
361
  var _117 = (0, react_1.useState)((_l = persistedState === null || persistedState === void 0 ? void 0 : persistedState.sort) !== null && _l !== void 0 ? _l : undefined), persistedSort = _117[0], setPersistedSort = _117[1];
362
362
  var _118 = (0, react_1.useState)(false), filterDraft = _118[0], setFilterDraft = _118[1];
363
363
  var _119 = (0, react_1.useState)(false), addTabModal = _119[0], setAddTabModal = _119[1];
364
+ var _120 = (0, react_1.useState)(-1), editTabIndex = _120[0], setEditTabIndex = _120[1];
364
365
  //INFO : resolve the initial tab synchronously so the mount cond is already
365
366
  // tab-scoped — an empty initial tab caused a second wasted list fetch
366
- var _120 = (0, react_1.useState)(function () {
367
+ var _121 = (0, react_1.useState)(function () {
367
368
  var _a, _b;
368
369
  return (0, listModule_1.renderSelectedRefreshTab)(props.localURLEndpoint, resolvedType, props.collectionId, props.id, (_a = props.organise) === null || _a === void 0 ? void 0 : _a.extendedTabs, (_b = props.organise) === null || _b === void 0 ? void 0 : _b.viewId);
369
- }), selectedTab = _120[0], setSelectedTab = _120[1];
370
- var _121 = (0, react_1.useState)("dayGridMonth"), calendarView = _121[0], setCalendarView = _121[1];
370
+ }), selectedTab = _121[0], setSelectedTab = _121[1];
371
+ var _122 = (0, react_1.useState)("dayGridMonth"), calendarView = _122[0], setCalendarView = _122[1];
371
372
  // INFO: bareNewDTW calendar viewSwitch mode — drives the NewCalendar variant
372
373
  // (calendarView above drives the matching range query)
373
- var _122 = (0, react_1.useState)("month"), newCalendarViewMode = _122[0], setNewCalendarViewMode = _122[1];
374
- var _123 = (0, react_1.useState)(new Date()), calendarTabMonth = _123[0], setCalendarTabMonth = _123[1];
374
+ var _123 = (0, react_1.useState)("month"), newCalendarViewMode = _123[0], setNewCalendarViewMode = _123[1];
375
+ var _124 = (0, react_1.useState)(new Date()), calendarTabMonth = _124[0], setCalendarTabMonth = _124[1];
375
376
  // INFO: defaultViewSwitch picks the opening view only — the tab re-inits
376
377
  // whenever its settings change, and that must not undo the user's switch
377
378
  var calendarViewInitRef = (0, react_1.useRef)(false);
378
- var _124 = (0, react_1.useState)(true), kanbanDroppable = _124[0], setKanbanDroppable = _124[1];
379
- var _125 = (0, react_1.useState)([]), kanbanOptions = _125[0], setKanbanOptions = _125[1];
380
- var _126 = (0, react_1.useState)(false), queryForm = _126[0], setQueryForm = _126[1];
381
- var _127 = (0, react_1.useState)(false), batchUpdateModal = _127[0], setBatchUpdateModal = _127[1];
382
- var _128 = (0, react_1.useState)({
379
+ var _125 = (0, react_1.useState)(true), kanbanDroppable = _125[0], setKanbanDroppable = _125[1];
380
+ var _126 = (0, react_1.useState)([]), kanbanOptions = _126[0], setKanbanOptions = _126[1];
381
+ var _127 = (0, react_1.useState)(false), queryForm = _127[0], setQueryForm = _127[1];
382
+ var _128 = (0, react_1.useState)(false), batchUpdateModal = _128[0], setBatchUpdateModal = _128[1];
383
+ var _129 = (0, react_1.useState)({
383
384
  columnId: "",
384
385
  columnData: {},
385
- }), batchUpdateData = _128[0], setBatchUpdateData = _128[1];
386
- var _129 = (0, react_1.useState)(function () {
386
+ }), batchUpdateData = _129[0], setBatchUpdateData = _129[1];
387
+ var _130 = (0, react_1.useState)(function () {
387
388
  var baseModel = (props === null || props === void 0 ? void 0 : props.model) || [];
388
389
  if (!persistedState)
389
390
  return baseModel;
@@ -409,8 +410,8 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
409
410
  });
410
411
  }
411
412
  return model;
412
- }), structure = _129[0], setStructure = _129[1];
413
- var _130 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _130[0], setAdditionalQuery = _130[1];
413
+ }), structure = _130[0], setStructure = _130[1];
414
+ var _131 = (0, react_1.useState)(((_m = props === null || props === void 0 ? void 0 : props.organise) === null || _m === void 0 ? void 0 : _m.additionalQuery) || []), additionalQuery = _131[0], setAdditionalQuery = _131[1];
414
415
  // INFO: State for user-configurable flex filters (Monday.com-style)
415
416
  // INFO: Initialize with one empty row so users see inputs immediately without clicking "Add Filter"
416
417
  var defaultFlexFilterRow = [
@@ -421,9 +422,9 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
421
422
  value: undefined,
422
423
  },
423
424
  ];
424
- var _131 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
425
+ var _132 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
425
426
  ? persistedState.flexFilters
426
- : defaultFlexFilterRow), flexFilters = _131[0], setFlexFilters = _131[1];
427
+ : defaultFlexFilterRow), flexFilters = _132[0], setFlexFilters = _132[1];
427
428
  // INFO: always-current mirror of flexFilters, read by the imperative apply/
428
429
  // clear methods so chained calls in one tick aren't stale.
429
430
  var flexFiltersRef = (0, react_1.useRef)(flexFilters);
@@ -436,74 +437,74 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
436
437
  }, [flexFilters]);
437
438
  // INFO: Debounced version of flexFilters used by renderImpSearchFilterConditions
438
439
  // to prevent API calls on every keystroke when typing in value inputs
439
- var _132 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
440
+ var _133 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.flexFilters) && persistedState.flexFilters.length > 0
440
441
  ? persistedState.flexFilters
441
- : defaultFlexFilterRow), flexFiltersDebounced = _132[0], setFlexFiltersDebounced = _132[1];
442
- var _133 = (0, react_1.useState)({}), flexFilterReferenceOptions = _133[0], setFlexFilterReferenceOptions = _133[1];
443
- var _134 = (0, react_1.useState)({}), flexFilterReferenceSearch = _134[0], setFlexFilterReferenceSearch = _134[1];
444
- var _135 = (0, react_1.useState)(false), flexFilterModalOpen = _135[0], setFlexFilterModalOpen = _135[1];
445
- var _136 = (0, react_1.useState)(false), viewSettingsModalOpen = _136[0], setViewSettingsModalOpen = _136[1];
442
+ : defaultFlexFilterRow), flexFiltersDebounced = _133[0], setFlexFiltersDebounced = _133[1];
443
+ var _134 = (0, react_1.useState)({}), flexFilterReferenceOptions = _134[0], setFlexFilterReferenceOptions = _134[1];
444
+ var _135 = (0, react_1.useState)({}), flexFilterReferenceSearch = _135[0], setFlexFilterReferenceSearch = _135[1];
445
+ var _136 = (0, react_1.useState)(false), flexFilterModalOpen = _136[0], setFlexFilterModalOpen = _136[1];
446
+ var _137 = (0, react_1.useState)(false), viewSettingsModalOpen = _137[0], setViewSettingsModalOpen = _137[1];
446
447
  // INFO: Columns the end user chose to hide (bareSettings.bareViewSettings).
447
448
  // Deliberately kept out of `structure`: the props-sync effect below resets
448
449
  // structure to props.model whenever props change, which would wipe the
449
450
  // choice, and the persist effect derives schema-level hiddenColumnIds from
450
451
  // structure — writing user hides there would blur the two concepts.
451
- var _137 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _137[0], setUserHiddenColumnIds = _137[1];
452
- var _138 = (0, react_1.useState)(""), columnSearch = _138[0], setColumnSearch = _138[1];
453
- var _139 = (0, react_1.useState)([]), savedViews = _139[0], setSavedViews = _139[1];
454
- var _140 = (0, react_1.useState)(null), activeSavedViewId = _140[0], setActiveSavedViewId = _140[1];
452
+ var _138 = (0, react_1.useState)((_o = persistedState === null || persistedState === void 0 ? void 0 : persistedState.userHiddenColumnIds) !== null && _o !== void 0 ? _o : []), userHiddenColumnIds = _138[0], setUserHiddenColumnIds = _138[1];
453
+ var _139 = (0, react_1.useState)(""), columnSearch = _139[0], setColumnSearch = _139[1];
454
+ var _140 = (0, react_1.useState)([]), savedViews = _140[0], setSavedViews = _140[1];
455
+ var _141 = (0, react_1.useState)(null), activeSavedViewId = _141[0], setActiveSavedViewId = _141[1];
455
456
  // INFO: null while the name box is closed
456
- var _141 = (0, react_1.useState)(null), savedViewName = _141[0], setSavedViewName = _141[1];
457
- var _142 = (0, react_1.useState)(null), deletingSavedViewId = _142[0], setDeletingSavedViewId = _142[1];
458
- var _143 = (0, react_1.useState)(null), draggingColumnId = _143[0], setDraggingColumnId = _143[1];
457
+ var _142 = (0, react_1.useState)(null), savedViewName = _142[0], setSavedViewName = _142[1];
458
+ var _143 = (0, react_1.useState)(null), deletingSavedViewId = _143[0], setDeletingSavedViewId = _143[1];
459
+ var _144 = (0, react_1.useState)(null), draggingColumnId = _144[0], setDraggingColumnId = _144[1];
459
460
  var columnRowRefs = (0, react_1.useRef)({});
460
461
  //INFO : Used by Auth
461
- var _144 = (0, react_1.useState)({
462
+ var _145 = (0, react_1.useState)({
462
463
  email: "",
463
464
  google: "",
464
465
  phone: "",
465
466
  disabled: false,
466
467
  create: false,
467
- }), authMethods = _144[0], setAuthMethods = _144[1];
468
- var _145 = (0, react_1.useState)(""), selectedAuthMethod = _145[0], setSelectedAuthMethod = _145[1];
468
+ }), authMethods = _145[0], setAuthMethods = _145[1];
469
+ var _146 = (0, react_1.useState)(""), selectedAuthMethod = _146[0], setSelectedAuthMethod = _146[1];
469
470
  // INFO: the sign-in check of a users datasheet's record is running; the
470
471
  // panel shows a spinner rather than nothing, which read as "no login"
471
- var _146 = (0, react_1.useState)(false), authLoading = _146[0], setAuthLoading = _146[1];
472
+ var _147 = (0, react_1.useState)(false), authLoading = _147[0], setAuthLoading = _147[1];
472
473
  // INFO: a delete is running — the ref answers a second tap at once, before
473
474
  // the state has rendered, and the state disables the confirm button
474
475
  var deletingRef = (0, react_1.useRef)(false);
475
- var _147 = (0, react_1.useState)(false), deleting = _147[0], setDeleting = _147[1];
476
+ var _148 = (0, react_1.useState)(false), deleting = _148[0], setDeleting = _148[1];
476
477
  // INFO: Used by Activity Log
477
- var _148 = (0, react_1.useState)(false), activityModal = _148[0], setActivityModal = _148[1];
478
- var _149 = (0, react_1.useState)(""), activityId = _149[0], setActivityId = _149[1];
478
+ var _149 = (0, react_1.useState)(false), activityModal = _149[0], setActivityModal = _149[1];
479
+ var _150 = (0, react_1.useState)(""), activityId = _150[0], setActivityId = _150[1];
479
480
  //INFO : Used by Export
480
- var _150 = (0, react_1.useState)(null), csvFile = _150[0], setCSVFile = _150[1];
481
- var _151 = (0, react_1.useState)([]), csvFileData = _151[0], setCSVFileData = _151[1];
482
- var _152 = (0, react_1.useState)(0), stepCSVIndex = _152[0], setStepCSVIndex = _152[1];
483
- var _153 = (0, react_1.useState)({}), listCSVMapAttribute = _153[0], setListCSVMapAttribute = _153[1];
484
- var _154 = (0, react_1.useState)({}), listCSVObjAttribute = _154[0], setListCSVObjAttribute = _154[1];
485
- var _155 = (0, react_1.useState)([]), csvAPIAttribute = _155[0], setCSVAPIAttribute = _155[1];
486
- var _156 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _156[0], setExportCSVEmail = _156[1];
487
- var _157 = (0, react_1.useState)(((_r = (_q = props.organise) === null || _q === void 0 ? void 0 : _q.exportSettings) === null || _r === void 0 ? void 0 : _r.defaultExportPDFName) || ""), exportPDFTitle = _157[0], setExportPDFTitle = _157[1];
488
- var _158 = (0, react_1.useState)(false), exportPDFLoading = _158[0], setExportPDFLoading = _158[1];
489
- var _159 = (0, react_1.useState)(false), exportReadPDFLoading = _159[0], setExportReadPDFLoading = _159[1];
490
- var _160 = (0, react_1.useState)((_u = (_t = (_s = props.organise) === null || _s === void 0 ? void 0 : _s.exportSettings) === null || _t === void 0 ? void 0 : _t.sumColumnId) !== null && _u !== void 0 ? _u : []), exportSumAttributeIds = _160[0], setExportSumAttributeIds = _160[1];
491
- var _161 = (0, react_1.useState)((_x = (_w = (_v = props.organise) === null || _v === void 0 ? void 0 : _v.exportSettings) === null || _w === void 0 ? void 0 : _w.hideSubItems) !== null && _x !== void 0 ? _x : false), hideSubItems = _161[0], setHideSubItems = _161[1];
492
- var _162 = (0, react_1.useState)([]), importTableData = _162[0], setImportTableData = _162[1];
493
- var _163 = (0, react_1.useState)([]), queryList = _163[0], setQueryList = _163[1];
494
- var _164 = (0, react_1.useState)(undefined), allQueryList = _164[0], setAllQueryList = _164[1];
495
- var _165 = (0, react_1.useState)(-1), queryIndex = _165[0], setQueryIndex = _165[1];
481
+ var _151 = (0, react_1.useState)(null), csvFile = _151[0], setCSVFile = _151[1];
482
+ var _152 = (0, react_1.useState)([]), csvFileData = _152[0], setCSVFileData = _152[1];
483
+ var _153 = (0, react_1.useState)(0), stepCSVIndex = _153[0], setStepCSVIndex = _153[1];
484
+ var _154 = (0, react_1.useState)({}), listCSVMapAttribute = _154[0], setListCSVMapAttribute = _154[1];
485
+ var _155 = (0, react_1.useState)({}), listCSVObjAttribute = _155[0], setListCSVObjAttribute = _155[1];
486
+ var _156 = (0, react_1.useState)([]), csvAPIAttribute = _156[0], setCSVAPIAttribute = _156[1];
487
+ var _157 = (0, react_1.useState)(((_p = props.devSettings.currentUser) === null || _p === void 0 ? void 0 : _p.userEmail) || ""), exportCSVEmail = _157[0], setExportCSVEmail = _157[1];
488
+ var _158 = (0, react_1.useState)(((_r = (_q = props.organise) === null || _q === void 0 ? void 0 : _q.exportSettings) === null || _r === void 0 ? void 0 : _r.defaultExportPDFName) || ""), exportPDFTitle = _158[0], setExportPDFTitle = _158[1];
489
+ var _159 = (0, react_1.useState)(false), exportPDFLoading = _159[0], setExportPDFLoading = _159[1];
490
+ var _160 = (0, react_1.useState)(false), exportReadPDFLoading = _160[0], setExportReadPDFLoading = _160[1];
491
+ var _161 = (0, react_1.useState)((_u = (_t = (_s = props.organise) === null || _s === void 0 ? void 0 : _s.exportSettings) === null || _t === void 0 ? void 0 : _t.sumColumnId) !== null && _u !== void 0 ? _u : []), exportSumAttributeIds = _161[0], setExportSumAttributeIds = _161[1];
492
+ var _162 = (0, react_1.useState)((_x = (_w = (_v = props.organise) === null || _v === void 0 ? void 0 : _v.exportSettings) === null || _w === void 0 ? void 0 : _w.hideSubItems) !== null && _x !== void 0 ? _x : false), hideSubItems = _162[0], setHideSubItems = _162[1];
493
+ var _163 = (0, react_1.useState)([]), importTableData = _163[0], setImportTableData = _163[1];
494
+ var _164 = (0, react_1.useState)([]), queryList = _164[0], setQueryList = _164[1];
495
+ var _165 = (0, react_1.useState)(undefined), allQueryList = _165[0], setAllQueryList = _165[1];
496
+ var _166 = (0, react_1.useState)(-1), queryIndex = _166[0], setQueryIndex = _166[1];
496
497
  // INFO: a restored state wins over the prop; its "" is a list the user
497
498
  // ungrouped, so it opens ungrouped
498
- var _166 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.groupBy) !== undefined
499
+ var _167 = (0, react_1.useState)((persistedState === null || persistedState === void 0 ? void 0 : persistedState.groupBy) !== undefined
499
500
  ? persistedState.groupBy || undefined
500
- : (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _166[0], setGroupId = _166[1];
501
+ : (_y = props.organise) === null || _y === void 0 ? void 0 : _y.groupBy), groupId = _167[0], setGroupId = _167[1];
501
502
  // INFO: Monday-board per-group paging. Keyed by the group key that
502
503
  // handleBuildNewTableGroups() produces (a list option or "Unknown/No Value").
503
504
  // Each group tracks its own loaded cursor + total so it can lazily load its
504
505
  // next page as the user scrolls inside that band, independent of every other
505
506
  // group. Only used when renderCheckGroupPaging() is true.
506
- var _167 = (0, react_1.useState)({}), groupPageState = _167[0], setGroupPageState = _167[1];
507
+ var _168 = (0, react_1.useState)({}), groupPageState = _168[0], setGroupPageState = _168[1];
507
508
  // INFO: read fresh inside the async per-group fetch so chained scroll fires
508
509
  // in one tick do not re-fetch an already in-flight page.
509
510
  var groupPageStateRef = (0, react_1.useRef)({});
@@ -512,59 +513,59 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
512
513
  // list was re-read (new search, filter, sort or grouping) is dropped on
513
514
  // arrival instead of appending rows that belong to the old list
514
515
  var groupPagingGenRef = (0, react_1.useRef)(0);
515
- var _168 = (0, react_1.useState)(""), readTabSection = _168[0], setReadTabSection = _168[1];
516
- var _169 = (0, react_1.useState)(false), readFloatingNav = _169[0], setReadFloatingNav = _169[1];
516
+ var _169 = (0, react_1.useState)(""), readTabSection = _169[0], setReadTabSection = _169[1];
517
+ var _170 = (0, react_1.useState)(false), readFloatingNav = _170[0], setReadFloatingNav = _170[1];
517
518
  var readTabSectionRefs = (0, react_1.useRef)({});
518
519
  //INFO : Used by Read
519
520
  //INFO : Used by Update
520
- var _170 = (0, react_1.useState)(false), modalVisible = _170[0], setModalVisible = _170[1];
521
- var _171 = (0, react_1.useState)(false), deleteModal = _171[0], setDeleteModal = _171[1];
522
- var _172 = (0, react_1.useState)(false), excelModal = _172[0], setExcelModal = _172[1];
523
- var _173 = (0, react_1.useState)(false), exportExcel = _173[0], setExportExcel = _173[1];
524
- var _174 = (0, react_1.useState)(""), exportType = _174[0], setExportType = _174[1];
525
- var _175 = (0, react_1.useState)(false), exportQR = _175[0], setExportQR = _175[1];
526
- var _176 = (0, react_1.useState)(function () {
521
+ var _171 = (0, react_1.useState)(false), modalVisible = _171[0], setModalVisible = _171[1];
522
+ var _172 = (0, react_1.useState)(false), deleteModal = _172[0], setDeleteModal = _172[1];
523
+ var _173 = (0, react_1.useState)(false), excelModal = _173[0], setExcelModal = _173[1];
524
+ var _174 = (0, react_1.useState)(false), exportExcel = _174[0], setExportExcel = _174[1];
525
+ var _175 = (0, react_1.useState)(""), exportType = _175[0], setExportType = _175[1];
526
+ var _176 = (0, react_1.useState)(false), exportQR = _176[0], setExportQR = _176[1];
527
+ var _177 = (0, react_1.useState)(function () {
527
528
  var _a, _b;
528
529
  var firstTabId = (_b = (_a = structure.find(function (item) { return item.tabId; })) === null || _a === void 0 ? void 0 : _a.tabId) !== null && _b !== void 0 ? _b : "";
529
530
  return firstTabId;
530
- }), activeTab = _176[0], setActiveTab = _176[1];
531
- var _177 = (0, react_1.useState)(false), signatureSigning = _177[0], setSignatureSigning = _177[1];
532
- var _178 = (0, react_1.useState)({}), selectedData = _178[0], setSelectedData = _178[1];
533
- var _179 = (0, react_1.useState)(""), selectedObjectStructureId = _179[0], setSelectedObjectStructureId = _179[1];
534
- var _180 = (0, react_1.useState)(""), selectedObjectId = _180[0], setSelectedObjectId = _180[1];
535
- var _181 = (0, react_1.useState)(""), selectedListAddressId = _181[0], setSelectedListAddressId = _181[1];
536
- var _182 = (0, react_1.useState)(-1), selectedListAddressIndex = _182[0], setSelectedListAddressIndex = _182[1];
537
- var _183 = (0, react_1.useState)({
531
+ }), activeTab = _177[0], setActiveTab = _177[1];
532
+ var _178 = (0, react_1.useState)(false), signatureSigning = _178[0], setSignatureSigning = _178[1];
533
+ var _179 = (0, react_1.useState)({}), selectedData = _179[0], setSelectedData = _179[1];
534
+ var _180 = (0, react_1.useState)(""), selectedObjectStructureId = _180[0], setSelectedObjectStructureId = _180[1];
535
+ var _181 = (0, react_1.useState)(""), selectedObjectId = _181[0], setSelectedObjectId = _181[1];
536
+ var _182 = (0, react_1.useState)(""), selectedListAddressId = _182[0], setSelectedListAddressId = _182[1];
537
+ var _183 = (0, react_1.useState)(-1), selectedListAddressIndex = _183[0], setSelectedListAddressIndex = _183[1];
538
+ var _184 = (0, react_1.useState)({
538
539
  lat: 0,
539
540
  lng: 0,
540
541
  name: "",
541
- }), selectedListAddress = _183[0], setSelectedListAddress = _183[1];
542
- var _184 = (0, react_1.useState)({}), selectedObjectData = _184[0], setSelectedObjectData = _184[1];
543
- var _185 = (0, react_1.useState)(null), objectCellEdit = _185[0], setObjectCellEdit = _185[1];
544
- var _186 = (0, react_1.useState)(false), referenceLoading = _186[0], setReferenceLoading = _186[1];
545
- var _187 = (0, react_1.useState)({}), referencesOptions = _187[0], setReferencesOptions = _187[1];
546
- var _188 = (0, react_1.useState)({}), referencesDetails = _188[0], setReferencesDetails = _188[1];
547
- var _189 = (0, react_1.useState)({}), listReferencesOptions = _189[0], setListReferencesOptions = _189[1];
548
- var _190 = (0, react_1.useState)({}), referenceDeleteTableData = _190[0], setReferenceDeleteTableData = _190[1];
549
- var _191 = (0, react_1.useState)([]), relatedSections = _191[0], setRelatedSections = _191[1];
550
- var _192 = (0, react_1.useState)(0), referenceDeleteIndex = _192[0], setReferenceDeleteIndex = _192[1];
551
- var _193 = (0, react_1.useState)({
542
+ }), selectedListAddress = _184[0], setSelectedListAddress = _184[1];
543
+ var _185 = (0, react_1.useState)({}), selectedObjectData = _185[0], setSelectedObjectData = _185[1];
544
+ var _186 = (0, react_1.useState)(null), objectCellEdit = _186[0], setObjectCellEdit = _186[1];
545
+ var _187 = (0, react_1.useState)(false), referenceLoading = _187[0], setReferenceLoading = _187[1];
546
+ var _188 = (0, react_1.useState)({}), referencesOptions = _188[0], setReferencesOptions = _188[1];
547
+ var _189 = (0, react_1.useState)({}), referencesDetails = _189[0], setReferencesDetails = _189[1];
548
+ var _190 = (0, react_1.useState)({}), listReferencesOptions = _190[0], setListReferencesOptions = _190[1];
549
+ var _191 = (0, react_1.useState)({}), referenceDeleteTableData = _191[0], setReferenceDeleteTableData = _191[1];
550
+ var _192 = (0, react_1.useState)([]), relatedSections = _192[0], setRelatedSections = _192[1];
551
+ var _193 = (0, react_1.useState)(0), referenceDeleteIndex = _193[0], setReferenceDeleteIndex = _193[1];
552
+ var _194 = (0, react_1.useState)({
552
553
  id: "",
553
554
  name: "",
554
555
  type: "string",
555
- }), referenceCreationModal = _193[0], setReferenceCreationModal = _193[1];
556
- var _194 = (0, react_1.useState)({}), referenceModelSchema = _194[0], setReferenceSchema = _194[1];
557
- var _195 = (0, react_1.useState)([]), kanbanChecked = _195[0], setKanbanChecked = _195[1];
556
+ }), referenceCreationModal = _194[0], setReferenceCreationModal = _194[1];
557
+ var _195 = (0, react_1.useState)({}), referenceModelSchema = _195[0], setReferenceSchema = _195[1];
558
+ var _196 = (0, react_1.useState)([]), kanbanChecked = _196[0], setKanbanChecked = _196[1];
558
559
  //INFO : Offline
559
- var _196 = (0, react_1.useState)(0), offlineDataLength = _196[0], setOfflineDataLength = _196[1];
560
- var _197 = (0, react_1.useState)(false), offlineModal = _197[0], setOfflineModal = _197[1];
560
+ var _197 = (0, react_1.useState)(0), offlineDataLength = _197[0], setOfflineDataLength = _197[1];
561
+ var _198 = (0, react_1.useState)(false), offlineModal = _198[0], setOfflineModal = _198[1];
561
562
  // INFO: live-stream state — driven by socket connection and navigator.onLine
562
- var _198 = (0, react_1.useState)(false), isLive = _198[0], setIsLive = _198[1];
563
- var _199 = (0, react_1.useState)(false), isLiveOffline = _199[0], setIsLiveOffline = _199[1];
563
+ var _199 = (0, react_1.useState)(false), isLive = _199[0], setIsLive = _199[1];
564
+ var _200 = (0, react_1.useState)(false), isLiveOffline = _200[0], setIsLiveOffline = _200[1];
564
565
  // INFO: true when navigator is offline — used to switch ReadQueryHoc between
565
566
  // server reads (online, full pagination) and IndexedDB reads (offline, cached data).
566
567
  // Independent of SSE status so it works even when bareSocketName is not set.
567
- var _200 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _200[0], setIsNetworkOffline = _200[1];
568
+ var _201 = (0, react_1.useState)(typeof navigator !== "undefined" ? !navigator.onLine : false), isNetworkOffline = _201[0], setIsNetworkOffline = _201[1];
568
569
  var previousType = (0, react_1.useRef)(null);
569
570
  var previousSelectedData = (0, react_1.useRef)(null);
570
571
  var scrollSentinelRef = (0, react_1.useRef)(null);
@@ -784,7 +785,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
784
785
  var isSchemaHideMode = ((_10 = props.organise) === null || _10 === void 0 ? void 0 : _10.onChangeHide) ? true : false;
785
786
  // INFO: rows per page is a view setting the user can change, so it starts from
786
787
  // the persisted value and falls back to the consumer's limit
787
- var _201 = (0, react_1.useState)((_12 = (_11 = (isPersistEnabled ? persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageLimit : undefined)) !== null && _11 !== void 0 ? _11 : props.limit) !== null && _12 !== void 0 ? _12 : 10), pageLimit = _201[0], setPageLimit = _201[1];
788
+ var _202 = (0, react_1.useState)((_12 = (_11 = (isPersistEnabled ? persistedState === null || persistedState === void 0 ? void 0 : persistedState.pageLimit : undefined)) !== null && _11 !== void 0 ? _11 : props.limit) !== null && _12 !== void 0 ? _12 : 10), pageLimit = _202[0], setPageLimit = _202[1];
788
789
  var limit = pageLimit;
789
790
  var isSavedViewsEnabled = !!((_13 = props.organise) === null || _13 === void 0 ? void 0 : _13.savedViews) && resolvedType === "list";
790
791
  // INFO: an app that stores views takes over from this browser's storage, so
@@ -809,7 +810,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
809
810
  setCursor("");
810
811
  setLastCursor("");
811
812
  };
812
- var _202 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _202.canUpdateRecord, canInlineUpdate = _202.canInlineUpdate, canBatchUpdate = _202.canBatchUpdate, canDeleteRecord = _202.canDeleteRecord;
813
+ var _203 = (0, permissions_1.handleResolveDataTemplateWritePermissions)(props.edit), canUpdateRecord = _203.canUpdateRecord, canInlineUpdate = _203.canInlineUpdate, canBatchUpdate = _203.canBatchUpdate, canDeleteRecord = _203.canDeleteRecord;
813
814
  var isEditor = ((_17 = props.edit) === null || _17 === void 0 ? void 0 : _17.allEditable) ? true : false;
814
815
  var isOffline = (_18 = props.bareSettings) === null || _18 === void 0 ? void 0 : _18.bareOffline;
815
816
  // INFO: when bareOfflineNetworkAware is true, the save path is also gated on
@@ -6865,6 +6866,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
6865
6866
  setStepCSVIndex(0);
6866
6867
  setCSVFile(null);
6867
6868
  setAddTabModal(false);
6869
+ setEditTabIndex(-1);
6868
6870
  setCSVFileData([]);
6869
6871
  setListCSVMapAttribute({});
6870
6872
  setListCSVObjAttribute({});
@@ -8825,15 +8827,28 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8825
8827
  if (eachTab.type === resolvedType) {
8826
8828
  tabs.push(__assign(__assign(__assign({}, tabData), (isEditor &&
8827
8829
  ((_h = props.organise) === null || _h === void 0 ? void 0 : _h.onChangeTabs) && {
8828
- action: (react_1.default.createElement("span", { role: "button", "data-testid": "tab-default-".concat(tabData.id), "aria-label": eachTab.defaultTab
8829
- ? "Opens by default"
8830
- : "Open this tab by default", className: "ml-2 self-center ".concat(eachTab.defaultTab
8831
- ? "text-primary-500"
8832
- : "text-gray-400 opacity-0 group-hover:opacity-100"), onClick: function (e) {
8833
- e.stopPropagation();
8834
- e.preventDefault();
8835
- handleToggleDefaultTab(eachTab.name);
8836
- } }, eachTab.defaultTab ? (react_1.default.createElement(HeroIcons.BookmarkIcon, { className: "h-4 w-4" })) : (react_1.default.createElement(BookmarkIcon_1.default, { className: "h-4 w-4" })))),
8830
+ action: (react_1.default.createElement(react_1.default.Fragment, null,
8831
+ react_1.default.createElement("span", { role: "button", "data-testid": "tab-edit-".concat(tabData.id), tabIndex: 0, "aria-label": "Edit tab", className: "ml-2 self-center text-gray-400 opacity-0 group-hover:opacity-100 focus-visible:opacity-100", onClick: function (e) {
8832
+ e.stopPropagation();
8833
+ e.preventDefault();
8834
+ handleEditTab(eachTab.name);
8835
+ }, onKeyDown: function (e) {
8836
+ if (e.key !== "Enter" && e.key !== " ")
8837
+ return;
8838
+ e.stopPropagation();
8839
+ e.preventDefault();
8840
+ handleEditTab(eachTab.name);
8841
+ } },
8842
+ react_1.default.createElement(outline_1.PencilIcon, { className: "h-4 w-4" })),
8843
+ react_1.default.createElement("span", { role: "button", "data-testid": "tab-default-".concat(tabData.id), "aria-label": eachTab.defaultTab
8844
+ ? "Opens by default"
8845
+ : "Open this tab by default", className: "ml-2 self-center ".concat(eachTab.defaultTab
8846
+ ? "text-primary-500"
8847
+ : "text-gray-400 opacity-0 group-hover:opacity-100"), onClick: function (e) {
8848
+ e.stopPropagation();
8849
+ e.preventDefault();
8850
+ handleToggleDefaultTab(eachTab.name);
8851
+ } }, eachTab.defaultTab ? (react_1.default.createElement(HeroIcons.BookmarkIcon, { className: "h-4 w-4" })) : (react_1.default.createElement(BookmarkIcon_1.default, { className: "h-4 w-4" }))))),
8837
8852
  })), (!((_j = props.edit) === null || _j === void 0 ? void 0 : _j.disabledTabsDeleteBtn) &&
8838
8853
  ((_k = props.organise) === null || _k === void 0 ? void 0 : _k.onChangeTabs) && {
8839
8854
  del: (react_1.default.createElement(outline_1.XMarkIcon, { className: "h-4 w-4 ml-2 self-center text-red-600 hover:text-red-400 ", onClick: function (e) {
@@ -8915,6 +8930,16 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
8915
8930
  var nextTabs = ((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.extendedTabs) !== null && _b !== void 0 ? _b : []).map(function (eachTab) { return (__assign(__assign({}, eachTab), { defaultTab: eachTab.name === name ? !eachTab.defaultTab : false })); });
8916
8931
  (_d = (_c = props.organise) === null || _c === void 0 ? void 0 : _c.onChangeTabs) === null || _d === void 0 ? void 0 : _d.call(_c, nextTabs);
8917
8932
  };
8933
+ // INFO: opens the add tab modal on an existing tab, which it saves in place
8934
+ var handleEditTab = function (name) {
8935
+ var _a, _b;
8936
+ var index = ((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.extendedTabs) !== null && _b !== void 0 ? _b : []).findIndex(function (eachTab) { return eachTab.name === name && eachTab.type === resolvedType; });
8937
+ if (index === -1)
8938
+ return;
8939
+ setEditTabIndex(index);
8940
+ setAddTabModal(true);
8941
+ setModalVisible(true);
8942
+ };
8918
8943
  var handleChangeTabCharts = function (tabName, charts) {
8919
8944
  var _a, _b, _c, _d;
8920
8945
  var nextTabs = ((_b = (_a = props.organise) === null || _a === void 0 ? void 0 : _a.extendedTabs) !== null && _b !== void 0 ? _b : []).map(function (eachTab) {
@@ -10751,7 +10776,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
10751
10776
  } }))))));
10752
10777
  }
10753
10778
  else if (addTabModal) {
10754
- return (react_1.default.createElement(settingsModal_1.TabModal, { type: resolvedType, tabs: (_u = props.organise) === null || _u === void 0 ? void 0 : _u.extendedTabs, onChangeTabs: (_v = props.organise) === null || _v === void 0 ? void 0 : _v.onChangeTabs, model: structure, collectionId: props.collectionId, renderReferenceLabelOptions: (_w = props.organise) === null || _w === void 0 ? void 0 : _w.renderReferenceLabelOptions, onClose: function () {
10779
+ return (react_1.default.createElement(settingsModal_1.TabModal, { type: resolvedType, tabs: (_u = props.organise) === null || _u === void 0 ? void 0 : _u.extendedTabs, editIndex: editTabIndex >= 0 ? editTabIndex : undefined, onChangeTabs: (_v = props.organise) === null || _v === void 0 ? void 0 : _v.onChangeTabs, model: structure, collectionId: props.collectionId, renderReferenceLabelOptions: (_w = props.organise) === null || _w === void 0 ? void 0 : _w.renderReferenceLabelOptions, onClose: function () {
10755
10780
  handlePopUpModal(false);
10756
10781
  } }));
10757
10782
  }
@@ -11077,7 +11102,7 @@ exports.DataTemplate = (0, react_1.forwardRef)(function (props, ref) {
11077
11102
  else if (exportQR)
11078
11103
  return "Export QR";
11079
11104
  else if (addTabModal)
11080
- return "Add Tab";
11105
+ return editTabIndex >= 0 ? "Edit Tab" : "Add Tab";
11081
11106
  else if (offlineModal)
11082
11107
  return "Upload Offline Data";
11083
11108
  else